Metaphorical Dream

2008年 11月 24日 ( 1 )

Linux CentOS5.2 Bonding&VLAN Interface作成

Bonding Interfaceの中にVLAN Interfaceで生成されたトラフィック(VLANタグが付いたEtherフレーム)を
流してみたくなるのが、ネットワークエンジニアなわけですよ。
ってことで、以下を試してみた。結果から言うと成功してる。

(1)
まず、bond0の設定ファイルを開き、IPADDR設定などをぶっ飛ばす。
#でコメントアウトするだけでもOKだよ。
それと、「BOOTPROTO=none」にしておく。
ようするに、VLAN Interface作成時と同様にeth1とかの物理NICと同じ設定を
bond0に設定してやるわけです。

vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes


(2)
以下のファイルを開き、「VLAN_NAME_TYPE=」に「VLAN_PLUS_VID_NO_PAD」を設定しておく。
「DEV_PLUS_VID_NO_PAD」でもOKだと思うけど、雰囲気が出ないじゃん?

vi /etc/sysconfig/network

VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD


(3)
以下のファイル(ifcfg-vlan100)を開き、「PHYSDEV=bond0」にしておく。
上にも記載したけど、eth1とかの物理NIC内にVLAN100のトラフィックを流すのと同様に
bond0内にVLAN100のトラフィックを流すってイメージになる。

vi /etc/sysconfig/network-scripts/ifcfg-vlan100

DEVICE=vlan100
BOOTPROTO=static
ONBOOT=yes
PHYSDEV=bond0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
NETWORK=192.168.100.0
BROADCAST=192.168.100.255

(4)
以下のファイル(ifcfg-vlan110)を開き、こちらも「PHYSDEV=bond0」にしておく。

vi /etc/sysconfig/network-scripts/ifcfg-vlan110

DEVICE=vlan110
BOOTPROTO=static
ONBOOT=yes
PHYSDEV=bond0
IPADDR=192.168.110.10
NETMASK=255.255.255.0
NETWORK=192.168.110.0
BROADCAST=192.168.110.255


(5)
んでもって、netwrokサービスをリスタートしてやる。
↓こんな感じの表示になればOK。

/etc/rc.d/init.d/network restart

インターフェース bond0 を終了中: [ OK ]
インターフェース eth0 を終了中: [ OK ]
ループバックインターフェースを終了中 [ OK ]
ループバックインターフェイスを呼び込み中 [ OK ]
802.1Q VLAN パラメーターを設定中: Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config
[ OK ]
インターフェース bond0 を活性化中: [ OK ]
インターフェース eth0 を活性化中: [ OK ]
インターフェース vlan100 を活性化中: Added VLAN with VID == 100 to IF -:bond0:-
[ OK ]
インターフェース vlan110 を活性化中: Added VLAN with VID == 110 to IF -:bond0:-
[ OK ]


(6)
ifconfigの結果は以下の通り。

ifconfig
bond0 Link encap:Ethernet HWaddr 00:1B:21:2A:5F:E9
inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:12624 errors:0 dropped:0 overruns:0 frame:0
TX packets:12848 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3344504 (3.1 MiB) TX bytes:3220815 (3.0 MiB)

eth1 Link encap:Ethernet HWaddr 00:1B:21:2A:5F:E9
inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:360 errors:0 dropped:0 overruns:0 frame:0
TX packets:6291 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:225920 (220.6 KiB) TX bytes:1555896 (1.4 MiB)

eth2 Link encap:Ethernet HWaddr 00:1B:21:2A:5F:E9
inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:12264 errors:0 dropped:0 overruns:0 frame:0
TX packets:6557 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3118584 (2.9 MiB) TX bytes:1664919 (1.5 MiB)

vlan100 Link encap:Ethernet HWaddr 00:1B:21:2A:5F:E9
inet addr:192.168.100.10 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:2008 errors:0 dropped:0 overruns:0 frame:0
TX packets:5573 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:205204 (200.3 KiB) TX bytes:595222 (581.2 KiB)

vlan110 Link encap:Ethernet HWaddr 00:1B:21:2A:5F:E9
inet addr:192.168.110.10 Bcast:192.168.110.255 Mask:255.255.255.0
inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:3631 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:353410 (345.1 KiB) TX bytes:8620 (8.4 KiB)


若干問題になりそうな点を記載しておくと、
MAC Addressがみんな同じになってるってこと。
「HWaddr 00:1B:21:2A:5F:E9」

Linux上でrouteを書いちゃったりすると、片側に寄ったりする可能性はあり得る。


ただ、まぁ、とりあえず、これでCiscoのL3-Switchと接続した際に
きちんとEtherChannelがLinkUpするか?
Routing可能か?
ってことを確認できればOKなので。


(7)
ってことで、以下、Cat3560-8PCのConfigサンプルを記載

Switch#sh run
Building configuration...

