广播分两种: 255.255.255.255 ,称为全广播,由于会被路由器禁止传输,所以也叫本地网络广播。
另一种是所有的主机为都为 1 的广播,例如: 192.168.1.255/24
这种广播路由器默认是可以转发的。            
ip directed-broadcast
或者是 no ip directed-broadcast ,就是允许或者禁止这种广播的转发。                       
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
no   ip   directed-broadcast 的一个作用是防止恶意***。 一个身在千里之外的***者,可以向该网的 directed-broadcast 地址发包,到了该网段的边界路由器这儿,如果这个路由器没有关闭该选项,则会向该段内所有的其它主机(或者网络设备)发送该包,造成大量的流量。  
  directed-broadcast
现在基本上所有的路由器都是默认关闭的。
 
R1(S1/0)---------(S2/0)R2(E0/0)----------(E0/0)R3
<!--[if !vml]-->


<!--[endif]-->

Figure 8 IP 直播

    默认情况下,广播数据报文是没法穿过路由器传播的,有这么一些应用,向处在一个广播域的全部主机发送广播,但是发送者并不处在这个广播域内,这个时候,希望有一种能够使用单播数据报文穿过路由网络,但到达目的网络时,以广播方式发放(这种应用一般可视为有 去无回,大都是无连接的UDP应用)。IP直播在IOS里面广泛被支持。

    以下配置,R3就是处在接收广播域内的一个成员,而R1是发送者,而R2正是一个将单播转换为广播的路由器。使用OSPF保持路由连通,环回口在这个实验并无实质应用,OSPF的数据报为组播224.0.0.5,在debug调试时,最好过滤掉输出这类信息。

R1

!

hostname R1

!

interface Loopback0

ip address 1.1.1.1 255.255.255.0

 ip ospf network point-to-point

!

interface Serial1/0

 ip address 12.1.1.1 255.255.255.0

 clockrate 64000

!

router ospf 10

 router-id 1.1.1.1

network 0.0.0.0 255.255.255.255 area 0

!

R2

!

hostname R2

!

interface Loopback0

 ip address 2.2.2.2 255.255.255.0

 ip ospf network point-to-point

!

interface Ethernet0/0

 ip address 10.1.1.2 255.255.255.0

!

interface Serial2/0

 ip address 12.1.1.2 255.255.255.0

!

router ospf 10

 router-id 2.2.2.2

 network 0.0.0.0 255.255.255.255 area 0

!

R3

!

hostname R3

!

interface Loopback0

 ip address 3.3.3.3 255.255.255.0

 ip ospf network point-to-point

!

interface Ethernet0/0

 ip address 10.1.1.3 255.255.255.0

!

router ospf 10

 router-id 3.3.3.3

 network 0.0.0.0 255.255.255.255 area 0

!

监视和测试配置

路由器可以转发主机位全为 1 的目的地址,对于中间路由器,转发数据报文,只检查网络位,因此这些数据报文在到达最后 1 跳时,转发和普通数据包无异:

1) 打开 R2 R3 的调试开关

R2(config)#access-list 101 permit icmp any any

R2#debug ip packet 101

IP packet debugging is on for access list 101

 

以上定义访问列表的意义是调试只输出 ICMP 相关数据包,这样可以避免 OSPF hello 干扰。

 

2 )打开 R2 Ethernet0/0 接口转发直播

 

R2(config)#int e0/0

R2(config-if)#ip directed-broadcast

 

3 )在 R1 ping 10.1.1.0/24 目标网段,发起一个主机位全为 1 的地址。

 

R1#ping 10.1.1.255

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.255, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/20/32 ms

 

4) 查看R2的调试输出,关键部分为粗体显示:

 

*Jul 25 20:57:03.879: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), g=255.255.255.255, len 100, forward directed broadcast

*Jul 25 20:57:03.879: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), len 100, rcvd 5

*Jul 25 20:57:03.879: IP: s=12.1.1.2 (local), d=12.1.1.1 (Serial2/0), len 100, sending

*Jul 25 20:57:03.899: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), g=255.255.255.255, len 100, forward directed broadcast

(以下重复,输出省略)

 

可见R2已经将数据报文转为广播方式,向10.1.1.0/24所在接口转发。

 

5) 查看R3调试输出,关键部分为粗体显示:

 

*Jul 25 20:59:06.079: IP: s=12.1.1.1 (Ethernet0/0), d=255.255.255.255, len 100, rcvd 2

*Jul 25 20:59:06.079: IP: s=10.1.1.3 (local), d=12.1.1.1 (Ethernet0/0), len 100, sending

*Jul 25 20:59:06.099: IP: s=12.1.1.1 (Ethernet0/0), d=255.255.255.255, len 100, rcvd 2

*Jul 25 20:59:06.099: IP: s=10.1.1.3 (local), d=12.1.1.1 (Ethernet0/0), len 100, sending

*Jul 25 20:59:06.119: IP: s=12.1.1.1 (Ethernet0/0), d=255.255.255.255, len 100, rcvd 2

*Jul 25 20:59:06.119: IP: s=10.1.1.3 (local), d=12.1.1.1 (Ethernet0/0), len 100, sending

*Jul 25 20:59:06.139: IP: s=12.1.1.1 (Ethernet0/0), d=255.255.255.255, len 100, rcvd 2

*Jul 25 20:59:06.139: IP: s=10.1.1.3 (local), d=12.1.1.1 (Ethernet0/0), len 100, sending

*Jul 25 20:59:06.167: IP: s=12.1.1.1 (Ethernet0/0), d=255.255.255.255, len 100, rcvd 2

*Jul 25 20:59:06.167: IP: s=10.1.1.3 (local), d=12.1.1.1 (Ethernet0/0), len 100, sending

 

    R3 收到广播数据报文,并以单播方式应答ping

 

6) 关闭R2Ethernet0/0接口直播

 

R2(config)#interface ethernet 0/0

R2(config-if)#no ip directed-broadcast

 

7)R1 再次发起ping 目标网段10.1.1.0/24,主机位为全为1

R1#ping 10.1.1.255

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.255, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 20/20/20 ms

 

8) 查看R2调试输出:

 

*Jul 25 21:05:22.071: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), len 100, rcvd 5

*Jul 25 21:05:22.071: IP: s=12.1.1.2 (local), d=12.1.1.1 (Serial2/0), len 100, sending

*Jul 25 21:05:22.099: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), len 100, rcvd 5

*Jul 25 21:05:22.099: IP: s=12.1.1.2 (local), d=12.1.1.1 (Serial2/0), len 100, sending

*Jul 25 21:05:22.131: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), len 100, rcvd 5

*Jul 25 21:05:22.131: IP: s=12.1.1.2 (local), d=12.1.1.1 (Serial2/0), len 100, sending

*Jul 25 21:05:22.159: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), len 100, rcvd 5

*Jul 25 21:05:22.159: IP: s=12.1.1.2 (local), d=12.1.1.1 (Serial2/0), len 100, sending

*Jul 25 21:05:22.191: IP: s=12.1.1.1 (Serial2/0), d=10.1.1.255 (Ethernet0/0), len 100, rcvd 5

*Jul 25 21:05:22.191: IP: s=12.1.1.2 (local), d=12.1.1.1 (Serial2/0), len 100, sending

 

只有单播的应答,R2使用接收直播的接口应答(即S2/0),R2没有再将直播数据报转换成广播方式向Ethernet0/0发送。

 

    9) 查看R3调试输出:

 

    R3 没有调试输出,原因如上,R2关闭直播后,在对应接口,不再转换直播地址为广播发送。

 

默认情况下,router不转发目的地址255.255.255.255的广播,但是转发子网内广播,比如192.168.1.255
为什么要关闭这个功能,举例说明:routerA连接一个外网,内网中有500台主机(ip172.16.0.0/23),如果有一个Hack发出一个Ping包,目的IP172.16.255.255,而源IP地址是另外一个主机的IP地址,如果router将这个数据包转发进内网,会发生什么?——内网的500台主机都会向那个可怜的主机返回的Ping的响应,这个是什么***就不用我再说下去了吧