Web举例:VXLAN在数据中心中的应用
VXLAN特性在数据中心组网中经常和双机热备、虚拟系统以及NAT等特性一起使用。
组网需求
如图1所示,在数据中心中,同一个VPC(Virtual Private Cloud)的VM(虚拟主机)部署在不同的X86服务器上。由支持VXLAN的二层设备负责接入和二层转发。FW承担VXLAN网关的角色,同时负责VPC之间以及VPC和实体网络之间的网络安全。不同的VPC之间需要做路由隔离,对外体现公网地址。为了组网的安全稳定,还需要FW的双机热备。
图1 VXLAN在数据中心中的应用
安全区域 |
接口 |
说明 |
---|---|---|
TRUST |
GigabitEther*** 1/0/0 |
对接VXLAN二层接入设备。 |
DMZ |
BDIF1 BDIF2 |
VPC的出口,内部是租户的虚拟主机。 |
Virtual-if0 |
虚拟系统到根墙的出口。对根墙来说等同BDIF。 |
|
GigabitEther*** 1/0/1 |
HRP心跳口。 |
|
UNTRUST |
GigabitEther*** 1/0/2 |
上行口,连接到Inter***或其他物理实体网络。 |
Virtual-if1 Virtual-if2 |
虚拟系统到根墙的入口。对虚拟系统来说等同GigabitEther*** 1/0/2 。 |
配置思路
-
两台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
GigabitEther*** 1/0/1
IP地址:172.16.0.1
安全区域:dmz
GigabitEther*** 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
- 单击“新建”,配置以下参数后单击“确定”。
- 选择“网络 > 接口”,配置接口的IP地址和安全域。
- 在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
8002
192.168.2.1/24
- 配置根墙的静态路由。
假设与下行接口互联的IP地址是10.0.10.1。
选择“网络 > 路由 > 静态路由”,单击“新建”,配置静态路由信息。
- 配置根墙的安全策略。
选择“策略 > 安全策略 > 安全策略”,单击“新建安全策略”,配置以下安全策略。
策略名称
作用
vxlan
允许VXLAN报文通过
ospf
允许OSPF报文通过
1_in
允许外网用户访问NAT后的内网虚拟机
2_in
1_out
允许内网用户使用NAT后的地址访问外网
2_out
- 配置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
|
从公网访问VPCb的NAT Server地址(2.2.2.2),成功。 |
FW_A
|
从VPCa中的VM(192.168.1.2)上访问VPCb的NAT Server地址(2.2.2.2),成功。 |
FW_A
|
关闭FW_A的GigabitEther*** 1/0/2后重复以上操作,成功。 |
FW_B上能查询到以上的会话表 |
配置脚本
FW_A |
FW_B |
---|---|
# hrp enable hrp interface GigabitEther*** 1/0/1 remote 172.16.0.2 hrp adjust ospf-cost enable hrp auto-sync config static-route hrp track interface GigabitEther*** 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 GigabitEther***1/0/0 ip address 10.0.10.11 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.10.10 active # interface GigabitEther*** 1/0/1 ip address 172.16.0.1 255.255.255.0 # interface GigabitEther*** 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 GigabitEther***1/0/0 # firewall zone untrust set priority 5 add interface GigabitEther*** 1/0/2 # firewall zone dmz set priority 50 add interface Virtual-if0 add interface GigabitEther*** 1/0/1 # ospf 1 import-route static area 0.0.0.0 ***work 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 GigabitEther*** 1/0/1 remote 172.16.0.1 hrp adjust ospf-cost enable hrp auto-sync config static-route hrp track interface GigabitEther*** 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 GigabitEther***1/0/0 ip address 10.0.10.12 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.10.10 standby # interface GigabitEther*** 1/0/1 ip address 172.16.0.2 255.255.255.0 # interface GigabitEther*** 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 GigabitEther***1/0/0 # firewall zone untrust set priority 5 add interface GigabitEther*** 1/0/2 # firewall zone dmz set priority 50 add interface Virtual-if0 add interface GigabitEther*** 1/0/1 # ospf 1 import-route static area 0.0.0.0 ***work 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 # |