正文共:888 字 14 图,预估阅读时间:1 分钟

我们前面曾经做过一个小实验(VXLAN小实验:降本增效,将MV互联网专线伪装成数字电路),那就是将互联网专线伪装成数字电路。实现的方案就是将具有公网IP地址的设备作为VXLAN的VTEP,采用VXLAN头端复制的方式,实现两端互联IP的直接通信。

从上次的测试结果来看,传输带宽基本可以跑满,并且VXLAN封装对业务几乎无感知。但是受互联网传输的影响,实际链路稳定性可能比数字电路、裸纤等方式稍差,同时成本会有所降低,需要用户综合考虑。

那如果用户连互联网专线也没有呢?

那就只能再退一步了,我们不是还有IPsec吗?前面那么多IPsec的实验你当我是白做的吗?

接下来我们就用穿越NAT的组网来测试一下。

vxlan 头_vxlan 头

首先我们先完成IPsec的配置。配置参考(VPP配置指南:穿越NAT的IPsec VPN配置及性能测试)。

VPP72设备配置。

vppctl set int state eth2 up
vppctl set int ip address eth2 12.1.1.1/24
vppctl ip route add 23.1.1.0/24 via 12.1.1.2
vppctl ikev2 profile add vxlan
vppctl ikev2 profile set vxlan auth shared-key-mic string vxlan
vppctl ikev2 profile set vxlan id local fqdn vpp72
vppctl ikev2 profile set vxlan id remote ip4-addr 23.1.1.3
vppctl ikev2 profile set vxlan traffic-selector local ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vxlan traffic-selector remote ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vxlan responder eth2 23.1.1.3
vppctl ikev2 profile set vxlan ike-crypto-alg aes-cbc 256 ike-integ-alg sha1-96 ike-dh modp-2048
vppctl ikev2 profile set vxlan esp-crypto-alg aes-cbc 256 esp-integ-alg sha1-96 esp-dh ecp-256
vppctl ikev2 profile set vxlan sa-lifetime 3600 10 5 0

vxlan 头_linux_02

NAT设备配置。

#
interface GigabitEthernet2/0
 ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet3/0
 ip address 23.1.1.2 255.255.255.0
 nat outbound

VPP73设备配置。

vppctl set int state eth2 up
vppctl set int ip address eth2 23.1.1.3/24
vppctl ikev2 profile add vxlan
vppctl ikev2 profile set vxlan auth shared-key-mic string vxlan
vppctl ikev2 profile set vxlan id local ip4-addr 23.1.1.3
vppctl ikev2 profile set vxlan id remote fqdn vpp72
vppctl ikev2 profile set vxlan traffic-selector local ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vxlan traffic-selector remote ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0

vxlan 头_linux_03

在发起者和响应者网络可达且配好了IKEv2策略之后,配置VPP72发起协商。

vppctl ikev2 initiate sa-init vxlan

vxlan 头_服务器_04

然后我们在VPP72上配置隧道接口的IP地址。

vppctl set interface state ipip0 up
vppctl set interface ip address ipip0 130.1.1.1/24

vxlan 头_运维_05

同理,在VPP73上配置隧道接口的IP地址。

vppctl set interface state ipip0 up
vppctl set interface ip address ipip0 130.1.1.3/24

vxlan 头_服务器_06

接下来配置VXLAN,配置参考(VPP配置指南:配置VXLAN隧道)

VPP72设备配置。

vppctl create bridge-domain 11 learn 1 forward 1 uu-flood 1 flood 1 arp-term 0
vppctl create vxlan tunnel src 130.1.1.1 dst 130.1.1.3 vni 11 decap-next l2
vppctl set interface l2 bridge vxlan_tunnel0 11
vppctl loopback create mac 1a:2b:3c:4d:5e:6f
vppctl set interface l2 bridge loop0 11 bvi
vppctl set interface state loop0 up
vppctl set interface ip address loop0 13.1.1.1/24
vppctl set interface state eth1 up
vppctl set interface l2 bridge eth1 11

vxlan 头_网络_07

VPP73设备配置。

vppctl create bridge-domain 11 learn 1 forward 1 uu-flood 1 flood 1 arp-term 0
vppctl create vxlan tunnel src 130.1.1.3 dst 130.1.1.1 vni 11 decap-next l2
vppctl set interface l2 bridge vxlan_tunnel0 11
vppctl loopback create mac a1:b2:c3:d4:e5:f6
vppctl set interface l2 bridge loop0 11 bvi
vppctl set interface state loop0 up
vppctl set interface ip address loop0 13.1.1.3/24
vppctl set interface state eth1 up
vppctl set interface l2 bridge eth1 11

vxlan 头_服务器_08

在VPP73上查看IKEv2的SA信息。

vxlan 头_服务器_09

在VPP73上查看IPsec的所有信息。

vxlan 头_服务器_10

在VPP73上查看VXLAN隧道信息。

vxlan 头_linux_11

在VPP73上查看桥接域信息。

vxlan 头_linux_12

在主机上测试业务互通情况。

vxlan 头_网络_13

打个流测试一下。

vxlan 头_运维_14

2.93 Gbps,你感觉这个数据怎么样呢?

我感觉,竟然能测出来,那肯定还是有优化的空间的。