Metonymical Deflection

ゆるく日々のコト・たまにITインフラ

VLAN Interface設定

Ciscoライクに言うとSVIになるのかな。
一般的にはL3 Interfaceなどと言ったりもするのでしょうか。


ようするに、1つの物理NIC複数の論理InterfaceをVLANごとに設定する。
CiscoのConfigライクに書くならば、こういうこと↓ができるってこと。

vlan 100,200,300
!
interface Vlan100
 ip address 192.168.100.1 255.255.255.0
!
interface Vlan200
 ip address 192.168.200.1 255.255.255.0
!
interface Vlan300
 ip address 192.168.300.1 255.255.255.0
!
interface FastEthernet0/1
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 100,200,300
 switchport mode trunk


それでは行ってみよう。

1.802.1qの有効化

以下のファイルを開く。

vi /etc/sysconfig/network
以下の設定を追記することで、802.1qを有効化する。

VLAN=yes
VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD

「VLAN_NAME_TYPE」の詳細は後述する

2.物理NICIPアドレス無効化

物理NICのIP-AddressをOFFにする。

vi /etc/sysconfig/network-scripts/ifcfg-ethX
 ※
 X=0からの数字。一番最初にあるNICが0になる。
 今回は増設NICに対して設定する想定のため「1」とする。

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:1b:21:2a:5f:e9

BOOTPROTO=noneがポイント。


IPアドレスの設定を消すのが不安なら
こんな感じで#にてコメントアウトしてもOK

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:1b:21:2a:5f:e9
#IPADDR=192.168.1.1
#NETMASK=255.255.255.0
#NETWORK=192.168.1.0
#BROADCAST=192.168.1.255

3.論理Interface(=VLAN Interface)の作成

以下のファイルを作成

vi /etc/sysconfig/network-scripts/ifcfg-eth1.100


以下のように設定してみる。

DEVICE=eth1.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.1
NETMASK=255.255.255.0

ポイントは以下2つ。

  1. ファイル名がifcfg-eth1.100となっていること。
  2. DEVICE=eth1.100となっていること。

これにより、eth1のVLAN100として論理Interfaceを指定しているようなイメージとなる。


もう一個作ってみよう。
以下のファイルを作成

vi /etc/sysconfig/network-scripts/ifcfg-eth1.200


以下のような設定してみる。

DEVICE=eth1.200
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.200.1
NETMASK=255.255.255.0


さらにもう一個作ってみる。
以下のファイルを作成

vi /etc/sysconfig/network-scripts/ifcfg-eth1.300


以下のような設定してみる。

DEVICE=eth1.300
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.300.1
NETMASK=255.255.255.0

4.InterfaceのUp

以下のコマンドを投入
 ※
 ifupをやればOKだけど、きちんとVLAN Interfaceが作成されるところを見たければ、
 netwrokサービスをリスタートした方がイメージが掴みやすいかもしれない。

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


以下のようなメッセージが表示されればOK。

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


以上となる。


なお、後述するとした「VLAN_NAME_TYPE」の詳細を以下に記載する。

A.VLAN Interfaceの表記方法(ファイル名)を変更する

「VLAN_NAME_TYPE=」の値によって「ifcfg-」の後の表記が変えることができる。

表記例
VLAN_PLUS_VID vlan0100
VLAN_PLUS_VID_NO_PAD vlan100
DEV_PLUS_VID eth0.0100
DEV_PLUS_VID_NO_PAD eth0.100

仮に「VLAN_PLUS_VID_NO_PAD」を使用した場合の
設定例を以下に記載する。

以下のファイルを開く。

vi /etc/sysconfig/network


「VLAN_NAME_TYPE=」を「VLAN_PLUS_VID_NO_PAD」に変更する。

VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD

B.IPアドレスの設定

以下のファイルを開く。

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


「vlan100」としているところがポイント。

DEVICE=vlan100
BOOTPROTO=static
ONBOOT=yes
PHYSDEV=eth1
IPADDR=192.168.100.1
NETMASK=255.255.255.0
NETWORK=192.168.100.0
BROADCAST=192.168.100.255

ポイントは以下2つ。

  1. 「DEVICE=」を表記法に合わせて「vlan100」とすること。
  2. 「PHYSDEV=eth1」として物理NICを明示的に追加指定すること。

この後は、「4.InterfaceのUp」と同様にリスタートすればOK

C.設定内容の確認

鯖側とSW側でそれぞれ確認してみる。


以下に示す内容は実際に使用している環境からの出力結果なので、
Vlan番号やIPアドレスは前述までの内容と異なるが適宜読み替えてください。


なお、鯖とSWの構成としては、以下の通り。

  • 鯖のeth1とSWのG0/2をUTPで接続している。
  • eth1側はVlan Interfaceを作成し、G0/2側はTrunk設定としている。

鯖側の設定内容

[root@ ~]# ls -Fal /etc/sysconfig/network-scripts/
合計 292
drwxr-xr-x 3 root root  4096  1月  2 17:29 ./
drwxr-xr-x 9 root root  4096  1月 14  2010 ../
-rw-r--r-- 1 root root   255 12月 23  2008 ifcfg-eth0
-rw-r--r-- 1 root root   164 10月 26 22:29 ifcfg-eth1
-rw-r--r-- 1 root root   254  9月 25  2008 ifcfg-lo
-rwxr--r-- 1 root root   144 12月 30  2008 ifcfg-vlan12*
-rwxr--r-- 1 root root   144 12月 30  2008 ifcfg-vlan13*
-rwxr--r-- 1 root root   144 12月 30  2008 ifcfg-vlan14*
[root@ ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1E:0B:C6:B8:05
          inet addr:192.168.11.1  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:bff:fec6:b805/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:209 errors:0 dropped:0 overruns:0 frame:0
          TX packets:313 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:20731 (20.2 KiB)  TX bytes:45695 (44.6 KiB)
          Interrupt:74

eth1      Link encap:Ethernet  HWaddr 00:1B:21:2A:5F:E9
          inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:639 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:95928 (93.6 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3634 (3.5 KiB)  TX bytes:3634 (3.5 KiB)

vlan12    Link encap:Ethernet  HWaddr 00:1B:21:2A:5F:E9
          inet addr:192.168.12.1  Bcast:192.168.12.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:12842 (12.5 KiB)

vlan13    Link encap:Ethernet  HWaddr 00:1B:21:2A:5F:E9
          inet addr:192.168.13.1  Bcast:192.168.13.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:12968 (12.6 KiB)

vlan14    Link encap:Ethernet  HWaddr 00:1B:21:2A:5F:E9
          inet addr:192.168.14.1  Bcast:192.168.14.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:21ff:fe2a:5fe9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:12968 (12.6 KiB)

SW側の設定内容

Cat2950#sh run int g0/2
Building configuration...

Current configuration : 129 bytes
!
interface GigabitEthernet0/2
 switchport trunk allowed vlan 12-14
 switchport mode trunk
 spanning-tree portfast trunk
end
Cat2950#sh int trunk

Port        Mode         Encapsulation  Status        Native vlan
Gi0/2       on           802.1q         trunking      1

Port      Vlans allowed on trunk
Gi0/2       12-14

Port        Vlans allowed and active in management domain
Gi0/2       12-14

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/2       12-14
Cat2950#