1. 程式人生 > >CentOS 關閉virbr0

CentOS 關閉virbr0

安裝 Xen 或安裝 KVM 後都會發現網路接口裡多了一個叫做 virbr0 的虛擬網路介面:

# ifconfig 
... 
virbr0    Link encap:Ethernet  HWaddr d2:91:97:b8:3d:fc  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B) 
...


這是由於安裝和啟用了 libvirt 服務後生成的,libvirt 在伺服器(host)上生成一個 virtual network switch (virbr0),host 上所有的虛擬機器(guests)通過這個 virbr0 連起來。預設情況下 virbr0 使用的是 NAT 模式(採用 IP Masquerade),所以這種情況下 guest 通過 host 才能訪問外部。

大多數時候我們虛擬機器使用的是 bridge(網橋)直接連到局域網裡,所以這個 virbr0 不是必須的(注:不要搞混淆了,bridge 和這裡的 virbr0 bridge 是互不相干的)。如何關掉這個 virbr0 呢?先 net-destroy 然後 net-undefine,最後別忘了重啟 libvirtd 讓設定生效:
# virsh net-list 
Name                State      Autostart 
----------------------------------------- 
default              active    yes
# virsh net-destroy default 
Network default destroyed 
# virsh net-undefine default 
Network default has been undefined 
# service libvirtd restart