这里是Themberfue
上篇文章我们简单介绍了 IP 协议 的首部字段的含义,这节课我们将继续深入 IP 协议~~~
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发现(DHCP Discover)
- 当客户端(例如一台电脑或手机)首次连接网络时,它不知道可用的IP地址。
- 客户端发送一个 DHCP Discover 广播消息,寻找局域网内的 DHCP服务器。
DHCP提供(DHCP Offer)
- 网络中的 DHCP服务器 收到广播后,从其IP地址池中挑选一个可用的IP地址,并发送一个 DHCP Offer 消息。
- 该消息中包含了可分配的IP地址、子网掩码、网关、DNS服务器等配置信息,以及租约时间(lease time)。
DHCP请求(DHCP Request)
- 客户端从收到的多个DHCP Offer中选择一个(通常第一个响应的),然后发送一个 DHCP Request 消息给选定的 DHCP服务器,确认请求该IP地址。
- 这个消息也会被其他 DHCP服务器 收到,从而让它们知道客户端选择了某个服务器的配置。
DHCP确认(DHCP ACK)
- 选定的 DHCP服务器 收到客户端的请求后,发送一个 DHCP ACK 消息,确认IP地址分配。
- 客户端收到ACK后,就正式使用该IP地址,并根据租约时间使用该地址,直到租约到期或续租。
- **❓**上述提到的租约是什么
- 租约(Lease) :动态IP分配并非永久性的。分配给客户端的IP地址有一个租用期限(lease time)。在租期结束前,客户端可以发起续租请求;如果续租失败或客户端离网,DHCP服务器会将该IP地址收回,供其他设备使用。
- 租期管理:租期机制确保了IP地址资源的有效利用,并防止由于设备长时间不更新状态而造成的资源浪费。
- 集中管理:DHCP服务器集中管理网络中的IP地址池和相关配置信息,一旦IP地址发生冲突或网络结构变化,管理员可以统一调整设置。
💎凡事皆有优劣,使用 动态 IP 分配也不例外
优点
自动化管理:客户端自动获取IP地址,简化了网络配置工作。
灵活性:IP地址可以在设备间动态分配,适应设备频繁加入或离开的情况。
降低错误:避免手动配置可能导致的地址冲突和错误配置问题。
集中控制:管理员可以通过 DHCP服务器 集中管理整个网络的IP地址和其他网络参数(如DNS、网关)。
缺点
依赖中心服务器:如果DHCP服务器故障或不可达,新设备可能无法获得IP地址,导致网络接入受阻。
租约管理带来的额外开销:租期到期后,设备需要发起续租操作,增加了网络交互次数。
安全问题:DHCP本身缺乏认证机制,可能受到攻击者伪装的DHCP服务器(如DHCP欺骗)的威胁。
DHCP 的应用场景非常丰富
家庭网络:家用路由器内置DHCP服务器,自动为连接的电脑、手机等设备分配IP地址。
企业网络:企业内部网络通过专用的DHCP服务器分配IP地址,并结合DNS、网络管理工具实现集中控制。
移动网络:移动运营商利用动态IP分配管理大量的用户终端连接。
公共Wi-Fi热点:在咖啡馆、机场等场所,公共Wi-Fi通常也依赖DHCP为访问者分配临时IP地址。
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 + 源端口 + 目标 IP + 目标端口 + 协议类型
- 这样,即使两个设备的 IP 和端口相同,但访问的目标服务器不同,NAT 仍然可以区分。
- 3. 使用多个 公网IP
- 在大规模 NAT 设备(如 ISP 级 CGNAT)中,如果单个公网 IP 的端口资源耗尽,NAT 设备可能会分配多个公网 IP 来均衡负载。
❓端口号耗尽怎么办
由于 端口号范围只有 0-65535,如果 NAT 设备的公网 IP 过少,而同时连接数过多,可能会导致端口资源耗尽。解决方案:
引入多个公网 IP(负载均衡 NAT)。
回收闲置端口(超时回收 NAT 映射)。
限制 NAT 连接数(部分 ISP 会限制单个用户的 NAT 连接数)。
优点
- ✅ 节省 IPv4 地址:多个设备共享一个公网 IP。
- ✅ 增强内网安全性:外部无法直接访问内网设备,提供一定的防火墙功能。
- ✅ 灵活的 IP 管理:内网 IP 规划更加自由,无需公网 IP 资源。
缺点
- ❌ 破坏端到端通信:NAT 修改了 IP 地址,影响 P2P 应用、VoIP、在线游戏等需要直接通信的服务。
- ❌ 增加网络延迟:NAT 设备需要处理地址转换,增加了一定的延迟和计算开销。
- ❌ 影响某些协议 :如 FTP、SIP(VoIP 语音协议)等,需使用 NAT 穿透技术 才能正常工作。
NAT 穿透(NAT Traversal)
由于 NAT 阻止了外部网络主动访问内网设备,有些应用(如 P2P 下载、VoIP)需要额外技术来穿透 NAT。
常见 NAT 穿透技术
STUN(Session Traversal Utilities for NAT):让设备知道自己在公网的 NAT 地址,适用于对称 NAT 以外的情况。
TURN(Traversal Using Relays around NAT):使用中继服务器转发数据,适用于严格 NAT 网络,但增加了服务器负担。
UPnP(通用即插即用):允许应用程序向路由器请求打开端口,实现内外部通信(但存在安全隐患)。
NAT-PMP(NAT 端口映射协议):Apple 提出的协议,可动态申请端口映射,类似 UPnP。
- 具体解决 IP 协议 更多内容,我们下节再见~~~
- 毕竟不知后事如何,且听下回分解
- ❤️❤️❤️❤️❤️❤️❤️