Ciscoライクに言うとLayer3 Ether Channelになります。
Bonding Interfaceの中にVLAN Interfaceで生成された
トラフィック(VLANタグが付いたEtherフレーム)を流してみたくなるのが、
NWエンジニアという生き物なわけですよ。
CiscoのConfigライクに書くならば、こういうこと↓ができるってこと。
vlan 100,110 ! 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 Vlan100 ip address 192.168.100.1 255.255.255.0 ! interface Vlan110 ip address 192.168.110.1 255.255.255.0
この辺りの内容がすんなり頭の中でイメージできるようになってくれば、
VMWare ESXのvSwitchの概念も「あぁ、そういうことしてるだけね」と解ってくるのかなと。
それでは行ってみよう。
大半が今までの記事の応用的な部分なので、重複している内容があります。
1.Bonding Interfaceの有効化
以下のファイルを開く。
vi /etc/modprobe.conf
以下の設定を追記することで、Bonding Interfaceを有効化する。alias bond0 bonding
options bonding mode=0 miimon=200Optionについて、以前の記事などを参照してください。
2.Bonding Interfaceの設定ファイル作成
以下のファイルを開く。
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes以下2つがポイント。
BOOTPROTO=noneを設定している点
IPアドレス関連の設定を全て削除している点
3.Bonding Interfaceに物理NICを追加
ここでは例として、eth1とeth2でBondingする設定を記載します。
eth1のファイルを開く。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corporation 82572EI Gigabit Ethernet Controller (Copper)
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:1b:21:2a:5f:e9
MASTER=bond0
SLAVE=yes
eth2のファイルを開く。
vi /etc/sysconfig/network-scripts/ifcfg-eth2
# Intel Corporation 82572EI Gigabit Ethernet Controller (Copper)
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:1b:21:2a:5e:67
MASTER=bond0
SLAVE=yes
ポイントは以下3つ
BOOTPROTO=noneを設定している点
MASTER=bond0を設定している点
SLAVE=yesを設定している点
4.VLAN Interfaceの有効化
以下のファイルを開く。
vi /etc/sysconfig/network
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PADVLAN_NAME_TYPEについて、以前の記事を参照してください。
また「VLAN_PLUS_VID_NO_PAD」を選択した理由は、SW側の表記と合わせたかったので。
Linux=ifcfg-vlan100
Cisco=interface Vlan100
5.VLAN Interfaceの作成
ここでは、Vlan100とVlan110のInterfaceを作成する例を記載します。
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
vlan110のファイルを開く。
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
ポイントは以下3つ。
DEVICE=vlan100やDEVICE=vlan110を設定している点
BOOTPROTO=staticを設定している点
PHYSDEV=bond0を設定している点
6.netwrokサービスのリスタート
以下のコマンドにてリスタート。
/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 ]
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アドレスがみんな同じ値になっていること。
「HWaddr 00:1B:21:2A:5F:E9」*1Linux上でrouteを書いたりすると、片側に寄る可能性はあり得るけど、
「問題になるかもな?」と気付いた方は対処方法もご存知だと思うので大丈夫でしょう。
7.SW側の設定
以下、Cat3560-8PCのサンプルConfigを記載
不要なConfigはDelっているのであしからず。
Switch#sh run ! ip routing ! 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 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 ! end
LinuxマシンとCat3560をL3EtherChannelとして接続ができたときのLog
物理接続として以下のようなイメージ。
Linux | Cat3560 |
---|---|
eth1 | F0/1 |
eth2 | F0/2 |
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)
上記の状態でF0/3にPCを接続し、ExPingでシビアにPing打ってみる。
PC:192.168.120.10
宛先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&Bonding Interfaceが正常に稼動してることが確認できた。
以上です。