Cara Menggunakan Rangkaian Berjalan dengan Libvirt dan KVM

Cara Menggunakan Rangkaian Berjalan dengan Libvirt dan KVM

Libvirt adalah perisian sumber percuma dan terbuka yang menyediakan API untuk menguruskan pelbagai aspek mesin maya. Di Linux ia biasanya digunakan bersamaan dengan KVM dan Qemu. Antara lain, Libvirt digunakan untuk membuat dan mengurus rangkaian maya. Rangkaian lalai yang dibuat apabila libvirt digunakan dipanggil "lalai" dan kegunaan Nat (Terjemahan Alamat Rangkaian) dan Packet Forwarding untuk menyambungkan sistem yang dicontohi dengan dunia "luar" (kedua -dua sistem tuan rumah dan Internet). Dalam tutorial ini kita akan melihat cara membuat persediaan yang berbeza menggunakan Rangkaian Bridged.

Dalam tutorial ini anda akan belajar:

  • Cara membuat jambatan maya
  • Cara menambah antara muka fizikal ke jambatan
  • Cara menjadikan konfigurasi jambatan berterusan
  • Cara mengubahsuai peraturan firmware untuk membenarkan lalu lintas ke mesin maya
  • Cara membuat rangkaian maya baru dan menggunakannya dalam mesin maya
Cara Menggunakan Rangkaian Berjalan dengan Libvirt dan KVM

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran bebas
Perisian libvirt, iprroute, brctl
Yang lain Keistimewaan pentadbiran untuk membuat dan memanipulasi antara muka jambatan
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Rangkaian "lalai"

Bila libvirt sedang digunakan dan libvirtd Daemon sedang berjalan, rangkaian lalai dibuat. Kami dapat mengesahkan bahawa rangkaian ini wujud dengan menggunakan Virsh utiliti, yang pada majoriti pengedaran Linux biasanya dilengkapi dengan libvirt-client pakej. Untuk memohon utiliti supaya ia memaparkan semua rangkaian maya yang ada, kita harus memasukkannya senarai bersih Subcommand:

$ sudo virsh net-list-semua 


Dalam contoh di atas kami menggunakan --semua pilihan untuk memastikan juga tidak aktif Rangkaian dimasukkan ke dalam hasilnya, yang biasanya sepadan dengan yang dipaparkan di bawah:

Namakan Negeri Autostart Berkonsisten ---------------------------------------- Default Active ya ya 

Untuk mendapatkan maklumat terperinci mengenai rangkaian, dan akhirnya mengubahnya, kami boleh memanggil Virsh dengan edit Subcommand sebaliknya, memberikan nama rangkaian sebagai hujah:

$ sudo virsh net-edit default 

Fail sementara yang mengandungi XML Definisi rangkaian akan dibuka di editor teks kegemaran kami. Dalam kes ini hasilnya adalah seperti berikut:

 Lalai 168F6909-715C-4333-A34B-F74584D26328          

Seperti yang dapat kita lihat, rangkaian lalai berdasarkan penggunaan Virbr0 jambatan maya, dan kegunaan Nat sambungan berasaskan untuk menyambungkan mesin maya yang merupakan sebahagian daripada rangkaian ke dunia luar. Kita dapat mengesahkan bahawa jambatan wujud menggunakan ip Perintah:

Jambatan Jenis Pautan IP Pautan IP 

Dalam kes kami, arahan di atas mengembalikan output berikut:

5: VIRBR0: MTU 1500 qdisc Noqueue State Down Mode Default Group Default Qlen 1000 Link/Ether 52: 54: 00: 48: 3F: 0C BRD FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: 

Untuk menunjukkan antara muka yang merupakan sebahagian daripada jambatan, kita boleh menggunakan ip perintah dan pertanyaan hanya untuk antara muka yang mempunyai Virbr0 jambatan sebagai tuan:

$ ip link show master virbr0 

Hasil menjalankan arahan adalah:

6: virbr0-nic: MTU 1500 qdisc fq_codel master virbr0 state down mode lalai kumpulan lalai qlen 1000 link/eter 52: 54: 00: 48: 3f: 0c brd ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: ff: 

