vyatta简介

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

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,gretenant_network_types = vxlanmechanism_drivers = openvswitch[ml2_type_flat]flat_networks = mng, ex[ml2_type_vlan][ml2_type_gre][ml2_type_vxlan]vni_ranges = 1:1000vxlan_group = 239.1.1.1[agent]tunnel_types = vxlan[ovs]bridge_mappings = mng:br-mng, ex:br-exenable_tunneling = Trueintegration_bridge = br-inttunnel_type = vxlanlocal_ip = 172.16.131.39[securitygroup]firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriverenable_security_group = Trueenable_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 nametenant_admin_name=admin# Tenant admin passwordtenant_admin_password=admin# Service VM Admin Tenant idtenant_id=b95785d5f65a456ab5081a321e420572# Keystone URL# Vyatta vRouter Image id. Image should be imported using Glance.p_w_picpath_id=4fb3b99b-5f0f-4fa3-bf0c-22c3b5bb7867# VM Flavor for vRouterflavor=2# vRouter Management network namemanagement_network_id=b092a081-d933-476f-9bd0-b359197d4899vrouter_credentials=vyatta:vyattanova_poll_interval=10nova_spawn_timeout=900vrouter_poll_interval=10vrouter_boot_timeout=900keystone_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 ServerAfter=syslog.target network.target[Service]Type=notifyUser=neutronExecStart=/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.logPrivateTmp=trueNotifyAccess=allKillMode=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 p_w_picpath-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 mngneutron 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:externalneutron subnet-create external 172.16.131.0/24 --allocation-pool start=172.16.131.50,end=172.16.131.80 –-disable-dhcp# default安全组开放							nova secgroup-add-rule default udp 1 65535 0.0.0.0/0nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0nova 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 nametenant_admin_name=admin     # keystone 管理员用户名# Tenant admin password    tenant_admin_password=admin # keystone 管理员用户密码# Service VM Admin Tenant idtenant_id=b95785d5f65a456ab5081a321e420572 # keystone 管理员租户id# Keystone URL# Vyatta vRouter Image id. Image should be imported using Glance.p_w_picpath_id=4fb3b99b-5f0f-4fa3-bf0c-22c3b5bb7867  # vyatta_vrouter镜像id# VM Flavor for vRouterflavor=2# vRouter Management network namemanagement_network_id=b092a081-d933-476f-9bd0-b359197d4899  # vrouter 管理网id,neutron net-list | awk '/management/ {print $2}'vrouter_credentials=vyatta:vyatta     # vrouter镜像的用户名、密码nova_poll_interval=10nova_spawn_timeout=900vrouter_poll_interval=10vrouter_boot_timeout=900keystone_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验证

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

创建一个内网

创建router,关联外网和内网

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

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

ssh验证floating ip

Trouble Shooting

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