Nonaktifkan libvirt networking

Nonaktifkan libvirt networking

Most OpenStack deployments use the libvirt toolkit for interacting with the hypervisor. Specifically, OpenStack Compute uses libvirt for tasks such as booting and terminating virtual machine instances. When OpenStack Compute boots a new instance, libvirt provides OpenStack with the VIF associated with the instance, and OpenStack Compute plugs the VIF into a virtual device provided by OpenStack Network. The libvirt toolkit itself does not provide any networking functionality in OpenStack deployments.

Namun, libvirt mampu memberikan layanan jaringan untuk mesin virtual yang mengelolanya.. Secara khusus, libvirt dapat dikonfigurasi untuk menyediakan fungsionalitas jaringan mirip dengan jaringan sederhana, versi single-node dari OpenStack. Pengguna dapat menggunakan libvirt untuk membuat jaringan layer 2 yang mirip dengan jaringan OpenStack Networking’s ini, terbatas pada node tunggal.

Implementasi jaringan libvirt

Secara default, fungsi jaringan libvirt ini diaktifkan, dan libvirt menciptakan jaringan saat booting. Untuk mengimplementasikan jaringan ini, libvirt memanfaatkan beberapa teknologi yang sama dimana OpenStack Network menggunakannya. Secara khusus, libvirt menggunakan:

  • Linux bridging untuk implementasi jaringan layer 2
  • dnsmasq untuk menyediakan alamat IP untuk mesin virtual menggunakan DHCP
  • iptables untuk melaksanakan SNAT sehingga instance dapat terhubung ke internet publik, dan untuk memastikan bahwa mesin virtual diizinkan untuk berkomunikasi dengan dnsmasq menggunakan DHCP

Secara default, libvirt menciptakan jaringan bernama default. Rincian jaringan ini mungkin berbeda dengan distribusi; pada Ubuntu jaringan ini melibatkan:

  • a Linux bridge named virbr0 with an IP address of 192.0.2.1/24
  • a dnsmasq process that listens on the virbr0 interface and hands out IP addresses in the range 192.0.2.2-192.0.2.254
  • Seperangkat aturan iptables

Ketika libvirt boot mesin virtual, ia menempatkan VIF mesin di jembatan virbr0 kecuali secara eksplisit mengatakan tidak.

Pada Ubuntu, iptables ruleset dimana libvirt menciptakan, ruleset mencakup aturan berikut

*nat
-A POSTROUTING -s 192.0.2.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.0.2.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.0.2.0/24 ! -d 192.0.2.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.0.2.0/24 ! -d 192.0.2.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.0.2.0/24 ! -d 192.0.2.0/24 -j MASQUERADE
*mangle
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
*filter
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.0.2.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.0.2.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT

Berikut ini menunjukkan proses dnsmasq dimana libvirt mengelola seperti yang muncul dalam output ps:

2881 ?        S      0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf

Cara menonaktifkan jaringan libvirt

Meskipun OpenStack tidak memanfaatkan jaringan libvirt ini, jaringan ini tidak akan mengganggu perilaku OpenStack, dan dapat dengan aman ditinggalkan diaktifkan. Namun, jaringan libvirt bisa menjadi gangguan ketika debugging masalah jaringan OpenStack. Karena Libvirt menciptakan jembatan tambahan, proses dnsmasq, dan iptables ruleset, ini mungkin mengalihkan perhatian operator terlibat dalam pemecahan masalah jaringan. Kecuali Anda perlu untuk memulai mesin virtual menggunakan libvirt langsung, Anda dapat dengan aman menonaktifkan jaringan libvirt ini.

Untuk melihat jaringan libvirt yang didefinisikan dan keadaan mereka:

# virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

Untuk menonaktifkan jaringan libvirt bernama default:

# virsh net-destroy default

Penonaktifkan jaringan akan menghapus jembatan virbr0, akhiri proses dnsmasq, dan hapus aturan iptable.

Untuk mencegah jaringan dari permulaan secara otomatis saat boot:

# virsh net-autostart --network default --disable

Untuk mengaktifkan jaringan setelah jaringan telah dinonaktifkan:

# virsh net-start default
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.