Disable libvirt networking

Disable libvirt networking

Kebanyakan pengerahan OpenStack menggunakan libvirt <http://libvirt.org> __ toolkit untuk berinteraksi dengan hypervisor. Secara khusus, OpenStack Compute menggunakan libvirt untuk tugas-tugas seperti boot dan mengakhiri instance mesin virtual. Ketika OpenStack Compute boot instance baru, libvirt memberikan OpenStack dengan VIF terkait dengan instance, dan OpenStack Compute plug VIF ke dalam perangkat virtual yang disediakan oleh OpenStack Network. The libvirt toolkit itu sendiri tidak menyediakan fungsionalitas jaringan dalam pengerahan OpenStack.

Namun, Libvirt mampu memberikan layanan jaringan untuk mesin virtual yang mengelola. Secara khusus, libvirt dapat dikonfigurasi untuk menyediakan fungsionalitas jaringan mirip dengan penyederhanaan, versi single-node dari OpenStack. User dapat menggunakan libvirt untuk membuat jaringan layer 2 yang mirip dengan jaringan OpenStack Networking ini, terbatas pada node tunggal.

libvirt network implementation

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 memanfaatkannya. Secara khusus, libvirt menggunakan:

  • Linux menjembatani untuk menerapkan jaringan layer 2

  • dnsmasq 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 bervariasi sesuai dengan distribusi; pada distribusi Ubuntu jaringan ini ada:

  • Linux bridge bernama virbr0 dengan alamat IP dari 192.168.122.1/24

  • Proses dnsmasq yang mendengarkan interface virbr0 dan membagi alamat IP dalam rentang 192.168.122.2-192.168.122.254

  • Seperangkat aturan iptables

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

Pada Ubuntu, iptables ruleset yang libvirt menciptakan mencakup aturan berikut

*nat
-A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.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.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.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 berhasil 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 meninggalkan 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. Kalau Anda tidak perlu untuk memulai mesin virtual menggunakan libvirt langsung, Anda dapat dengan aman menonaktifkan jaringan libvirt ini.

Untuk melihat jaringan libvirt yang telah didefinisikan dan keadaannya:

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

Untuk menonaktifkan jaringan libvirt bernama default:

# virsh net-destroy default

Menonaktifkan jaringan akan menghapus jembatan virbr0, mengakhiri proses dnsmasq, dan menghapus aturan iptable.

Untuk mencegah jaringan dari awal secara otomatis saat boot:

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

Untuk mengaktifkan jaringan setelah 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.