Open vSwitchを用いたVLANを構築してみた.
CentOS7はデフォルトでifconfigコマンドが存在しないため,インターフェースへのipアドレスの付与はipコマンドで行う.
#環境
OS: CentOS7.0 minimal
switch: Open vSwitch 2.0.0
#構成図
|A| |C|
\ /
|ovs-br0|-------|ovs-br1|
/ \
|B| |D|
ホスト|A|,|C|はVLAN10, ホスト|B|,|D|はVLAN20に所属させる.
#netnsの作成
ip netns add A
ip netns add B
ip netns add C
ip netns add D
#netns - スイッチ間のリンクの作成
ip link add a0 type veth peer name ovs0-0
ip link add b0 type veth peer name ovs0-1
ip link add c0 type veth peer name ovs1-0
ip link add d0 type veth peer name ovs1-1
#netnsへのインターフェースの追加
ip link set a0 netns A up
ip link set b0 netns B up
ip link set c0 netns C up
ip link set d0 netns D up
#IPアドレスの付与
ip netns exec A ip addr add 1.0.0.1/24 dev a0
ip netns exec B ip addr add 1.0.0.2/24 dev b0
ip netns exec C ip addr add 1.0.0.3/24 dev c0
ip netns exec D ip addr add 1.0.0.4/24 dev d0
#スイッチの作成
ovs-vsctl add-br ovs-br0
ovs-vsctl add-br ovs-br1
#アクセスポートの設定
ovs-vsctl add-port ovs-br0 ovs0-0 tag=10
ovs-vsctl add-port ovs-br0 ovs0-1 tag=20
ovs-vsctl add-port ovs-br1 ovs1-0 tag=10
ovs-vsctl add-port ovs-br1 ovs1-1 tag=20
#トランク用のリンクの作成
ip link add t0 type veth peer name t1
#トランクポートの設定
ovs-vsctl add-port ovs-br0 t0 trunk=10,20
ovs-vsctl add-port ovs-br1 t1 trunk=10,20
#疎通確認
通る場合
ip netns exec A ping 1.0.0.3
ip netns exec B ping 1.0.0.4
通らない場合
ip netns exec A ping 1.0.0.4
ip netns exec B ping 1.0.0.3