这里是Themberfue
DHCP
- 上节课我们提到,IPv4 使用点分十进制的方式管理地址,但是 IPv4 最多分配43亿个地址,早在2019年,IPv4 的地址就已经全部分配完了,为了解决这些问题,人们想到了一系列方法:动态IP分配、NAT、IPv6......
- 动态IP分配:每台需要使用网络的机器的地址并不是每时每刻都是该台机器的,如果该机器未在使用网络,在不分配 IP 地址,此时就会空出一个,把这空出来的给另一个正在使用网络的机器,DHCP 便充当该角色,但 DHCP 的功能并非只有这个。
- ✨DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态 IP 分配指的是通过自动化方式(通常由专门的服务器完成)给网络中的设备分配 IP 地址,而不是手动为每台设备静态配置 IP 地址。这种方式主要通过 DHCP(动态主机配置协议) 来实现。下面详细介绍动态 IP 分配的原理、过程和优缺点。
- 在大型网络中,手动为每台设备配置IP地址既繁琐又容易出错;而设备经常加入或离开网络,IP 地址 资源需要灵活管理。动态 IP 分配使得网络管理员能够集中管理 IP 地址池,设备接入网络时自动获得 IP 地址,降低维护成本,提高网络的可管理性与灵活性。
- 动态IP分配通过 DHCP 协议 自动为客户端分配 IP 地址 及相关网络配置信息,极大地简化了网络管理工作。它通过租约机制确保 IP 地址 资源的高效利用,同时为设备频繁加入和退出网络提供灵活支持。尽管存在对中心服务器依赖和安全问题,但通过恰当的管理和防护措施,动态 IP 分配已成为现代网络的标准配置方式。
DHCP协议的主要步骤
- 网络中的 DHCP服务器 收到广播后,从其IP地址池中挑选一个可用的IP地址,并发送一个 DHCP Offer 消息。
- 该消息中包含了可分配的IP地址、子网掩码、网关、DNS服务器等配置信息,以及租约时间(lease time)。
- 客户端从收到的多个DHCP Offer中选择一个(通常第一个响应的),然后发送一个 DHCP Request 消息给选定的 DHCP服务器,确认请求该IP地址。
- 这个消息也会被其他 DHCP服务器 收到,从而让它们知道客户端选择了某个服务器的配置。
- ❓上述提到的租约是什么
- 租约(Lease):动态IP分配并非永久性的。分配给客户端的IP地址有一个租用期限(lease time)。在租期结束前,客户端可以发起续租请求;如果续租失败或客户端离网,DHCP服务器会将该IP地址收回,供其他设备使用。
- 租期管理:租期机制确保了IP地址资源的有效利用,并防止由于设备长时间不更新状态而造成的资源浪费。
- 集中管理:DHCP服务器集中管理网络中的IP地址池和相关配置信息,一旦IP地址发生冲突或网络结构变化,管理员可以统一调整设置。
💎凡事皆有优劣,使用 动态 IP 分配也不例外
优点
灵活性:IP地址可以在设备间动态分配,适应设备频繁加入或离开的情况。
降低错误:避免手动配置可能导致的地址冲突和错误配置问题。
缺点
租约管理带来的额外开销:租期到期后,设备需要发起续租操作,增加了网络交互次数。
DHCP 的应用场景非常丰富
NAT
- 单纯靠动态 IP 分配解决 IPv4 地址短缺的问题是不够的。目前,NAT 机制才是解决 IPv4 地址短缺的可靠方案。
- 在进入 NAT 前,学计算机的宝宝们有没有这样一个疑惑,我知道你的 IP 地址,你也知道我的,那我和你为什么不能直接通信,比如联机游戏不能直接连接,而是需要听过某些方法才可以一起娱乐的玩耍,这就是 NAT 机制造成的了~~~
✨NAT(Network Address Translation,网络地址转换) 是一种用于 IPv4 网络的技术,主要用于在私有网络(如家庭、公司局域网)与公有网络(如互联网)之间进行 IP 地址转换。它允许多个私有 IP 通过一个或多个公网 IP 访问互联网,从而缓解 IPv4 地址耗尽的问题,并提供一定的安全性。
✨NAT 机制将 IP 分为 公网IP/外网IP 和 私网IP/内网IP,私网IP 在同一个局域网下不可重复,但在不同的局域网下可以重复,其表示范围通常在 10.*、172.16-172.31.*、192.168.*。公网IP 则必须是唯一的,除了 私网IP 表示的范围除外,其他都可以用来表示 公网IP。
- 在同一局域网下的设备,任何设备之间都是可以直接通信的,其本身不受 NAT 机制的限制。
- 拥有 公网IP 的设备,每个设备之间也是可以直接通信的,因为其本身就是暴露在公共场合下,同样不受 NAT 机制的影响。
- 处于不同局域网下的设备,设备A处于局域网A,设备B处于局域网B,设备A 和 设备B 是不可以直接进行通信的,这便是 NAT 机制的限制,如需通信,则需通过某些特殊手段才可进行通信。
- 公网设备A 是不可以直接访问 私网设备B 的,如需让 公网设备 访问你的 私网设备,同样需要某些特殊手段。
- 私网设备如何访问公网设备呢?通过网络地址映射,内网设备 192.168.100 访问 百度(220.181.38.148),NAT 会把数据包的源 IP 从 192.168.1.100 改为你的设备绑定的 公网 IP(例如 203.0.113.1)。
- 路由转发过程中会经过多个节点,这些节点可能会是多个 公网IP,其会进行多次地址转换吗?答案是不会的,在转换前,它会检查你的 源IP 是否为 私网IP,否则不进行 网络地址映射。
- 返回的数据如何找到被替换之前的 源IP 呢?通过端口号查找,例如:
- 192.168.1.100:5001 → 203.0.113.1:60001 → 220.181.38.148:80
- 192.168.1.101:5002 → 203.0.113.1:60002 → 220.181.38.148:80
- NAT 设备维护一个 NAT 映射表,记录私有 IP、端口号和公网 IP、端口号的对应关系。服务器返回数据时,NAT 设备根据 NAT 映射表,将目的 IP 和端口号修改回私有 IP 和端口号,并将数据包转发回正确的内网设备。
❓端口号是否会冲突
- 在 NAT(网络地址转换) 中,如果多个内网设备同时访问外部网络,并且它们的源端口号相同,NAT 设备如何处理端口冲突呢?
- 如果两个内网设备使用相同的源端口访问 相同的目标 IP 和端口,NAT 设备会调整映射,避免冲突。
- 1. 修改源端口:NAT 设备会动态修改源端口,确保映射唯一。
- 例如:
- 192.168.1.100:5000 → 203.0.113.1:60001 → 220.181.38.148:80
- 192.168.1.101:5000 → 203.0.113.1:60002 → 220.181.38.148:80
- NAT 设备在 NAT 映射表中记录新的端口号,并在返回数据时修改回原来的端口号。
- 2. 使用五元组映射
- 有些高级 NAT 设备不仅使用四元组,还会记录协议类型(TCP/UDP),实现五元组映射:
- 这样,即使两个设备的 IP 和端口相同,但访问的目标服务器不同,NAT 仍然可以区分。
- 3. 使用多个 公网IP
- 在大规模 NAT 设备(如 ISP 级 CGNAT)中,如果单个公网 IP 的端口资源耗尽,NAT 设备可能会分配多个公网 IP 来均衡负载。
❓端口号耗尽怎么办
由于 端口号范围只有 0-65535,如果 NAT 设备的公网 IP 过少,而同时连接数过多,可能会导致端口资源耗尽。解决方案:
- 引入多个公网 IP(负载均衡 NAT)。
- 回收闲置端口(超时回收 NAT 映射)。
- 限制 NAT 连接数(部分 ISP 会限制单个用户的 NAT 连接数)。
优点
缺点
- ❌ 破坏端到端通信:NAT 修改了 IP 地址,影响 P2P 应用、VoIP、在线游戏等需要直接通信的服务。
- ❌ 增加网络延迟:NAT 设备需要处理地址转换,增加了一定的延迟和计算开销。
- ❌ 影响某些协议:如 FTP、SIP(VoIP 语音协议)等,需使用 NAT 穿透技术 才能正常工作。
NAT 穿透(NAT Traversal)
由于 NAT 阻止了外部网络主动访问内网设备,有些应用(如 P2P 下载、VoIP)需要额外技术来穿透 NAT。
常见 NAT 穿透技术
- 具体解决 IP 协议 更多内容,我们下节再见~~~
- 毕竟不知后事如何,且听下回分解
- ❤️❤️❤️❤️❤️❤️❤️