KVM 桥接 (三)

这里是 KVM 桥接时需要的注意事项.

桥接的方法请看这里 .

注意事项 :

1) 开始桥接之前 , 务必关闭 network-manager , wicd 等网络配置软件 . wicd 会自动的帮您添加路由 , 导致所有的网络流量不是从 br0 (手动添加的网桥) 出去而是从 eth0 出去 .

2) 建议使用图形管理界面 virt-manager 来管理 KVM , 该软件会自动帮您添加删除 KVM 虚拟机的接口 . 简单的说 , 您只需要新建一个 br0 , 将 eth0 桥接到 br0 上 , 为 br0 配上 ip 地址即可 . 原先我们手动添加的 tap0 , tap1 等接口就由 viet-manager 的 vnet0 , vnet1 等替代了. 当您开启一个 KVM 时 , virt-manager 就会自动的添加一个 vnet0 , 如此进行下去 ; 而当您关闭一个 KVM 时 , virt-manager 会自动的回收相应的 vnet 接口 , 而不需要您手动的去删除 .

3) 在桥接的过程中会发生这样一个现象 :
我的母鸡能够 ping 通任何的 host 以及对应的 ip ;但是我的 KVM 不能 ping 通 host 却能 ping 通对应的 ip , 很多人的第一反应是 : DNS 设置有问题 !
但是实际过程中 /etc/resolv.conf 文件的 nameserver 显然是没有问题的 .

问题的产生是由于 kernel 的以太网过滤被 (ebtables, bridge-nf, arptables) 开启了, 所有的网络流量被过滤了 , 最简单的方法就是禁用掉 /proc/sys/net/bridge 下面的选项
# cd /proc/sys/net/bridge
# ls
bridge-nf-call-arptables  bridge-nf-call-iptables
bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged
# for f in bridge-nf-*; do echo 0 > $f; done