设置 L2 和 L3 拓扑
图 1 展示了 L2 拓扑。

图 2 显示了交换机,如交换机 1、交换机2 和聚合交换机,您可以配置它们来设置拓扑。
要设置拓扑,请完成以下步骤:
在聚合交换机上,将 ge-0/0/1 和 ge-0/0/2 接口设置为中继全部模式。
在交换机 1 上,将 ge-0/0/2 接口设置为中继全部模式,并启用 ge-0/0/10 和 ge-0/0/20 接口上的 vlan 标记。
在交换机 2 上,将 ge-0/0/1 接口设置为中继全部模式,并启用 ge-0/0/30 和 ge-0/0/20 接口上的 vlan 标记。

在 图 2中,SRX 既充当路由器,也用作防火墙。
设置物理拓扑
要设置物理拓扑:
- 要使用参考瞻博网络拓扑配置该插件,请使用表1中列出的命令:
瞻博网络 Neutron 插件包括CLI工具,支持管理员定义网络拓扑。插件取决于拓扑定义以执行网络编排。
表 1:CLI工具 名字
描述
jnpr_device
添加设备详细信息
jnpr_nic_mapping
将物理网络别名(ex: Physnet1)之间的映射添加到节点上的相应以太网接口。
jnpr_switchport_mapping
将计算节点或网络节点及其以太网接口之间的映射添加到交换机及其所连接的端口。
jnpr_device_port
定义为每个租户 VLAN 创建路由 VLAN 接口 (RVI) 的路由器或防火墙的下行链路端口。
jnpr_allocate_device
将路由器和防火墙定义为租户或租户组。
jnpr_vrrp_pool
定义 VRRP 池。
- 要向拓扑中添加设备,请对 OpenStack Neutron 控制器运行以下命令:
注意:
对添加到拓扑的设备上使用具有超级用户类权限的登录凭证。
admin@controller:~$ jnpr_device add -d device-name or device-IP-address -c {switch, router, firewall} -u username -p device-password
- 要添加并查看添加到拓扑中的交换机,请对 OpenStack Neutron 控制器运行以下命令:
注意:
在物理拓扑中,交换机 1 和交换机 2 连接到虚拟机管理程序。
- 要向拓扑中添加交换机 1,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_device add -d switch1.juniper.net -c switch -u root -p root-password +---------------------+---------------+-------------+---------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +---------------------+---------------+-------------+---------+-------+------+---------------+ | switch1.juniper.net | 10.107.52.136 | switch | qfx3500 | root | 0 | 0 | +---------------------+---------------+-------------+---------+-------+------+---------------+
- 要向拓扑中添加交换机 2,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_device add -d switch2.juniper.net -c switch -u root -p password +---------------------+---------------+-------------+---------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +---------------------+---------------+-------------+---------+-------+------+---------------+ | switch2.juniper.net | 10.107.52.137 | switch | qfx3500 | root | 0 | 0 | +---------------------+---------------+-------------+---------+-------+------+---------------+
- 要查看添加到拓扑中的交换机,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_device list +---------------------+---------------+-------------+---------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +---------------------+---------------+-------------+---------+-------+------+---------------+ | switch1.juniper.net | 10.107.52.136 | switch | qfx3500 | root | 0 | 0 | | switch2.juniper.net | 10.107.52.137 | switch | qfx3500 | root | 0 | 0 | +---------------------+---------------+-------------+---------+-------+------+---------------+
- 要向拓扑中添加交换机 1,请对 OpenStack Neutron 控制器运行以下命令:
- 要向拓扑中添加路由器,在 OpenStack Neutron控制器上运行以下命令:
注意:
在图 2中所示的物理拓扑中,SRX 既充当路由器,也用作防火墙。
admin@controller:~$ jnpr_device add -d srx.juniper.net -c router -u root -p password +-----------------+---------------+-------------+-------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +-----------------+---------------+-------------+-------+-------+------+---------------+ | srx.juniper.net | 10.107.23.103 | router | srx | root | 0 | 0 | +-----------------+---------------+-------------+-------+-------+------+---------------+
- 要向拓扑中添加防火墙,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_device add -d srx.juniper.net -c firewall -u root -p password +-----------------+---------------+-------------+-------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +-----------------+---------------+-------------+-------+-------+------+---------------+ | srx.juniper.net | 10.107.23.103 | firewall | srx | root | 0 | 0 | | srx.juniper.net | 10.107.23.103 | router | srx | root | 0 | 0 | +-----------------+---------------+-------------+-------+-------+------+---------------+
- 定义NIC管理程序与物理网络映射的策略。
在 OpenStack 中,您通常会在网络节点以及所有计算节点上的文件中使用以下配置,定义物理网络及其关联网桥
/etc/neutron/plugins/ml2/ml2_conf.ini
的别名:[ovs] tenant_network_type = vlan bridge_mappings = physnet1:br-eth1
因为可以将桥接 br-eth1 连接到任何物理接口,所以您必须输入以下命令,在桥接 br-eth1 和物理接口之间添加链路到拓扑:
admin@controller:~$ jnpr_nic-mapping add -H compute-hostname -b physical-network-alias-name -n NIC
- 要向拓扑中添加虚拟机管理程序 1,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_nic_mapping add -H hypervisor1.juniper.net -b physnet1 -n eth1
添加映射
+---------------+------------+------+ | Host | BridgeName | Nic | +---------------+------------+------+ | 10.107.65.101 | physnet1 | eth1 | +---------------+------------+------+
- 要向拓扑中添加虚拟机管理程序 2,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_nic_mapping add -H hypervisor2.juniper.net -b physnet1 -n eth1
添加映射
+---------------+------------+------+ | Host | BridgeName | Nic | +---------------+------------+------+ | 10.107.65.102 | physnet1 | eth1 | +---------------+------------+------+
- 要向拓扑中添加虚拟机管理程序 5,请对 OpenStack Neutron 控制器运行以下命令:
注意:
虚拟机管理程序 5 映射到 physnet1 -- br-eth1 -- eth2。
admin@controller:~$ jnpr_nic_mapping add -H hypervisor5.juniper.net -b physnet1 -n eth2
添加映射
+---------------+------------+------+ | Host | BridgeName | Nic | +---------------+------------+------+ | 10.107.65.105 | physnet1 | eth2 | +---------------+------------+------+
- 要向拓扑中添加虚拟机管理程序 6,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_nic_mapping add -H hypervisor6.juniper.net -b physnet1 -n eth1
添加映射
+---------------+------------+------+ | Host | BridgeName | Nic | +---------------+------------+------+ | 10.107.65.106 | physnet1 | eth1 | +---------------+------------+------+
- 要向拓扑中添加网络节点,在 OpenStack Neutron控制器上运行以下命令:
admin@controller:~$ jnpr_nic_mapping add -H networknode.juniper.net -b physnet1 -n eth1
添加映射
+---------------+------------+------+ | Host | BridgeName | Nic | +---------------+------------+------+ | 10.108.10.100 | physnet1 | eth1 | +---------------+------------+------+
- 要查看所有映射,在 OpenStack Neutron控制器上运行以下命令:
admin@controller:~$ jnpr_nic_mapping list +---------------+------------+------+ | Host | BridgeName | Nic | +---------------+------------+------+ | 10.107.65.101 | physnet1 | eth1 | | 10.107.65.102 | physnet1 | eth1 | | 10.107.65.105 | physnet1 | eth2 | | 10.107.65.106 | physnet1 | eth1 | | 10.108.10.100 | physnet1 | eth1 | +---------------+------------+------+
- 要向拓扑中添加虚拟机管理程序 1,请对 OpenStack Neutron 控制器运行以下命令:
- 定义从计算到交换机的映射。
要配置交换机上的 VLAN,ML2 插件必须确定虚拟机管理程序通过其以太网接口连接的交换机端口。此插件提供了 physnet1 -- br-eth1 -- eth1 -- Switch-x:ge-0/0/x 之间的拓扑的整体视图。可通过启用 LLDP 或者使用以下命令进行配置来确定此信息:
admin@controller:~$ jnpr_switchport_mapping add -H compute-hostname -n NIC -s switch-IP-address or switch-name -p switch-port
- 要将虚拟机管理程序 1 映射到交换机 1,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_switchport_mapping add -H hypervisor1.juniper.net -n eth1 -s switch1.juniper.net -p ge/0/0/10 Database updated with switch port binding +---------------+------+---------------+-----------+-----------+ | Host | Nic | Switch | Port | Aggregate | +---------------+------+---------------+-----------+-----------+ | 10.107.65.101 | eth1 | 10.107.52.136 | ge/0/0/10 | | +---------------+------+---------------+-----------+-----------+
- 要将虚拟机管理程序 2 映射到交换机 1,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_switchport_mapping add -H hypervisor2.juniper.net -n eth1 -s switch1.juniper.net -p ge/0/0/20 Database updated with switch port binding +---------------+------+---------------+-----------+-----------+ | Host | Nic | Switch | Port | Aggregate | +---------------+------+---------------+-----------+-----------+ | 10.107.65.102 | eth1 | 10.107.52.136 | ge/0/0/20 | | +---------------+------+---------------+-----------+-----------+
- 要将虚拟机管理程序 5 映射到交换机 2,请对 OpenStack Neutron控制器运行以下命令:
admin@controller:~$ jnpr_switchport_mapping add -H hypervisor5.juniper.net -n eth2 -s switch2.juniper.net -p ge/0/0/20
数据库使用交换机端口绑定更新
+---------------+------+---------------+-----------+-----------+ | Host | Nic | Switch | Port | Aggregate | +---------------+------+---------------+-----------+-----------+ | 10.107.65.105 | eth2 | 10.107.52.137 | ge/0/0/20 | | +---------------+------+---------------+-----------+-----------+
- 要将虚拟机管理程序 6 映射到交换机 2,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_switchport_mapping add -H hypervisor6.juniper.net -n eth1 -s switch2.juniper.net -p ge/0/0/30
数据库使用交换机端口绑定更新
+---------------+------+---------------+-----------+-----------+ | Host | Nic | Switch | Port | Aggregate | +---------------+------+---------------+-----------+-----------+ | 10.107.65.106 | eth1 | 10.107.52.137 | ge/0/0/30 | | +---------------+------+---------------+-----------+-----------+
- 要将网络节点映射到交换机 2,在 OpenStack Neutron控制器上运行以下命令:
admin@controller:~$ jnpr_switchport_mapping add -H networknode.juniper.net -n eth1 -s switch2.juniper.net -p ge/0/0/5
数据库使用交换机端口绑定更新
+---------------+------+---------------+----------+-----------+ | Host | Nic | Switch | Port | Aggregate | +---------------+------+---------------+----------+-----------+ | 10.108.10.100 | eth1 | 10.107.52.137 | ge/0/0/5 | | +---------------+------+---------------+----------+-----------+
- 要列出所有映射,请运行以下命令在 OpenStack Neutron 控制器上:
admin@controller:~$ jnpr_switchport_mapping list +---------------+------+---------------+-----------+-----------+ | Host | Nic | Switch | Port | Aggregate | +---------------+------+---------------+-----------+-----------+ | 10.107.65.101 | eth1 | 10.107.52.136 | ge/0/0/10 | | | 10.107.65.102 | eth1 | 10.107.52.136 | ge/0/0/20 | | | 10.107.65.105 | eth2 | 10.107.52.137 | ge/0/0/20 | | | 10.107.65.106 | eth1 | 10.107.52.137 | ge/0/0/30 | | | 10.108.10.100 | eth1 | 10.107.52.137 | ge/0/0/5 | | +---------------+------+---------------+-----------+-----------+
- 要将虚拟机管理程序 1 映射到交换机 1,请对 OpenStack Neutron 控制器运行以下命令:
- 定义插件在 SRX 设备(路由器)上创建 RVI 的下行链路端口。
您可使用聚合交换机所连接的 SRX 设备的端口更新插件数据库,命令如下:
admin@controller:~$ jnpr_device_port -d SRX-device-name or switch-IP -p srx-port-name -t port_type: Downlink
- 要向拓扑中添加 SRX设备的下行链路端口,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_device_port add -d srx.juniper.net -p ge-0/0/10 -t Downlink +---------------+-----------+---------------+ | Device | port | port_type | +---------------+-----------+---------------+ | 10.107.23.103 | ge-0/0/10 | downlink_port | +---------------+-----------+---------------+
- 要向拓扑中添加 SRX设备的下行链路端口,请对 OpenStack Neutron 控制器运行以下命令:
- 创建 VRRP 池
L3 插件通过 VRRP 支持高可用性。要使用此功能,您必须创建 VRRP 池,并使用 命令将池中的一台设备分配给
jnpr_allocate_device
租户。完成以下步骤以创建 VRRP 池:
- 要添加路由器,在 OpenStack Neutron控制器上运行以下命令:
admin@controller:~$ jnpr_device add -d 10.20.30.40 -c router -u root -p password +-----------------+---------------+-------------+-------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +-----------------+---------------+-------------+-------+-------+------+---------------+ | 10.20.30.40 | 10.20.30.40 | router | srx | root | 0 | 0 | +-----------------+---------------+-------------+-------+-------+------+---------------+ admin@controller:~$ jnpr_device add -d 10.20.30.41 -c router -u root -p password +-----------------+---------------+-------------+-------+-------+------+---------------+ | Device | Ip | Device Type | model | login | vtep | vrrp_priority | +-----------------+---------------+-------------+-------+-------+------+---------------+ | 10.20.30.41 | 10.20.30.41 | router | srx | root | 0 | 0 | +-----------------+---------------+-------------+-------+-------+------+---------------+
- 要创建 VRRP 池,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_vrrp_pool add –d 10.20.30.40 –p tenant1_pool1 +----------------------------------+-----------------+ | Device ID | VRRP POOL NAME | +----------------------------------+-----------------+ | 10.20.30.40 | tenant1_pool1 | +----------------------------------+-----------------+ admin@controller:~$ jnpr_vrrp_pool add –d 10.20.30.41 –p tenant1_pool1 +----------------------------------+-----------------+ | Device ID | VRRP POOL NAME | +----------------------------------+-----------------+ | 10.20.30.41 | tenant1_pool1 | +----------------------------------+-----------------+ admin@controller:~$ jnpr_vrrp_pool list +---------------+----------------+ | Device ID | VRRP POOL NAME | +---------------+----------------+ | 10.20.30.40 | tenant1_pool1 | | 10.20.30.41 | tenant1_pool1 | +---------------+----------------+
- 要定义设备到租户或一组租户的分配,请对 OpenStack Neutron 控制器运行以下命令:
admin@controller:~$ jnpr_allocate_device add –t tenant-project_id -d device-hostname-or-IP-address admin@controller:~$ jnpr_allocate_device add –t e0d6c7d2e25943c1b4460a4f471c033f –d 10.20.30.40 +----------------------------------+---------------+ | Tenant ID | Device IP | +----------------------------------+---------------+ | e0d6c7d2e25943c1b4460a4f471c033f | 10.20.30.40 | +----------------------------------+---------------+
要使用设备作为多个租户的默认设备,请对 OpenStack Neutron 控制器运行以下命令,将租户设置为 默认。例如:
admin@controller:~$ jnpr_allocate_device add –t default –d 10.20.30.40 +----------------------------------+---------------+ | Tenant ID | Device IP | +----------------------------------+---------------+ | default | 10.20.30.40 | +----------------------------------+---------------+
- 要添加路由器,在 OpenStack Neutron控制器上运行以下命令: