Linux网络配置与服务全解析
1. 网络地址转换(NAT)
网络地址转换(NAT)允许整个内部网络共享单个IP地址,像PPP或宽带连接的IP地址。NAT在家庭和小型办公室网络中非常流行,因为IPv4地址短缺,而且互联网服务提供商(ISP)不想处理过多的路由。在Linux中,人们常用的NAT变体是IP伪装。
NAT的基本原理是,连接到互联网的机器充当内部网络和外部互联网之间的代理。假设路由器(网关)有一个连接内部私有网络的eth0接口和一个连接互联网的ppp0接口,互联网上的每个主机都知道如何连接到路由器,但对路由器后面的内部私有网络一无所知。在NAT下,内部的每个主机都将路由器作为其默认网关,系统大致按以下步骤工作:
1. 内部私有网络上的主机想要与外部世界建立连接,它会像往常一样通过路由器发送连接请求数据包。
2. 路由器拦截连接请求数据包,而不是将其发送到互联网(因为公共互联网对私有网络如10.1.2.0/24一无所知,直接发送会丢失)。
3. 路由器确定连接请求数据包的目的地,并自行与该目的地建立连接。
4. 当路由器建立连接后,它会向原始内部主机伪造一个“连接已建立”的消息。
5. 此时路由器成为内部主机和目的地之间的中间人,目的地对内部主机一无所知,远程主机上的连接看起来就像是来自路由器。
不过,普通的IP路由只知道互联网层的源和目的IP地址。如果路由器只处理互联网层,内部网络上的每个主机一次只能与单个目的地建立一个连接(还有其他限制),因为数据包的互联网层部分没有信息可以区分同一主机对同一目的地的多个请求。因此,NAT必须剖析数据包以提取更多识别信息,合适的信息在传输层,特别是TCP和UDP端口号。但传输层非常复杂,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



