前回(https://qiita.com/daisei0311/items/2a110009765d3ee823d7)
に引き続きL2スイッチの学習のため VLANについて概要をつかみ、動きを確認した。
VLANとは
一台のL2スイッチを仮想的に複数のL2スイッチに分割する技術。
こうすることでイーサネットフレームが転送されないようにしている。セキュリティの観点で利便性がある。VLANを実現する技術は主に2種類。
・ポートLAN
・タグLAN
それぞれ説明する。
ポートLAN
異なるVLANにはイーサネットは送られないのであたかも別のネットワークかのように扱うことができる。
実際にtagで1,2のVLANに分けている様子。
root@sw2:/# ovs-vsctl show
c449231f-1713-4929-a85d-a43ba84a84f3
Bridge sw2
datapath_type: netdev
Port port4
tag: 1
Interface port4
Port port3
tag: 1
Interface port3
Port port2
tag: 2
Interface port2
Port sw2
Interface sw2
type: internal
Port port1
tag: 2
Interface port1
このように設定すると異なるVLANにパケットが送れなくなっている。
タグVLAN
イーサネットフレームにVLAN情報をくっつける技術。ポートVLANとの違いは一つのポートで複数のVLANを処理できること。
パケットにタグをつけて送ってあげる。スイッチはそのタグを見て、どのパソコンにデータを流すか決める。こうすることでLANケーブルをまたいでも複数のL2スイッチに分割できる。つまりLANケーブル一本で複数のVLANとの通信をすることが可能となる。
フレームフォーマットはIEEE.802.1qの標準規格が採用されている。イーサネットフレームと異なる点は送信先MACアドレスとタイプトの間にTPIDといったLANを識別する情報とそれに関する詳細情報を載せていることである。
以下はタグVLANのタグの割り当ての情報を記載したものである。
root@sw2:/# ovs-vsctl show
c449231f-1713-4929-a85d-a43ba84a84f3
Bridge sw2
datapath_type: netdev
Port port4
tag: 1
Interface port4
Port port3
tag: 1
trunks: [2]
Interface port3
Port port2
tag: 2
Interface port2
Port sw2
Interface sw2
type: internal
Port port1
tag: 2
Interface port1
Port3のTrunks:[2]となっている。これはvlan2のIDを意味する(ポートVLANのovs-vsctl showの結果を参照)。portにtag=3を指定してたのであればtrunks=3となる。複数指定の場合はコンマ区切りで表す。
このようにすることでport3から入ってくるイーサネットフレームはtagが1,2のところに送信できるようになる。