1、拓扑如下:
2、通过配置nat实现客户和模拟内网相互访问
背景: 客户端位于client交换机下(模拟客户端接入)要求内网ssh服务上不能出现客户端的真实地址,客户端也不能出现内网ssh服务的真实地址。这样我们依靠R1和R2设备来完成两个方向上的nat配置来实现。
3、nat配置方法及使用场景
① 静态一对一nat
(数据流量从物理接口进入转换源地址,从接口流出转换目的地址)将客户端IP做映射,隐藏客户端IP访问内网ssh服务。
下联商户的接口开启: nat static enable
路由器R1:
interface G0/0
description to 客户端
nat outbound 3027 address-group 2
nat outbound 3002 address-group 2
nat server protocol tcp global 100.1.65.138 22 inside 188.156.191.2 22
nat static enable
#
配置静态一对一nat
路由器R1,和R2 保持配置一致可以切换
nat static inbound 100.2.46.2 188.156.190.71
nat static inbound 100.1.69.60 188.156.190.70
#数据流量从路由器接口R1的G0/0流入交换机转换源地址:将10.2.46.2转换成-->188.156.190.71
数据流从路由器接口R1的G0/0流出交换机去往客户端转换目的地址:将188.156.190.71--->10.2.46.2
②客户端接口下配置目的nat
拓扑中路由器R1G0/0接口配置目的nat可以实现客户端访问内网ssh服务时隐藏内网ssh的IP:
配置后,“内网ssh服务”对外的可见IP:188.156.191.2
路由器R1:
interface G0/0
description to 客户端
nat server protocol tcp global 100.1.65.138 22 inside 188.156.191.2 22
#数据流量从路由器R1的G0/0接口流入时转换目的地址,反方向转源地址
商户主动访问内网ssh服务(188.156.191.2)使用的IP地址将会变成映射地址:100.1.65.138
③ 内网ssh服务转源PAT
从内网ssh服务主动发起访问客户端时,客户端要求将内网ssh服务的IP转换成指定网段。也就是转换成客户内网可路由的网段,隐藏掉内网ssh主动访问客户端时的源IP。通过advanced acl匹配明细的数据流,通过接口下address-group的方式做PAT转换。
interface G0/0
description to 客户端
nat outbound 3027 address-group 2
nat outbound 3002 address-group 2
nat address-group 2
address 100.1.65.138 100.1.65.138
acl number 3027
rule 5 permit tcp source 188.156.191.65 0 destination 188.156.190.71 0 destination-port eq 22
需要注意转源生效以后,拓扑中的Client交换机需要添加100.1.65.138的路由才能实现通讯,
188.156.191.65会被转成100.1.65.138访问客户端的ssh服务。所以需要添加回城路由。
1、 配置多条pat匹配命中顺序
交换机会自动排序acl号码越大越靠上与配置的顺序无关,即使指定顺序后一把刷入设备,华三路由器也会自动按照号码从大到小排列,将会被优先命中(示例中acl3027会优先命中)。如果多条pat配置中网段有重叠会执行从上往下的顺序匹配。例如:上述的pat场景中接口下配置2个nat outbound,假设:
acl3027匹配了主机地址188.156.191.65-->188.156.190.71:22
acl 3002 匹配了网段188.156.191.0/24-->c:22
此例的配置中如果源地址是188.156.191.65则会命中第一条nat生效,如果源地址是188.156.191.2则会命中第二条nat生效转换,两者互不干涉。
2、nat static与PAT有交叉
如示例所示:访问的目的地址涉及了静态一对一的映射,如果配置中既有:nat static inbound 100.2.46.2 188.156.190.71,接口下又有acl命中的pat转换(nat outbound 3027 address-group 2),则acl中匹配目的地址需要使用snat转换后的映射地址:188.156.190.71--V7版本,(如果是华三交换机的早期V5版本设备这里同样需要使用真实地址也就是映射前地址:100.2.46.2)
④ 客户端主动发起转源PAT
客户端主动访问内网ssh服务时需要做源转换的PAT:多对一转换,如果是单独1个IP地址推荐使用第一种静态1对1就可以实现客户端主动发起转源。pat的匹配和命中顺序与3.2中交叉情况一致,需要注意:nat static 一对一映射,通过ACL匹配端口下inbound PAT则,静态一对一映射优先。
acl number 3101
rule 100 permit tcp source 100.1.69.59 0 destination 188.156.191.2 0 destination-port eq 22 logging counting
nat address-group 2
address 188.72.252.252 188.72.252.252
interface G0/0
description to 客户端
nat inbound 3101 address-group 2
#除了这些配置外,需要在ssh内网服和sw1交换机上务添加188.72.252.252/32的回城路由。
最终可以通过acl的匹配命中实现多对一的pat;
----------------------------------------分割线-------------------------------------------------
3、访问关系分析说明:
① 使用loopback 地址:100.1.69.60/32模拟客户端主动访问内网ssh服务
客户端主动发起访问内网:
ssh 100.1.65.138 source ip 100.1.69.60
去程:
客户端访问目的地址:100.1.65.138--》188.156.191.2(转换)
源地址:100.1.69.60--》188.156.190.70(转换)
返回:
内网ssh服务回源地址:188.156.191.2--> 100.1.65.138 #由于是nat server方式不能主动发起,回城只能依赖nat session
目的地址:188.156.190.70--》100.1.69.60
②使用loopback地址:188.156.191.65/32模拟内网ssh服务主动访问客户端
内网ssh服务主动发起访问客户端:
ssh 188.156.190.71 source ip 188.156.191.65
去程:内网ssh服务访问目的地址:188.156.190.71--》100.2.46.2
源地址:188.156.191.65--》100.1.65.138
返回:客户端回源地址:100.2.46.2--》188.156.190.71
目的地址:188.156.191.65--》100.1.65.138 #由于是acl方式的nat outbound,不能主动发起,只能依赖nat session
3、结论:
① outbound的配置方法,此方法会产生一条null 0路由会影响路由的转发,具体解决办法请参考另外一篇文章。
outbound配置:
nat static outbound 100.2.46.2 188.156.190.71
nat static outbound 100.1.69.60 188.156.190.70
nat address-group 2
address 100.1.65.138 100.1.65.138
acl number 3027 #ssh服务主动出做源地址转换,转成客户端要求的源地址(客户端可路由);
rule 5 permit tcp source 188.156.191.65 0 destination 100.2.46.2 0 destination-port eq 22 (4 times matched)
#
acl number 3002 #客户端访问内网ssh服务数据包返回时,需要命中188.156.191.2转换成客户端要求的源地址;
rule 0 permit ip source 188.156.191.2 0 (7 times matched)
#
【1】路由器上联交换机接口配置:需要开启nat
interface GigabitEthernet0/1
port link-mode route
combo enable copper
ip address 188.8.1.5 255.255.255.248
ospf 20 area 0.0.0.0
nat static enable
#
【2】路由器下联客户端接口:
interface G0/1
description to 客户端
ip address 172.16.10.1 255.255.255.0
nat outbound 3027 address-group 2
nat outbound 3002 address-group 2
nat server protocol tcp global 100.1.65.138 22 inside 188.156.191.2 22
#
② inbound配置方法
outbound配置:
nat static inbound 100.2.46.2 188.156.190.71
nat static inbound 100.1.69.60 188.156.190.70
nat address-group 2
address 100.1.65.138 100.1.65.138
acl number 3027 #ssh服务主动出做源地址转换,转成客户端要求的源地址(客户端可路由);
rule 5 permit tcp source 188.156.191.65 0 destination 100.2.46.2 0 destination-port eq 22 (4 times matched)
#
acl number 3002 #客户端访问内网ssh服务数据包返回时,需要命中188.156.191.2转换成客户端要求的源地址;
rule 0 permit ip source 188.156.191.2 0 (7 times matched)
#
【1】路由器上联交换机接口配置
interface GigabitEthernet0/1
port link-mode route
combo enable copper
ip address 188.8.1.5 255.255.255.248
ospf 20 area 0.0.0.0
#
【2】下联接口
interface Vlan-interface604
description to 客户端
ip address 172.16.10.1 255.255.255.0
nat outbound 3027 address-group 2
nat outbound 3002 address-group 2
nat server protocol tcp global 100.1.65.138 22 inside 188.156.191.2 22
nat static enable
#