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

NAT hairpin转换过程

2023-02-24提问
  • 1关注
  • 0收藏,1197浏览
粉丝:0人 关注:3人

问题描述:

1、组网


2.需求

通过配置NAT hairpin,实现内网主机通过公网地址访问内部服务器

3.关键配置

#

interface GigabitEthernet0/2

 port link-mode route

 description WAN

 ip address 1.1.1.1 255.255.255.0

 nat outbound

 nat server protocol tcp global 1.1.1.1 23 inside 192.168.1.10 23

#

interface GigabitEthernet0/0

 port link-mode route

 description LAN

 ip address 192.168.1.1 255.255.255.0

 nat hairpin enable

#

4.测试

内网主机192.168.1.1通过公网地址访问内网服务器192.168.1.10

<R1>*Jun 30 09:44:46:222 2020 R1 IPFW/7/IPFW_PACKET:

Receiving, interface = GigabitEthernet0/0, version = 4, headlen = 20, tos = 192,

pktlen = 60, pktid = 141, offset = 0, ttl = 255, protocol = 6,

checksum = 63170, s = 192.168.1.2, d = 1.1.1.1

prompt: Receiving IP packet.

 

*Jun 30 09:44:46:222 2020 R1 NAT/7/COMMON:

//公网口出方向做源地址转换

 PACKET: (GigabitEthernet0/2-out) Protocol: TCP

     192.168.1.2:11393 -         1.1.1.1:   23(VPN:    0) ------>

         1.1.1.1: 1025 -         1.1.1.1:   23(VPN:    0)

*Jun 30 09:44:46:222 2020 R1 NAT/7/COMMON:

//内网口入方向做目的地址转换

 PACKET: (GigabitEthernet0/0-in) Protocol: TCP

         1.1.1.1: 1025 -         1.1.1.1:   23(VPN:    0) ------>

         1.1.1.1: 1025 -    192.168.1.10:   23(VPN:    0)

*Jun 30 09:44:46:222 2020 R1 IPFW/7/IPFW_PACKET:

Sending, interface = GigabitEthernet0/0, version = 4, headlen = 20, tos = 192,

pktlen = 60, pktid = 141, offset = 0, ttl = 254, protocol = 6,

checksum = 63418, s = 1.1.1.1, d = 192.168.1.10

prompt: Sending the packet from GigabitEthernet0/0 at GigabitEthernet0/0.

 

*Jun 30 09:44:46:224 2020 R1 IPFW/7/IPFW_PACKET:

Receiving, interface = GigabitEthernet0/0, version = 4, headlen = 20, tos = 192,

pktlen = 60, pktid = 135, offset = 0, ttl = 255, protocol = 6,

checksum = 63168, s = 192.168.1.10, d = 1.1.1.1

prompt: Receiving IP packet.

 

*Jun 30 09:44:46:224 2020 R1 NAT/7/COMMON:

//服务器返回的报文在内网口入方向做源地址转换

 PACKET: (GigabitEthernet0/0-in) Protocol: TCP

    192.168.1.10:   23 -         1.1.1.1: 1025(VPN:    0) ------>

         1.1.1.1:   23 -         1.1.1.1: 1025(VPN:    0)

*Jun 30 09:44:46:224 2020 R1 NAT/7/COMMON:

//服务器返回的报文在内网口出方向做目的地址转换

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

         1.1.1.1:   23 -         1.1.1.1: 1025(VPN:    0) ------>

         1.1.1.1:   23 -     192.168.1.2:11393(VPN:    0)

*Jun 30 09:44:46:224 2020 R1 IPFW/7/IPFW_PACKET:

Sending, interface = GigabitEthernet0/0, version = 4, headlen = 20, tos = 192,

pktlen = 60, pktid = 135, offset = 0, ttl = 254, protocol = 6,

checksum = 63432, s = 1.1.1.1, d = 192.168.1.2

prompt: Sending the packet from GigabitEthernet0/0 at GigabitEthernet0/0.


组网及组网描述:

问题1、上述转换过程是对的吗?第一步中GE0/2口做完源地址转换后数据包为:1.1.1.1: 1025 --->1.1.1.1:  23,如何在路由到内网口GE0/0

