VPP配置指南:基于IKEv2的IPsec VPN

a7798ed48c1f94153221272e05d15606.gif

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

现在,我们已经能够熟练地部署VPP了不用半小时,最快8分钟即可在CentOS上完成VPP的部署,而且已经能够满足基本的转发要求,那今天我们就来介绍一下VPP如何配置IPsec VPN。

前面,我们已经讲了几十篇和VPN相关的文章了,有需要的小伙伴请参考合集VPN合集

简单回顾一下,IPsec(IP Security,IP安全)是IETF制定的三层(网络层)隧道加密协议,也是一种三层VPN(Virtual Private Network,虚拟专用网络),它可以为互联网上传输的数据提供了高质量的、基于密码学的安全保证。

IPsec通过在特定通信方之间(例如两个安全网关之间)建立“通道”,来保护通信方之间传输的用户数据,该通道通常称为IPsec隧道。

在IPsec隧道中提供安全服务的是安全联盟(Security Association,SA),安全联盟是一个单一的“连接”,为其承载的流量提供安全服务。为了保护两个主机之间或两个安全网关之间的典型双向通信,一般需要两个安全联盟(每个方向一个)。

安全联盟通常有两种建立方式:手工方式和IKE自动协商方式

手工方式即手工配置IPsec SA的所有信息。该方式的配置比较复杂,主要适用于需要安全通信的对等体数量较少,或小型静态的组网环境中。

IKE自动协商方式即对等体之间通过IKE协议自动协商生成SA,并由IKE协议维护该SA。与手工方式不同的是,IKE自动协商方式支持野蛮模式和NAT穿越,即建立SA的对等体中不需要所有对等体均具备静态IP地址,只要其中一方有静态IP地址,即可建立对等体连接。该方式适用于中、大型的动态网络环境,或没有静态IP地址,需要穿越NAT建立SA的场景。

在VPP中,主要使用IKEv2协议来实现自动协商生成SA。并且自17.04版本开始,发起方已经支持使用IKEv2来发起协商。

在正常情况下,IKEv2只需要进行两次交互,使用4条消息就可以完成一个IKEv2 SA和一对IPsec SA的协商建立,即第一阶段的交互生成IKEv2 SA,第二阶段的交互生成IPsec SA。

VPP配置指南:基于IKEv2的IPsec VPN_第1张图片

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

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

VPP配置指南:基于IKEv2的IPsec VPN_第2张图片

我们首先完成两台VPP的接口IP地址配置,保证两台VPP可以互通。

VPP72配置。

vppctl set int state eth1 up
vppctl set int ip address eth1 11.1.1.1/24
vppctl set int state eth2 up
vppctl set int ip address eth2 12.1.1.1/24

VPP配置指南:基于IKEv2的IPsec VPN_第3张图片

VPP73配置。

vppctl set int state eth1 up
vppctl set int ip address eth1 22.1.1.1/24
vppctl set int state eth2 up
vppctl set int ip address eth2 12.1.1.2/24

VPP配置指南:基于IKEv2的IPsec VPN_第4张图片

然后我们配置IKEv2 profile。

vppctl ikev2 profile add vppipsec

配置认证鉴权方式为PSK,密码设置为vppipsec。

vppctl ikev2 profile set vppipsec auth shared-key-mic string vppipsec

在VPP73上将本端和对端的ID信息均配置为IP地址。

vppctl ikev2 profile set vppipsec id local ip4-addr 12.1.1.1
vppctl ikev2 profile set vppipsec id remote ip4-addr 12.1.1.2

配置流量选择器,指定本端和对端的IP地址网段、端口、协议等信息。

vppctl ikev2 profile set vppipsec traffic-selector local ip-range 11.1.1.1 - 11.1.1.254 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vppipsec traffic-selector remote ip-range 22.1.1.1 - 22.1.1.254 port-range 0 - 65535 protocol 0

在VPP中,IKEv2角色区分为发起者和响应者,我们将VPP72配置为发起者,将VPP73配置为响应者。我们需要在发起者上配置响应者的IP地址信息,并提供可用于IKEv2和IPsec协商的密码套件信息,还可以设置生命周期等参数。

vppctl ikev2 profile set vppipsec responder eth2 12.1.1.2
vppctl ikev2 profile set vppipsec ike-crypto-alg aes-cbc 256  ike-integ-alg sha1-96  ike-dh modp-2048
vppctl ikev2 profile set vppipsec esp-crypto-alg aes-cbc 256  esp-integ-alg sha1-96  esp-dh ecp-256
vppctl ikev2 profile set vppipsec sa-lifetime 3600 10 5 0

VPP配置指南:基于IKEv2的IPsec VPN_第5张图片

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

vppctl ikev2 profile add vppipsec
vppctl ikev2 profile set vppipsec auth shared-key-mic string vppipsec
vppctl ikev2 profile set vppipsec id local ip4-addr 12.1.1.2
vppctl ikev2 profile set vppipsec id remote ip4-addr 12.1.1.1
vppctl ikev2 profile set vppipsec traffic-selector local ip-range 22.1.1.1 - 22.1.1.254 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vppipsec 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 vppipsec

然后我们查看接口,发现多了一个ipip0的接口,这就是IPsec的隧道接口。

VPP配置指南:基于IKEv2的IPsec VPN_第6张图片

然后我们在VPP72上为该接口配置IP地址。

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

添加去往对端22.1.1.0/24的路由,指定下一跳出口为ipip0接口。

vppctl ip route add 22.1.1.0/24 via 120.1.1.2 ipip0

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

vppctl set interface state ipip0 up
vppctl set interface ip address ipip0 120.1.1.2/24
vppctl ip route add 11.1.1.0/24 via 120.1.1.1 ipip0

VPP配置指南:基于IKEv2的IPsec VPN_第7张图片

测试一下两个IPsec隧道接口的互通情况。

VPP配置指南:基于IKEv2的IPsec VPN_第8张图片

测试一下两端主机的互通情况。

VPP配置指南:基于IKEv2的IPsec VPN_第9张图片

抓包查看,报文已经全部是加密状态。

VPP配置指南:基于IKEv2的IPsec VPN_第10张图片

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

在VPP73上查看IKEv2的SA信息。

VPP配置指南:基于IKEv2的IPsec VPN_第11张图片

在VPP73上查看IPsec的SA信息。

670fd6266eef6f6849bb18bffee197ec.png

还可以用show ipsec all命令,不过也没有什么其他信息可以展示了。

VPP配置指南:基于IKEv2的IPsec VPN_第12张图片

be69047b2da1ffc38a943189c318996f.gif

长按二维码
关注我们吧

VPP配置指南:基于IKEv2的IPsec VPN_第13张图片

d77816d21ca20c153d9df98529b14f1c.png

从零开始安装一个VPP要多久?半小时,不能再多了!

不用半小时,最快8分钟即可在CentOS上完成VPP的部署

NVMe硬盘大降价,给你的服务器提提速吧!

惠普HPE服务器升级iLO4固件版本

我来帮着更新一下Linux连接SSL VPN的操作指导,官网手册过时了!

还能这么玩?Windows通过netsh命令配置IPsec

使用MMC和netsh两种方式配置Windows Server传输模式IPsec

成了!基于VPN虚链路的负载均衡测试成功!

你可能感兴趣的:(VPP配置指南:基于IKEv2的IPsec VPN)