Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1292292
  • 博文数量: 464
  • 博客积分: 9399
  • 博客等级: 中将
  • 技术积分: 6364
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-19 09:15
文章分类

全部博文(464)

文章存档

2014年(12)

2013年(123)

2012年(173)

2011年(156)

我的朋友

分类: 系统运维

2011-08-25 14:53:39

 PAT---Port Address Translation,即端口地址转换,属于NAT的一种,即将lan内的私网地址转换成合法的公有地址,即是将多个内部本地地址(inside local address)转换成一个内部全局地址(inside global address),以方便与Internet通信。
今天不谈nat的优点,也不谈nat的缺点,只谈是如何进行地址转换,主要分为有4层头部的packet与没有4层头部packet进行转换。
网关设备进行PAT,如何识别多个内部本地地址访问外部网络?如何识别多个内部本地地址同时访问同一个外部设备?当外网的数据包到达网关时,他如何选择转发给内部那台主机呢?
先上拓扑:


R2模拟为网关设备,配置如下:

R2有一条指向R1的默认路由:


R1模仿isp,R1上的环回口模拟其他公网设备:


pc1与pc2的配置:
pc1



pc2

看看PC1与PC2问下R1的loopback的结果
这次抓包从R2(gateway)的inside与outside口同时抓的,看进路由器与出路由器有那些不同。
一、有四层头部(tcp)的telnet:
1、pc2去telnet 1.1.1.1注意源ip+port)

   Gateway 的inside 接口:

  Gateway 的outside 接口:


网关设备show nat表:


总结:网关设备收到内部主机发来的数据包的时,在触发PAT的时候,是将source ip地址+source 端口(2元组)动态的生成一个转换表放在内存中(这个与端口映射,静态的指定端口不同,因为动态存在时间有限)。当接受到destination相同的 ip+port来进行转换,来标识该转发的内部主机。


如果pc1与pc2同时telnet的结果如何:
pc1telnet1.1.1.1(inside)
pc1telnet1.1.1.1(outside)
pc2 telnet1.1.1.1(inside)
pc2 telnet1.1.1.1(outside)
网关会生存2个转换表,同一个端口同时只能用于建立一个TCP连接
路由器上面的port也许不能称之为端口,他或许只是一个标识作用,用来标识接收与转发内网主机与公网通信的数据包。当然这只是我的猜测而已。
有四层头部的,当然可以用port来标识,没有四层头部,靠谁来标识?不能ip头部吧,插那个字段?但是你ping一个外网,比如说51cto.com,还是可以回复内网主机的。
来看看网关是如何转换icmp报文的:
二、没有四层头部的ping(icmp):
  pc1与pc2同是ping 1.1.1.1.
pc1 ping 1.1.1.1(inside)
pc1 ping 1.1.1.1(outside)
pc2 ping 1.1.1.1(inside)
pc2 ping 1.1.1.1(outside)
在看看网关的nat表:

总结:

网关在转发icmp报文的时候,靠的是icmp 头部的标识符来确定一台主机。其实呢,icmp标识符是每个unix主机,ping这个程序的进程号(pid)而已。应该是每个主机产生这个进程号都是随机,不一样,所以可以拿来做标识吧
其实每一台cisco的路由器都相当于一台运行unix的设备。


CCIE Security 2009 IOS防火墙合集


阅读(661) | 评论(0) | 转发(0) |
0

上一篇:HRSP 原理与配置

下一篇:CDP简单应用

给主人留下些什么吧!~~