ASA 版本从9.4(1) 开始支持VXLAN 了,这里举例两个模式配置案例,有需要配置的可以参考如下配置
透明VXLAN 网关示例• GigabitEthernet 0/0 上的外部接口用作VTEP 源接口,并且连接到第3 层网络。
• GigabitEthernet 0/1.100 上的insidevm100 VLAN 子接口连接到VM3 所在的10.10.10.0/24 网络。
当VM3 与VM1(未显示;两者均有10.10.10.0/24 IP 地址)通信时,ASA 使用VXLAN 标签6000。
• GigabitEthernet 0/1.200 上的insidevm200 VLAN 子接口连接到VM2 所在的10.20.20.0/24 网络。
当VM2 与VM4(未显示;两者均有10.20.20.0/24 IP 地址)通信时,ASA 使用VXLAN 标签8000。
• GigabitEthernet 0/2 上的insidepc 接口连接到若干PC 所在的10.30.30.0/24 网络。当这些PC 与属于同一网络(全部具有10.30.30.0/24 IP 地址)的远程VTEP 后面的VM/PC(未显示)进行通信时,ASA 使用VXLAN 标签10000。
ASA 配置
firewall transparent
vxlan port 8427
!
interface gigabitethernet0/0
nve-only
nameif outside
ip address 192.168.1.30 255.255.255.0
no shutdown
nve 1
encapsulation vxlan
source-interface outside
!
interface vni1
segment-id 6000
nameif vxlan6000
security-level 0
bridge-group 1
vtep-nve 1
mcast-group 235.0.0.100
!
interface vni2
segment-id 8000
nameif vxlan8000
security-level 0
bridge-group 2
vtep-nve 1
mcast-group 236.0.0.100
!
interface vni3
segment-id 10000
nameif vxlan10000
security-level 0
bridge-group 3
vtep-nve 1
mcast-group 236.0.0.100
!
interface gigabitethernet0/1.100
nameif insidevm100
security-level 100
bridge-group 1
!
interface gigabitethernet0/1.200
nameif insidevm200
security-level 100
bridge-group 2
!
interface gigabitethernet0/2
nameif insidepc
security-level 100
bridge-group 3
!
interface bvi 1
ip address 10.10.10.1 255.255.255.0
!
interface bvi 2
ip address 10.20.20.1 255.255.255.0
!
interface bvi 3
ip address 10.30.30.1 255.255.255.0
备注
• 对于VNI 接口vni1 和vni2,在封装过程中将删除内部VLAN 标签。
• VNI 接口vni2 和vni3 通过组播共享封装的ARP 的同一组播IP 地址。系统允许此共享。
• ASA 基于以上BVI 和网桥组配置,将VXLAN 流量桥接到非VXLAN 支持的接口。对于每个扩展的第2 层网段(10.10.10.0/24、10.20.20.0/24 和10.30.30.0/24),ASA 充当网桥。
• 在网桥组中允许有多个VNI 或多个常规接口(VLAN 或仅物理接口)。VXLAN 网段ID 与VLAN ID(或物理接口)之间的转发或关联,由目标MAC 地址和连接到目标的接口决定。
• VTEP 源接口是透明防火墙模式下,由接口配置中的nve-only 所指示的第3 层接口。VTEP 源接口不是BVI 接口或管理接口,但是具有IP 地址,并且使用路由表。
VXLAN 路由示例示例的说明:
• VM1 (10.10.10.10) 通过虚拟服务器1 进行托管,VM2 (10.20.20.20) 通过虚拟服务器2 进行托管。
• VM1 的默认网关是ASA,它不与虚拟服务器1 位于同一个pod 上,但VM1 对此并不知晓。VM1 只知道其默认网关IP 地址为10.10.10.1。同样,VM2 只知道其默认网关IP 地址为10.20.20.1。
• 虚拟服务器1 和2 上的支持VTEP 的虚拟机监控程序可以通过相同的子网或第3 层网络(未显示;不管是哪种情况,ASA 和虚拟服务器的上行链路都具有不同的网络地址)与ASA 进行通信。
• VM1 的数据包将通过其虚拟机监控程序的VTEP 进行封装,并通过VXLAN 隧道发送到其默认网关。
• 当VM1 将数据包发送到VM2 时,对数据包而言,它将通过默认网关10.10.10.1 进行发送。虚拟服务器1 知道10.10.10.1 不是本地地址,因此VTEP 会通过VXLAN 封装数据包,并将其发送至ASA 的VTEP。
• 在ASA 上,对数据包进行解封。在解封过程中可获取VXLAN 网段ID。然后,ASA 会基于VXLAN 网段ID 将内部帧重新注入到对应的VNI 接口(vni1)。ASA 然后会执行路由查找,并通过VNI 接口vni2 发送内部数据包所有通过vni2 的传出数据包都使用VXLAN 网段8000 进行封装,并通过VTEP 发送到外部。
• 最终,虚拟服务器2 的VTEP 接收封装的数据包、解封数据包,并将数据包转发到VM2。
ASA 配置
interface gigabitethernet0/0
nameif outside
ip address 192.168.1.30 255.255.255.0
no shutdown
!
nve 1
encapsulation vxlan
source-interface outside
default-mcast-group 235.0.0.100
!
interface vni1
segment-id 6000
nameif vxlan6000
security-level 0
vtep-nve 1
ip address 10.20.20.1 255.255.255.0
!
interface vni2
segment-id 8000
nameif vxlan8000
security-level 0
vtep-nve 1
ip address 10.10.10.1 255.255.255.0