Cisco ip helper-address 翻译究竟是如何工作的?

网络工程 思科 思科-ios cisco 命令
2021-07-25 02:30:36

谁能解释一下从广播到单播的翻译究竟是如何工作的?IP 数据包中发生了什么变化或修改?我已经阅读了它的工作原理并为我的网络正确配置了它,但仍然存在主要问题。

示例:我想创建从整个子网 192.168.1.0/24(R1) 到 192.168.2.0/24(R2) 的 IP 助手为了管理它,我配置了:

R1:
- ip forward-protocol 10,
- int vlan100
    ip addr 192.168.1.254
    ip helper-address 192.168.2.255

R2:
- access-list 200 permit udp 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 10
- int vlan200
    ip addr 192.168.2.254
    ip directed-broadcast 200

现在,当我查看 Wireshark 时,它看起来像:PCA 将数据包发送到 192.168.2.255,源为 192.168.1.10 ,这里的问题是如何将 192.168.2.255 转换为单播? 在 R2,它是源 192.168.1.10 和目标 255.255.255.255 与 ff:ff:ff:ff:ff:ff

2个回答

没有数据包的翻译或修改。

路由器接收包含 DHCP 请求的广播数据包。然后它向配置的 DHCP 服务器发送一个新的单播数据包,代表主机请求租用。其中包含主机的 MAC 地址。

DHCP 服务器将响应发送到路由器。然后路由器向发起者发送一个单播数据包(因为它知道它的 mac 地址),依此类推。

在人类语言中,它类似于:

  • 主持人:大喊“你好,我是乔,我需要一个IP地址”
  • 路由器:ear Joe 并发送一个呼叫到 DHCP “Joe 需要一个 IP 地址,你能给我一个吗?”
  • DHCP:响应路由器“当然,我可以给 Joe IP 地址 A”
  • 路由器:回复乔“你可以得到IP地址A,你可以吗?” 等等...

我将根据我认为从您的描述中理解的内容来回答,即:

  • R1 有一个直接连接的子网 192.168.1.254(我假设 /24)
  • R2 有一个直接连接的子网 192.168.2.254(我假设 /24)
  • R1 和 R2 之间存在某种形式的连接,这与这两个子网不同。
  • 与 R1 相邻,有一个发送方 (192.168.1.10),使用 udp 端口​​ 10 向 192.168.1.255 或 255.255.255.255 广播“某事”。
  • 目标:您希望发送方的 udp/10 广播被 R1 接收,转发到 R2,并作为广播在 R2 的附属子网中传播。

根据您提供的配置片段,将发生以下情况:

  • R1 上的 PC1 将 udp/10 数据包广播到 255.255.255.255 或 192.168.1.255(src:192.168.1.10,dst ...255)
  • 在 R1 上,interface vlan100withip helper 192.168.2.255将接收该广播(因为它已启用在 udp/10 上工作,凭借ip forward protocol 10
  • R1 会将其重写为目标地址为 192.168.2.255 的单播数据包,并将根据其路由表发送该单播该数据包现在具有 Src 192.168.1.10 和 Dst 192.168.2.255。如果 192.168.2.255 恰好是该远程子网“其他地方”中的广播地址,则 R1 没有任何知识(并且不需要它)
  • R2 将在其面向 R1 的接口上接收此数据包(仍然使用 Src 192.168.1.10 和 Dst 192.168.2.255)
  • R2,通过查找路由表(好吧,也许是 CEF 表)将决定这个数据包需要通过interface vlan 200.
  • R2 将检测目标地址是给定子网的广播地址,将检查ip directed broadcast [ACLofAllowedSourceIPs]192.168.1.10 是否存在并检查 192.168.1.10 是否在该 ACL 中
  • 如果检查成功,R2 会将数据包的目标 IP 地址重写为 255.255.255.255(并将 Dst MAC重写为 ff:ff:ff:ff)并通过其interface vlan200. 你就在那里。