路由器组播测试(转载文章)

 

 

路由器模拟两接口组播测试。

 

使用路由模拟两个接口来测试,测试过程如下:

 

1、网络拓补图:

 

IMG_256

 

2、PC机端测试工具(工具请到网上下载)

 

服务器端:Wsend.exe

IMG_256

客户端:Wlisten.exe

 

 3、路由器内核支持

IMG_256

 

使用pimd方案还需要配置以下选项:

 

IMG_256

 

 查看路由器eth2和ra0接口是否支持组播。

 

#ifconfig

 

IMG_256

IMG_256

 

 接口有UP BROADCAST RUNNING MULTICAST 为支持组播。

 

4、应用支持

 

(1)SDK源里的Igmpproxy应用配置选项:

 

IMG_256

 

  (2)Pimd应用:网上下载pimd-2.1.8.tar.bz2源码,并移植到SDK源码的应用里。

 

5、路由开启组播转发

 

   使用如下其中一种方案即可:

 

(1)使用igmpproxy代理

 

配置文件生成命令:#/bin/igmpproxy.sh eth2 ra0

 

执行后在/etc目录下生成igmpproxy.conf配置文件,内容如下:

 

##------------------------------------------------------

 

## Enable Quickleave mode (Sends Leave instantly)

 

##------------------------------------------------------

 

quickleave

 

##------------------------------------------------------

 

## Configuration for eth0 (Upstream Interface)

 

##------------------------------------------------------

 

phyint eth2 upstream  ratelimit 0  threshold 1

 

altnet 0.0.0.0/0

 

##------------------------------------------------------

 

## Configuration for eth1 (Downstream Interface)

 

##------------------------------------------------------

 

phyint ra0 downstream  ratelimit 0  threshold 1

 

##------------------------------------------------------

 

## Configuration for eth2 (Disabled Interface)

 

##------------------------------------------------------

 

#phyint  disabled

 

 

 

启动进程:#igmpproxy &

 

(2)使用pimd

 

    在路由器系统/etc目录下创建配置文件pimd.conf,配置文件/etc/pimd.conf内容如下:

 

#phyint de1 disable

 

phyint ra0 enable

 

phyint eth2 enable

 

# Smaller value means "higher" priority

 

cand_rp time 30 priority 20

 

# Bigger value means  "higher" priority

 

cand_bootstrap_router priority 5

 

# Static rendez-vous point

 

#rp_address 192.168.10.1 224.0.0.0 masklen 8 priority 5

 

# All multicast groups

 

group_prefix 224.0.0.0 masklen 4

 

#

 

switch_data_threshold          rate 50000 interval 20    # 50kbps (approx.)

 

switch_register_threshold     rate 50000 interval 20    # 50kbps (approx.)

 

 

 

启动进程:#pimd -c /etc/pimd.conf -d &

 

路由器打印信息以下:

 

# ./pimd -c /etc/pimd.conf -d

 

debug level 0xffffffff (dvmrp_detail,dvmrp_prunes,dvmrp_routes,dvmrp_neighbors,dvmrp_timers,igmp_proto,igmp_timers,igmp_members,trace,timeout,packets,interfaces,kernel,cache,rsrr,pim_detail,pim_hello,pim_register,pim_join_prune,pim_bootstrap,pim_asserts,pim_cand_rp,pim_routes,pim_timers,pim_rpf)

 

01:03:41.552 pimd version 2.1.8 starting

 

01:03:41.555 Got 262144 byte send buffer size in 0 iterations

 

01:03:41.555 Got 262144 byte recv buffer size in 0 iterations

 

01:03:41.555 Got 262144 byte send buffer size in 0 iterations

 

01:03:41.556 Got 262144 byte recv buffer size in 0 iterations

 

01:03:41.559 Getting vifs from kernel

 

01:03:41.559 Installing eth2 (192.168.1.1 on subnet 192.168.1) as vif #0-2 - rate=0

 

01:03:41.560 Installing ra0 (192.168.2.1 on subnet 192.168.2) as vif #1-3 - rate=0

 

01:03:41.560 Installing br0 (192.168.0.1 on subnet 192.168) as vif #2-6 - rate=0

 

01:03:41.560 Getting vifs from ./pimd.conf

 

01:03:41.560 Local Cand-RP address is 192.168.2.1

 

01:03:41.561 Local Cand-RP priority is 20

 

01:03:41.561 Local Cand-RP advertisement period is 30 sec.

 

01:03:41.561 Local Cand-BSR address is 192.168.2.1

 

01:03:41.561 Local Cand-BSR priority is 5

 

01:03:41.561 Adding prefix 224.0.0.0/4

 

01:03:41.561 data_rate_limit is 50000 (bits/s)

 

01:03:41.561 data_rate_interval is 20 (seconds)

 

01:03:41.561 reg_rate_limit is 50000 (bits/s)

 

01:03:41.561 reg_rate_interval is 20 (seconds)

 

01:03:41.562 Interface eth2 comes up; vif #0 now in service

 

