路由器组播测试
?
路由器模擬兩接口組播測試。
使用路由模擬兩個接口來測試,測試過程如下:
1、網絡拓補圖:
?
2、PC機端測試工具(工具請到網上下載)
服務器端:Wsend.exe
客戶端:Wlisten.exe
?
?3、路由器內核支持
???? 使用pimd方案還需要配置以下選項:
?查看路由器eth2和ra0接口是否支持組播。
#ifconfig
? 接口有UP BROADCAST RUNNING MULTICAST 為支持組播。
4、應用支持
??? (1)SDK源里的Igmpproxy應用配置選項:
? (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主機網絡接口發送的組播包:
?
路由器后臺抓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做為組播客戶端,路由器才轉發組播數據。
?
?
?
總結
- 上一篇: 上海三菱电梯LEHY,LEGY,上海三菱
- 下一篇: unity 实现简易打飞碟游戏