如果想在KVM 的虚拟机上使用桥接网络需要在宿主机上添加一个网桥设备, 然后让新建虚拟机就可以使用网桥来和外网通讯, 在外部看来没有任何区别
简单画个草图:
Internet
|
route
|
bridge0 -binding- eth0 (bridge设备是虚拟出来的绑定在 eth0 上)
|
vnet(N)----- (这个就是虚拟机用来通讯的虚拟网卡,他用来连接 虚拟机的eth(N) )
注意 :最好用console 连接 或者本地操作,因为bind网卡的时候可能会与主机失联
一 . 命令的方式创建
# brctl addbr br0//新建网桥 br0
# brctl addif br0 eth0//为网桥 br0 添加一块网口,是网口因为 添加网桥后就相当于虚拟了一个桥设备,但是这个设备没有网口我们需要为他添加一块网卡作为它的网口
# ifconfig br0 10.10.10.254/16//为这个网桥设备指定IP,用来管理机器
# ifconfig eth0 0.0.0.0//因为eth0 已经是个网口了 就不需要IP了
添加路由表
【kvm|kvm 与 bridge】# route add default gw 10.10.10.1 dev br0// 10.10.10.1 是我的网络网关,走 br0 设备
# echo 1 >/proc/sys/net/ipv4/ip_forward// 启用转发功能
# sysctl -p
# brctl show//以下信息是虚拟机启动后 vnet0 已经在 br0 下工作了
bridge name bridge id STP enabled interfaces
br0 8000.00e04c05d9c1 yes eth0
vnet0
此时再创建虚拟机就可以看到可以使用网桥设备作为网卡了
二 . 或者用编辑配置文件的方式, 文件修改完之后重启网络服务 , 执行 sysctl -p
eth0 文件改为:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:e0:4c:05:d9:c1
ONBOOT=yes
BRIDGE=br0//桥设备为 br0
#IPADDR=10.10.250.250
#NETMASK=155.155.0.0
#GATEWAY=10.10.10.1
-------------------------------
新建 br0 配置文件
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0//设备名 br0
ONBOOT=yes
TYPE=Bridge//设备类型为Bridge
BOOTPROTO=none
IPADDR=10.10.250.1
NETMASK=255.255.0.0
GATEWAY=10.10.10.1
STP=on
DELAY=0
------------------------------
在 sysctl.conf 文件添加这些条目,或者编辑这些条目为下面的值
/etc/sysctl.conf
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
------------------------------
转载于:https://blog.51cto.com/supertaodi/1627236