【超便利】検証用論理ネットワークの作り方

ルーティングの検証などで複雑な論理構成のネットワークを組みたいとき、ルータの物理インタフェースが足りなくなることがあります。そんなときは、各ルータの物理インタフェースを1つだけ L2 スイッチにつなぎ、その中に IEEE 802.1Q(VLAN タグ)で論理ネットワークを作るのが簡単です。配線を変えずに、コマンドだけでセグメントを増やせます。

この記事でわかること
  1. ルータ1ポート+L2スイッチで、802.1Q の論理セグメントを作る方法
  2. VLAN 番号・IP アドレスをルータ番号と結びつける決め方
  3. ループバックと MAC アドレスを、見ただけでルータがわかる値にする工夫

802.1Q を使った論理ネットワーク

例として、ルータを3台、L2 スイッチを1台用意し、各ルータの FastEthernet0/0(Fa0/0)をスイッチにつなぎます。物理的な配線はこれだけです。

R1R2R3Fa0/0Fa0/0Fa0/0L2スイッチルータ接続ポートはすべて 802.1Q トランク
図1 物理構成:3台のルータの Fa0/0 を1台の L2 スイッチにつなぐ

ルータ側では、物理インタフェースの下にサブインタフェースを作り、それぞれに VLAN 番号と IP アドレスを割り当てます。スイッチは VLAN ごとにフレームを分けて転送するので、同じ VLAN のサブインタフェース同士が、1本のケーブルでつながっているのと同じ状態になります。1本の物理リンクに、VLAN タグの付いた複数のセグメントのフレームが流れるイメージです。

VLAN 12VLAN 23R1R2R3VLAN 12VLAN 12・23VLAN 23L2スイッチ
図2 物理構成の上に、VLAN ごとの論理セグメントを作る

L2 スイッチの設定

L2 スイッチは、ルータを接続したポートをすべて 802.1Q のトランクにします。Cisco Catalyst なら、ポートで switchport mode trunk を設定します(機種によっては、先に switchport trunk encapsulation dot1q が必要です)。

あわせて、使う VLAN(ここでは 12 と 23)をスイッチに作っておきます(vlan 12、vlan 23)。トランクは既定ですべての VLAN を通しますが、スイッチ上に存在しない VLAN のフレームは転送されません。

VLAN 番号と IP アドレスの決め方

IP アドレスは自由に決めてかまいませんが、ルールを決めておくと構成を追いやすくなります。私は次のように決めています。

項目決め方例(R1–R2 間)
VLAN 番号つなぐ2台のルータ番号を並べる12
第1・第2オクテット任意(私は 192.168 をよく使う)192.168
第3オクテットVLAN 番号と同じ192.168.12.0/24
第4オクテットルータ番号R1 は .1、R2 は .2

こうしておくと、セグメントを見ればどのルータ間のものか、IP アドレスを見ればどのルータに設定されたものかが、すぐにわかります。

R1–R2 間のセグメントを作る

R1 と R2 の間なので、VLAN 番号は 12 です。両方のルータに、サブインタフェース Fa0/0.12 を作ります。

R1

R1(config)#interface fastEthernet 0/0.12        
R1(config-subif)#encapsulation dot1Q 12               
R1(config-subif)#ip address 192.168.12.1 255.255.255.0

R2

R2(config)#interface fastEthernet 0/0.12
R2(config-subif)#encapsulation dot1Q 12
R2(config-subif)#ip add 192.168.12.2 255.255.255.0
コマンド意味
interface fastEthernet 0/0.12Fa0/0 の下にサブインタフェース 12 を作る。ドットの後ろの番号は自由ですが、VLAN 番号とそろえると見やすくなります
encapsulation dot1Q 12このサブインタフェースの送受信に、VLAN 12 の 802.1Q タグを使う
ip address 192.168.12.1 255.255.255.0サブインタフェースに IP アドレスを設定する(ip add は ip address の省略形)
補足

