NMState Alat konfigurasi jaringan deklaratif untuk Linux

NMState Alat konfigurasi jaringan deklaratif untuk Linux

Linux Ecosystem menyediakan berbagai cara untuk mengkonfigurasi jaringan termasuk daemon manajer jaringan populer dan alat baris perintah seperti utilitas NMCLI dan NMTUI GUI. Panduan ini memperkenalkan alat konfigurasi jaringan lain yang dikenal sebagai Nmstate

Nmstate adalah manajer jaringan deklaratif untuk mengonfigurasi jaringan di host Linux. Ini adalah perpustakaan yang menyediakan alat baris perintah yang mengelola pengaturan jaringan host. Itu mengelola jaringan host melalui API deklaratif utara. Pada saat menulis panduan ini, Pengelola jaringan Daemon adalah satu -satunya penyedia yang didukung oleh Nmstate.

Dalam panduan ini, kita melihat beberapa contoh penggunaan Nmstate alat. Untuk panduan ini, kami akan menunjukkan ini menggunakan Fedora Linux.

Pendekatan Imperative vs Deklaratif

Manajemen jaringan dapat mengambil dua pendekatan - Imperatif Dan deklaratif. Dalam imperatif Pendekatan, Anda secara eksplisit mendefinisikan keadaan jaringan antarmuka dengan menjalankan perintah di terminal. Fokusnya adalah pada 'Bagaimana'.

Misalnya, untuk menjatuhkan jaringan menggunakan pendekatan imperatif, jalankan perintah:

$ sudo ifconfig enp0s3 turun 

Di sisi lain, deklaratif pendekatan menggunakan a Yaml file untuk menerapkan perubahan pada konfigurasi. Sebagian besar alat orkestrasi DevOps seperti Kubernetes Gunakan pendekatan ini untuk menggunakan aplikasi pod menggunakan a Yaml mengajukan.

Pendekatan ini memberikan apa yang biasa disebut sebagai infrastruktur sebagai kode (IAC) di lingkaran devops. Ini meningkatkan otomatisasi konfigurasi jaringan pada host dan menyediakan cara yang cepat dan lebih andal untuk membuat beberapa perubahan pada antarmuka jaringan dengan kesalahan minimal.

Sekarang, mari kita beralih persneling dan lihat bagaimana Anda dapat menggunakan Nmstate alat konfigurasi untuk mengonfigurasi antarmuka jaringan Anda di Linux.

Langkah 1: Instal NMState Networking Config Tool

Kami akan membuat bola bergulir dengan memasang Nmstate. Pertama, periksa ketersediaan paket dari Fedora repositori sebagai berikut:

$ sudo dnf pencarian nmstate 

Dari output, kita dapat melihat bahwa manajer jaringan tersedia di repositori resmi.

Periksa paket nmstate

Selanjutnya, instal Nmstate sebagai berikut. Ini berhasil Fedora 31 dan versi yang lebih baru.

$ sudo dnf menginstal nmstate 

Perintah tersebut menginstal Nmstate API Manajer Jaringan bersama dependensi Python lainnya.

Instal NMState di Fedora

Setelah instalasi selesai, verifikasi nmstate Paket diinstal sebagai berikut.

$ rpm -qi nmstate 
Verifikasi Paket NMState

Untuk Linux berbasis RHEL, aktifkan repositori COPR terlebih dahulu.

$ sudo dnf copr memungkinkan nmstate/nmstate-stabil 

Lalu instal Nmstate sebagai berikut.

$ sudo dnf menginstal nmstate 

Lihat instruksi tambahan tentang cara menginstal NMState dari sumber.

Setelah diinstal, Anda dapat memeriksa versi Nmstate diinstal sebagai berikut.

$ nmstateTect Versi 1.0.2 

Menggunakan NMState Configuration Tool di Linux

Dengan Nmstate Terinstal, biarkan kami turun ke rajutan tentang bagaimana Anda dapat memanfaatkan API manajer jaringan sebaik-baiknya.

Untuk melihat konfigurasi jaringan saat ini dari antarmuka jaringan Anda, jalankan perintah berikut. Di sini, adalah konfigurasi Anda ENP0S3 antarmuka.

$ nmstateTect Show ENP0S3 
Tampilkan konfigurasi antarmuka jaringan

Output dibagi menjadi 4 bagian yang berbeda:

  • DNS-Resolver: Bagian ini berisi konfigurasi NameServer untuk antarmuka tertentu.
  • Rute-aturan: Ini menetapkan aturan perutean.
  • rute: Ini termasuk rute dinamis dan statis.
  • Antarmuka: Bagian ini menentukan pengaturan IPv4 dan IPv6.

Mengubah Konfigurasi Jaringan di Linux

Anda dapat menggunakan Nmstate alat konfigurasi untuk mengonfigurasi host Anda ke keadaan yang diinginkan menggunakan mode interaktif atau berbasis file.

  • Interaktif: Ini mengedit antarmuka jaringan menggunakan edit nmstatectl memerintah. Perintah ini membuka editor teks yang ditentukan oleh variabel lingkungan editor. Setelah perubahan disimpan, NMSTATE menerapkan konfigurasi baru segera kecuali kesalahan sintaks terdeteksi.
  • Berbasis file: Dalam mode berbasis file, konfigurasi antarmuka diterapkan menggunakan file YAML atau JSON menggunakan nmstateTectl berlaku memerintah.

Biarkan kami sekarang kotor dan periksa bagaimana Anda dapat memodifikasi konfigurasi jaringan menggunakan Nmstate.