01:03:41.562 SENT IGMP Membership Query     from 192.168.1.1     to 224.0.0.1

 

01:03:41.563 SENT PIM v2 Hello              from 192.168.1.1     to 224.0.0.13

 

01:03:41.563 Interface ra0 comes up; vif #1 now in service

 

01:03:41.564 SENT IGMP Membership Query     from 192.168.2.1     to 224.0.0.1

 

01:03:41.564 SENT PIM v2 Hello              from 192.168.2.1     to 224.0.0.13

 

01:03:41.564 Interface br0 comes up; vif #2 now in service

 

01:03:41.565 SENT IGMP Membership Query     from 192.168.0.1     to 224.0.0.1

 

01:03:41.565 SENT PIM v2 Hello              from 192.168.0.1     to 224.0.0.13

 

01:03:41.567 Interface register_vif0 comes up; vif #3 now in service

 

Virtual Interface Table

 

 Vif  Local-Address    Subnet               Thresh   Flags          Neighbors

 

   0  192.168.1.1      192.168.1            1        DR NO-NBR

 

   1  192.168.2.1      192.168.2            1        DR NO-NBR

 

   2  192.168.0.1      192.168              1        DR NO-NBR

 

   3  192.168.1.1      register_vif0        1

 

Multicast Routing Table

 

 Source          Group           RP-addr         Flags

 

--------------------------(*,*,RP)--------------------------

 

Number of Groups: 0

 

Number of Cache MIRRORs: 0

 

01:03:42.301 create group entry, group 239.255.255.250

 

01:03:43.484 create group entry, group 239.255.255.250

 

Virtual Interface Table

 

 Vif  Local-Address    Subnet               Thresh   Flags          Neighbors

 

   0  192.168.1.1      192.168.1            1        DR NO-NBR

 

   1  192.168.2.1      192.168.2            1        DR NO-NBR

 

   2  192.168.0.1      192.168              1        DR NO-NBR

 

   3  192.168.1.1      register_vif0        1

 

Multicast Routing Table

 

 Source          Group           RP-addr         Flags

 

--------------------------(*,*,RP)--------------------------

 

Number of Groups: 0

 

Number of Cache MIRRORs: 0

 

01:03:47.493 SENT PIM v2 Bootstrap          from 192.168.1.1     to 224.0.0.13

 

01:03:47.493 SENT PIM v2 Bootstrap          from 192.168.2.1     to 224.0.0.13

 

01:03:47.494 SENT PIM v2 Bootstrap          from 192.168.0.1     to 224.0.0.13

 

---------------------------RP-Set----------------------------

 

Current BSR address: 192.168.2.1

 

RP-address      Incoming   Group prefix   Priority   Holdtime

 

^C01:03:48.608 pimd version 2.1.8 exiting

 

01:03:48.608 SENT PIM v2 Hello              from 192.168.1.1     to 224.0.0.13

 

01:03:48.609 SENT PIM v2 Hello              from 192.168.2.1     to 224.0.0.13

 

01:03:48.609 SENT PIM v2 Hello              from 192.168.0.1     to 224.0.0.13

 

 

 

6、组播测试

 

PC1主机做为服务器端发送组播数据,PC2主机做客户端接收组播数据。

 

(1)服务器端

 

抓PC1主机网络接口发送的组播包:

IMG_256

 

路由器后台抓eth2接口收到的组播包:

 

# tcpdump -i eth2 udp

 

IMG_256

 

 

(2)客户端

 

抓PC2主机网络接口IP包:

 

加入组播组时向路由发送的igmp包:

 

 IMG_256

接收到的组播数据包:

 

路由器后台tcpdump抓ra0接口的UDP包:

 

# tcpdump -i ra0 udp

 

IMG_256

 

 

 PC2主机Wlisten.exe工具加入组播组时路由器抓ra0接口的IGMP包:

 

IMG_256

 

PC2主机Wlisten.exe工具离开组播组时路由器抓ra0接口的IGMP包:

 

IMG_256

7、测试结果

 

结论:

 

(1)路由器内核在支持组播的环境,客户端PC机需要加入组播组才能收到本接口内的服务器端PC机发送的组播数据,没有应用程序转发组播数据情况下本接口内PC机客户端入加组播组后收不到其它接口PC机服务器端的发送的组播数据。

 

(2)路由器使用pimd方式或igmpproxy代理进行转发,客户端PC机需要加入组播群就能收到其它接口的服务器端PC机发送的组播数据。

 

(3)使用pimd方案没有上下行接口之分,加入配置文件的两个接口无论哪个接口做为组播服务器端/客户端,路由器均可转发组播数据。

 

(4)使用igmpproxy代理方案,只能上行接口下挂PC做为组播服务器端、下行接口下挂PC做为组播客户端,路由器才转发组播数据。

 

 

 

 

————————————————

版权声明:本文为CSDN博主「生如夏莲」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/fuqiulian/java/article/details/82862835

2020年4月30日 09:57