手动实现openstack vlan 二层网络结构

环境准备:

1 linux虚拟机一台

2 安装openviswitch 与linux 网桥模块

3 安装kvm 或qemu

 

注意,如果不方便,可以登陆192.168.7.107克隆虚拟机ubuntu_1204_11.201然后修改好主机名和ip地址即可。

 

知识点准备:

 

linux网桥

openviswitch

linux veth设备工作原理

kvm虚拟化基础

 


所实现的网络拓扑图如下:

手动实现openstack vlan 二层网络结构_第1张图片

 

 

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话题中主讲。

你可能感兴趣的:(openstack)