• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

静态NAT会话表项无法触发生成的经验案例

2017-01-06 发表
  • 0关注
  • 0收藏 975浏览
粉丝:11人 关注:0人

一、   组网:


图 组网图

组网如图所示,PC可以通过10.110.193.2地址访问8.8.240.100服务器。

1. Router1的配置

#

interface GigabitEthernet0/0

 port link-mode route

 ip address 10.111.16.141 255.255.255.252

#

interface GigabitEthernet0/1

 port link-mode route

 ip address 10.111.16.133 255.255.255.252

 nat static enable

#

 ip route-static 0.0.0.0 0 10.111.16.142 preference 255

 ip route-static 10.24.65.0 24 10.111.16.134

#

 nat static outbound 8.8.240.100 10.110.193.2

#

return

2. Router2的配置

#

interface GigabitEthernet0/0

 port link-mode route

 ip address 10.111.16.142 255.255.255.252

#

interface GigabitEthernet0/1

 port link-mode route

 ip address 10.111.16.137 255.255.255.252

 nat static enable

#

interface GigabitEthernet0/2

 port link-mode route

 ip address 8.8.252.34 255.255.255.252

 nat outbound

#

 ip route-static 0.0.0.0 0 8.8.252.33

 ip route-static 0.0.0.0 0 10.111.16.141 preference 255

 ip route-static 10.24.65.0 24 10.111.16.138

#

 nat static outbound 8.8.240.100 10.110.193.2

#

return

3. Switch的配置

#

interface GigabitEthernet0/0

 port link-mode route

 ip address 10.24.65.1 255.255.255.0

#

interface GigabitEthernet0/1

 port link-mode route

 ip address 10.111.16.134 255.255.255.252

#

interface GigabitEthernet0/2

 port link-mode route

 ip address 10.111.16.138 255.255.255.252

#

 ip route-static 0.0.0.0 0 10.111.16.133

 ip route-static 0.0.0.0 0 10.111.16.137 preference 255

#

return

二、   问题描述:

PC通过10.110.193.2地址访问8.8.240.100服务器时收到的响应源地址为8.8.240.100而不是10.110.193.2

Ping 10.110.193.2 (10.110.193.2): 56 data bytes, press CTRL_C to break

56 bytes from 8.8.240.100: icmp_seq=0 ttl=61 time=1 ms

56 bytes from 8.8.240.100: icmp_seq=1 ttl=61 time=1 ms

56 bytes from 8.8.240.100: icmp_seq=2 ttl=61 time=1 ms

56 bytes from 8.8.240.100: icmp_seq=3 ttl=61 time=1 ms

--- Ping statistics for 10.110.193.2 ---

4 packet(s) transmitted, 4 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 1/1/1/0 ms

三、   过程分析:

使用抓包排查方法,观察网络中各处的数据包转发过程中的地址转换情况。

可以看到首先从PC发出了一个源地址为10.24.65.25、目的地址为10.110.193.2ICMP Echo Request数据包。Switch收到该ICMP Echo Request数据包之后查询路由表,从GigabitEthernet0/1接口将该ICMP Echo Request数据包转发给Router1

由于Router1GigabitEthernet0/1接口配置了nat static outbound 8.8.240.100 10.110.193.2静态地址转换,会将进入该接口的数据包目的地址从10.110.193.2转换为8.8.240.100,并生成一个静态NAT会话表项,然后查询路由表,将该数据包从GigabitEthernet0/0接口转发给Router2

Router2收到该ICMP Echo Request数据包之后查询路由表,出接口是GigabitEthernet0/2,由于该接口上配置了nat outbound,所以会在转发该数据包的同时将源地址转换为8.8.252.34,并生成一个动态NAT会话表项。

服务器8.8.240.100收到该ICMP Echo Request之后,以源地址为8.8.240.100、目的地址为8.8.252.34ICMP Echo Reply数据包响应PC