Seperti yang dapat kita lihat, hanya ada satu antara muka yang dilampirkan pada jambatan, virbr0-nic. The virbr0-nic antara muka adalah antara muka Ethernet maya: ia dicipta dan ditambah ke jambatan secara automatik, dan tujuannya hanya untuk memberikan stabil MAC Alamat (52: 54: 00: 48: 3f: 0c dalam kes ini) untuk jambatan.

Antara muka maya lain akan ditambah ke jambatan apabila kami membuat dan melancarkan mesin maya. Demi tutorial ini saya mencipta dan melancarkan mesin maya Debian (Buster); Sekiranya kita melancarkan semula arahan yang kita gunakan di atas untuk memaparkan antara muka hamba jambatan, kita dapat melihat yang baru ditambah, vnet0:

$ ip link menunjukkan master virbr0 6: virbr0-nic: mtu 1500 qdisc fq_codel master virbr0 state down mode lalai kumpulan lalai qlen 1000 link/eter 52: 54: 00: 48: 3f: 0c brd ff: ff: ff: ff: ff : FF 7: VNET0: MTU 1500 QDISC FQ_CODEL Master VIRBR0 Negeri Tidak Dikenal Mod Kumpulan lalai lalai qlen 1000 link/eter Fe: 54: 00: E2: Fe: 7B BRD FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: 

Tidak ada antara muka fizikal yang harus ditambah ke Virbr0 jambatan, kerana ia menggunakan Nat untuk menyediakan sambungan.

Gunakan rangkaian jambit untuk mesin maya

Rangkaian lalai menyediakan cara yang sangat mudah untuk mencapai sambungan ketika membuat mesin maya: semuanya "siap" dan berfungsi dari kotak. Kadang -kadang, kita mahu mencapai a Bridgining penuh sambungan, di mana peranti tetamu disambungkan ke tuan rumah Lan, tanpa menggunakan Nat, Kita harus membuat jambatan baru dan berkongsi salah satu antara muka Ethernet fizikal tuan rumah. Mari lihat bagaimana melakukan langkah demi langkah ini.

Membuat jambatan baru

Untuk membuat jambatan baru, kita masih boleh menggunakan ip perintah. Katakan kita mahu menamakan jambatan ini br0; Kami akan menjalankan arahan berikut:

$ sudo ip link tambah jambatan jenis br0 

Untuk mengesahkan jambatan dibuat, kita lakukan seperti dahulu:

$ sudo ip link show type jambatan 5: virbr0: mtu 1500 qdisc noqueue state down mode default group default qlen 1000 link/eter 52: 54: 00: 48: 3f: 0c brd ff: ff: ff: ff: ff: ff 8 : BR0: MTU 1500 QDISC NOOP Mode Down Mode Default Group Default Qlen 1000 Link/Ether 26: D2: 80: 7C: 55: DD BRD FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: FF: 

Seperti yang dijangkakan, jambatan baru, br0 telah dibuat dan kini termasuk dalam output arahan di atas. Sekarang jambatan baru dibuat, kita boleh meneruskan dan menambah antara muka fizikal kepadanya.

Menambah antara muka Ethernet fizikal ke jambatan

Dalam langkah ini, kami akan menambah antara muka fizikal tuan rumah ke jambatan. Perhatikan bahawa anda tidak boleh menggunakan antara muka Ethernet utama anda dalam kes ini, kerana sebaik sahaja ia ditambahkan ke jambatan, anda akan kehilangan sambungan, kerana ia akan kehilangan alamat IPnya. Dalam kes ini kita akan menggunakan antara muka tambahan, ENP0S29U1U1: Ini adalah antara muka yang disediakan oleh penyesuai Ethernet ke USB yang dilampirkan pada mesin saya.

Mula -mula kita pastikan keadaan antara muka:

$ sudo ip pautan set enp0s29u1u1 up 

Untuk menambah antara muka ke jambatan, arahan untuk dijalankan adalah yang berikut:

