设为首页收藏本站language 语言切换
查看: 4178|回复: 11
收起左侧

[其他] icmp怎么通过PAT的

  [复制链接]
发表于 2012-12-20 21:52:35 | 显示全部楼层 |阅读模式
我一直有一个疑惑,在我们做地址转换时用到PAT,是用IP+端口号的形式的,那我们从内完里ping外网的服务器,那icmp报文可以过去,这个报文的端口号是怎么加上去的?ICMP的报文里并不提供端口号的选项啊。。
求大神指导!!
 楼主| 发表于 2012-12-20 21:53:21 | 显示全部楼层
求指导啊啊
沙发 2012-12-20 21:53:21 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-20 22:02:33 | 显示全部楼层
maohao
板凳 2012-12-20 22:02:33 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-20 22:04:46 | 显示全部楼层
好像是在icmp中的,独有的type字段,在所有的协议中,只有icmp有这个特例
地板 2012-12-20 22:04:46 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-20 22:22:30 | 显示全部楼层
我个人这样认为 第一:ICMP 是IP 层协议,根本没有您说的端口的概念,他只负责报告差错情况,那么PAT 是负责地址转换,比如你PING 了个外网地址,路由器判断与内网不是相同网段,查看路由表该IP 怎么走,数据直接出去了
类型8,代码0:表示回显请求(ping请求)。
类型0,代码0:表示回显应答(ping应答)
类型11,代码0:超时
这个是ICMP 数据包字段  
不知道我理解的对不。。。。。
5# 2012-12-20 22:22:30 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-20 22:38:31 | 显示全部楼层
PAT的端口转换是为了区分inside local地址,对于有端口的应用来说,一般转换为较大的端口号从而避免和常用端口冲突,而对于一些没有端口号的应用(比如ICMP)来说,所谓端口号仅仅是为了区分不同ICMP包,可以理解为就是特定的数字标记,不具有任何其他意义,你不断的PING下去端口号会一直增加,一个echo_request的端口数字和对应一个echo_replay端口数字,和四层包头的端口号没有任何关系。楼上说ICMP是三层协议没错,路由器在做PAT的时候如果发现ip包头中协议号为1就知道是ICMP的包,根本不用考虑四层端口号,直接用一个端口数字标记转换即可
6# 2012-12-20 22:38:31 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-20 22:40:52 | 显示全部楼层
这是一些产商为了支持 一些特殊的应用,让NAT通过一些特殊的字段来识别的
在ICMP中有个Identifier和Sequence Number, Identifier是用于区别不同的ICMP进程的,比如 微软上开了两个CMD,同时进行ping测试,  Sequence Number就是,我们平时ping发出去是Request回来是reply,那么发出去的第一个ping包序列号就是1,回来的reply也是1,最终把结果打印在终端上。
NAT就是通过Identifier这个字段来唯一区分不同的ICMP流量的,其实在cisco上支持ICMP、GRE这些都可以通过pat
7# 2012-12-20 22:40:52 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-20 22:59:51 | 显示全部楼层
楼主,不论什么情况你一定要hold住!hold住就是胜利!
8# 2012-12-20 22:59:51 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-21 11:54:15 | 显示全部楼层
zsl_jacky 发表于 2012-12-20 22:38
PAT的端口转换是为了区分inside local地址,对于有端口的应用来说,一般转换为较大的端口号从而避免和常用端 ...

恩,谢谢,我觉得你的回答比较靠谱
9# 2012-12-21 11:54:15 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-21 11:54:30 | 显示全部楼层
zsl_jacky 发表于 2012-12-20 22:38
PAT的端口转换是为了区分inside local地址,对于有端口的应用来说,一般转换为较大的端口号从而避免和常用端 ...

恩,谢谢,我觉得你的回答比较靠谱
10# 2012-12-21 11:54:30 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-12-23 11:41:13 | 显示全部楼层
白胡子的胡子 发表于 2012-12-21 11:54
恩,谢谢,我觉得你的回答比较靠谱

呵呵,共同学习
11# 2012-12-23 11:41:13 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2016-4-16 19:38:44 | 显示全部楼层
qq360870025 发表于 2012-12-20 22:40
这是一些产商为了支持 一些特殊的应用,让NAT通过一些特殊的字段来识别的
在ICMP中有个Identifier和Sequen ...

这才是正解!!!这才是正解!!!这才是正解!!!重要的事说三遍
12# 2016-4-16 19:38:44 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-27 02:56 , Processed in 0.071216 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表