环境准备:
1 linux虚拟机一台
2 安装openviswitch 与linux 网桥模块
3 安装kvm 或qemu
注意,如果不方便,可以登陆192.168.7.107克隆虚拟机ubuntu_1204_11.201然后修改好主机名和ip地址即可。
知识点准备:
linux网桥
openviswitch
linux veth设备工作原理
kvm虚拟化基础
所实现的网络拓扑图如下:
1 基础网络部分
建议网桥
ovs-vsctl add-br test-guest-br
ovs-vsctl add-br test-py-br
添加veth设备连接两个网桥
ip link add guest-point type veth peer name phy-point
ip link set phy-point promisc on
为phy网桥添加truck网卡
ovs-vsctl add-port test-py-br eth1
将veth phy网卡添加进phy网桥
ovs-vsctl add-port test-py-br phy-point
将veth guest网卡添加进guest网桥
ovs-vsctl add-port test-guest-br guest-point
添加外部vlan转内部vlan流表
添加内部vlan转外部vlan流表
启动所有网络设备
ip link set test-guest-br up
ip link set test-py-br up
ip link set guest-point up
ip link set phy-point up
ip link set eth1 up
2 虚拟机网络部分
建立虚拟机linux网桥
brctl addbr vm-br
建议虚拟机veth设备
ip link add vm-qvb type veth peer name vm-qvo
添加qvb到虚拟机网桥
brctl addif vm-br vm-qvb
添加qvo到基础网络部分的虚拟机网桥
ovs-vsctl add-port test-guest-br vm-qvo tag=121
添加虚拟机网卡
ip tuntap add vm-vnet mode tap
将虚拟机网卡添加进虚拟机网桥
brctl addif vm-br vm-vnet
启动所有网络设备
ip link set vm-br up
ip link set vm-qvb up
ip link set vm-qvo up
ip link set vm-vnet up
3 启动虚拟机
qemu-system-x86_64 -m 1024 -drivefile=cirros-0.3.2-x86_64-disk.img,cache=writeback,if=virtio,boot=on -bootorder=c -net nic,model=virtio -net tap,ifname=vm-vnet,script=no,downscript=no-nographic -vnc :0
为虚拟机分配ip地址
sudo ifconfig eth0 192.168.121.199/24
为虚拟机添加路由
sudo route add -net 0.0.0.0 gw 192.168.121.254 deveth0
一切OK,ping一下试试。
其他:如果openstack内外vlan id一致时,不需要转vlan,如何转换数据包的vlan id等内容放以后的openviswitch openflow话题中主讲。