VPP配置指南:NAT“三板斧”

883321a7d503bc99ab74fb8dcd4c7a09.gif

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

前面我们介绍过VSR的NAT配置地址重叠时,用户如何通过NAT访问对端IP网络?地址重叠的时候怎么使用NAT解决访问问题,看这里,可以说是很简单的操作了。那VPP的NAT该如何配置呢?我们今天就用一个简易环境来简单介绍一下。

设备组网如下图所示:

VPP配置指南:NAT“三板斧”_第1张图片

我们首先配置好设备互联,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配置指南:NAT“三板斧”_第2张图片

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配置指南:NAT“三板斧”_第3张图片

调通网络之后,我们先测试最常用的SNAT,一般指在出接口上对请求流量的源IP地址和源端口进行转换,转换为指定的IP地址和端口。最常见的场景就是上网,我们的家用路由器一般都是使用这种配置方式。

H3C设备的实现很简单,在接口下配置一条nat outbound就可以了。例如:

#
interface GigabitEthernet4/0
 port link-mode route
 ip address 44.1.2.1 255.255.255.0
 nat outbound

在VPP上则需要两条命令:

vppctl nat44 add interface address eth2
vppctl set interface nat44 out eth2 output-feature

VPP配置指南:NAT“三板斧”_第4张图片

差别就是H3C在接口上配置时可以直接转换为接口的IP地址,而VPP则要指定一个转换的地址或者接口地址。类似的,H3C指定地址池的配置方式为:

#
nat address-group 10086 name tietou
 address 44.1.2.4 44.1.2.44
#
acl advanced 3402
 rule 0 permit ip source 11.1.1.0 0.0.0.255
 rule 5 permit ip source 11.1.2.0 0.0.0.255
#
interface GigabitEthernet4/0
 port link-mode route
 ip address 44.1.2.1 255.255.255.0
 nat outbound 3402 address-group 10086

简单的时候真简单,复杂起来也是真复杂。

此时PCA就可以访问到VPP73了。

VPP配置指南:NAT“三板斧”_第5张图片

可以在VPP72上查看NAT的相关信息。

VPP配置指南:NAT“三板斧”_第6张图片

可以看到,NAT使用的地址池为接口eth2的接口地址,地址为12.1.1.1,而且可以看到使用的端口信息,当前是使用了3个ICMP端口。从NAT的详细会话中可以看到,原始请求报文的源IP地址是11.1.1.2,源端口为1676,协议为ICMP;转换后的源IP地址是12.1.1.1,源端口为63327。这里再加上目的地址和目的端口就是五元组了,当然,VPP里面还加了一个FIB表(fib 0)的选项,组成了六元组。

我们现在已经可以从PCA访问到VPP73了,那怎么从PCA访问到PCB呢?

我们不妨在VPP73上再配置一个静态NAT映射,将PCB的私网地址22.1.1.2转换为VPP72能够访问的12.1.1.22。同时这也是一个DNAT,将PCA的请求报文,在入接口上将请求的目的IP地址转换为实际的IP地址,不转换端口。

vppctl nat44 add static mapping local 22.1.1.2 external 12.1.1.22
vppctl set interface nat44 in eth1 out eth2 output-feature

VPP配置指南:NAT“三板斧”_第7张图片

可以看到,请求的目的地址是12.1.1.22,目的端口为59651,转换后的目的地址为实际的22.1.1.2,目的端口没有变化,仍为59651。

对应的,我们也看一下VPP72的会话。

VPP配置指南:NAT“三板斧”_第8张图片

可惜只能看到一半的详情,有点尴尬。

而且此时这个静态映射的访问方向是单向的,即只能从VPP72侧向VPP73侧发起访问,PCB无法访问VPP72。

VPP配置指南:NAT“三板斧”_第9张图片

对应的,H3C配置静态映射的配置为:

#
nat static outbound 22.1.1.2 44.1.1.44
#
interface GigabitEthernet4/0
 port link-mode route
 ip address 44.1.2.1 255.255.255.0
 nat static enable

但是H3C能实现两个方向的一对一静态地址转换,即内网地址既可以通过外网地址访问外网,外网的其他地址也可以通过配置的外网地址访问内网地址。这是VPP所不能支持的。

还有最后一个,那就是端口映射,也属于DNAT,即在入接口上将请求报文的目的IP地址和目的端口转换为配置的IP地址和端口。

H3C可以在接口下通过以下两种方式进行配置:

#
interface GigabitEthernet4/0
 port link-mode route
 ip address 44.1.2.1 255.255.255.0
 nat server protocol tcp global 44.1.2.22 10086 inside 22.1.1.2 443
 nat server protocol tcp global current-interface 10086 inside 22.1.1.2 443

一种为指定要使用的IP地址,另一种为直接使用接口的IP地址。

而使用VPP配置时,只能使用地址池中已有的IP地址,不能使用不在地址池中的地址。

VPP配置指南:NAT“三板斧”_第10张图片

比如我们把12.1.1.23加入到地址池中,再配置就可以了。

vppctl nat44 add address 12.1.1.23
vppctl nat44 add static mapping tcp local 22.1.1.2 22 external 12.1.1.23 10086

VPP配置指南:NAT“三板斧”_第11张图片

当然,如果要使用接口的IP地址,也要先把接口的IP地址加入到地址池中,才能配置使用接口进行配置。

VPP配置指南:NAT“三板斧”_第12张图片

当然,配置时,会同时生成一条带有接口IP地址的映射条目。然后我们测试一下端口的开放性。

VPP配置指南:NAT“三板斧”_第13张图片

测试一下访问。

VPP配置指南:NAT“三板斧”_第14张图片

访问正常!

最后看一下两次NAT之后的设备性能吧,现在只能测试从PCA到PCB的带宽了。

VPP配置指南:NAT“三板斧”_第15张图片

测得带宽为5.29 Gbps,怎么样,还能接受吗?

b537d31882f86a784d5e435677767b14.gif

长按二维码
关注我们吧

VPP配置指南:NAT“三板斧”_第16张图片

5711d8ec5fbf40d0e75e1e76566ba96c.png

URL过滤功能了解一下?

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

VPP纳管网卡后还有哪些要做的工作?

MPLS TE隧道带宽的决定因素有哪些?

使用RSVP-TE配置跨域的MPLS TE隧道

超线程和VT-d开启与否对性能的影响大不大?

不会吧!KVM竟然不支持磁盘的精简置备!?

一种基于IPsec的VXLAN“专线”解决方案

IPsec VPN文章及知识点汇总【墙裂建议收藏】

你可能感兴趣的:(智能路由器,网络)