(图片上传不了,完整版本请去我的资源里下载)
NAT以及MAP详解
在讨论NAT和MAP之前,先说一下为什么需要它们。想象一下,如果每个终端设备都有公网IP地址,那么任意两个设备之间只要有网络联通就可以直接相互访问,根本不需要改变IP数据报。问题是,现在大多数设备还工作在Ipv4,公网IP的数量十分有限,早就被用光了。为了解决公网IPV4地址短缺的问题,才引入了NAT和MAP。当然还有安全问题等也需要这种技术,但是最最重要的原因还是IP地址短缺。为此IPV6才慢慢发展起来,当然即使完全实现了IPV6,这种技术还会存在,只不过应用就不象现在这么广泛了。
1 什么是NAT和MAP
首先需要说明的是,NAT,MAP与路由的关系。最最需要说明的是,NAT和MAP不是路由设备的必备功能,这往往让人容易误解。因为现在用户接触到的网络路由器往往具有这些功能。还是先看看路由的概念吧。
路由:连接两个不同IP网段的技术。
(拿以太网为例)如果两个设备的IP位于同一网段,那么设备会通过ARP协议直接找到发送至对方所使用的链路层地址(MAC),当然不需要任何路由设备。
如果两个设备位于不同的网段,那么一个设备的ARP表里就不会有另一个设备的IP映射,从而不能直接找到对方。其实对于IP网络,历史上最常用的“邮局”比喻最为恰当,如果两个设备在一个办公室里,那么有信直接放到对方的桌子上就是了,根本不需要邮局。如果不能直接找到对方,那么就需要一个中转站,把所有不知道的IP数据报都发送到那里,这在以太网里叫做网关。网关是个特殊的设备,它有自己的IP地址,但是他除了能接收目的是自己IP的数据报外,还能接收目的为任何IP数据报。其实一般的PC的以太网卡也能接收目的IP不是自身IP的数据报(事实上,网卡接收数据不需要IP),但是对于这样的数据报只是简单的丢弃而已。而对于网关设备(路由器)对于接收到的所有IP数据报都进行处理,处理的依据就是目的IP地址,处理的方法就是如果目的IP是自己或是与自己位于同一网段,那么直接发送。如果目的IP不在自己网段,那么就继续中转它。
从以上路由的功能可以看出,路由设备根本不关心IP数据报的源IP,而只是关心目的IP;还有就是路由设备不会对原来的IP数据报做任何改动。改动的只是链路层的地址而已。这才是通常意义上的路由。
如果在中转站把IP数据报的IP地址改了会怎样呢?这分两种情况,一是改变源IP地址,而是改变目的IP地址。
先看第一种,路由设备改变了IP数据报的源IP的情况。如下图所示:
上图展示的是设备IP为S1的设备主动与IP为D1的设备通信的过程。S1和D1处于不同的网段。从S1设备发出去的数据报(S1:D1)经过路由设备时,在被路由之前修改成了(S2,D1),数据报到达D1后,D1并不知道这是经过修改的数据报,因此照常返回数据报(D1:S2),当到达路由设备时,路由器发现目的为S2,按照之前的修改规则重新把S2改为S1,修改后变成(D1:S1),到达S1后,S1并不知道这是经过修改的数据报,但是与自己发出去的(S1:D1)配对,所以接收并处理。这个过程就叫做NAT。
可以看出:
(1)终端设备对NAT并不知情;
(2)路由设备在改变了源IP后,必须做记录,以能对于接收的对应数据报必须进行反改变,以保证设备S1发出和接收到的数据报配对;这就要求,对于改变了的数据报,必须保证其对应的返回数据报必须也经过此路由器。
再看第二种情况,就是路由器改变数据报的目的IP.
此时,路由设备修改数据报的目的地址,原理与第一种清况类似,得出的结论也类似。不同的是这种技术叫做MAP。
通过分析,可以看出无论是NAT还是MAP都会改变源地址和目的地址,只不过是改变的次序问题。NAT先改变源IP,当返回时对应的数据报中被改变的IP变成了目的IP;而MAP恰好相反。
当然仅仅通过NAT和MAP并不能节约IP,因为这是一对一的转换。要想节约IP,必须能做到私有IP和公网IP的多对一转换,这就是NAPT和MAPT,原理是转换(IP:Port)对,不再累述。
2 NAT和MAP容易出现的问题
2.1 内网无法访问同网段的其他设备的公网地址
举个例子,会更明白。一家公司有两个公网IP,一个IP-A用于对外访问互联网,一个IP-B用于内部服务器供互联网访问。如下图:
看到问题了吗,IP1访问IP-B发出去的数据报为(IP1,IP-B),收到的却是(IP2,IP1),因此没有配对,所以(IP2, IP1)被简单的丢弃,IP1在可怜的等待(IP-B,IP1)的到来,而事实上永远也不会等到。
问题就出在了,IP1和IP2处于同一网段,发出去的数据报被路由器修改了目的IP,而返回时,数据报没有经过那个路由器,因此没有对应的改变。
如何解决呢?知道了原因解决就很简单了,就是要保证经过改变的数据报对应的返回数据报也要经过同一个路由器,也就是让IP2发出的返回给IP1的数据报不是直接发给IP1而是要先经过路由器。具体方法是改变IP1,IP-B的源地址,如何改变呢?原则是只要是能经过路由器就行,因为这种改变只是为了让数据经过路由器。经过之后又被反改变成IP1了。
尽管这样可以解决,但是本来可以直接访问的内部服务器,却要经过路由器中转,白白浪费带宽和加长中转距离,但有一个好处,那就是可以在路由器上监控内部员工访问自己服务器的情况。
分享到:
相关推荐
nat详解,网络转载 感觉不错,可以下载看看!! 基础
详细的讲述了NAT穿越的相关知识。例子丰富,实用性强。
很实用的实战思科路由器NAT案例配置详解,路由器是利用NAT技术,把内网的多个IP与端口映射 到外网IP(WAN口)的端口进行通讯
一份详细的介绍IPv6过渡技术NAT-PT的文档,适合网络或计算机专业大学生或相关工作人员参考使用。
NAT的功能就是指将使用私有地址的网络与公用网络INTERNET相连,使用私有地址的内部网络通过NAT路由器发送数据时,私有地址将被转化为合法注册的IP地址从而可以与INTERNET上的其他主机进行通讯。 NAT路由器被置于内部...
CISCO路由器NAT功能介绍,具体配置讲解。
linux下NAT配置详解 linux下NAT配置详解 linux下NAT配置详解
NAT配置案例详解[参照].pdf
TCP/IP基础、路由、交换技术、广域网、以太网技术的基本原理以及在华为通用路由平台VRP上的实现的 内容有: Module 1-网络互联基础 Module 2-路由和路由协议基础与实现 Module 3-以太网交换技术基础与实现 Module 4-...
思科路由器NAT配置详解思科路由器NAT配置详解22
思科内部关于8.3及以上版本ASA的NAT配置变化的详细讲解PPT。
思科路由器NAT配置详解.docx
思科路由器NAT配置详解s.pdf
最全NAT详解--适合NAT高级读者,2.1 NAT的概念模型,2.4 按照NAT端口映射方式分类,3. NAT的限制与解决方案,3.3 NAT穿越技术,4. NAT的应用和实现,5. 后IPv4时代的NAT
NAT网络地址转换技术详解。
NATvpdn enable no vpdn logging 由于...ip nat inside 为启用NAT转换,设置Fastethernet端口为内部网络,从内部网络收到的数据的原地址转换为公网地址! interface ATM0 设置ADSL端口 no ip address 请不要设置地址
NAT配置 网络地址转换NAT详解指南
CCNA实验 实验步骤: R1: router> en router#conf t router(config)#hostname r1 r1(config)#alias exec a show ip route r1(config)#alias exec b show ip inter brief r1(config)#alias exec c show running-...