网络选项2:自服务网络

网络选项2:自服务网络

controller 节点安装和配置网络组件。

安装组件

# yum install openstack-neutron openstack-neutron-ml2 \
  openstack-neutron-linuxbridge python-neutronclient ebtables ipset

配置服务组件

  • 编辑``/etc/neutron/neutron.conf`` 文件并完成如下动作:

    • [database] 部分,配置数据库访问:

      [database]
      ...
      connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron
      

      使用你选择的数据库密码替换 NEUTRON_DBPASS

    • 在``[DEFAULT]``部分,启用Layer 2 (ML2)插件模块,路由服务和重叠的IP地址:

      [DEFAULT]
      ...
      core_plugin = ml2
      service_plugins = router
      allow_overlapping_ips = True
      
    • 在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      用你在RabbitMQ中为``openstack``选择的密码替换 “RABBIT_PASS”。

    • 在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:

      [DEFAULT]
      ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      

      NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

      注解

      [keystone_authtoken] 中注释或者删除其他选项。

    • 在``[DEFAULT]``和``[nova]``部分,配置网络以能够反映计算网络拓扑变化:

      [DEFAULT]
      ...
      notify_nova_on_port_status_changes = True
      notify_nova_on_port_data_changes = True
      nova_url = http://controller:8774/v2
      
      [nova]
      ...
      auth_url = http://controller:35357
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      region_name = RegionOne
      project_name = service
      username = nova
      password = NOVA_PASS
      

      使用你在身份认证服务中选择的``nova`` 用户密码替换``NOVA_PASS``。

    • [oslo_concurrency] 部分,配置锁路径:

      [oslo_concurrency]
      ...
      lock_path = /var/lib/neutron/tmp
      
    • (可选的)为帮助排错,在 “[DEFAULT]”部分启用详细日志。

      [DEFAULT]
      ...
      verbose = True
      

配置 Modular Layer 2 (ML2) 插件

ML2插件使用Linux桥接机制为实例创建layer-2 (桥接/交换)虚拟网络基础设施。

  • 编辑``/etc/neutron/plugins/ml2/ml2_conf.ini`` 文件并完成下面的操作:

    • 在``[ml2]`` 部分,启用flat,VLAN和VXLAN网络:

      [ml2]
      ...
      type_drivers = flat,vlan,vxlan
      
    • 在``[ml2]`` 部分,启用VXLAN项目(私有)网络:

      [ml2]
      ...
      tenant_network_types = vxlan
      
    • 在``[ml2]`` 部分,启用Linux 桥接和layer-2 population mechanisms:

      [ml2]
      ...
      mechanism_drivers = linuxbridge,l2population
      

      警告

      在你配置ML2插件后,删除可能导致数据库不一致的``type_drivers``项的值。

      注解

      Linux桥接代理只支持VXLAN网络。

    • 在``[ml2]`` 部分,启用端口安全扩展驱动:

      [ml2]
      ...
      extension_drivers = port_security
      
    • 在``[ml2_type_flat]``部分,配置公共flat提供网络:

      [ml2_type_flat]
      ...
      flat_networks = public
      
    • 在``[ml2_type_vxlan]`` 部分,配置VXLAN网络标识范围与私有网络不同:

      [ml2_type_vxlan]
      ...
      vni_ranges = 1:1000
      
    • ``[securitygroup]``部分,启用 ipset 增加安全组的方便性:

      [securitygroup]
      ...
      enable_ipset = True
      

配置Linux 桥接代理

Linux桥接代理为实例创建包括私有网络的VXLAN隧道和处理安全组的layer-2(桥接/交换)虚拟网络设施。

  • 编辑``/etc/neutron/plugins/ml2/linuxbridge_agent.ini``文件并完成下面的操作:

    • 在``[linux_bridge]`` 部分,映射公共虚拟网络到公共物理网络接口:

      [linux_bridge]
      physical_interface_mappings = public:PUBLIC_INTERFACE_NAME
      

      将``PUBLIC_INTERFACE_NAME`` 替换为物理公共网络接口。

    • 在``[vxlan]``部分,启用VXLAN覆盖网络,配置处理覆盖网络和启用layer-2 的物理网络接口的IP地址。

      [vxlan]
      enable_vxlan = True
      local_ip = OVERLAY_INTERFACE_IP_ADDRESS
      l2_population = True
      

      Replace OVERLAY_INTERFACE_IP_ADDRESS with the IP address of the underlying physical network interface that handles overlay networks. The example architecture uses the management interface to tunnel traffic to the other nodes. Therefore, replace OVERLAY_INTERFACE_IP_ADDRESS with each node’s own management IP address.

    • 在``[agent]``部分,启用ARP欺骗防护:

      [agent]
      ...
      prevent_arp_spoofing = True
      
    • ``[securitygroup]``部分,启用安全组并配置 Linux 桥接 iptables 防火墙驱动:

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

配置layer-3代理

The Layer-3 (L3) agent provides routing and NAT services for virtual networks.

  • 编辑 /etc/neutron/l3_agent.ini 文件并完成下面操作:

    • 在``[DEFAULT]``部分,配置Linux桥接网络驱动和外部网络桥接:

      [DEFAULT]
      ...
      interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
      external_network_bridge =
      

      注解

      ``external_network_bridge``选项故意缺少值,这样就可以在一个代理上启用多个外部网络。

    • (可选的)为帮助排错,在 “[DEFAULT]”部分启用详细日志。

      [DEFAULT]
      ...
      verbose = True
      

配置DHCP代理

The DHCP agent provides DHCP services for virtual networks.

  • 编辑``/etc/neutron/dhcp_agent.ini``文件并完成下面的操作:

    • 在``[DEFAULT]``部分,配置Linux桥接网卡驱动,Dnsmasq DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络访问元数据:

      [DEFAULT]
      ...
      interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
      dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
      enable_isolated_metadata = True
      
    • (可选的)为帮助排错,在 “[DEFAULT]”部分启用详细日志。

      [DEFAULT]
      ...
      verbose = True
      

    叠加网络比如VXLAN包含额外的数据包头,这些数据包头增加了开销,减少了有效内容或用户数据的可用空间。在不了解虚拟网络架构的情况下,实例尝试用缺省的以太网 最大传输单元 (MTU) 1500字节发送数据包。 :term:`以太网 协议(IP)`网络使用`发现MTU 路径 (PMTUD)`机制检测端到端MTU,相应的调整包大小。但是,有些操作系统和网络阻塞、缺省PMTUD支持导致性能下降或者连接失败。

    理想情况,通过在包含您租户虚拟网络的物理网络上启用 jumbo frames ,您可以避免这些问题。Jumbo 祯支持MTU接近9000字节,取消虚拟网上VXLAN过量的影响。然而,许多网络设备缺少像jumbo祯的支持,OpenStack管理员经常不能控制网络基础设施。考虑到以后的并发症,您可以通过减少实例MTU来取消VXLAN过量的方法避免MTU问题。选择合适的MTU值经常需要测试,但是1450字节在大数环境下可以正常工作。您可以配置DHCP服务器也调整MTU值,DHCP服务器给实例分配IP地址。

    注解

    一些云镜像会忽略 DHCP MTU 选项,在这种情况下,您要配置其使用 metadata、一个脚本或其他合适方法。

    • [DEFAULT] 部分,启用 dnsmasq 配置文件:

      [DEFAULT]
      ...
      dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
      
    • 创建并编辑 /etc/neutron/dnsmasq-neutron.conf 文件启用DHCP MTU选项 (26) 并配置为 1450 bytes:

      dhcp-option-force=26,1450
      

返回 Networking controller node configuration

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.