1. 为什么要学习NET技术?
因为在VPN服务端需要使用NET技术做IP包转发,所以要学习。
2. NET是什么?
NET (通常指的是 网络技术 )是与 路由 、地址转换 、数据包转发 和 网络流量管理 相关的技术集合。它解决的是如何将数据包从源设备送到目标设备,如何处理网络中的地址转换(如 NAT ),以及如何优化网络中的数据流量(如 QoS)。简而言之,NET 技术就是用来确保网络数据可以有效、安全地在设备间传输,并提供路由、地址管理和流量控制等功能。
听起来和没说一样,看下面NET技术是如何工作的。
3. NAT 技术是如何工作的?
NAT 技术的核心工作原理是通过 地址转换 将私有网络中的设备的私有 IP 地址转换为公共 IP 地址,这样私有网络中的设备才能访问互联网。当互联网响应请求时,NAT 会根据一些规则(如端口号)将返回的数据包重新路由到正确的私有设备。
我们可以分解这个过程,明确数据包如何从公网回到私有网络中的主机。
NAT 过程详解:
- 发送请求:
-
- 假设设备 A 在私有网络中,IP 地址为
192.168.1.100
,它想要访问一个外部网站http://example.com
。 - 当设备 A 发送数据包时,它的 源 IP 地址 是
192.168.1.100
,但是为了让数据包能够穿越 NAT 路由器,它的 源 IP 地址 会被 NAT 转换为路由器的公共 IP 地址,假设公共 IP 为203.0.113.5
。 - 同时,NAT 路由器会为这个请求分配一个临时的 源端口 (如
50001
),然后将数据包的源地址修改为203.0.113.5:50001
,目标地址是网站http://example.com
。
- 假设设备 A 在私有网络中,IP 地址为
- 请求到达互联网:
-
- 现在,设备 A 的数据包已经被 NAT 路由器转发出去,目标服务器(
example.com
)收到的请求来源是203.0.113.5:50001
。 - 目标服务器返回响应时,它将数据包发送到
203.0.113.5:50001
,而 NAT 路由器并不直接把这个数据包发到外部设备,它需要根据端口和映射来判断最终数据包的目标。
- 现在,设备 A 的数据包已经被 NAT 路由器转发出去,目标服务器(
- 响应回到 NAT 路由器:
-
- 目标服务器(
example.com
)将响应发送到 NAT 路由器的公共 IP 地址和端口203.0.113.5:50001
。 - NAT 路由器接收到返回的数据包后,检查该端口号是否存在于其 NAT 转发表中。在这个表中,记录了外部端口号(
50001
)和对应的 内部设备 IP 地址 (192.168.1.100
)以及 内部端口号。
- 目标服务器(
- 数据包转发回私有网络:
-
- NAT 路由器根据 端口映射 查找到原始请求的私有 IP 地址(
192.168.1.100
),并将响应数据包的目标 IP 地址修改为 192.168.1.100 ,目标端口号保持不变(即50001
)。 - 然后,NAT 路由器将数据包转发给设备 A(
192.168.1.100
),这样设备 A 就收到了互联网响应的包。
- NAT 路由器根据 端口映射 查找到原始请求的私有 IP 地址(
- 设备 A 接收响应:
-
- 最终,设备 A 收到从外部服务器返回的数据包,它的 目标地址 是
192.168.1.100
,端口号是之前分配的50001
,NAT 路由器根据这个端口号和 IP 地址,准确地将数据包转发到设备 A。
- 最终,设备 A 收到从外部服务器返回的数据包,它的 目标地址 是
如何回到主机的关键:端口映射
在整个过程中,NAT 通过维护 端口映射表 来管理进出数据流。这个表的作用是:
- 外部请求到达时,根据源 IP 和端口号将请求转发到内部的正确设备。
- 返回响应时 ,NAT 根据 目标端口号 找到原始请求的私有 IP 地址,并将响应数据包正确转发回去。
NAT 在解决以下问题上非常有效:
- 私有网络与公网地址的转换:它允许多个设备共享同一个公网 IP 地址。
- 防火墙功能:NAT 隐藏了私有网络设备的 IP 地址,有效地避免了外部设备直接访问内部设备。
总结:
- 当设备发起请求时,NAT 会改变其源 IP 地址和源端口,将请求发送到外部网络。
- 当外部服务器响应时,NAT 路由器根据端口号查找映射表,将数据包正确路由回内部设备。
- 端口映射 是 NAT 工作的核心,确保数据包能够在响应回来的时候,准确地找到原始的私有设备。