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. 此时,路由器成为内部主机与目的地之间的中间人。目的地对内部主机一无所知,远程主机上的连接看起来就像是来自路由器。
不过,NAT的实现并不简单。普通的IP路由只知道互联网层的源IP地址和目的IP地址。如果路由器只处理互联网层,内部网络的每个主机在同一时间只能与单个目的地建立一个连接(还有其他限制),因为数据包的互联网层部分没有足够信息来区分同一主机对同一目的地的多个请求。因此,NAT必须剖析数据包以提取更多
超级会员免费看
订阅专栏 解锁全文

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



