date: 2021-02-21title: openstack配置私有网络vxlan #标题
tags: vxlan #标签
categories: openstack # 分类
在 openstack queens部署 文章中,我们配置neutron网络服务时,只是配置了公共网络,也就是二层网络,那么这样呢,在私有云环境中还可以,但公有云环境肯定是采用私有网络vxlan这种方式的,这篇博文就讲述如何基于openstack queens部署这篇文章部署的环境,让网络服务支持三层vxlan网络。
vxlan网络概念
vxlan中有如下几个关键点:
- VXLAN类似于VLAN技术,解决的是二层通信的问题;
- VXLAN ID用VNI表示,VNI字段包含24位,因此VXLAN的最大数量为2的24次方,约合16M个
- VXLAN是一种overlay技术,在云计算环境中体现的逻辑网络,它是基于物理网络之上的网络,在用户看来,物理网络是透明的。
- VXLAN采用的是隧道技术,只要隧道端到端之间是连通的,隧道两端的网络节点就可以属于同一个二层网络,并可以通信。
配置控制节点neutron服务
注:在进行如下操作前,必需保证你参考openstack queens部署这篇文章,将环境部署了出来,包括创建好了网络。另外,每个节点都需要新增一块网卡,用于各个节点间建立隧道网络。
在进行接下来的操作前,为了方便起见,最好删除所有虚机实例。
# 修改 /etc/neutron/neutron.conf 配置文件
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router
openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips true
# 修改 /etc/neutron/plugins/ml2/ml2_conf.ini 配置文件
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan,vxlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers linuxbridge,l2population
# VXLAN ID用VNI表示,VNI字段包含24位,因此VXLAN的最大数量为2的24次方,约合1600多万个
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:100000
# 修改 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 配置文件
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan true
# 172.16.20.2是新增网卡的IP地址
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip 172.16.20.2
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
# 配置三层代理,修改 /etc/neutron/l3_agent.ini 配置文件
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT interface_driver linuxbridge
# 重启服务
$ systemctl restart neutron-server \
neutron-linuxbridge-agent neutron-dhcp-agent \
neutron-metadata-agent
# 启动l3代理并加入开机自启
$ systemctl enable neutron-l3-agent && systemctl start neutron-l3-agent
配置计算节点neutron服务
相比较控制节点,计算节点要做的修改就很少了。如下操作需要在所有计算节点执行。
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan true
# 请将下面 local_ip 的值换为每个计算节点的实际IP
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip 172.16.20.3
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
# 重启服务
$ systemctl restart neutron-linuxbridge-agent
修改dashboard配置以便开启三层路由
$ vim /etc/openstack-dashboard/local_settings
# 将
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': False,
...
# 改为
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
...
# 重启dashboard
$ systemctl restart httpd
dashboard测试vxlan网络
配置外部网络
这里将openstack queens部署 文章中创建的网络改为外部网络,如下:
创建路由
创建网络
关联外部网络
将上面创建的内部网络,关联到外部网络,以便可以与外网通信。
成功后,即可看到如下网络拓扑:
创建实例进行验证
实例绑定浮动IP
至此,即可通过绑定的浮动IP和此实例通信。
如下: