为了便于大家理解有关IP定向广播的知识,我画了一个拓扑图,希望对您有帮助。
router B的f0/0收到一个目的地为 192.168.2.255的数据包。因为这个包来自其他的网段,所以路由器B认为它是一个定向广播。在默认情况下,路由器直接把这个包丢弃。如果命令 ip directed-broadcast 在f0/1接口上配置了,路由器B就会转发这个包。
让我们假设这个包是从 Host A发起的。Host A 的TCP/IP协议栈并不知道这是一个IP定向广播,因为这个网段并不在Host A 上。Host A发送这个包的过程是这样的:
Source MAC: Host A
Source IP: 10.1.1.2
Destination MAC: Router A F0/0
Destination IP: 192.168.2.255
Router A 收到这个包后,因为Router A 也不和这个192.168.2.255直连,所以Router A并不知道这是一个IP定向广播,所以Router A像对待普通单播一样转发它。
Source MAC: Router A f0/1
Source IP: 10.1.1.2
Destination MAC: Router B F0/0
Destination IP: 192.168.2.255
当这个包到达router B 的时候,因为router B和192.168.2.255这个网段直连,所以router B 确定这是一个IP直接广播。如果 router B的F0/1接口配置了 ip directed-broadcast,那么router B就会转发这个帧。
Source MAC: Router B F0/1
Source IP: 10.1.1.1
Destination MAC: FFFF:FFFF:FFFF
Destnaion IP: 192.168.2.255
瞧,IP直接广播就这样产生了。
如果route B在f0/1收到了一个去往 192.168.2.255的ip直接广播。这个路由器会毫不犹豫的直接丢弃这个包。因为这个ip直接广播产生于本地网段,并且目标是本地网段,路由器根本不需要转发它。
我们假设host D产生了一个去往 192.168.2.255的数据包,host D 会这样处理这个包:
Source MAC: Host D
Source IP: 192.168.2.2
Destination MAC: FFFF:FFFF:FFFF
Destination IP: 192.168.2.255
让我们看看交换机这个适合是怎么工作的吧,交换机发现目的地址是FFFF:FFFF:FFFF,交换机并不能学习到这个地址,所以交换机从接受到端口以外的其他端口都发出这个数据包。
当然,Router B的f0/1收到了这包,看到目的mac地址,确定它是一个广播。然后,router B继续查看目标IP地址,发现数据包只是一个本地子网的IP定向广播,路由器马上丢弃了这个包,并不会转发它。
希望这些对您有所帮助。
另外,还有一个例外,如果在路由器上配置了 helper-address,路由器就会把收到的本地广播变成去往helper-address的单播包。不过,helper-address只工作于某些特定的UDP广播中。 记住,helper-address只工作在案例二中,也就是只把本地子网中的ip定向广播做特定的转发。