$ sudo ip pautan set enp0s29u1u1 master br0 

Untuk mengesahkan antara muka telah ditambah ke jambatan, sebaliknya:

$ sudo ip link Show Master BR0 3: ENP0S29U1U1: MTU 1500 QDISC FQ_CODEL Master Br0 State Up Mode Group Default Qlen 1000 Link/Ether 18: A6: F7: 0e: 06: 64 BRD FF: FF: FF: FF: FF: FF: ff 

Menetapkan alamat IP statik ke jambatan

Pada ketika ini kita dapat menetapkan alamat IP statik ke jambatan. Katakan kita mahu menggunakan 192.168.0.90/24; Kami akan berlari:

$ sudo alamat ip tambah dev br0 192.168.0.90/24 

Untuk sangat alamat itu ditambah ke antara muka, kami menjalankan:

$ ip addr show br0 9: br0: mtu 1500 qdisc noqueue state up group lalai qlen 1000 link/eter 26: d2: 80: 7c: 55: dd brd ff: ff: ff: ff: ff inet 192.168.0.90/24 SCOPE GLOBAL BR0 VALLID_LFT FOREVERSED_LFT FOREVER [...] 


Menjadikan konfigurasi berterusan

Konfigurasi jambatan kami sudah siap, bagaimanapun, kerana ia tidak akan bertahan dengan reboot mesin. Untuk menjadikan konfigurasi kami berterusan, kami mesti mengedit beberapa fail konfigurasi, bergantung kepada pengedaran yang kami gunakan.

Debian dan Derivatif

Mengenai keluarga debian pengagihan kita mesti yakin bahawa jambatan-utils Pakej dipasang:

$ sudo apt-get memasang jambatan-util 

Setelah pakej dipasang, kita harus mengubah suai kandungan /etc/rangkaian/antara muka Fail:

# Fail ini menerangkan antara muka rangkaian yang tersedia di sistem anda # dan bagaimana mengaktifkannya. Untuk maklumat lanjut, lihat antara muka (5). # Antara muka rangkaian loopback auto lo iface lo inet loopback # Tentukan bahawa antara muka fizikal yang harus disambungkan ke jambatan # harus dikonfigurasi secara manual, untuk mengelakkan konflik dengan rangkaian iface enp0s29u1u1 manual inet # Bridge_ports ENP0S29U1U1 Alamat 192.168.0.90 Siaran 192.168.0.255 Netmask 255.255.255.0 Gateway 192.168.0.1 

Keluarga red hat pengagihan

Mengenai keluarga pengagihan Red Hat, termasuk Fedora, kita mesti memanipulasi skrip rangkaian di dalam /etc/sysconfig/skrip rangkaian direktori. Sekiranya kita mahukan jambatan tidak untuk diuruskan oleh NetworkManager, atau kami menggunakan pengedaran yang lebih lama dengan versi lama NetworkManager yang tidak mampu menguruskan suis rangkaian, kami perlu memasang skrip rangkaian Pakej:

$ sudo DNF memasang skrip rangkaian 

Setelah pakej dipasang, kita perlu membuat fail yang akan mengkonfigurasi br0 jambatan: /etc/sysconfig/skrip rangkaian/ifcfg-b0. Di dalam fail kami meletakkan kandungan berikut:

Peranti = jenis br0 = bootproto jambatan = tiada ipaddr = 192.168.0.90 Gateway = 192.168.0.1 netmask = 255.255.255.0 onboot = ya kelewatan = 0 nm_controlled = 0 

Daripada, kami mengubah atau membuat fail yang digunakan untuk mengkonfigurasi antara muka fizikal yang akan kami sambungkan ke jambatan, dalam kes ini /etc/sysconfig/skrip rangkaian/ifcfg-enp0s29u1u1:

Type = ethernet bootproto = none name = enp0s29u1u1 device = enp0s29u1u1 onboot = ya jambatan = br0 delay = 0 nm_controlled = 0 

Dengan konfigurasi kami siap, kami boleh memulakan rangkaian perkhidmatan, dan membolehkannya di but:

