DynagenでCCIEを目指す
VMwareを用いたMulticast検証環境構築
最終更新:
it_certification
-
view
概要
- Dynagen, VMware Server 2を併用して、Multicastの検証を行います。
- Guest OSのnetwork typeはNATとします。
- Guest OS eth0とDynagenを接続します。
- Host OS LoopbackとDynagenを接続します。
- 全ルータでマルチキャストを有効にします。
- OSPFによってルーティングします。
- enableおよびline vtyパスワードはciscoです。
- 検証に用いたOSは以下の通りです。
OS | 役割 | Dynagenと接続 | |
---|---|---|---|
Host OS | Windows XP SP3 32bit | Multicast Receiver | eth0 |
Guest OS | CentOS5.4 32bit | Multicast Source | Loopback |
構成図
- 構成図内のSwitchはVMware内の仮想Switchです。
- 構成図内のDHCPサーバはVMwareが提供するDHCPサーバです。

Multicast Receiver側の設定
- IP addressの設定
IP addressの設定を確認します。お勧めは、以下のDHCPによるアドレス取得です(デフォルトの設定のまま)。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
- ルーティングテーブルの確認
マルチキャストがeth0から送信される事を確認します。
# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.107.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.107.2 0.0.0.0 UG 0 0 0 eth0
interfaceが1つしかないデフォルトの場合は設定不要です。しかし、設定変更によりマルチキャストがeth0から送信されないようになっている場合は、以下の要領でルーティングテーブルを編集します。
(gatewayのIP addressは適宜変更して下さい。)
route add -net 224.0.0.0/4 gateway 192.168.107.220
(gatewayのIP addressは適宜変更して下さい。)
route add -net 224.0.0.0/4 gateway 192.168.107.220
Multicast Source側の設定
- IP addressの設定
Loopback addressのIP addressを以下の通り設定します
IP address : 192.168.10.1 Subnet mask : 255.255.255.0 Gateway : 192.168.10.254
- ルーティングテーブルの設定
コマンドプロンプトで以下を入力します。
route add 224.0.0.0 mask 240.0.0.0 192.168.10.254
ルーティングテーブルを確認し、マルチキャストがLoopbackから送信される事を確認します。
(Windowsのルーティングテーブル上で合致する宛先が複数ある場合は、サブネットマスク長が短いエントリが優先されます。サブネットマスク長が同じエントリがある場合は、metricが小さいものが優先されます。
(Windowsのルーティングテーブル上で合致する宛先が複数ある場合は、サブネットマスク長が短いエントリが優先されます。サブネットマスク長が同じエントリがある場合は、metricが小さいものが優先されます。
C:\Documents and Settings\Temp>netstat -r - 略 - 224.0.0.0 240.0.0.0 10.1.16.1 10.1.16.1 20 224.0.0.0 240.0.0.0 192.168.10.1 192.168.10.1 30 224.0.0.0 240.0.0.0 192.168.28.1 192.168.28.1 20 224.0.0.0 240.0.0.0 192.168.107.1 192.168.107.1 20 224.0.0.0 240.0.0.0 192.168.10.254 192.168.10.1 1 <- 追加されたエントリ 255.255.255.255 255.255.255.255 10.1.16.1 10.1.16.1 1 255.255.255.255 255.255.255.255 192.168.10.1 192.168.10.1 1 255.255.255.255 255.255.255.255 192.168.28.1 192.168.28.1 1 255.255.255.255 255.255.255.255 192.168.107.1 192.168.107.1 1 Default Gateway: 10.1.16.254 =========================================================================== Persistent Routes: None
Dynagenの設定
- Network adapterの確認
デスクトップ上の「Network device list」を実行し、Network adapterを調査します。VMnet8とLoopbackの値をメモします。
(VMwareの設定が「Host Only」の場合はVMnet1と接続され、VMwareの設定が「NAT」の場合はVMnet8と接続されます。)
(VMwareの設定が「Host Only」の場合はVMnet1と接続され、VMwareの設定が「NAT」の場合はVMnet8と接続されます。)
Network adapters on this machine: NIO_gen_eth:\Device\NPF_{0D51D0BB-041D-44A5-9315-1F17595F3E28} Name : VMware Network Adapter VMnet8 Desciption: VMware Virtual Ethernet Adapter NIO_gen_eth:\Device\NPF_{0CEE295F-2E40-4C3C-9F0A-01CFD8629483} Name : ローカル エリア接続 Desciption: Intel(R) 82566DM-2 Gigabit Network Connection NIO_gen_eth:\Device\NPF_{E046EB9F-B8CB-4DE4-B8AE-55658DB68A98} Name : VMware Network Adapter VMnet1 Desciption: VMware Virtual Ethernet Adapter NIO_gen_eth:\Device\NPF_{86622A85-C3D8-422D-ACEB-4828937850FA} Name : Loopback Desciption: MS LoopBack Driver Use as follows: F0/0 = NIO_gen_eth:\Device\NPF_{...} 続行するには何かキーを押してください . . .
- netファイルの作成
先ほど確認したNetwork adapterを基に、netファイルを作成します。
model = 3620 [localhost] [[3620]] image = C:\Program Files\Dynamips\images\c3620-j1s3-mz.123-18.bin ram = 128 [[ROUTER R1]] f0/0 = NIO_gen_eth:\Device\NPF_{0D51D0BB-041D-44A5-9315-1F17595F3E28} e1/0 = R2 e1/0 e1/1 = R3 e1/1 [[ROUTER R2]] f0/0 = NIO_gen_eth:\Device\NPF_{86622A85-C3D8-422D-ACEB-4828937850FA} e1/2 = R3 e1/2 [[ROUTER R3]]
- config投入
Dynagenを起動させ、各ルータにconfigを投入します。
- R1 設定
! version 12.3 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname R1 ! boot-start-marker boot-end-marker ! enable secret 5 $1$QZA9$EH/OdTolEBF5gOBmBNf3D0 ! no aaa new-model ip subnet-zero ! ! ! ip multicast-routing ip cef ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 192.168.107.220 255.255.255.0 ip pim dense-mode duplex auto speed auto ! interface Ethernet1/0 ip address 192.168.0.1 255.255.255.0 ip pim dense-mode full-duplex ! interface Ethernet1/1 ip address 192.168.1.1 255.255.255.0 ip pim dense-mode full-duplex ! interface Ethernet1/2 no ip address shutdown half-duplex ! interface Ethernet1/3 no ip address shutdown half-duplex ! router ospf 1 log-adjacency-changes passive-interface FastEthernet0/0 network 192.168.0.0 0.0.0.255 area 0 network 192.168.1.0 0.0.0.255 area 0 network 192.168.107.0 0.0.0.255 area 0 ! ip http server ip classless ! ! no cdp run ! ! ! ! ! ! line con 0 line aux 0 line vty 0 4 password cisco login ! ! end
- R2 設定
! version 12.3 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname R2 ! boot-start-marker boot-end-marker ! enable secret 5 $1$dyhI$QlnTCAaIoWpd6juNUlP4t1 ! no aaa new-model ip subnet-zero ! ! ! ip multicast-routing ip cef ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 192.168.10.254 255.255.255.0 ip pim dense-mode duplex auto speed auto ! interface Ethernet1/0 ip address 192.168.0.2 255.255.255.0 ip pim dense-mode full-duplex ! interface Ethernet1/1 no ip address shutdown half-duplex ! interface Ethernet1/2 ip address 192.168.2.2 255.255.255.0 ip pim dense-mode full-duplex ! interface Ethernet1/3 no ip address shutdown half-duplex ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.0.255 area 0 network 192.168.2.0 0.0.0.255 area 0 network 192.168.10.0 0.0.0.255 area 0 ! ip http server ip classless ! ! ! ! ! ! ! ! line con 0 line aux 0 line vty 0 4 password cisco login ! ! end
- R3 設定
! version 12.3 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname R3 ! boot-start-marker boot-end-marker ! enable secret 5 $1$LiTG$T6xEqXKFU15TEx7fnTFzB. ! no aaa new-model ip subnet-zero ! ! ! ip multicast-routing ip cef ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Ethernet1/0 no ip address shutdown half-duplex ! interface Ethernet1/1 ip address 192.168.1.3 255.255.255.0 ip pim dense-mode full-duplex ! interface Ethernet1/2 ip address 192.168.2.3 255.255.255.0 ip pim dense-mode full-duplex ! interface Ethernet1/3 no ip address shutdown half-duplex ! router ospf 1 log-adjacency-changes network 192.168.1.0 0.0.0.255 area 0 network 192.168.2.0 0.0.0.255 area 0 ! ip http server ip classless ! ! ! ! ! ! ! ! line con 0 line aux 0 line vty 0 4 password cisco login ! ! end
マルチキャストの実行
- マルチキャストグループへの参加
Host OS側で、マルチキャストグループに参加するよう設定します。手順はトップページ/手順書 ネットワーク系/VLC media player (Windows版) 操作手順を参照して下さい。私が検証時に入力した情報は以下の通りです。
protocol : UDP port : 9000 (デフォルトの1234でも差し支えありません) ip address : 239.1.1.1
R2にログインし、マルチキャストグループに参加できているかを確認します。
R2#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.1.1.1 FastEthernet0/0 00:00:59 00:02:02 192.168.10.1 224.0.1.40 FastEthernet0/0 00:20:58 00:02:58 192.168.10.254 239.255.255.250 FastEthernet0/0 00:20:56 00:02:03 192.168.10.1 R2#
- マルチキャストの開始
Guest OS側で、マルチキャスト配信を開始します。コマンドの使用例は以下の通りです。--intf ncursesはGUIが使用できない環境の場合につけるオプションです。このオプションにより、キー操作で配信ができます。
vlc nerima.mpg --sout udp://239.1.1.1:9000 --ttl 15 --intf ncurses
GUIを使用しない場合は以下のような画面が表示され、ストリーミング配信が開始されます。

- マルチキャストの観察
Host OS側では、動画が流れます。この検証例では途中10Mbpsの回線を経由する事もあり、かなり粗い動画になります。

マルチキャストルーティングテーブルも確認します。無駄なポートからはフラッディングされていない事が確認できます。
R1#show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.1), 00:15:42/stopped, RP 0.0.0.0, flags: D Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/1, Forward/Dense, 00:15:42/00:00:00 Ethernet1/0, Forward/Dense, 00:15:42/00:00:00 (192.168.107.128, 239.1.1.1), 00:02:22/00:01:01, flags: T Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/0, Forward/Dense, 00:02:22/00:00:00 Ethernet1/1, Prune/Dense, 00:02:16/00:00:43 (*, 224.0.1.40), 00:32:10/00:02:51, RP 0.0.0.0, flags: DCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/0, Forward/Dense, 00:31:14/00:00:00 Ethernet1/1, Forward/Dense, 00:32:07/00:00:00 FastEthernet0/0, Forward/Dense, 00:32:10/00:00:00 (*, 239.255.255.250), 00:31:12/00:02:46, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/1, Forward/Dense, 00:31:12/00:00:00 Ethernet1/0, Forward/Dense, 00:31:12/00:00:00 FastEthernet0/0, Forward/Dense, 00:31:12/00:00:00 R1# R2#show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.1), 00:03:13/stopped, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/2, Forward/Dense, 00:03:13/00:00:00 Ethernet1/0, Forward/Dense, 00:03:13/00:00:00 FastEthernet0/0, Forward/Dense, 00:03:13/00:00:00 (192.168.107.128, 239.1.1.1), 00:00:15/00:02:58, flags: T Incoming interface: Ethernet1/0, RPF nbr 192.168.0.1 Outgoing interface list: FastEthernet0/0, Forward/Dense, 00:00:16/00:00:00 Ethernet1/2, Prune/Dense, 00:00:16/00:02:43 (*, 224.0.1.40), 00:03:46/00:02:44, RP 0.0.0.0, flags: DCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/2, Forward/Dense, 00:03:46/00:00:00 Ethernet1/0, Forward/Dense, 00:03:46/00:00:00 FastEthernet0/0, Forward/Dense, 00:03:46/00:00:00 (*, 239.255.255.250), 00:03:15/00:02:38, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/2, Forward/Dense, 00:03:15/00:00:00 Ethernet1/0, Forward/Dense, 00:03:15/00:00:00 FastEthernet0/0, Forward/Dense, 00:03:15/00:00:00 R2# R3#show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.1), 00:03:31/stopped, RP 0.0.0.0, flags: D Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/2, Forward/Dense, 00:03:31/00:00:00 Ethernet1/1, Forward/Dense, 00:03:31/00:00:00 (192.168.107.128, 239.1.1.1), 00:00:21/00:02:38, flags: PT Incoming interface: Ethernet1/1, RPF nbr 192.168.1.1 Outgoing interface list: Ethernet1/2, Prune/Dense, 00:00:17/00:02:42, A (*, 224.0.1.40), 00:33:09/00:02:40, RP 0.0.0.0, flags: DCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet1/2, Forward/Dense, 00:32:45/00:00:00 Ethernet1/1, Forward/Dense, 00:33:09/00:00:00 R3#