博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

         这个图解用最简单的拓扑、场景来显示IP – 以太网 多播地址的配置、转换、洪泛、接受、丢弃的过程。案例有两个版本:仿真、图解。图解版本是从仿真截图,并加标注解释,说明步骤的演进。

-         背景:IP用多播IP地址在第三层多播,一个multicast IP address 可以有多个成员,多播数据包会被路由器转发到所有的成员。以太网在第二层也有多播MAC地址,网卡接口除了一个固定的硬件地址 (Unicast MAC), 还可以有几个多播MAC地址 (multicast MAC address)。由于以太网有广播的属性,数据包会被洪泛到所有的以太网接口,网卡接口在收到一个数据包时,把数据包的目的地址和自己的MAC地址比较,有一个相同,就接受此包,否则丢弃。如果几个接口都有同一个多播MAC地址,它们在收到多播包时,都会接受此包,产生了多播的效果。

-         IP-Ethernet 多播地址的关系。IP地址是个逻辑地址,多播数据包会被路由器转发送到多播地址成员所在的子网,如果子网是个以太网,里面有几个节点都是这个多播地址的成员,怎么能够把数据包送到每一个成员呢?这得靠以太网的多播MAC地址机制。但以太网的多播地址是怎么配置的?这个IP多播地址和以太网多播地址是什么关系?

这个图解介绍几个相关知识点并用OSPF Hello的案例把它们联系起来:IP多播地址转换到MAC多播地址,以太网洪泛,以太网接口怎么接受、丢弃所收到的数据包。

-         预备知识:以太网单播MAC地址 (Ethernet unicast MAC)。

-         多播地址仿真: 这个图解教程是根据Multicast仿真创作。仿真用动画显示,读者可以互动的检查数据包内容,观察数据包 – OSPF邻居表之间第二层和第三层的因果关系。

 

 

拓扑

1.     拓扑:局网中有四台路由器经以太网线相连,R2, R3, R4运行OSPF (蓝色),R1没有运行OSPF。

2.     配置OSPF:  用OSPF multicast IP 地址生成 multicast MAC 地址:OSPF路由器各有两个MAC地址,一个是硬件地址,另一个是OSPF多播MAC地址 MAC.OSPF。在路由器上配置OSPF时,会把OSPF 多播IP地址224.0.0.5 转换为一个多播MAC地址 MAC.OSPF ()

转换步骤是:1)把IP地址224.0.0.5 (AllSPFRouters)的32位用二进制表现,然后抽出最右边的23位,叫做A。

               2) 把IEE定义的组播prefix 01:00:5e作为B. B有24位。

               3) 合成相应的MAC组播地址如下:

                   连接 B, 0, A 形成一个多播MAC地址 (Hex)01:00:5e:00:00:05。在这个案例,我们用MAC.OSPF表示。

3.     R2 多播Hello

OSPF路由器一开始都不知道自己的邻居是谁,R2 先发送OSPH Hello。这是一个多播包,它的目的MAC地址是MAC.OSPF.

4.     Hello被洪泛到R1, R3, R4. R1丢弃Hello,R3, R4 接受Hello.

以太网是个广播媒介,Hello被洪泛到网内所有的接口。路由器的接口收到Hello时,把它的目的MAC地址  (MAC.OSPF) 和自己的MAC地址比较,若相同就接受,否则丢弃。

R1 的MAC地址 (MAC.R1) 和 MAC.OSPF不一样,就把Hello丢弃。

R3 的MAC地址 (MAC.R3, MAC.OSPF) 有一个和 MAC.OSPF一样,就接受Hello,并把R2添加到邻居表。。

R4 的MAC地址 (MAC.R4, MAC.OSPF) 有一个和 MAC.OSPF一样,就接受Hello,并把R2添加到邻居表。。

【注】若要观察 Hello 在以太网中洪泛,被路由器接受、丢弃的过程,可运行IP-Ethernet多播地址仿真。

 

5.     R3 发送 Hello. R2, R4接受hello,R1丢弃Hello.

R3 发送的Hello 被以太网洪泛到 R1, R2, R4的接口。R1 丢弃Hello, R2, R4接受Hello, 并把R3添加到邻居表。

6.     R4 发送 Hello. R2, R3接受Hello,R1丢弃Hello.

R4 发送的Hello 被以太网洪泛到 R1, R2, R4 的接口。R1 丢弃Hello, R2, R3接受Hello, 并把R3添加到邻居表。

经过三轮Hello, 局网中的三台路由器已经知道了彼此是邻居,可以进行下一步的OSPF工作了。

 

 

 

本场景动画过程请见IP-Ethernet多播地址仿真

 

 

 

 

 

 

参考资料:

Visualland ,以太网仿真目录,  IP-Ethernet多播地址仿真

谢希仁 计算机网络第五版 3.4.3MAC层

Wikepedia Multicast http://en.wikipedia.org/wiki/Multicast, MAC address http://en.wikipedia.org/wiki/MAC_address

Multicast IP – MAC地址转换 http://www.firewall.cx/multicast-intro.php