$ sudo systemctl enable -now network 

Melumpuhkan Netfilter untuk jambatan

Untuk membolehkan semua lalu lintas diteruskan ke jambatan, dan oleh itu ke mesin maya yang disambungkan kepadanya, kita perlu melumpuhkan Netfilter. Contohnya, ini perlu, untuk resolusi DNS untuk bekerja di mesin tetamu yang dilampirkan ke jambatan. Untuk melakukan ini kita boleh membuat fail dengan .Conf lanjutan di dalam /etc/sysctl.d Direktori, mari kita sebut 99-Netfilter-Bridge.Conf. Di dalamnya kita menulis kandungan berikut:

jaring.jambatan.Bridge-NF-Call-IP6Tables = 0 Net.jambatan.Bridge-NF-Call-Apples = 0 Net.jambatan.Bridge-NF-Call-Arptables = 0 

Untuk memuatkan tetapan yang ditulis dalam fail, penumbuk kami memastikan bahawa br_netfilter Modul dimuatkan:

$ sudo modprobe br_netfilter 

Untuk memuatkan modul secara automatik di boot, mari buat /etc/modul-beban.d/br_netfilter.Conf Fail: Ia hanya mengandungi nama modul itu sendiri:

br_netfilter 


Setelah modul dimuatkan, untuk memuatkan tetapan yang kami simpan di 99-Netfilter-Bridge.Conf fail, kita boleh menjalankan:

$ sudo sysctl -p /etc /sysctl.D/99-Netfilter-Bridge.Conf 

Membuat rangkaian maya baru

Pada ketika ini kita harus menentukan "rangkaian" baru untuk digunakan oleh mesin maya kami. Kami membuka fail dengan editor kegemaran kami dan tampal kandungan berikut di dalamnya, daripada menyimpannya sebagai Jambatan-rangkaian.XML:

 Jambatan-rangkaian    

Setelah fail siap kita lulus kedudukannya sebagai hujah ke Net-define Virsh Subcommand:

$ sudo virsh net-define jet-retner.XML 

Untuk mengaktifkan rangkaian baru dan buat supaya ia bermula secara automatik, kita harus menjalankan:

$ sudo virsh net-start bridged-network $ sudo virsh net-autostart bridged-network 

Kami dapat mengesahkan rangkaian telah diaktifkan dengan menjalankan senarai bersih virsh
perintah, sekali lagi:

$ sudo virsh net-list name state autostart berterusan ---------------------------------------- ------------ Jambatan-Rangkaian Aktif Ya Ya Lalai Aktif Ya Ya 

Sekarang kita boleh memilih rangkaian mengikut nama semasa menggunakan --rangkaian pilihan:

$ sudo virt-install \ --vcpus = 1 \--Mory = 1024 \ --cdrom = debian-10.8.0-AMD64-DVD-1.ISO \--PRIST SIZE = 7 \ --OS-VARIANT = DEBIAN10 \ --NETWORK Network = Bridged-Network 

Jika menggunakan Virt-Manager Antara muka grafik, kami akan dapat memilih rangkaian apabila membuat mesin maya baru:

Kesimpulan

Dalam tutorial ini kita melihat bagaimana untuk membuat jambatan maya di Linux dan menghubungkan antara muka Ethernet fizikal kepadanya untuk membuat "rangkaian" baru untuk digunakan dalam mesin maya yang diuruskan dengan libvirt. Semasa menggunakan rangkaian lalai disediakan untuk kemudahan: ia menyediakan sambungan dengan menggunakan NAT. Apabila menggunakan rangkaian yang dijembatani sebagai yang kita konfigurasikan dalam tutorial ini, kami akan meningkatkan prestasi dan menjadikan mesin maya sebahagian daripada subnet yang sama.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Menguasai Gelung Skrip Bash
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Bekerja Dengan API Rest WooCommerce dengan Python
  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Fail Konfigurasi Linux: 30 teratas yang paling penting
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara menjalankan Raspberry Pi OS dalam mesin maya dengan…