Current configuration : 1468 bytes
!
version 12.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Switch
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
system mtu routing 1500
vtp mode transparent
ip subnet-zero
ip routing
!
spanning-tree mode pvst
spanning-tree extend system-id
!
vlan internal allocation policy ascending
!
vlan 100,110,120
!
interface Port-channel1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100,110
switchport mode trunk
spanning-tree portfast trunk
!
interface FastEthernet0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100,110
switchport mode trunk
channel-group 1 mode on
!
interface FastEthernet0/2
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100,110
switchport mode trunk
channel-group 1 mode on
!
interface FastEthernet0/3
switchport access vlan 120
switchport mode access
spanning-tree portfast
!
interface FastEthernet0/4
!
interface FastEthernet0/5
!
interface FastEthernet0/6
!
interface FastEthernet0/7
!
interface FastEthernet0/8
!
interface GigabitEthernet0/1
!
interface Vlan1
no ip address
shutdown
!
interface Vlan100
ip address 192.168.100.1 255.255.255.0
!
interface Vlan110
ip address 192.168.110.1 255.255.255.0
!
interface Vlan120
ip address 192.168.120.1 255.255.255.0
!
ip classless
ip http server
!
!
!
control-plane
!
!
line con 0
line vty 5 15
!
end


(8)
上記のConfigでLinuxとCat3560をLayer3EtherChannelとして接続ができたw

以下、Cat3560側のLog

Switch#sh etherchannel summary
Flags: D - down P - bundled in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator

M - not in use, minimum links not met
u - unsuitable for bundling
w - waiting to be aggregated
d - default port


Number of channel-groups in use: 1
Number of aggregators: 1

Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) - Fa0/1(P) Fa0/2(P)

この状態でVlan-int120(f0/3)にPCを接続し、ExPingでシビアにPing打ってみる。

宛先1:192.168.100.10
宛先2:192.168.110.10
実行間隔:1ms
ブロックサイズ:64bytes
タイムアウト:100ms

そんでもって、UTPの抜き差しを実施すると、
抜線時
 f0/1=Ping落ちず
 f0/2=Ping1発落ち
結線時
 f0/1=Ping5~6発落ち
 f0/2=Ping5~6発落ち
ってな具合で、
VLAN Interface&BondingInterfaceが正常に稼動してることが確認できた。


(9)
総評

今回はCat3560側のVlan120からPCにてPingを打った。
けど、実際の使い方としては、そんなくだらんことはしない。

ESXiでは、VLAN Interfaceを容易に作成し、各仮想OSのNICにアサインすることができるけど、
VMWS2.0 forLinux版では、Linux側の設定が必要だなぁ~と思ってた。

VMWS2.0 forWindows版の場合は、GUIで比較的容易に設定可能だから、
わざわざDoc化せんでも大丈夫なんだけどね。
とは言っても、Windowsの場合は、VLANに対応したNICが必須だけどね。
(intel EXPI9300PT PRO/1000 PT Desktop Adapterとかがオススメかなと。)

ちなみに、VMWS2.0 forLinux版にて、vmnetとVLAN-intをマッピングするには、
再度「/usr/bin/vmware-config.pl」を叩く必要がある。
こちらについては「yes&noを何度か繰り返せば解るよ」と言いたいところだけど、
以下にCLIの結果だけ記載しておこう。

~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~
/usr/bin/vmware-config.pl
Making sure services for VMware Server are stopped.

Stopping VMware autostart virtual machines:
Virtual machines [ OK ]
Stopping VMware management services:
VMware Virtual Infrastructure Web Access
VMware Server Host Agent [ OK ]
Stopping VMware services:
VMware Authentication Daemon [ OK ]
VM communication interface socket family: [ OK ]
Virtual machine communication interface [ OK ]
Virtual machine monitor [ OK ]

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmmon module loads perfectly into the
running kernel.

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmci module loads perfectly into the
running kernel.

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vsock module loads perfectly into the
running kernel.

Do you want networking for your virtual machines? (yes/no/help) [no] yes

Configuring a bridged network for vmnet0.

Please specify a name for this network.
[Bridged] VLAN100

Your computer has multiple ethernet network interfaces available: bond0, eth0,
eth1, eth2, vlan100, vlan110. Which one do you want to bridge to vmnet0?
[eth0] vlan100

The following bridged networks have been defined:

. vmnet0 is bridged to vlan100

Do you wish to configure another bridged network? (yes/no) [no] yes

Configuring a bridged network for vmnet2.

Please specify a name for this network.
[Bridged] VLAN110

Your computer has multiple ethernet network interfaces available: bond0, eth0,
eth1, eth2, vlan110. Which one do you want to bridge to vmnet2? [eth0] vlan110

The following bridged networks have been defined:

. vmnet0 is bridged to vlan100
. vmnet2 is bridged to vlan110

Do you wish to configure another bridged network? (yes/no) [no] no

Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes] no

Do you want to be able to use host-only networking in your virtual machines?
[no] no

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmnet module loads perfectly into the
running kernel.

あとは、普通に「/usr/bin/vmware-config.pl」を叩いたときと同じです。

~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~

これを実施することにより、1つの物理NICに対して、Linux上に複数のVLAN Interfaceを作成し、
尚且つ、VMWare上の仮想OSのNICを任意のVLAN Interfaceにマッピングすることで、
対向にTrunk可能なスイッチがあれば、まさに鼻血が止まらなくなりそうな検証環境を構築できる。
ちなみにVMWS2.0側でVLAN Interfaceをマッピングすると以下のような表示になる。
e0113173_23211950.jpg


Cat2950T-24が欲しくなるわけだ。

[PR]
by mdesign21 | 2008-11-24 23:17 | Diary