Vyatta同士は仮想化ソフトの持つ仮想スイッチ(ネットワーク)で接続します。
3台にしてVLAN間ルーティングまで作ろうと思ったのですが、Vyattaの外で思わぬ時間を取られたのでまずは2台。
それでは設定。
やってみること
2台のVyatta1台目(HostA)とVyatta2台目(HostB)を、
- 同じVLAN(802.1q)のIDで通信できる
- 違うVLAN(802.1q)のIDでは通信できない
ということの設定例。
環境情報
HostA (VMWareServer2)
eth0.100 10.48.100.2
eth0.200 10.48.200.2
HostB (VMWareServer2)
eth0.100 10.48.100.3
eth0.201 10.48.200.3
仮想スイッチ
VMWareServer2 Virtual Networks
vLAN100同士で接続する
こういう接続ですね。
VLAN ID=100 で接続するごく普通のタグVLAN。
ホストAの設定
ホストA の eth0 に vif を設け、IPアドレスを与えます。
$ configure
# set system host-name HostA
HostA# set interfaces ethernet eth0 vif 100
HostA# set interfaces ethernet eth0 vif 100 address 10.48.100.2/24
HostA# commit
HostA# save
Ethernetインターフェイスの情報
HostA# show interfaces ethernet eth0
hw-id 00:0c:29:0e:d9:cf
vif 100 {
address 10.48.100.2/24
}
見やすいね。
ホストBの設定
VLANの定義を飛ばして、一発で設定することも可能です。
$ configure
# set system host-name HostB
HostB# set interfaces ethernet eth0 vif 100 address 10.48.100.3/24
HostB# commit
HostB# save
非常にシンプルです。
pingして確認
じゃあHostAからping飛ばそう、2回。
HostA# ping 10.48.100.3 -c2
PING 10.48.100.3 (10.48.100.3) 56(84) bytes of data.
64 bytes from 10.48.100.3: icmp_seq=1 ttl=64 time=10.9 ms
64 bytes from 10.48.100.3: icmp_seq=2 ttl=64 time=0.376 ms
届くわ。
HostBでどんな受け取り方をしてるかを確認しよう、VLAN聞いてなかったら困るし。
HostB# sudo tcpdump
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:01:22.370062 vlan 100, p 0, arp who-has 10.48.100.3 tell 10.48.100.2
13:01:22.370272 vlan 100, p 0, arp reply 10.48.100.3 is-at 00:0c:29:0f:8a:8c (oui Unknown)
13:01:22.375381 vlan 100, p 0, IP 10.48.100.2 > 10.48.100.3: ICMP echo request, id 23831, seq 1, length 64
13:01:22.375493 vlan 100, p 0, IP 10.48.100.3 > 10.48.100.2: ICMP echo reply, id 23831, seq 1, length 64
『 vlan 100』 がばっちり付いている、だからarp にきっちり反応してICMPの通信を開始した。
vLAN200と201で、接続できない
こんどはこんな接続。
サブネットは同じだけども、VLANのIDが違う場合。
ホストの設定
詳細省略、一行でいいんだもん。
HostA# set interfaces ethernet eth0 vif 200 address 10.48.200.2/24
HostA# commit
HostB# set interfaces ethernet eth0 vif 201 address 10.48.200.3/24
HostB# commit
pingをダンプ
HostA# ping 10.48.200.3 -c2
PING 10.48.200.3 (10.48.200.3) 56(84) bytes of data.
From 10.48.200.2 icmp_seq=1 Destination Host Unreachable
From 10.48.200.2 icmp_seq=2 Destination Host Unreachable
HostB# sudo tcpdump
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:05:44.580952 vlan 200, p 0, arp who-has 10.48.200.3 tell 10.48.200.2
13:05:45.580522 vlan 200, p 0, arp who-has 10.48.200.3 tell 10.48.200.2
13:05:46.580615 vlan 200, p 0, arp who-has 10.48.200.3 tell 10.48.200.2
これはつながらない。
余談
当初この環境をVirtualbox3.2で作成しようとしたらうまくいかなかった。
困ってtcpダンプでarpを見たら、そもそもVlanタグが送信されていないことが分かった、仮想NICの仕様だったんだろうか。
結局VMWareServer2上に構築してみたらうまくいきました。
仮想化が進みあれもこれも見えないものになっているようでも、やはりダンプと基礎知識は有用だなと思った次第。
次回は当初のお目あて、VLAN間ルーティングの予定。
ちなみにVLAN間ルーティングが理解できるくらいになったらCCNA程度までは楽勝なので(コマンドは違うけど)CCNA系を取りたい人はやってみたらいい。
0 件のコメント:
コメントを投稿