组播路由配置

更新时间:
2024-03-14
下载文档

组播路由配置

概述

组播

单播、组播、广播是计算机网络上三种基本的通信方式。

  • 单播:单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。
  • 广播:广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台主机的广播信息,属于点对所有点的通信。
  • 组播:组播则介于两者之间,是主机向一组主机发送信息,存在于某个组的所有主机都可以接收到信息,属于点对多点通信。

使用组播方式时,只有加入到该组播组的成员才能收到并处理该组播组的报文。对于不是该组播组的成员,要么不能接收到该组播组的报文,要么收到后直接丢弃。

组播 IP 地址用于标识一个 IP 组播组。组播报文的目的地址使用 D 类 IP 地址,D 类地址不能出现在 IP 报文的源 IP 地址字段里。其范围是从 224.0.0.0 到 239.255.255.255。

组播转发

实现 IP 组播通讯,需要解决两个问题:

  • 组播成员如何加入组播组?
  • 组播数据如何转发到对应接收者?

以下两类基本协议可以分别解决上述两个问题:

  • 组成员管理协议。
  • 组播路由协议。

组成员管理协议用于管理组播组成员的加入和离开。常用的组成员管理协议是 IGMP 协议,IGMP 是一种常用的管理 IPv4 组播组成员的 TCP/IP 协议,运行在组播网络末梢的组播设备与用户主机上,用于用户主机和其直连的组播设备之间建立并维护组播组成员关系。

组播成员通过组成员管理协议加入到组播组后,就会按需进行组播数据报文交互。组播设备在进行组播数据交互时需要依赖组播路由协议,通过维护组播路由表项,对数据报文进行转发。组播路由协议负责在组播网络中构建一个无环的组播分发树,即组播流量在组播网络中的传输路径。

常用的组播路由协议有 PIM-SM、PIM-DM、PIM-SSM。

PIM 是一种协议无关的域内组播路由协议。即为 IP 组播提供路由信息的可以是任意单播路由协议,如静态路由、RIP 和 OSPF 等。组播路由和单播路由无关,只是利用单播路由表生成组播路由信息。

实际场景

PIM-SSM 协议案例

实现跨网段组播通信,需要有一台设备进行路由配置。

  • 首选上位机(A)网卡 en4 配置 IP 为 192.168.0.200 和网关为 192.168.0.253,对应路由节点连接的 en4 的 IP 应配置为 192.168.0.253,网关地址为 192.168.0.1,设置 en4 为默认路由网卡。

    route add default dev en4
    
  • 其次目标节点(C)网卡 en5 配置 IP 为 192.168.4.21 和网关为 192.168.4.253,对应路由节点连接的 en5 的 IP 应配置为 192.168.4.253,网关地址为 192.168.4.1,设置 en5 为默认路由网卡。

    route add default dev en5
    
  • 最后在路由节点(B)开启 ipforward。

    ipforward 1
    
  • 按照上文Quagga 配置内容,启动 Quagga。

  • 启动 pim 组播路由守护进程。

    pimd &
    
  • 使用 Telnet 工具通过路由节点(B) 的 IP 及 2611 端口号进入到 PIM 协议配置界面,密码是 zebra。

    Hello, this is Quagga (version 1.2.2).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    
    User Access Verification
    
    Password: 
    
  • 进入路由节点(B)的 PIM 协议配置界面后,首先输入以下指令启动config配置模式。

    pimd> enable
    pimd# configure terminal
    pimd(config)# 
    
  • 按照下面指令配置路由节点(B)。

    ip multicase-routing
    interface en4
    ip pim ssm
    ip igmp
    ip igmp join 239.255.1.21 192.168.0.200
    ip igmp join 239.255.1.21 192.168.4.21
    ip multicase-routing
    interface en5
    ip pim ssm
    ip igmp
    ip igmp join 239.255.1.21 192.168.0.200
    ip igmp join 239.255.1.21 192.168.4.21
    
  • 测试代码分为组播发送程序 multicast_send 及组播接收程序 multicast_recv,实现上位机向组播地址 239.255.1.21,端口号 9221 发送数据,而目标机通过组播地址 239.255.1.21,端口号 9221 接收数据。

  • 在上位机端,运行组播发送程序。

    ./multicast_send en4 192.168.0.200
    
  • 在目标机器,运行组播接收程序。

    ./multicast_recv en5 192.168.4.21
    
  • 当接收端打印字符,则表示通过组播地址获取组播数据成功。

文档内容是否对您有所帮助?
有帮助
没帮助