サブインタフェースは、親の物理インタフェースが up していないと使えません。物理インタフェース(Fa0/0)に no shutdown を入れておきます。サブインタフェース側には IP アドレスを設定し、物理インタフェースには IP アドレスを付けなくてかまいません。

R1 から R2 に ping します。

R1

R1#ping 192.168.12.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 16/22/28 ms

! は応答があったこと、. は応答を待つ間にタイムアウトしたことを表します。最初の1回だけ . になるのは、多くの場合、相手の MAC アドレスをまだ ARP で調べている最中に1発目を送ろうとしたためです。2回目以降が届いていれば、セグメントはつながっています。

これで、R1–R2 間の論理セグメントができました。

192.168.12.0/24(VLAN 12).1.2R1R2Fa0/0.12Fa0/0.12
図3 R1–R2 間の論理セグメント(VLAN 12)

R2–R3 間のセグメントを作る

同じ要領で、R2 と R3 の間に VLAN 23 のセグメントを追加します。R2 には、同じ Fa0/0 の下に2つ目のサブインタフェースを作ります。

R2

R2(config)#interface fastEthernet 0/0.23
R2(config-subif)#encapsulation dot1Q 23
R2(config-subif)#ip address 192.168.23.2 255.255.255.0

R3

R3(config)#interface fastEthernet 0/0.23
R3(config-subif)#encapsulation dot1Q 23
R3(config-subif)#ip address 192.168.23.3 255.255.255.0

R2 から R3 に ping します。

R2

R2#ping 192.168.23.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.23.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/14/24 ms

これで、R2–R3 間の論理セグメントもできました。R2 は物理インタフェース1つで、2つのセグメントにつながっています。

192.168.12.0/24.1.2192.168.23.0/24.2.3R1R2R3Fa0/0.12Fa0/0.12 / Fa0/0.23Fa0/0.23
図4 R1–R2–R3 の論理構成(VLAN 12 と VLAN 23)

ループバックアドレスの設定

ネットワークの情報を他のルータにアドバタイズしたいときや、疎通テストの宛先として、ループバックアドレスを設定しておくと便利です。ループバックは物理インタフェースの状態に左右されず、常に up しています。私は、4つのオクテットすべてをルータ番号にしたアドレスを /32(255.255.255.255)で設定します。

R1

R1(config)#interface Loopback0
R1(config-if)# ip address 1.1.1.1 255.255.255.255

R2

R2(config)#interface Loopback0
R2(config-if)# ip address 2.2.2.2 255.255.255.255

R3

R3(config)#interface Loopback0
R3(config-if)# ip address 3.3.3.3 255.255.255.255

R1 にループバックを追加したい場合は、たとえば 11.11.11.11 のように、アドレスを見てルータ番号がわかる値にします。

注意

1.1.1.1 などは、インターネット上で実際に使われているグローバルアドレスです(1.1.1.1 は公開 DNS サービスのアドレスとして知られています)。インターネットにつながらない閉じた検証環境だけで使い、外部と通信する環境では使わないようにします。

MAC アドレスの変更

Wireshark などでパケットキャプチャを見るときや、ARP テーブルを確認するときのために、ルータの MAC アドレスを変えておくと便利です。MAC アドレスを見てルータ番号がわかると、どのルータのパケットか迷わずに済みます。

R1

R1(config)#interface FastEthernet0/0
R1(config-if)# mac-address 0000.0000.1111

R2

R2(config)#interface FastEthernet0/0
R2(config-if)# mac-address 0000.0000.2222

R3

R3(config)#interface FastEthernet0/0
R3(config-if)# mac-address 0000.0000.3333

MAC アドレスは物理インタフェース(Fa0/0)に設定します。その下のサブインタフェースも、同じ MAC アドレスを使います。

show ip arp:R2 の ARP テーブル

R2