Kita Fedora Sistem memiliki dua antarmuka jaringan aktif dengan konfigurasi berikut:

$ ip -br -4 a 
Output sampel
lo tidak diketahui 127.0.0.1/8 ENP0S3 UP 192.168.2.104/24 ENP0S8 UP 192.168.2.103/24 

Contoh mode konfigurasi interaktif

Kami akan menggunakan mode interaktif untuk mengubah MTU (Unit transmisi maksimum) dari ENP0S3 antarmuka jaringan. Secara default, ini diatur ke 1500 seperti yang ditunjukkan.

$ ifconfig 
Periksa MTU jaringan di Linux

Kami akan mengubah ini menjadi 4000. Kami akan melakukannya dengan menggunakan edit nmstatectl perintah sebagai berikut.

$ sudo nmstatectl Edit ENP0S3 

Ini membuka konfigurasi di editor teks. Untuk kasus kami, itu terbuka vim editor. Selanjutnya, gulir ke bawah dan temukan MTU parameter. Kami akan mengubah nilainya 4000, sama seperti kami akan mengedit file di vim. Maka kami akan menyimpan perubahan.

Ubah MTU jaringan di Linux

Saat Anda menyimpan dan keluar dari file, Anda akan melihat beberapa output orak -arik di terminal sebagai Nmstate menyimpan perubahan. Tidak ada intervensi yang diperlukan, hanya duduk diam.

Mari kita konfirmasi bahwa perubahan itu dilakukan.

$ ifconfig 

Dari output terminal, kita dapat melihat bahwa kita telah berhasil mengubah MTU menjadi 4000 dari default 1500 nilai.

Verifikasi MTU jaringan di Linux

Contoh mode konfigurasi berbasis file

Mari kita ubah konfigurasi menggunakan mode berbasis file. Dalam contoh ini, kita akan menonaktifkan IPv6 Untuk ENP0S8 antarmuka jaringan. Langkah pertama adalah membuat file YAML yang akan menentukan keadaan yang diinginkan dari ENP0S8 antarmuka jaringan.

$ sudo nmstatectl Show ENP0S8> ENP0S8.YML 
Buat File YAML Jaringan

Selanjutnya, kami akan mengedit Yaml file sebagai berikut.

$ sudo vim enp0s8.YML 

Gulir ke bawah ke bagian IPv6. Untuk menonaktifkan IPv6, atur parameter yang diaktifkan ke false dan hapus garis yang telah dipukul.

Nonaktifkan IPv6 di Linux

Simpan konfigurasi dan terapkan status baru menggunakan file YAML sebagai berikut.

$ sudo nmstatectl berlaku enp0s8.YML 

Sekarang jalankan perintah yang ditunjukkan untuk memverifikasi bahwa IPv6 telah dinonaktifkan. Output yang ditampilkan menunjukkan bahwa IPv6 untuk ENP0S8 Antarmuka jaringan kosong, menyiratkan bahwa kami telah berhasil menonaktifkan IPv6 di antarmuka.

$ ip -br a 
Konfirmasi IPv6 dinonaktifkan di Linux

Menerapkan perubahan jaringan sementara

Fungsionalitas lain yang sangat berguna itu Nmstate menyediakan kemampuan untuk mengkonfigurasi sementara keadaan jaringan yang diinginkan. Setelah Anda puas dengan konfigurasi, Anda dapat melanjutkan dan membuat perubahan permanen. Kalau tidak, perubahan yang dilakukan akan kembali ke pengaturan awal setelah batas waktu berakhir. Timeout default adalah 60 detik.

Untuk menunjukkan hal ini, kami akan sementara untuk mengatur IP statis di ENP0S3 antarmuka dan nonaktifkan DHCP. Sekali lagi, akses file menggunakan editor teks.

$ sudo vim enp0s3.YML 

Gulir ke IPv4 bagian. Tentukan IP statis - dalam kasus kami 192.168.2.150 dan hapus garis yang telah dipukul-melalui. Selain itu, pastikan untuk mengatur DHCP parameter ke PALSU.

Atur IP statis di Linux

Simpan file dan lakukan sementara melakukan perubahan sebagai berikut.

$ sudo nmstatectl berlaku ---no-commit-Timeout 20 ENP0S3.YML 

Itu --tidak berkomitmen opsi untuk sementara menerapkan perubahan untuk periode yang ditentukan oleh --waktu habis opsi yang, dalam contoh ini, adalah 20 detik.

Untuk memverifikasi aplikasi temporal dari perubahan, kami akan memeriksa konfigurasi IP dalam interval waktu 20 detik.

$ ip -br a 

Dari output, Anda dapat melihat bahwa konfigurasi IP antarmuka dikembalikan ke DHCP setelah interval waktu 20 detik. Alamat IP kembali ke 192.168.2.104 dari IP yang dikonfigurasi secara statis sebelumnya 192.168.2.150.

Periksa Antarmuka Jaringan

Diakui, The Nmstate Alat adalah alat yang nyaman untuk mengkonfigurasi antarmuka jaringan Anda. Ini adalah alat deklaratif yang menerapkan status konfigurasi yang diinginkan dari antarmuka host menggunakan API NetworkManager.

Itu negara mudah didefinisikan menggunakan salah satu interaktif mendekati atau menggunakan berbasis file metode yang menggunakan yang telah dikonfigurasi sebelumnya Yaml mengajukan. Ini meningkatkan otomatisasi tugas konfigurasi dan pengurangan kesalahan selama konfigurasi.