Web举例:VXLAN在数据中心中的应用
VXLAN特性在数据中心组网中经常和双机热备、虚拟系统以及NAT等特性一起使用。
组网需求
如图1所示,在数据中心中,同一个VPC(Virtual Private Cloud)的VM(虚拟主机)部署在不同的X86服务器上。由支持VXLAN的二层设备负责接入和二层转发。FW承担VXLAN网关的角色,同时负责VPC之间以及VPC和实体网络之间的网络安全。不同的VPC之间需要做路由隔离,对外体现公网地址。为了组网的安全稳定,还需要FW的双机热备。
图1VXLAN在数据中心中的应用
安全区域 | 接口 | 说明 |
---|---|---|
TRUST | GigabitEthernet 1/0/0 | 对接VXLAN二层接入设备。 |
DMZ | BDIF1 BDIF2 | VPC的出口,内部是租户的虚拟主机。 |
DMZ | Virtual-if0 | 虚拟系统到根墙的出口。对根墙来说等同BDIF。 |
DMZ | GigabitEthernet 1/0/1 | HRP心跳口。 |
UNTRUST | GigabitEthernet 1/0/2 | 上行口,连接到Internet或其他物理实体网络。 |
UNTRUST | Virtual-if1 Virtual-if2 | 虚拟系统到根墙的入口。对虚拟系统来说等同GigabitEthernet 1/0/2 。 |
[表1安全区域规划] |
配置思路
-
两台FW搭建上行连接三层设备(配置OSPF)下行连接二层设备的主备备份(配置VRRP备份组)的组网。
在上行接口所在安全域和Local域之间的安全策略中允许OSPF服务通过,否则OSPF邻居无法建立。
-
创建BD、VNI(VXLAN ID)和VXLAN隧道,NVE接口源地址使用VRRP备份组的虚拟IP地址。
在VRRP备份组接口所在安全域和Local域之间安全策略中允许VXLAN服务通过,否则VXLAN隧道无法建立。
-
创建虚拟系统,将VNI和公网地址关联到虚拟系统。BDIF会随关联的VNI一起被分配给虚拟系统。
-
创建BDIF(VXLAN接口)并配置IP地址。
需要在备机上手动配置IP地址,主备机BDIF的IP地址必须一致。建议把MAC地址也配置成一样,否则在切换时会有短暂的中断过程。
-
在虚拟系统内配置NAT SERVER,将内网地址映射成公网地址。
-
在虚拟系统和根墙之间配置静态路由。
-
配置VM的网关为BDIF的IP地址。
-
配置VXLAN二层接入设备,VXLAN隧道的对端IP地址是FW的VRRP备份组的虚拟IP地址。VXLAN二层接入设备之间也需要建立VXLAN隧道。
操作步骤
-
在FW_A上完成网络基本配置。
-
选择"网络 > 接口",配置接口的IP地址和安全域。
接口 配置 GE1/0/0 IP地址:10.0.10.11 安全区域:trust GigabitEthernet 1/0/1 IP地址:172.16.0.1 安全区域:dmz GigabitEthernet 1/0/2 IP地址:10.1.0.1 安全区域:untrust Virtual-if0 安全区域:dmz -
选择"网络 > 路由 > OSPF",配置OSPF。
-
单击"新建",配置以下参数后单击"确定"。
| 类型 | OSPF v2 |
进程ID 1 -
单击"高级",单击"区域配置",单击"新建",配置以下参数后单击"确定"。
| 区域 | 0 |
| 网段IP | 10.1.0.0 |
| 正/反掩码 | 0.0.0.255 |认证模式 NONE -
单击"路由引入"单击"新建",配置以下参数后单击"确定"。
路由类型 Direct
-
-
-
在FW_A上配置双机热备功能。
选择"系统 > 高可靠性 > 双机热备",单击"配置",完成以下配置后单击"确定"。
-
完成FW_B的配置,建立双机热备状态。
FW_B和上述FW_A的配置基本相同,不同之处在于:
- FW_B各接口的IP地址与FW_A各接口的IP地址不相同。
- FW_B的OSPF路由发布的网段与FW_A不相同。
- FW_B的双机热备"运行角色"设置为"备用"。
-
配置BD、VNI(VXLAN ID)和VXLAN隧道。 BD在配置VXLAN隧道时会自动创建。
-
选择"网络 > VXLAN"。
-
勾选"VXLAN功能"和"隧道监控"对应的"启用",配置"源IP地址"为双机热备虚拟IP地址,单击"应用"。
-
单击"新建",配置VXLAN隧道信息。
VXLAN ID 隧道目的IP 8001 10.0.20.10 10.0.20.11 8002 10.0.20.10 10.0.20.11
-
-
创建虚拟系统,分配VNI和公网地址。
-
选择"系统 > 虚拟系统 > 虚拟系统",启用"虚拟系统",单击"确定"。
-
单击"新建",创建虚拟系统并分配资源。
基础配置 VXLAN分配 公网IP分配 名称:vsys1 已绑定VXLAN:vni 8001 独占以下IP地址范围:1.1.1.1-1.1.1.100 名称:vsys2 已绑定VXLAN:vni 8002 独占以下IP地址范围:2.2.2.1-2.2.2.100
-
-
创建BDIF(VXLAN接口),并配置IP地址和安全区域。
- 如果先配置BDIF的IP地址再创建虚拟系统,BDIF的IP地址将被清除。
- 设备会根据"VXLAN ID"自动联想出"虚拟系统",请勿手动配置"虚拟系统"。
选择"网络 > 接口",单击"新建",新建BDIF。
接口名称 类型 安全区域 VXLAN ID IP地址 1 VXLAN接口 DMZ 8001 192.168.1.1/24 2 VXLAN接口 DMZ 8002 192.168.2.1/24 -
配置根墙的静态路由。
假设与下行接口互联的IP地址是10.0.10.1。
选择"网络 > 路由 > 静态路由",单击"新建",配置静态路由信息。
-
配置根墙的安全策略。
选择"策略 > 安全策略 > 安全策略",单击"新建安全策略",配置以下安全策略。
策略名称 作用 vxlan 允许VXLAN报文通过 ospf 允许OSPF报文通过 1_in 允许外网用户访问NAT后的内网虚拟机 2_in 允许外网用户访问NAT后的内网虚拟机 1_out 允许内网用户使用NAT后的地址访问外网 2_out 允许内网用户使用NAT后的地址访问外网 -
配置vsys1。
-
切换虚拟系统为vsys1。
-
配置NAT Server。
选择"策略 > NAT策略 > 服务器映射",单击"新建",完成以下配置后单击"确定"。
-
在"网络 > 接口"中配置接口安全区域。
-
在"网络 > 路由 > 静态路由"中配置到外网的静态路由。
-
在"策略 > 安全策略 > 安全策略"中配置安全策略。
策略名称 作用 in 允许外部网络访问虚拟主机 out 允许虚拟主机访问外部网络
-
-
配置vsys2。
vsys2和上述vsys1的配置基本相同,不同之处在于:
- NAT SERVER的公私网地址不同。
- 安全策略中使用的源\目的地址不同。
-
配置FW_B的VXLAN接口IP和静态路由。
配置与FW_A一致,只是因为双机热备并不会备份该配置,所以需要手动执行。
-
可选: 将FW_A和FW_B上的BDIF的MAC地址配置成一样。
- 登录FW_B,选择"网络 > 接口",单击BDIF接口对应的"编辑",在"高级"中查询的BDIF的MAC地址。
- 在FW_A的同样位置,配置BDIF的MAC地址。
结果验证
操作 | 查询到的会话表 |
---|---|
从VPCa中的VM(192.168.1.2)上访问公网地址,成功。 | FW_A * Untrust和Local之间的OSPF会话表 * Trust和Local之间的VXLAN会话表 * 根墙中,DMZ到Untrust,源地址为1.1.1.2的会话表 * VSYS1中,DMZ到Untrust,源地址为192.168.1.2的会话表 |
从公网访问VPCb的NAT Server地址(2.2.2.2),成功。 | FW_A * Untrust和Local之间的OSPF会话表 * Trust和Local之间的VXLAN会话表 * 根墙中,Untrust到DMZ,目的地址为2.2.2.2的会话表 * VSYS2中,Untrust到DMZ,目的地址为192.168.2.2的会话表 |
从VPCa中的VM(192.168.1.2)上访问VPCb的NAT Server地址(2.2.2.2),成功。 | FW_A * Trust和Local之间的VXLAN会话表 * VSYS1中,DMZ到Untrust,源地址为1.1.1.2,目的地址为2.2.2.2的会话表 * VSYS2中,Untrust到DMZ,源地址为1.1.1.2,目的地址为192.168.2.2的会话表 |
关闭FW_A的GigabitEthernet 1/0/2后重复以上操作,成功。 | FW_B上能查询到以上的会话表 |
配置脚本
FW_A | FW_B |
---|---|
# hrp enable hrp interface GigabitEthernet 1/0/1 remote 172.16.0.2 hrp adjust ospf-cost enable hrp auto-sync config static-route hrp track interface GigabitEthernet 1/0/2 # bridge-domain 1 vxlan vni 8001 # bridge-domain 2 vxlan vni 8002 # vsys enable # vsys name vsys1 1 assign global-ip 1.1.1.1 1.1.1.100 exclusive assign vni 8001 # vsys name vsys2 2 assign global-ip 2.2.2.1 2.2.2.100 exclusive assign vni 8002 # interface GigabitEthernet1/0/0 ip address 10.0.10.11 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.10.10 active # interface GigabitEthernet 1/0/1 ip address 172.16.0.1 255.255.255.0 # interface GigabitEthernet 1/0/2 ip address 10.1.0.1 255.255.255.0 # interface Vbdif1 ip address 192.168.1.1 255.255.255.0 # interface Vbdif2 ip address 192.168.2.1 255.255.255.0 # interface Nve1 source 10.0.10.10 vxlan statistic enable vni 8001 head-end peer-list 10.0.20.10 10.0.20.11 vni 8002 head-end peer-list 10.0.20.10 10.0.20.11 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/0 # firewall zone untrust set priority 5 add interface GigabitEthernet 1/0/2 # firewall zone dmz set priority 50 add interface Virtual-if0 add interface GigabitEthernet 1/0/1 # ospf 1 import-route static area 0.0.0.0 network 10.1.0.0 0.0.0.255 # ip route-static 1.1.1.0 255.255.255.0 vpn-instance vsys1 ip route-static 2.2.2.0 255.255.255.0 vpn-instance vsys2 ip route-static 10.0.20.0 255.255.255.0 10.0.10.1 # security-policy rule name vxlan source-zone local source-zone trust destination-zone local destination-zone trust destination-address 10.0.0.0 mask 255.255.0.0 service vxlan action permit rule name ospf source-zone local source-zone untrust destination-zone local destination-zone untrust destination-address 10.0.0.0 mask 255.0.0.0 service ospf action permit rule name 1_in source-zone untrust destination-zone dmz destination-address 1.1.1.0 mask 255.255.255.0 action permit rule name 2_in source-zone untrust destination-zone dmz destination-address 2.2.2.0 mask 255.255.255.0 action permit rule name 1_out source-zone dmz destination-zone untrust source-address 1.1.1.0 mask 255.255.255.0 action permit rule name 2_out source-zone dmz destination-zone untrust source-address 2.2.2.0 mask 255.255.255.0 action permit # switch vsys vsys1 # interface Vbdif1 ip address 192.168.1.1 255.255.255.0 # firewall zone untrust set priority 5 add interface Virtual-if1 # firewall zone dmz set priority 50 add interface Vbdif1 # security-policy rule name in source-zone untrust destination-zone dmz destination-address 192.168.1.0 mask 255.255.255.0 action permit rule name out source-zone dmz destination-zone untrust source-address 192.168.1.0 mask 255.255.255.0 action permit # ip route-static 0.0.0.0 0.0.0.0 public # nat server to1 0 global 1.1.1.2 inside 192.168.1.2 unr-route # switch vsys vsys2 # interface Vbdif2 ip address 192.168.2.1 255.255.255.0 # firewall zone untrust set priority 5 add interface Virtual-if2 # firewall zone dmz set priority 50 add interface Vbdif2 # security-policy rule name in source-zone untrust destination-zone dmz destination-address 192.168.2.0 mask 255.255.255.0 action permit rule name out source-zone dmz destination-zone untrust source-address 192.168.2.0 mask 255.255.255.0 action permit # ip route-static 0.0.0.0 0.0.0.0 public # nat server to2 1 global 2.2.2.2 inside 192.168.2.2 unr-route # |
# hrp enable hrp interface GigabitEthernet 1/0/1 remote 172.16.0.1 hrp adjust ospf-cost enable hrp auto-sync config static-route hrp track interface GigabitEthernet 1/0/2 # bridge-domain 1 vxlan vni 8001 # bridge-domain 2 vxlan vni 8002 # vsys enable # vsys name vsys1 1 assign global-ip 1.1.1.1 1.1.1.100 exclusive assign vni 8001 # vsys name vsys2 2 assign global-ip 2.2.2.1 2.2.2.100 exclusive assign vni 8002 # interface GigabitEthernet1/0/0 ip address 10.0.10.12 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.10.10 standby # interface GigabitEthernet 1/0/1 ip address 172.16.0.2 255.255.255.0 # interface GigabitEthernet 1/0/2 ip address 10.2.0.1 255.255.255.0 # interface Vbdif1 ip address 192.168.1.1 255.255.255.0 # interface Vbdif2 ip address 192.168.2.1 255.255.255.0 # interface Nve1 source 10.0.10.10 vxlan statistic enable vni 8001 head-end peer-list 10.0.20.10 10.0.20.11 vni 8002 head-end peer-list 10.0.20.10 10.0.20.11 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/0 # firewall zone untrust set priority 5 add interface GigabitEthernet 1/0/2 # firewall zone dmz set priority 50 add interface Virtual-if0 add interface GigabitEthernet 1/0/1 # ospf 1 import-route static area 0.0.0.0 network 10.2.0.0 0.0.0.255 # ip route-static 1.1.1.0 255.255.255.0 vpn-instance vsys1 ip route-static 2.2.2.0 255.255.255.0 vpn-instance vsys2 ip route-static 10.0.20.0 255.255.255.0 10.0.10.1 # security-policy rule name vxlan source-zone local source-zone trust destination-zone local destination-zone trust destination-address 10.0.0.0 mask 255.255.0.0 service vxlan action permit rule name ospf source-zone local source-zone untrust destination-zone local destination-zone untrust destination-address 10.0.0.0 mask 255.0.0.0 service ospf action permit rule name 1_in source-zone untrust destination-zone dmz destination-address 1.1.1.0 mask 255.255.255.0 action permit rule name 2_in source-zone untrust destination-zone dmz destination-address 2.2.2.0 mask 255.255.255.0 action permit rule name 1_out source-zone dmz destination-zone untrust source-address 1.1.1.0 mask 255.255.255.0 action permit rule name 2_out source-zone dmz destination-zone untrust source-address 2.2.2.0 mask 255.255.255.0 action permit # switch vsys vsys1 # interface Vbdif1 ip address 192.168.1.1 255.255.255.0 # firewall zone untrust set priority 5 add interface Virtual-if1 # firewall zone dmz set priority 50 add interface Vbdif1 # security-policy rule name in source-zone untrust destination-zone dmz destination-address 192.168.1.0 mask 255.255.255.0 action permit rule name out source-zone dmz destination-zone untrust source-address 192.168.1.0 mask 255.255.255.0 action permit # ip route-static 0.0.0.0 0.0.0.0 public # nat server to1 0 global 1.1.1.2 inside 192.168.1.2 unr-route # switch vsys vsys2 # interface Vbdif2 ip address 192.168.2.1 255.255.255.0 # firewall zone untrust set priority 5 add interface Virtual-if2 # firewall zone dmz set priority 50 add interface Vbdif2 # security-policy rule name in source-zone untrust destination-zone dmz destination-address 192.168.2.0 mask 255.255.255.0 action permit rule name out source-zone dmz destination-zone untrust source-address 192.168.2.0 mask 255.255.255.0 action permit # ip route-static 0.0.0.0 0.0.0.0 public # nat server to2 1 global 2.2.2.2 inside 192.168.2.2 unr-route # |