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.
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:
Secara default, libvirt menciptakan jaringan bernama default. Rincian jaringan ini mungkin berbeda dengan distribusi; pada Ubuntu jaringan ini melibatkan:
virbr0
with an IP address of 192.0.2.1/24
virbr0
interface and hands out IP
addresses in the range 192.0.2.2-192.0.2.254
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
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
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.