路由器组播测试
?
路由器模擬兩接口組播測(cè)試。
使用路由模擬兩個(gè)接口來測(cè)試,測(cè)試過程如下:
1、網(wǎng)絡(luò)拓補(bǔ)圖:
?
2、PC機(jī)端測(cè)試工具(工具請(qǐng)到網(wǎng)上下載)
服務(wù)器端:Wsend.exe
客戶端:Wlisten.exe
?
?3、路由器內(nèi)核支持
???? 使用pimd方案還需要配置以下選項(xiàng):
?查看路由器eth2和ra0接口是否支持組播。
#ifconfig
? 接口有UP BROADCAST RUNNING MULTICAST 為支持組播。
4、應(yīng)用支持
??? (1)SDK源里的Igmpproxy應(yīng)用配置選項(xiàng):
? (2)Pimd應(yīng)用:網(wǎng)上下載pimd-2.1.8.tar.bz2源碼,并移植到SDK源碼的應(yīng)用里。
5、路由開啟組播轉(zhuǎn)發(fā)
?? 使用如下其中一種方案即可:
(1)使用igmpproxy代理
配置文件生成命令:#/bin/igmpproxy.sh eth2 ra0
執(zhí)行后在/etc目錄下生成igmpproxy.conf配置文件,內(nèi)容如下:
##------------------------------------------------------
## 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
?
啟動(dòng)進(jìn)程:#igmpproxy &
(2)使用pimd
??? 在路由器系統(tǒng)/etc目錄下創(chuàng)建配置文件pimd.conf,配置文件/etc/pimd.conf內(nèi)容如下:
#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.)
?
啟動(dòng)進(jìn)程:#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、組播測(cè)試
PC1主機(jī)做為服務(wù)器端發(fā)送組播數(shù)據(jù),PC2主機(jī)做客戶端接收組播數(shù)據(jù)。
(1)服務(wù)器端
抓PC1主機(jī)網(wǎng)絡(luò)接口發(fā)送的組播包:
?
路由器后臺(tái)抓eth2接口收到的組播包:
# tcpdump -i eth2 udp
(2)客戶端
抓PC2主機(jī)網(wǎng)絡(luò)接口IP包:
加入組播組時(shí)向路由發(fā)送的igmp包:
?
?
????? 接收到的組播數(shù)據(jù)包:
?
路由器后臺(tái)tcpdump抓ra0接口的UDP包:
# tcpdump -i ra0 udp
?PC2主機(jī)Wlisten.exe工具加入組播組時(shí)路由器抓ra0接口的IGMP包:
PC2主機(jī)Wlisten.exe工具離開組播組時(shí)路由器抓ra0接口的IGMP包:
7、測(cè)試結(jié)果
結(jié)論:
(1)路由器內(nèi)核在支持組播的環(huán)境,客戶端PC機(jī)需要加入組播組才能收到本接口內(nèi)的服務(wù)器端PC機(jī)發(fā)送的組播數(shù)據(jù),沒有應(yīng)用程序轉(zhuǎn)發(fā)組播數(shù)據(jù)情況下本接口內(nèi)PC機(jī)客戶端入加組播組后收不到其它接口PC機(jī)服務(wù)器端的發(fā)送的組播數(shù)據(jù)。
(2)路由器使用pimd方式或igmpproxy代理進(jìn)行轉(zhuǎn)發(fā),客戶端PC機(jī)需要加入組播群就能收到其它接口的服務(wù)器端PC機(jī)發(fā)送的組播數(shù)據(jù)。
(3)使用pimd方案沒有上下行接口之分,加入配置文件的兩個(gè)接口無論哪個(gè)接口做為組播服務(wù)器端/客戶端,路由器均可轉(zhuǎn)發(fā)組播數(shù)據(jù)。
(4)使用igmpproxy代理方案,只能上行接口下掛PC做為組播服務(wù)器端、下行接口下掛PC做為組播客戶端,路由器才轉(zhuǎn)發(fā)組播數(shù)據(jù)。
?
?
?
總結(jié)
- 上一篇: 上海三菱电梯LEHY,LEGY,上海三菱
- 下一篇: unity 实现简易打飞碟游戏