2016/09/14

一種令Windows版VLC多媒體播放程式指定網卡發送IGMP封包的作法

摘要

本文簡介一種修改選徑規則(routing rule)的作法,使得具備多張網卡的Windows 10作業系統上的VLC多媒體播放程式(VLC media player)可以選擇特定網卡來發送IGMP(Internet Group Management Protocol)封包。



本文

欲在IPv4的環境下,透過具備多張網卡的Windows 10作業系統上的VLC多媒體播放程式,以群播(multicast)的形式來觀看網路電視,可能會遭遇群播的IGMP封包未在預期的網卡離開機器的狀況。
一個範例和對應的解決作法如下。

一臺電腦具備了gbeLoopback Pseudo-Interface 1VMware Network Adapter VMnet1VMware Network Adapter VMnet8VirtualBox Host-Only Network、和utogbe3等數張網卡。

各張網卡具備不同的IPv4位址。

已知IPv4的群播位址範圍涵蓋了224.0.0.0至239.255.255.255;可以觀察到Windows 10作業系統的選徑表(routing table)具備了數條群播位址的選徑規則。


使用VLC多媒體播放程式裏的「開啟網路串流」功能來觀看rtp://224.1.1.100:5004的電視節目時,它會發送IGMP封包、並且期許節目封包入境。

利用Wireshark掃描所有的網卡,可以觀察到IGMP封包從當前計量(metric)值最小的規則的介面位址192.168.56.1出境;然而,這張網卡介面後方沒有提供電視節目的機器。

為了令IGMP封包從指定的網卡出境,可以修改欲出境網卡的群播選徑規則的計量值,使這個值小於其它網卡的計量值。
例如透過route change指令,將介面編號12(映對至utogbe3網卡)而位址為192.168.1.199的群播選徑規則(224.0.0.0/24)的計量值設置得盡可能小。

使用VLC多媒體播放程式來觀看rtp://224.1.1.100:5004的電視節目時,它會發送IGMP封包、且期許節目封包入境、並且於節目封包入境時呈現畫面。

利用Wireshark掃描所有的網卡,可以觀察到IGMP封包從當前計量(metric)值最小的規則的介面位址192.168.1.199出境;而且,這張網卡介面後方具有提供電視節目的機器。

1 則留言: