请教网络地址转换NAT的原理

ipqtjmqj 2016-10-07 03:44:08
我在看Behrouz A. Forouzan写的TCP/IP Protocol Suit 第四版其中5.5节讲NAT,
就是关于路由器怎么知道从因特网收到的包要转发给哪个端口
When the router translates the
source address of the outgoing packet, it also makes note of the destination address—
where the packet is going. When the response comes back from the destination, the
router uses the source address of the packet (as the external address) to find the private
address of the packet.
上面这段说是在往外发的时候记了一下内部私有地址与外部地址的映射,这样收到时查一下映射可以得知。

我的问题是,如果局域网中多个设备访问外部同一个IP,那不是冲突了吗
...全文
923 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipqtjmqj 2016-10-10
  • 打赏
  • 举报
回复
引用 3 楼 zhangyiant 的回复:
NAT只是对地址进行转换。对端不需要支持NAT. 如果是家用路由器共享的话 比如你发送的报文是src: 192.168.1.100:5000, dst: 100.100.100.100:80 你的路由其的WAN IP是101.101.101.101 你的报文到了路由器这一侧,会找一个没有使用的源端口,比如10000 然后把报文转成src: 101.101.101.101:10000, dst: 100.100.100.100:80, 并且建立192.168.1.100:5000 -> 101.101.101.101:10000的映射表。 然后100.100.100.100:80收到报文,他只知道源是101.101.101.101:10000, 所以回复报文的目的地址是101.101.101.101:1000 路由器收到报文查找映射表,把目的地址再转换成192.168.1.100:5000。 你的第一段写得那种NAT, 并不会根据端口做映射,所以他的映射表是死的,就不能起到共享的功能。
谢谢,我已经懂了。我自己没有仔细看书,后来我继续往下看,已经知道在nat内网的主机不能只能作客户端不能作服务器。
zhangyiant 2016-10-09
  • 打赏
  • 举报
回复
NAT只是对地址进行转换。对端不需要支持NAT. 如果是家用路由器共享的话 比如你发送的报文是src: 192.168.1.100:5000, dst: 100.100.100.100:80 你的路由其的WAN IP是101.101.101.101 你的报文到了路由器这一侧,会找一个没有使用的源端口,比如10000 然后把报文转成src: 101.101.101.101:10000, dst: 100.100.100.100:80, 并且建立192.168.1.100:5000 -> 101.101.101.101:10000的映射表。 然后100.100.100.100:80收到报文,他只知道源是101.101.101.101:10000, 所以回复报文的目的地址是101.101.101.101:1000 路由器收到报文查找映射表,把目的地址再转换成192.168.1.100:5000。 你的第一段写得那种NAT, 并不会根据端口做映射,所以他的映射表是死的,就不能起到共享的功能。
ipqtjmqj 2016-10-07
  • 打赏
  • 举报
回复
引用 1 楼 zhangyiant 的回复:
你说的是对的,nat技术本身只做地址转换。而我们家用的路由器必须根据ip地址加端口号来做转换,这样能够起到共享的作用。同时也限制了这样的nat必须工作在tcp/udp协议之上。
nat不是在网络层吗,就算工作在运输层,那也需要另外一端配合才行,可是通信另外一端不一定也是nat。
zhangyiant 2016-10-07
  • 打赏
  • 举报
回复
你说的是对的,nat技术本身只做地址转换。而我们家用的路由器必须根据ip地址加端口号来做转换,这样能够起到共享的作用。同时也限制了这样的nat必须工作在tcp/udp协议之上。
Re:CCNA_CCNP 思科网络认证 PAT NAT 端口或地址转换 与端口映射======================# 本章课程大纲        公网地址和私网地址        NAT应用场景        静态NAT  :static  地址转换        动态NAT  :dynamic地址转换        PAT        :端口地址转换        端口映射 :port map        在Windows上同时实现的NAT和端口映射 # 私网地址三类 A类:10.0.0.0                                255.0.0.0(1网段) B类:172.16.0.0 -172.31.0.0         255.255.0.0(16网段) C类:192.168.0.0-192.168.255.0  255.255.255.0(255网段) # NAT 的使用场景        NAT的最初的目的是允许把私有IP地址映射到公网地址,以减缓IP地址空间的消耗。        当一个组织更换它的互联网服务提供商ISP,但不想更改内网配置方案时,NAT同样很有用途。        以下是适于使用NAT的多种情况:         企业内网接入Internet节省公网地址         单向访问         大方向:内网访问互联网(互联网上主机不能够访问内网主机)         小方向:同单位实现两个网段之间单向访问(涉密部门能够访问其他部门,反之不可)         增加一个网段          避免在主干路由器增加到这个网段的路由         在Windows上实现的NAT和端口映射 # 网络地址转换的类型        下面介绍一下NAT的三种类型。         静态NAT 是为了在私网地址和公网地址间,允许一对一映射而设计的。         或者IPv4和IPv6之间的转换(典型)         不节省公网地址,故公网地址的利用效率不高,         无任何安全性,外网可以通过公网地址直接攻击内网主机,好像只增加路由器的工作         适用场景类似代理,可以较方便的更换主机,而无需修改路由器的配置         故应用不够广泛...         动态NAT 可以实现映射一个未注册 IP地址到注册IP地址池中的一个注册IP地址。         多对一,或多对多         比较PAT优势:避免被误认为攻击而被封ip地址         不太节省地址,应用不广泛         复用是最流行的NAT配置类型,也被称为端口地址映射(PAT)。         通过使用PAT,可实现上千个用户仅通过一个真实的全球 IP地址连接到Internet。         缺点:增加延迟,消耗路由器性能 # 端口映射(port mapping) 允许Internet上的计算机通过企业路由器的公网IP地址访问到内网的服务器------------------------------------------------         

3,811

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 交换及路由技术相关问题讨论专区
社区管理员
  • 交换及路由技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