问题2、请大神给出GE0/0、GE0/2口数据包完整的转换过程;采纳后重谢

3 个回答
已采纳
粉丝:39人 关注:26人

nat hairpin功能原理是(对于C/S模式,也就是你这种模式),内网用户的报文,在内网接入进入NAT设备的时候,同时对源和目的做转换,目的地址转换是根据公网接口上的nat server来进行,源地址转换是根据匹配的内部服务器的公网接口上的nat outbound或是nat static来进行转换。
根据你的现网来看,你是192.168.1.2去访问1.1.1.1:23,那么数据包从G0/0接口进入R1的时候,因为G0/0接口配置了nat hairpin功能,所以要查看是否有接口开启nat server,此时R1的G0/2接口开启了,并且nat server的映射正好是将192.168.1.10:23映射到1.1.1.1:23,是可以匹配该nat server的,所以此时就可以将数据包的目的地址转换为192.168.1.10:23,此时顺便根据该nat server配置的接口,也配置了nat outbound,那么就会对该数据包的源地址做转换,将192.168.1.2的地址转换为1.1.1.1,此时在设备内部,数据包就变成了源IP地址是1.1.1.1,目的地址就是192.168.1.10:23,此时设备会查看表项转发给192.168.1.10:23
当server回包的时候,会判断是1.1.1.1发来的,所以server会将该报文会送给1.1.1.1,源ip地址是192.168.1.10,目的地址是1.1.1.1,也就会回到R1,R1收到之后,因为存在192.168.1.2---1.1.1.1的转换,同时存在1.1.1.2--192.168.1.10的转换,所以就继续对其转换,源地址变为1.1.1.1,目的地址就变为192.168.1.2了,这样R1继续转给192.168.1.2即可

回复黑乎乎:

只有出接口的nat outbound生效

山东郑凯 发表时间:2023-02-27 更多>>

那就是上面转换过程是不对的,数据包根本不会到外网接口对吧

黑乎乎 发表时间:2023-02-24
回复黑乎乎:

是的,不会到外网接口的,就是内部处理的过程,只不过你看会话的时候是这样的

山东郑凯 发表时间:2023-02-24
回复山东郑凯:

大神,顺便请教下:如果访问电脑访问其它公网(如百度),是不是内网接口nat hairpin这些转换不生效

黑乎乎 发表时间:2023-02-27
回复黑乎乎:

对,不生效的,你电脑访问其他公网(目的地址就不是你做的nat server的公网地址)

山东郑凯 发表时间:2023-02-27
回复黑乎乎:

只有出接口的nat outbound生效

山东郑凯 发表时间:2023-02-27
粉丝:250人 关注:8人

该功能在不同工作方式下的具体转换过程如下:

·            C/S方式:NAT在内网接口上同时转换访问内网服务器的报文的源和目的IP地址,其中,目的IP地址转换通过匹配某外网接口上的内部服务器配置来完成,源地址转换通过匹配内部服务器配置所在接口上的出方向动态地址转换或出方向静态地址转换来完成。

·            P2P方式:内网各主机首先向外网服务器注册自己的内网地址信息,该地址信息为外网侧出方向地址转换的NAT地址,然后内网主机之间通过使用彼此向外网服务器注册的外网地址进行互访。该方式下,外网侧的出方向地址转换必须配置为PAT转换方式,并开启EIM模式。

1、C/S方式下;数据包是不是就不经过外网接口?直接再内网接口上完成源和目的地址转换?能不能结合上面组网信息,给出具体命令?我去实验下

黑乎乎 发表时间:2023-02-24 更多>>

1、C/S方式下;数据包是不是就不经过外网接口?直接再内网接口上完成源和目的地址转换?能不能结合上面组网信息,给出具体命令?我去实验下

黑乎乎 发表时间:2023-02-24
黑乎乎 知了小白
粉丝:0人 关注:3人

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

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

确定

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

注册后可访问此模块

跳转hclhub

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

举报

×

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

侵犯我的权益

×

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

泄露了我的隐私

×

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

侵犯了我企业的权益

×

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

抄袭了我的内容

×

原文链接或出处

诽谤我

×

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

对根叔社区有害的内容

×

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

不规范转载

×

举报说明