2022-11-15 · 9분
网络学习 2 — DNS、DHCP 与 DMVPN
实操:用 Debian 搭建 DNS(bind9)和 DHCP 服务器,再用 mGRE/DMVPN 和 NHRP 组建中心-分支网络(关闭 EIGRP 水平分割),最后经 FTP 通过路由器 CA 签发 SSL 证书。
2022-02-02 · 5분
这篇文章发布已超过两年,内容可能已过时。

拓扑

pc1 配置

pc2
Router(config)#int g0/0
Router(config-if)#ip add 1.0.0.254 255.255.255.0
Router(config-if)#no shut
Router(config-if)#int se0/0/0
Router(config-if)#ip add 200.0.0.1 255.255.255.0
Router(config-if)#no shut
这是(左)路由器 Router2 的配置。只设置普通 IP,接着做 rip 配置。
Router(config)#int g0/0
Router(config-if)#ip add 1.0.3.254 255.255.255.0
Router(config-if)#no shut
Router(config-if)#int se0/0/1
Router(config-if)#ip add 200.0.0.2 255.255.255.0
Router(config-if)#no shut
这是(右)路由器 Router2(1) 的配置。

pc1 →(左)router2

pc2 →(右)Router2(1)

pc1 → pc2
在各自的网络区域内 ping 都能通,但 PC 之间不通。这是因为网络区域不同,所以要通过路由把它们连起来。这里我们将使用动态路由(rip)。
路由协议有很多种,其中之一是 RIP。RIP 配置非常简单且已标准化,因此不论路由器型号兼容性都很好。但它有个缺点:只能在思科设备之间使用。
有一些技术用于防止 RIP 中出现的无限循环。
除此之外还有其他的。有了这些并不意味着就能完全防止环路。
RIPv2
RIP 在传递路由信息时不给出子网掩码信息,遵循有类(classful)方式。子网掩码会依据前 8 位是什么自动决定,从而可能产生问题。为解决这个问题使用 RIPv2。RIPv2 会连同子网掩码信息一起给出,可使用无类(classless)方式,因此以 A 类子网通告时,能把同一网络区分为不同网络。
Router(config)#route rip
Router(config-router)#no auto-summary
Router(config-router)#version 2
Router(config-router)#net 200.0.0.0
Router(config-router)#net 1.0.0.0
这是(左)路由器 Router2 的 RIPv2 配置。
Router(config)#route rip
Router(config-router)#version 2
Router(config-router)#no auto-summary
Router(config-router)#network 1.0.0.0
Router(config-router)#net 200.0.0.0
这是(右)路由器 Router2(1) 的 RIPv2 配置。

pc1 → pc2
现在可以看到 ping 通了。
从 PC1 → PC2 发个 ping,用仿真来确认一下。

在 PC1 查看 PDU
因为是从 PC 出发,所以只存在 Outbound。可以看到 SRC(起点)IP 是 1.0.0.1,DST(终点)IP 是 1.0.3.1。查看 Ethernet2,这里也有 DEST ADDR 和 SRC ADDR,它们就是 mac 地址。但与 IP 不同的是,起点 SRC 与 PC1 的 MAC 地址一致。

PC1 的 MAC 地址

PC2 的 MAC 地址
可以看到 DEST ADDR 与 PC2 的 MAC 地址不同。那么那个 MAC 地址是谁呢?

(左)Router2 的 MAC 地址
可以看到它与(左)Router2 的 MAC 地址一致。那么这个 ping 的第一目的地可以看作(左)Router2。

交换机的 PDU
这是交换机。存在 Inbound 和 Outbound。IP 一样,Ethernet2 看起来也一样。交换机是在数据包更大的范围上、即以网络为单位连接的通信设备。因此 Inbound 和 Outbound 必然相同。

(左)路由器的 Outbound PDU
IP 应该一样,但在 Ethernet2 处变成了 HDLC。路由器出去的端口只有 serial 0/0/0 端口。
什么是 HDLC?
HDLC 是 High-level Data Link Control 协议,在计算机以一对一或一对多连接的环境中提供数据收发功能。
使用 HDLC 协议的主机可分为 3 种形态。分为主站(Primary Station)、从站(Secondary Station)、混合站(Combined Station):主站是发送命令的主机;从站是回复命令响应的主机;混合站据说是同时具备主站和从站功能的主机。
使用 HDLC 协议的帧结构采用位帧方式。使用标记帧起止的标志位(01111110)。

来源:https://copycode.tistory.com/79
看上面的路由器也一样,最开始和最末尾存在 FLAG:0x7E,它同样是二进制的 01111110。

0x7E

(右)Router2(1) Inbound PDU

(右)Router2(1) Outbound PDU
现在在 Outbound 又变回了 Ethernet2。SRC ADDR 自然是这台路由器的 MAC,现在可以确认 DEST ADDR 变成了 PC2 的 MAC 地址。之后同样经过交换机移动到 PC2。

在 PC2 的 Inbound PDU

PC2 的 Outbound PDU
在 Inbound 中从 PC1 到 PC2 的传输完成,接着会从 PC2 传回 PC1。看 Outbound 可以看到 SRC IP 和 DST IP 互换了。这意味着要传回 PC1。相应地可以看到 DEST ADDR 和 SRC ADDR 互换了。以这种形式回到 PC1 后,PC1 的 terminal 上就会显示 ping 成功到达。

PC1 上 ping 到达
不同网段的 PC 之间通信时,可以看到起点是当前出发地的 MAC 地址,终点不是发送 ping 的目标,而是中间那台路由器的 MAC 地址。经路由器移动后,在路由器处它自己的起点又变成其 MAC 地址,此时同一网段里有持目的 IP 的 PC,于是那台 PC 的 MAC 就成了目的地。
我观察了在保持 PDU 中 IP 的源 IP 和目的 IP 不变的同时,Ethernet2 的请求如何变化。感觉挺神奇的。这是我第一次使用仿真。
下面是实操用的 Packet Tracer 文件。(version:8.1.1)
[
rip.pkt
0.05MB
原文(韩语): tistory — 发布于 2022-02-02,已迁移至本博客。本翻译由 AI 协助完成。
…