建立namespace ,vxlan互相连接
三台机器建立的vm连到namespace中,
与其他机器的vm互通
让三台机器的三个vm看起来像在同一个网段
qemu启动的时候执行的脚本
qemu_br.sh:
###############
# !/bin/sh ip netns add zou ip link add zouveth0 type veth peer name zouveth1 ip link set zouveth1 netns zou brctl addbr br-zou brctl addif br-zou zouveth0 #这里192.168.139.251换成本机的ip,eth0换成本机带ip的网卡 ip link add vxlan-10 type vxlan id 10 group 239.1.1.1 local 192.168.139.251 dev eth0 brctl addif br-zou vxlan-10 ip link set dev zouveth0 up ip netns exec zou ip link set dev zouveth1 up ip netns exec zou ip link set dev lo up ip link set dev br-zou up ip link set dev vxlan-10 up ip netns exec zou brctl addbr br0 ip netns exec zou ip link set br0 up ip link set tap1 netns zou ip netns exec zou ip link set tap1 up ip netns exec zou brctl addif br0 tap1 #这里10.1.0.5/24 换成本机的想设置的namespace的ip ip netns exec zou ip addr add 10.1.0.5/24 dev br0 ip netns exec zou brctl addif br0 zouveth1
###############
删除脚本 delbr0.sh:
############
#!/bin/sh ip link set br-zou down ip link del br-zou ip link del vxlan-10 ip netns del zou
##############
启动vm
###################
/usr/libexec/qemu-kvm -kernel bzImage -drive file=hda.img,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nog raphic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:21,model=e1000,addr=08 -net tap,name=haha,ifname=tap1,script=qemu_br.sh,downscr ipt=delbr0.sh
################
查看设置的namespace
ip netns ip netns exec zou ip addr ip netns exec zou brctl show ip netns exec zou ifconfig
在启动的vm中:
给vm设置ip和网关
#############
#!/bin/sh
#换成本机的想设置的vm的ip
ip addr add 10.1.0.11/24 dev eth0
ip link set eth0 up
ip route add default via 10.1.0.5
################
多台机器设置后
比如
192.168.139.251---->namespace:10.1.0.5--->vm:10.1.0.11
192.168.139.252---->namespace:10.1.0.6--->vm:10.1.0.12
192.168.139.253---->namespace:10.1.0.7--->vm:10.1.0.13
从10.1.0.11 ping 10.1.0.12
走向为:
在192.168.139.251上:
vm:10.1.0.11--->tap1--->br0:10.1.0.5--->zouveth1--->namespace--->zouveth0-->br-zou-->vxlan-10-->eth0
在192.168.139.252上:
vm:10.1.0.12<---tap1<---br0:10.1.0.6<---zouveth1<---namespace<---zouveth0<--br-zou<--vxlan-10<--eth0