Router2收到该ICMP Echo Reply数据包之后检查NAT会话表,该数据包能够匹配刚刚建立的动态NAT会话表项,所以会将目的地址转换为10.24.65.25,查询路由表发现该数据包应该从GigabitEthernet0/1接口转发出去,由于GigabitEthernet0/1接口上配置了nat static outbound 8.8.240.100 10.110.193.2静态地址转换,所以数据包从该接口转发出去的同时应该将数据包的源地址转换为10.110.193.2,并生成一个静态NAT会话表项,但是并没有触发生成该静态NAT会话表项,也没有将源地址转换为10.110.193.2

*Jan  1 00:09:19:303 2011 H3C IPFW/7/IPFW_PACKET:

Receiving, interface = GigabitEthernet0/1

version = 4, headlen = 20, tos = 0

pktlen = 84, pktid = 36, offset = 0, ttl = 253, protocol = 1

checksum = 31207, s = 8.8.240.100, d = 10.24.65.25

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: Receiving IP packet from interface GigabitEthernet0/1.

Payload: ICMP

  type = 0, code = 0, checksum = 0x1efe.

*Jan  1 00:09:19:303 2011 H3C NAT/7/ERROR: Can't get session of static.

经过debug分析,可以发现在Router2上面该ICMP Echo Reply数据包从GigabitEthernet0/1接口转发的时候走的是纯IP转发,没有任何NAT事件发生,首先怀疑是由于存在不能进行两次地址转换的限制导致的,然后在Router2Switch之间增加一台路由器Router3,并取消Router2上的GigabitEthernet0/1接口上的nat static enable,将该静态地址转换配置在Router3上的与Switch互联的接口上。

实验结果表明,ICMP Echo Reply数据包在Router3上面仍然不能触发生成静态NAT会话表项,也不能将源地址转换为10.110.193.2,这说明并不是由于存在不能进行两次地址转换的限制导致的。

*Jan  1 00:10:04:204 2011 H3C IPFW/7/IPFW_PACKET:

Receiving, interface = GigabitEthernet0/1

version = 4, headlen = 20, tos = 0

pktlen = 84, pktid = 7, offset = 0, ttl = 255, protocol = 1

checksum = 30724, s = 8.8.240.100, d = 10.24.65.25

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: Receiving IP packet from interface GigabitEthernet0/1.

Payload: ICMP

  type = 8, code = 0, checksum = 0x08c7.

*Jan  1 00:10:04:204 2011 H3C NAT/7/COMMON:

 PACKET: (GigabitEthernet0/0-out) Protocol: ICMP

     8.8.240.100:    0 -     10.24.65.25:    0(VPN:    0) ------>

    10.110.193.2:    0 -     10.24.65.25:    0(VPN:    0)

*Jan  1 00:10:04:204 2011 H3C IPFW/7/IPFW_PACKET:

Sending, interface = GigabitEthernet0/0

version = 4, headlen = 20, tos = 0

pktlen = 84, pktid = 7, offset = 0, ttl = 254, protocol = 1

checksum = 42496, s = 10.110.193.2, d = 10.24.65.25

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: Sending IP packet received from interface GigabitEthernet0/1 at interface GigabitEthernet0/0.

Payload: ICMP

  type = 8, code = 0, checksum = 0x08c7.

此时在Router2上面使用ping -a 8.8.240.100 10.24.65.25命令直接发送ICMP Echo Request数据包,在Router3上面可以触发生成静态NAT会话表项,并且可以将源地址转换为10.110.193.2

Router3上面查看静态NAT会话表项的时候注意到会话状态为ICMP_REQUEST,而在Router2上面的动态NAT会话表项的会话状态为ICMP_REPLY,说明ICMPNAT会话表项的建立过程需要经历从ICMP_REQUESTICMP_REPLY的会话状态迁移,所以只有ICMP Echo Request才能触发生成NAT会话表项。

根据以前的经验回忆起V5平台的静态NAT会话表项没有会话状态,又尝试了一下V5平台的路由器,发现在V5平台上面ICMP Echo Reply确实可以触发生成静态NAT会话表项。

四、   解决方法:

V7平台上应该确保数据包经过有NAT配置的网络时往返路径保持一致。


该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

作者在2019-06-07对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作