Linux网络配置与服务全解析
1. 网络地址转换(NAT)
网络地址转换(NAT)允许整个内部网络共享一个单一的IP地址(例如,通过PPP或宽带连接)。由于IPv4地址供应短缺,且互联网服务提供商(ISP)不想处理过多的路由,NAT在家庭和小型办公室网络中非常受欢迎。在Linux中,人们常用的NAT变体是IP伪装。
NAT的基本原理是,拥有互联网连接的机器充当内部网络和互联网之间的代理。假设路由器(网关)有一个连接内部私有网络的eth0接口和一个连接互联网的ppp0接口,互联网上的每个主机都知道如何连接到路由器,但对路由器后面的内部私有网络一无所知。在NAT下,内部的每个主机都将路由器作为其默认网关。其工作流程大致如下:
1.内部主机发起请求:内部私有网络上的主机希望与外部世界建立连接,因此它像往常一样通过路由器发送连接请求数据包。
2.路由器拦截请求:路由器拦截连接请求数据包,而不是将其发送到互联网(因为公共互联网对诸如10.1.2.0/24这样的私有网络一无所知,数据包会丢失)。
3.路由器建立连接:路由器确定连接请求数据包的目的地,并自行建立与该目的地的连接。
4.伪造连接建立消息:当路由器获得连接后,它向原始内部主机伪造一个“连接已建立”的消息。
5.路由器充当中间人:此时路由器成为内部主机和目的地之间的中间人。目的地对内部主机一无所知,远程主机上的连接看起来就像是来自路由器。
然而,普通的IP路由在网络层只知道源