28
2025
03
16:48:37

VPP配置指南:穿越NAT的IPsec VPN配置及性能测试

在实验中,我们使用两台VPP进行组网,配置发起方使用IKEv2协议来发起协商,进而实现自动协商生成SA。

对等体之间通过IKE协议自动协商生成SA,并由IKE协议维护该SA。在正常情况下,IKEv2只需要进行两次交互,使用4条消息就可以完成一个IKEv2 SA和一对IPsec SA的协商建立,即第一阶段的交互生成IKEv2 SA,第二阶段的交互生成IPsec SA。

通过上次的配置,我们发现VPP的IKEv2自动协商方式没有注明支持野蛮模式和NAT穿越,但是强调了设备角色区分发起者和响应者。往之前的NAT穿越模型中套一下,就是发起者不需要具备静态IP地址,只要响应者有静态IP地址即可建立对等体连接。

在穿越NAT的场景下,没有静态IP地址的一端无法使用IP地址来标识自己,但是可以通过FQDN(Fully Qualified Domain Name,完全合格域名)RFC822来进行标识。

今天,我们来简单配置一下通过FQDN和IKEv2来建立IPsec隧道。

首先按照上图所示的组网图完成相关设备的接口IP地址配置。

VPP72设备配置。






vppctl set int state eth1 upvppctl set int ip address eth1 11.1.1.1/24vppctl set int state eth2 upvppctl set int ip address eth2 12.1.1.1/24vppctl ip route add 13.1.1.0/24 via 12.1.1.2

NAT设备配置。








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

VPP73设备配置。





vppctl set int state eth1 upvppctl set int ip address eth1 22.1.1.1/24vppctl set int state eth2 upvppctl set int ip address eth2 13.1.1.3/24

然后我们继续在VPP72上配置IKEv2 profile,配置认证鉴权方式为PSK,密码设置为vppnat。



vppctl ikev2 profile add vppnatvppctl ikev2 profile set vppnat auth shared-key-mic string vppnat

跟上次不同,我们将VPP72本端的ID信息配置为FQDN名称vpp73,对端的ID信息仍配置为IP地址13.1.1.3。



vppctl ikev2 profile set vppnat id local fqdn vpp72vppctl ikev2 profile set vppnat id remote ip4-addr 13.1.1.3

剩下的配置相同,配置流量选择器、响应者的IP地址、IKEv2和IPsec协商的密码套件等信息。







vppctl ikev2 profile set vppnat traffic-selector local ip-range 11.1.1.1 - 11.1.1.254 port-range 0 - 65535 protocol 0vppctl ikev2 profile set vppnat traffic-selector remote ip-range 22.1.1.1 - 22.1.1.254 port-range 0 - 65535 protocol 0vppctl ikev2 profile set vppnat responder eth2 13.1.1.3vppctl ikev2 profile set vppnat ike-crypto-alg aes-cbc 256  ike-integ-alg sha1-96  ike-dh modp-2048vppctl ikev2 profile set vppnat esp-crypto-alg aes-cbc 256  esp-integ-alg sha1-96  esp-dh ecp-256vppctl ikev2 profile set vppnat sa-lifetime 3600 10 5 0

对应的,我们配置一下响应者VPP73的相关配置。







vppctl ikev2 profile add vppnatvppctl ikev2 profile set vppnat auth shared-key-mic string vppnatvppctl ikev2 profile set vppnat id local ip4-addr 13.1.1.3vppctl ikev2 profile set vppnat id remote fqdn vpp72vppctl ikev2 profile set vppnat traffic-selector local ip-range 22.1.1.1 - 22.1.1.254 port-range 0 - 65535 protocol 0vppctl ikev2 profile set vppnat traffic-selector remote ip-range 11.1.1.1 - 11.1.1.254 port-range 0 - 65535 protocol 0

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


vppctl ikev2 initiate sa-init vppnat

然后我们查看接口,发现多了一个ipip0的接口,这就是IPsec的隧道接口,说明IKEv2一阶段已经协商成功。

然后我们在VPP72上为该接口配置IP地址,并添加去往对端22.1.1.0/24的路由,指定下一跳出口为ipip0接口。




vppctl set interface state ipip0 upvppctl set interface ip address ipip0 130.1.1.1/24vppctl ip route add 22.1.1.0/24 via 130.1.1.3 ipip0

同理,在VPP73上配置IP地址和路由信息。




vppctl set interface state ipip0 upvppctl set interface ip address ipip0 130.1.1.3/24vppctl ip route add 11.1.1.0/24 via 130.1.1.1 ipip0

然后我们直接测试一下两端主机的互通情况。

抓包查看,我们可以看到报文交互的大概过程。

查看前面两个报文,我们可以发现,报文还是UDP端口500,报文内容是在交换密钥和安全策略信息。

然后接下来的报文交互就变成了UDP端口4500,说明检测到了中间存在NAT设备,并继续完成了IPsec SA的建立。

并且可以发现外层报文头是两端隧道接口的IP地址,属于GRE over IPsec类型。

在VPP73上查看IKEv2的SA信息。

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

最后测试一下VPP的IPsec转发性能。

转发性能大概是1.69 Gbps,好像比VSR的771 Mbps要好一点。

相比于单台VPP转发的3.45 Gbps,大概有一半的性能损耗吧。



推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://zblog.hqyman.cn/post/9934.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: