neutron l3集成brocade vyatta

vyatta简介

vyatta是一款能将标准的x86硬件转换为企业级的路由器/防火墙,它是基于Debian的linux发行版。可以通过cli命令行接口或web图形化界面来配置,2012年11月份被博科通讯系统(Brocade)收购。(来自百度百科:vyatta简介)


Neutron vyatta配置

环境: OpenStack Juno(Centos 7.0 x86_64)

           all-in-one(single network interface)

pip install networking-brocade # Vyatta vRouter L3 OpenStack Plug-in下载

# 导入下面两个py文件,具体这两个干嘛用的,顾名思义。
/usr/lib/python2.7/site-packages/neutron/services/l3_router/brocade/vyatta/vrouter_neutron_plugin.py
/usr/lib/python2.7/site-packages/neutron/plugins/brocade/vyatta/vrouter_driver.py

[root@controller-39 ~(keystone_admin)]# cat /etc/neutron/neutron.conf # 更改service_plugins为vyatta l3-plugin
[DEFAULT]
service_plugins = neutron.services.l3_router.brocade.vyatta.vrouter_neutron_plugin.VyattaVRouterPlugin

[root@controller-39 ~(keystone_admin)]# cat /etc/neutron/plugin.ini # 编辑plugin.ini配置文件
[ml2]
type_drivers = flat,vxlan,vlan,gre
tenant_network_types = vxlan
mechanism_drivers = openvswitch

[ml2_type_flat]
flat_networks = mng, ex

[ml2_type_vlan]
[ml2_type_gre]

[ml2_type_vxlan]
vni_ranges = 1:1000
vxlan_group = 239.1.1.1

[agent]
tunnel_types = vxlan

[ovs]
bridge_mappings = mng:br-mng, ex:br-ex
enable_tunneling = True
integration_bridge = br-int
tunnel_type = vxlan
local_ip = 172.16.131.39

[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group = True
enable_ipset = True

[root@controller-39 ~(keystone_admin)]# ovs-vsctl add-br br-mng

[root@controller-39 ~(keystone_admin)]# ifconfig br-mng 1.1.0.1 netmask 255.255.255.0  # 给br-mng赋予一个ip

[root@controller-39 ~(keystone_admin)]# mkdir -p /etc/neutron/plugins/brocade/vyatta/  

[root@controller-39 ~(keystone_admin)]# cat /etc/neutron/plugins/brocade/vyatta/vrouter.ini  # 创建vrouter.ini配置文件,具体内容后面再修改
# Brocade Vyatta vRouter L3 Plugin Configuration File
[vrouter]
# Tenant admin name
tenant_admin_name=admin
# Tenant admin password
tenant_admin_password=admin
# Service VM Admin Tenant id
tenant_id=b95785d5f65a456ab5081a321e420572
# Keystone URL
# Vyatta vRouter Image id. Image should be imported using Glance.
image_id=4fb3b99b-5f0f-4fa3-bf0c-22c3b5bb7867
# VM Flavor for vRouter
flavor=2
# vRouter Management network name
management_network_id=b092a081-d933-476f-9bd0-b359197d4899

vrouter_credentials=vyatta:vyatta
nova_poll_interval=10
nova_spawn_timeout=900
vrouter_poll_interval=10
vrouter_boot_timeout=900
keystone_url=http://172.16.131.39:35357/v2.0

[root@controller-39 ~(keystone_admin)]# cat /usr/lib/systemd/system/neutron-server.service # 修改neutron-server启动脚本
[Unit]
Description=OpenStack Neutron Server
After=syslog.target network.target
[Service]
Type=notify
User=neutron
ExecStart=/usr/bin/neutron-server --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini --config-file /etc/neutron/plugins/brocade/vyatta/vrouter.ini  --log-file /var/log/neutron/server.log
PrivateTmp=true
NotifyAccess=all
KillMode=process
[Install]
WantedBy=multi-user.target

[root@controller-39 ~(keystone_admin)]# systemctl daemon-reload
[root@controller-39 ~(keystone_admin)]# systemctl restart neutron-server.service
[root@controller-39 ~(keystone_admin)]# systemctl restart neutron-dhcp-agent.service neutron-openvswitch-agent.service
[root@controller-39 ~(keystone_admin)]# systemctl stop neutron-l3-agent.service neutron-metadata-agent.service 
# 不需要l3、metadata服务,创建router的时候,l3-agent负责生成linux namespace
# 用了vyatta l3-plugin后,创建router的时候,会生成一个instance,路由什么的都在这个
# 内部实现,vyatta l3-plugin不支持metadata
[root@controller-39 ~(keystone_admin)]# systemctl disable neutron-l3-agent.service neutron-metadata-agent.service

# 上传vyatta_vrouter镜像
glance image-create --name vyatta --disk-format qcow2 --container-format bare --file /var/log/vyatta_vrouter.qcow2

# 创建vyatta_vrouter instance的管理网
neutron net-create management --provider:network_type flat --provider:physical_network mng

neutron subnet-create management 1.1.0.0/16 --no-gateway --allocation-poolstart=1.1.0.100,end=1.1.254.250

# 创建floationg ip网络
neutron net-create external --provider:network_type flat --provider:physical_network ex --router:external

neutron subnet-create external 172.16.131.0/24 --allocation-pool start=172.16.131.50,end=172.16.131.80 �C-disable-dhcp

# default安全组开放							
nova secgroup-add-rule default udp 1 65535 0.0.0.0/0
nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
	

[root@controller-39 ~(keystone_admin)]# cat /etc/neutron/plugins/brocade/vyatta/vrouter.ini  # 修改vrouter.ini配置文件,根据实际情况修改
# Brocade Vyatta vRouter L3 Plugin Configuration File
[vrouter]
# Tenant admin name
tenant_admin_name=admin     # keystone 管理员用户名
# Tenant admin password    
tenant_admin_password=admin # keystone 管理员用户密码
# Service VM Admin Tenant id
tenant_id=b95785d5f65a456ab5081a321e420572 # keystone 管理员租户id
# Keystone URL
# Vyatta vRouter Image id. Image should be imported using Glance.
image_id=4fb3b99b-5f0f-4fa3-bf0c-22c3b5bb7867  # vyatta_vrouter镜像id
# VM Flavor for vRouter
flavor=2
# vRouter Management network name
management_network_id=b092a081-d933-476f-9bd0-b359197d4899  # vrouter 管理网id,neutron net-list | awk '/management/ {print $2}'

vrouter_credentials=vyatta:vyatta     # vrouter镜像的用户名、密码
nova_poll_interval=10
nova_spawn_timeout=900
vrouter_poll_interval=10
vrouter_boot_timeout=900
keystone_url=

# 重启neutron相关服务
[root@controller-39 ~(keystone_admin)]# systemctl restart neutron-server.service
[root@controller-39 ~(keystone_admin)]# systemctl restart neutron-dhcp-agent.service neutron-openvswitch-agent.service


Neutron vyatta l3-plugin验证

创建个普通用户用于测试,这里不详细描述。


创建一个内网

wKioL1XpOkfQ_KNKAACpIgz4XDA586.jpg

wKiom1XpOCGwDt8DAAEX20VNx0A857.jpg

wKioL1XpOkbiMVRZAADAoY8ISww712.jpg


创建router,关联外网和内网

wKiom1XpO5_AIc3fAABa1BWU_tE328.jpg

wKiom1XpUf2BfUNTAABuEwnVUDk841.jpg


创建router的时候,会自动启动一台instance

wKioL1XpVCHDazMgAAFhJgAwDoU436.jpg


创建一个test instance,并绑定一个floating ip(记得开放安全组)

wKioL1XpVSbgdlmAAAEGFciAsrU108.jpg


wKioL1XpVVqjtNspAAGSeM6MuS8667.jpg


ssh验证floating ip

wKiom1XpVlKzrTuVAAMRkUJB8nA739.jpg


Trouble Shooting

如果碰到创建的instance无法ping外网网关,service neutron-openvswitch-agent restart



你可能感兴趣的:(neutron,l3)