2011年7月17日日曜日

SL6(Scientific Linux) KVMでタグVLAN

複数のセグメントを1台のホストで管理する必要が出てきたので、
タグVLANで実現できないか検証してみました。

# 参考にしたサイト

http://dsas.blog.klab.org/archives/50408097.html
http://ken-etsu-tech.blogspot.com/2007/05/vlanxen2.html
http://www.techonia.com/create-vlan-on-linux-with-cisco-catalyst-switch



#### 環境
### SL6
# bridgeするインターフェース
eth1

# ゲストのセグメント
192.168.90.0/24

192.168.91.0/24

# ゲストに割り振るIP
192.168.90.2
192.168.91.2


## NW機器(catalyst3560)
# trunkするポート
FastEther 0/5


VLAN ID            switch側のIF:IP
10                       FastEther 0/1:192.168.90.1
20                       FastEther 0/2:192.168.91.1


SL6のeth1とcatalyst3560の5番portをLANケーブルで接続する


#### 設定
### catalyst3560の設定
## SL6が動作しているホストと物理的にLANケーブルで接続するポートに
## タグVLANの設定を入れる

# カプセル化の指定
(config-if)#switchport trunk encapsulation dot1q

# trunkの設定
(config-if)#switchport mode trunk

# ipアドレスの設定を外す
(config-if)#no ip address                                             

# vlan10と20のパケットのみ許可
(config-if)#switchport trunk allowed vlan 10,20      


### SL6の設定
## VLAN設定コマンド vconfigのインストール
yum install vconfig.x86_64

## eth0は運用で使用しているので、eth1で検証
# eth1用のbridge作成
brctl addbr br1                                                                  ## bridge作成

# eth1をbr1に追加
brctl addif br1 eth1                                                          ## eth1をbr1に追加

## br1のインターフェースの設定
## IPADDRは設定しない。というかしちゃだめっぽい。

DEVICE="br1"
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Bridge
BOOTPROTO=none
NAME="System eth1"


## eth1のインターフェースの設定

DEVICE="eth1"
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br1
BOOTPROTO=none


## vlan設定(動作テスト用)
# 32はswitch側で設定しているVLAN IDに合わせる
vconfig add br1 10                                                  


# br1.32のファイルが作成されていることを確認
ls -l /proc/net/vlan/                                              


# ipアドレスの設定
ifconfig br1.10 192.168.90.2 255.255.255.0 


# 設定されたことを確認
ifconfig -a                                                                 


# switchのipにpingが届くことを確認
ping 192.168.90.1                                                 


## vlan設定
# /etc/sysconfig/network-scripts/ifcfg-br1.10 を作成

VLAN=yes
DEVICE="br1.10"
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.90.2
NETMASK=255.255.255.0


# /etc/sysconfig/network-scripts/ifcfg-br1.20 も同様に作成する

## 起動スクリプト修正
ここが一番はまりました
そもそもデバイスが存在しないと言われるエラー

br1.10 を活性化中:  デバイス br1.10 は存在しないようですので、初期化を遅らせます。


いろいろと調べていて、起動のスクリプト(ifup)で、
PHYSDEVが正常に設定されていなかったことがわかりました。
なので、以下の通り修正を加えて無事起動しました。

## /etc/sysconfig/network-scripts/ifup を修正
# MATCH=の部分に「br」を追加

# Ethernet 802.1Q VLAN support
 if [ "${VLAN}" = "yes" ] && [ "$ISALIAS" = "no" ]; then
     VID=""
     MATCH='^(eth|br|hsi|bond)[0-9]+\.[0-9]{1,4}$'
     if [[ "${DEVICE}" =~ $MATCH ]]; then
         VID=$(echo "${DEVICE}" | LC_ALL=C sed 's/^[a-z0-9]*\.0*//')
         PHYSDEV=${DEVICE%.*}
     fi


## network再起動して動作確認
/etc/init.d/network restart

これで、ホストからswitchのインターフェースまでの疎通確認ができました。
以下は、引き続きやって、随時更新していきます。

## 残件

  1. ゲストからswitchのインターフェースまでの疎通確認
  2. ゲストからswitchのデフォルトゲートウェイへの疎通確認

0 件のコメント:

コメントを投稿