Pages

2010/12/24

Vyattaを2台でタグVLANの環境

ソフトウェアルータのVyattaを仮想環境で2台構築、VLAN機能を試してみる。

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。
 

VLAN100
 

ホスト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が違う場合。

VLAN200と201
 

ホストの設定


詳細省略、一行でいいんだもん。

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 件のコメント:

コメントを投稿