1. 不手填 IP,主机怎样接入网络
上一篇已经整理了设备视图、接口配置和保存方法。这一篇以第九天笔记为主,继续把 DHCP 与路由串起来。
手动给两台主机填地址并不麻烦,但数量一多,就容易出现重复地址、掩码填错、网关忘填等问题。
DHCP 可以统一提供 IP 地址、子网掩码、默认网关、DNS 服务器等参数。但自动获得地址,只是接入过程的一部分:后续能否跨网段通信,还要看路由和服务状态。
2. 第一次获取地址:DORA 四个阶段
DHCPv4 使用 UDP,服务器端口为 67,客户端端口为 68。以下描述客户端与服务器位于同一广播域、没有中继的普通初始分配过程。
客户端 DHCP 服务器 │── Discover:寻找服务器 ───────────>│ │<─ Offer:提供候选配置 ─────────────│ │── Request:选择一个方案 ──────────>│ │<─ ACK:确认租约与配置 ─────────────│四个名字的首字母构成 DORA。
2.1 Discover:还没有地址,先广播
应用层:DHCP DiscoverUDP: 源端口 68 → 目的端口 67IPv4: 0.0.0.0 → 255.255.255.255以太网:客户端 MAC → FF:FF:FF:FF:FF:FF客户端没有可用地址,也不知道服务器在哪里,所以可以先在本地广播域中寻找。
2.2 Offer:服务器提供一个候选方案
服务器返回候选 IP、租期以及其他配置。Offer 并不代表客户端已经完成了租约确认。
回复可能是广播,也可能根据客户端状态和标志使用单播。笔记中“目的 IP 是准备分配的地址”描述的是特定单播情形,不能套到所有 Offer。
2.3 Request:告诉大家选择了谁
初始选择阶段,客户端通常广播 DHCP Request,携带所选服务器标识及请求地址。这样其他提供过 Offer 的服务器也能知道这次没有被选择。
2.4 ACK:确认之后再应用配置
服务器通过 ACK 确认租约和参数,客户端再完成必要的地址检查并使用配置。如果发现地址冲突,客户端还可以发送 DHCP Decline,重新开始获取过程。
DHCP 的广播、单播选择与状态有关,进一步细节见 RFC 2131。
3. 地址有租期,但租期不固定为 24 小时
课堂使用 24 小时举例,这不是 DHCP 协议统一规定的租期。
在服务器没有另行指定续约和重绑定时间时,常用默认比例是:
| 时点 | 默认位置 | 以 24 小时租期为例 | 主要行为 |
|---|---|---|---|
| T1 | 租期的 50% | 12 小时 | 向原服务器单播请求续约 |
| T2 | 租期的 87.5% | 21 小时 | 未续约成功时广播请求重绑定 |
| 到期 | 租期结束 | 24 小时 | 若仍未获得有效租约,停止使用该地址 |
如果在 T1 后成功续约,就按新确认的租期继续,不需要强行等到旧租期的 T2。
客户端重启后如果记得以前的地址,也可能先通过 DHCP Request 验证旧地址是否还能使用。这和首次获取、正常续租是不同状态,不能理解成“以后永远只发两个报文”。这些状态与计时规则见 RFC 2131 第 4.4 节。
4. 在 eNSP 中准备一个双网段练习
下面给出根据课堂配置补齐的独立练习。R1 两侧都是普通三层以太网接口,交换机端口使用各自默认的同一 VLAN 即可,两侧交换机之间不另接链路。
PC A,自动获取地址 │ LSW1 │R1 GE0/0/0:192.168.1.1/24 R1R1 GE0/0/1:192.168.2.1/24 │ LSW2 │PC B:192.168.2.10/24,网关 192.168.2.1规划如下:
| 项目 | 设置 |
|---|---|
| DHCP 所在网段 | 192.168.1.0/24 |
| DHCP 客户端网关 | 192.168.1.1 |
| 保留地址 | 192.168.1.1~192.168.1.20 |
| 动态分配范围 | 192.168.1.21~192.168.1.254 |
| DNS 参数示例 | 114.114.114.114、8.8.8.8 |
| 租期 | 明确配置为 1 天 |
DNS 地址沿用课堂示例,演示 DHCP 如何下发参数。这个封闭拓扑没有配置互联网出口,所以即便 PC 收到了这些 DNS 地址,也不代表能访问它们或解析公网域名。
5. 全局地址池配置:创建后还要让接口使用它
从 R1 用户视图开始:
system-viewsysname R1dhcp enable
interface GigabitEthernet 0/0/0ip address 192.168.1.1 255.255.255.0undo shutdownquit
interface GigabitEthernet 0/0/1ip address 192.168.2.1 255.255.255.0undo shutdownquit
ip pool LAN1network 192.168.1.0 mask 255.255.255.0gateway-list 192.168.1.1excluded-ip-address 192.168.1.2 192.168.1.20dns-list 114.114.114.114 8.8.8.8lease day 1 hour 0 minute 0quit
interface GigabitEthernet 0/0/0dhcp select globalquitreturngateway-list 指定的网关地址不参与普通动态分配,因此额外排除从 .2 开始;.0 与 .255 本身分别是这个子网的网络地址和广播地址。
这几组命令的职责要分开:
dhcp enable:全局启用 DHCP 功能。ip pool LAN1:创建并进入全局地址池。network、gateway-list、dns-list:描述要提供的参数。excluded-ip-address:为固定地址设备保留空间。dhcp select global:让当前接口使用全局地址池方式提供服务。
尤其是最后一步:只创建地址池,不代表接入接口已经开始给客户端分配地址。 命令组织与全局地址池验证方式可参照华为 AR 的 DHCP Server 配置示例。
6. 验证时先看分配,再看通信
把 PC A 改为通过 DHCP 获取地址。若没有立即发起请求,可使用模拟终端提供的重新获取功能;Windows 客户端则可以使用 ipconfig /renew。
在 R1 上检查:
display ip interface briefdisplay ip pool name LAN1display arpdisplay ip routing-table预期应该检查到:
- 两个接口都是
up/up。 - PC A 获得
.21~.254中未被占用的地址,不要求每次都一定拿到.21。 - PC A 掩码为
/24,网关为192.168.1.1,DNS 参数与池中配置一致。 - 地址池中能看到相应的地址使用情况。
然后分两步测试:
ping 192.168.1.1ping 192.168.2.10第一步检查到本地网关的通信,第二步再验证跨网段路径。PC B 必须配置正确的网关,否则请求可能到达,回复却回不来。
实验完成后,在 R1 用户视图执行 save,按提示保存配置。
7. 路由表中的 Direct 从哪里来
查看:
display ip routing-table如果两个三层接口已经配置地址并正常工作,预期会有以下两个网段的直连路由。这里仅列关键字段,实际输出还可能包含本机地址等 /32 条目。
| Destination/Mask | Proto | 对应出接口 |
|---|---|---|
| 192.168.1.0/24 | Direct | GigabitEthernet0/0/0 |
| 192.168.2.0/24 | Direct | GigabitEthernet0/0/1 |
Direct 表示直连。对于这个拓扑,R1 已经直接连接两侧网络,不需要额外配置静态路由才能在两侧转发。
常见字段可以这样看:
| 字段 | 含义 |
|---|---|
| Destination/Mask | 这条路由覆盖哪些目的地址 |
| Proto | 路由来源,例如 Direct、Static 或动态路由协议 |
| Pre | 路由优先级,参与路由选择 |
| Cost | 相应路由协议使用的度量值 |
| NextHop | 下一跳信息,直连条目的显示方式有其自身含义 |
| Interface | 发出数据的接口 |
对远端网段,下一跳常是相邻路由器的接口地址。但不能把所有 NextHop 都解释成“另一台路由器”:直连路由没有必要先交给第二台路由器,设备输出也可能显示本地接口地址。
8. 转发先找最具体的匹配
假设某台设备已经安装以下路由:
192.168.0.0/16 → 方向 A192.168.2.0/24 → 方向 B0.0.0.0/0 → 默认出口访问 192.168.2.10 时,三条都能覆盖,但 /24 最具体,应选择方向 B,这叫最长前缀匹配。
只有没有更具体的匹配时,默认路由才发挥作用。没有任何匹配路由,也没有默认路由时,就不能继续按普通 IP 路由转发。
还要区分两件事:对相同前缀的候选路由,协议与优先级等因素参与决定安装哪些路由;对已经用于转发的不同长度前缀,查找目的地时使用最长匹配。
NOTE有匹配路由不等于一定转发成功。出口状态、ARP 解析、TTL、MTU、ACL 等仍可能影响结果。因此,笔记里的“有路由就无条件转发”应理解为入门流程的简化描述。
9. DHCP 成功与路由成功,分别说明什么
PC A 访问 PC B 时,可以沿着完整路径检查:
DHCP 给 A 提供地址、掩码和网关 ↓A 判断 B 不在本地网段 ↓A 通过 ARP 获取 192.168.1.1 的 MAC ↓R1 查目的地址 192.168.2.10,匹配右侧直连路由 ↓R1 通过 ARP 找到 B,重新封装以太网帧 ↓B 用自己的网关把回复送回 A 所在网段如果 DHCP 服务器在另一个广播域,普通路由器不会自动转发 Discover 广播,通常需要配置 DHCP Relay。这个练习中 R1 自己就是本地服务器,所以不需要中继。
排查时可按下面的现象缩小范围:
| 现象 | 检查方向 |
|---|---|
| 一直拿不到地址 | 链路与 VLAN、DHCP 开关、地址池、接口选择、地址是否耗尽 |
| 地址正确,但网关错误 | 地址池 gateway-list、是否存在其他 DHCP 服务器 |
| 能 Ping 网关,不能 Ping 另一侧 | 两侧接口、目标主机配置、回程网关和访问限制 |
| 能访问 IP,不能解析域名 | DNS 参数、到 DNS 的路由、DNS 服务本身 |
至此,九天笔记中最主要的概念已经连在了一起:二层交付依靠 MAC,IPv4 用前缀确定网络范围,传输层把数据交给应用端点,DHCP 提供接入参数,路由器负责跨网段转发。