Cara Menggunakan Rangkaian Berjalan dengan Libvirt dan KVM
- 2095
- 384
- Jerome Quitzon
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
Keperluan perisian dan konvensyen yang digunakan
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…