本篇文章介绍如何规划及创建linuxbridge+vlan网络,实现实例间及实例与外部的通讯。读者应对OpenStack及其网络服务Neutron有初步的了解。

1.规划网络

部署节点为一个controller节点(包含网络节点),两个compute节点。controller节点有3个网卡,分别为eth0(管理和API网络,CIDR为11.11.175.0/24)、eth1(租户网络,不设置IP)、eth2(外部网络,CIDR为10.10.10.0/24,不设置IP);compute节点有2个网卡,分别为eth0(管理和API网络,CIDR为11.11.175.0/24)、eth1(租户网络,不设置IP)。
这里写图片描述

Neutron ML2的Type Driver为vlan
Neutron ML2的Mechanism Driver为LinuxBridge
Neutron L2 Agent为LinuxBridge

这里写图片描述

2.创建虚拟网络

修改配置文件
/etc/neutron/plugins/ml2/ml2_conf.ini
这里写图片描述
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
注意:这里没有用到vxlan网络,enable_vxlan必须设置为False,否则会报错。
这里写图片描述
/etc/neutron/l3_agent.ini
这里写图片描述
/etc/neutron/dhcp_agent.ini
这里写图片描述

配置文件修改后,需要重启网络相关服务。

登陆到dashboard,可以查看网络服务信息。
controller节点启动了 neturon-metadata-agent、neutron-l3-agent、neutron-linuxbridge-agent、neutron-dhcp-agent
compute节点启动了 neutron-linuxbridge-agent
这里写图片描述

创建vlan100网络,物理网络为provider(和前面的配置一致,否则报错),网络地址为172.16.100.0/24
这里写图片描述

创建vlan101网络,物理网络为provider(和前面的配置一致,否则报错),网络地址为172.16.101.0/24
这里写图片描述

创建外部网络,物理网络为external(和前面的配置一致,否则报错),网络地址为10.10.10.0/24
这里写图片描述

创建路由器,把vlan网络和外部网络连通
这里写图片描述

我们的网络环境就准备好了。

3.测试网络

创建3个实例,2个选择vlan100网络,1个选择vlan101网络。
其中:test1、test3被调度到compute1节点,test2被调度到compute2节点。
这里写图片描述

查看网络拓扑。两个vlan网络均通过路由器连接到了外网,并且两个vlan网络也通过路由器连接。所以理论上test1、test2、test3能互通,并且也能连通外部网络。
这里写图片描述

为了保证外部能ping通以及能ssh登陆到实例,需要在安全组那加两条规则
这里写图片描述

下面测试网络的连通性:

同一VLAN:172.16.100.11 ping 172.16.100.12
这里写图片描述

不同VLAN:172.16.100.11 ping 172.16.101.11
这里写图片描述

外网:172.16.100.11 ping 10.10.10.100 (确保外网相同网段有一台机器)
这里写图片描述

目前的网络结构如下
这里写图片描述

查看各个节点上面的虚拟网络设备

controller节点
这里写图片描述
compute1节点
这里写图片描述
compute2节点
这里写图片描述

controller节点1个Router、2个DHCP分别在各自的namespace下
可以通过exec查看router细节
这里写图片描述

router的iptables
这里写图片描述

可以通过exec查看dhcp细节
这里写图片描述

再看下更详细的网络结构
controller节点
这里写图片描述

compute节点
这里写图片描述

如果需要从外部网络访问虚拟机,则要添加Floating IP
test1添加floating IP为10.10.10.11
这里写图片描述

测试网络连通:
外网:10.10.10.100 ping 10.10.10.11
这里写图片描述

外网:10.10.10.100 ssh登录到 10.10.10.11
这里写图片描述

查看controller节点router的变化
这里写图片描述

iptables
这里写图片描述

这样我们就创建并且测试了LinuxBridge+vlan网络,验证了网络的连通性。并对Neutron虚拟网络实现的细节进行了描述,希望对大家有帮助。

在Neutron的学习总结过程中,参考了网络上面的大量有价值的文档,在这里对无私分享的同学们表示衷心感谢!尤其是《每天5分钟学习OpenStack》,写的非常详细,本篇文档主要参考了里面的内容,在这里重点推荐:)。

Logo

更多推荐