R2#show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.12.1            1   0000.0000.1111  ARPA   FastEthernet0/0.12
Internet  192.168.12.2            -   0000.0000.2222  ARPA   FastEthernet0/0.12
Internet  192.168.23.2            -   0000.0000.2222  ARPA   FastEthernet0/0.23
Internet  192.168.23.3            0   0000.0000.3333  ARPA   FastEthernet0/0.23
表示意味
192.168.12.1 / 0000.0000.1111R1 のアドレス。MAC アドレスの末尾で R1 だとわかる
192.168.23.3 / 0000.0000.3333R3 のアドレス
Age (min) が –R2 自身のアドレス。.12.2 と .23.2 のどちらも 0000.0000.2222 で、サブインタフェースが物理インタフェースの MAC アドレスを使っていることがわかる
Interfaceそのアドレスがあるサブインタフェース(Fa0/0.12、Fa0/0.23)
注意

MAC アドレスは、本来は機器ごとに一意に割り当てられる値です。手で決めた値は、検証環境の中で重複しないように管理し、本番のネットワークには持ち込まないようにします。

私の検証ネットワーク構成

私はよく、次の構成でネットワークの検証をしています。物理的には6台のルータを L2 スイッチにつないでいるだけで、セグメントはすべてサブインタフェースで作っています。

192.168.12.0/24192.168.23.0/24192.168.34.0/24192.168.25.0/24192.168.35.0/24192.168.26.0/24192.168.36.0/24.1.2.2.3.3.4.2.5.5.3.2.6.6.3R1R4R5R6R2R3R1:Loopback0 1.1.1.1/32R2:Loopback0 2.2.2.2/32R3:Loopback0 3.3.3.3/32R4:Loopback0 4.4.4.4/32R5:Loopback0 5.5.5.5/32R6:Loopback0 6.6.6.6/32
図5 6台のルータを使った検証ネットワーク
セグメントVLANつなぐルータ
192.168.12.0/2412R1(.1)– R2(.2)
192.168.23.0/2423R2(.2)– R3(.3)
192.168.25.0/2425R2(.2)– R5(.5)
192.168.26.0/2426R2(.2)– R6(.6)
192.168.34.0/2434R3(.3)– R4(.4)
192.168.35.0/2435R3(.3)– R5(.5)
192.168.36.0/2436R3(.3)– R6(.6)

ネットワークアドレスや IP アドレスを見れば、ルータ間のつながりがすぐにわかります。この構成のよいところは、R1 から R4 へ通信するとき、R2 から R3 へ向かう経路が、直接・R5 経由・R6 経由の3つあることです。経路の切り替えなど、いろいろなパターンを確認できます。

このブログの検証も、基本はこの構成で行っています。

うまくつながらないとき

状態よくある原因確認すること
どのセグメントにも ping が通らない物理インタフェースが shutdown のままルータで show ip interface brief を見て、Fa0/0 とサブインタフェースが up か確かめる
特定の VLAN だけ通らないスイッチにその VLAN がない、またはトランクで許可されていないスイッチで show vlan brief と show interfaces trunk を見る
相手のアドレスが ARP テーブルに出ない両側の encapsulation dot1Q の VLAN 番号が違う両方のルータでサブインタフェースの設定を見比べる
ARP は解決するが ping が通らないIP アドレスやサブネットマスクの間違いセグメントのアドレスが表の決め方どおりか確かめる

まとめ

ネットワークの構成を把握するのにストレスを感じないよう、できるだけ単純にして、検証したい機能の動作確認に集中しましょう。この記事で決めたルールをまとめます。

項目決め方例
物理配線各ルータの物理インタフェース1つを L2 スイッチのトランクポートにつなぐFa0/0
VLAN 番号つなぐ2台のルータ番号を並べるR2–R3 間は 23
サブインタフェースVLAN 番号と同じ番号にするFa0/0.23
IP アドレス第3オクテットは VLAN 番号、第4オクテットはルータ番号R3 は 192.168.23.3
ループバック4つのオクテットすべてをルータ番号にする(/32)R3 は 3.3.3.3
MAC アドレス末尾をルータ番号にするR3 は 0000.0000.3333

コメント