
路由器模拟两接口多播测试。
使用路由模拟两个要测试的接口。测试过程如下:
1、网络拓扑图:
2、PC测试工具(工具可以下载)
服务器端:Wsend.exe
客户端:Wlisten.exe
3、路由器内核支持
需要配置以下选项才能使用pimd方案:
检查路由器eth2和ra0接口是否支持多播。
#ifconfig
该接口具有UP BROADCAST RUNNING MULTICAST以支持多播。
4、应用程序支持
(SDK源中的1)Igmpproxy应用程序配置选项:
([2)Pimd应用程序:从Internet下载pimd-2.1.8.tar.bz2源代码,并将其移植到SDK源代码应用程序中。
5、路由启用多播转发
使用以下方案之一:
([1)使用igmpproxy代理
配置文件生成命令:#/ bin / igmpproxy.sh eth2 ra0
执行后,在/ etc目录中生成igmpproxy.conf配置文件,内容如下:
## --------------------------------------------- ---------
##启用Quickleave模式(立即发送离开)
## --------------------------------------------- ---------
quickleave

## --------------------------------------------- ---------
## eth0(上游接口)的配置
## --------------------------------------------- ---------
phyint eth2上行速率限制0阈值1
altnet0.[k18]0.0/0
## --------------------------------------------- ---------
## eth1(下游接口)的配置
## --------------------------------------------- ---------
phyint ra0下游速率限制0阈值1
## --------------------------------------------- ---------
## eth2(禁用接口)的配置
## --------------------------------------------- ---------
#phyint已禁用
开始该过程:#igmpproxy&
([2)使用pimd
在路由器系统的/ etc目录中创建配置文件pimd.conf。配置文件/etc/pimd.conf的内容如下:
#phyint de1 disable
phyint ra0启用
phyint eth2启用
#较小的值表示“较高”的优先级
cand_rp时间30优先级20
#更大的值表示“更高”的优先级
cand_bootstrap_router优先级5
#静态集合点
#rp_address 192.16 8.10.1 22 [k25]0.0.0 masklen 8优先级5
#所有多播组
group_prefix 22 [k25]0.0.0 masklen 4
#
switch_data_threshold速率50000间隔20#50kbps(大约)
switch_register_threshold速率50000间隔20#50kbps(大约)

开始该过程:#pimd -c /etc/pimd.conf -d&
路由器的打印信息如下:
#./pimd -c /etc/pimd.conf -d
调试级别0xffffffff(dvmrp_detail,dvmrp_prunes,dvmrp_routes,dvmrp_neiors,dvmrp_timers,igmp_proto,igmp_timers,igmp_members,trace,timeout,packets,interfaces,kernel,cache,rsrr,pim_route,pim_detail,pim_pitail,pim_detail,pim_detail,pim_join,
01:03:4 1.552 pimd版本2.1.8开始
01:03:4 1.555在0次迭代中得到262144字节发送缓冲区大小
01:03:4 1.555在0次迭代中获得了262144字节的Recv缓冲区大小
01:03:4 1.555在0次迭代中得到262144字节发送缓冲区大小
01:03:4 1.556在0次迭代中获得了262144字节的Recv缓冲区大小
01:03:4 1.559从内核获取vifs
01:03:4 1.559在子网192.16 8.1)上将eth2(192.16 8.1.1安装为vif#0-2-rate = 0
01:03:4 1.560在子网192.16 8.2)上将ra0(192.16 [k15]2.1安装为vif#1-3-rate = 0
01:03:4 1.560在子网192.168)上将br0(192.16 8.0.1安装为vif#2-6-rate = 0
01:03:4 1.560从./pimd.conf获取vifs
01:03:4 1.560本地Cand-RP地址为192.16 [k15]2.1
01:03:4 1.561本地Cand-RP优先级为20
01:03:4 1.561本地Cand-RP广告时间为30秒。
01:03:4 1.561本地Cand-BSR地址为192.16 [k15]2.1
01:03:4 1.561本地Cand-BSR优先级为5
01:03:4 1.561添加前缀22 [k25]0.0.0/4
01:03:4 1.561 data_rate_limit为50000(bits / s)
01:03:4 1.561 data_rate_interval为20(秒)
01:03:4 1.561 reg_rate_limit为50000(bits / s)
01:03:4 1.561 reg_rate_interval为20(秒)
01:03:4 1.562接口eth2出现了; vif#0已投入使用
01:03:4 1.562从192.16 8.1.1到22 [k25]0.0.1发送的IGMP成员资格查询
01:03:4 1.563 SENT PIM v2 Hello from 192.16 8.1.1 to 22 [k25]0.0.13
01:03:4 1.563接口ra0出现了; Vif#1已投入使用
01:03:4 1.564从192.16 [k15]2.1到22 [k25]0.0.1发送的IGMP成员资格查询
01:03:4 1.564 SENT PIM v2 Hello from 192.16 [k15]2.1 to 22 [k25]0.0.13

01:03:4 1.564接口br0出现了; Vif#2现已投入使用
01:03:4 1.565从192.16 8.0.1到22 [k25]0.0.1发送的IGMP成员资格查询
01:03:4 1.565 Sent PIM v2您好,从192.16 8.0.1到22 [k25]0.0.13
01:03:4 1.567接口register_vif0出现; Vif#3现已投入使用
虚拟接口表
Vif本地地址子网阈值标志邻居
0 192.16 8.1.1 192.16 8.1 1 DR NO-NBR
1 192.16 [k15]2.1 192.16 8.2 1 DR NO-NBR
2 192.16 8.0.1 192.168 1 DR NO-NBR
3 192.16 8.1.1 register_vif0 1
组播路由表
源组RP-addr标志
--------------------------(*,*,RP)-------------- ------------
组数:0
高速缓存镜像数:0
01:03:42.301创建组条目,组239.255.255.250
01:03:43.484创建组条目,组239.255.255.250
虚拟接口表
Vif本地地址子网阈值标志邻居
0 192.16 8.1.1 192.16 8.1 1 DR NO-NBR
1 192.16 [k15]2.1 192.16 8.2 1 DR NO-NBR
2 192.16 8.0.1 192.168 1 DR NO-NBR
3 192.16 8.1.1 register_vif0 1
组播路由表
源组RP-addr标志
--------------------------(*,*,RP)-------------- ------------
组数:0
高速缓存镜像数:0
01:03:47.493 SENT PIM v2 Bootstrap从192.16 8.1.1到22 [k25]0.0.13
01:03:47.493 SENT PIM v2 Bootstrap从192.16 [k15]2.1到22 [k25]0.0.13

01:03:47.494 SENT PIM v2引导程序从192.16 8.0.1到22 [k25]0.0.13
--------------------------- RP-Set ----------------- -----------
当前BSR地址:192.16 [k15]2.1
RP地址传入组前缀优先级保持时间
^ C01:03:4 8.608 pimd版本2.1.8退出
01:03:4 8.608 SENT PIM v2 Hello from 192.16 8.1.1 to 22 [k25]0.0.13
01:03:4 8.609 SENT PIM v2 Hello from 192.16 [k15]2.1 to 22 [k25]0.0.13
01:03:4 8.609 SENT PIM v2 Hello from 192.16 8.0.1 to 22 [k25]0.0.13
6、组播测试
PC1主机充当发送多播数据的服务器,而PC2主机充当接收多播数据的客户端。
([1)服务器端
获取PC1主机网络接口发送的多播数据包:
路由器后台捕获eth2接口接收的多播数据包:
#tcpdump -i eth2 udp
([2)客户
获取PC2主机网络接口的IP数据包:
加入组播组时发送到路由器的igmp数据包:
收到的多播数据包:
路由器后台tcpdump捕获ra0接口的UDP数据包:
#tcpdump -i ra0 udp
当PC2主机Wlisten.exe工具加入多播组时,路由器将捕获ra0接口的IGMP数据包:
当PC2主机Wlisten.exe工具离开多播组时,路由器将捕获ra0接口的IGMP数据包:
7、测试结果
结论:
(1)在路由器核心支持多播的环境中,客户端PC需要加入多播组才能在该接口中接收服务器PC发送的多播数据。没有应用程序转发多播数据。该接口的PC客户端加入组播组后,无法接收其他接口的PC服务器发送的组播数据。
(2)路由器使用pimd方法或igmpproxy代理进行转发,并且客户端PC需要加入多播组才能接收其他接口的服务器PC发送的多播数据。
(3)使用pimd方案时,上游和下游接口没有区别。无论哪个接口用作多播服务器/客户端,路由器都可以转发多播数据。
(4)使用igmpproxy代理解决方案,只有与上行链路接口相连的PC作为多播服务器,而与下行链路接口相连的PC作为多播客户端,路由器才能转发多播数据。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-337208-1.html
我们该怎么办呀