【ネットワーク】L2スイッチとルータを使用したL3スイッチの実現

こんにちは、雑味です。

私は普段業務系システムの開発に従事していますが、たまにネットワーク案件も回ってきます。

正直ネットワークはあまり得意ではないのですが、以前L2スイッチとルータの機能を使用してL3スイッチと同等のネットワークを構築したときの作業は私的にベストバウトだったので備忘録的に記録することにします。

前提

  • 使用中のL3スイッチが不具合を起こしネットワーク障害が発生。急遽交換する必要があったが取引先内で即時に稟議が降りなかったため、Baffalo製のL2スイッチ(BS-GS20シリーズ)のL3モードとYAHAMAのルーターを組み合わせL3スイッチと同等のネットワークを構築することにした。
  • BaffaloではL3スイッチは販売していない。(2020年5月現在)
    →「レイヤー3 Giga対応 インテリジェントスイッチBS-G3024MR」は販売終了済み。

使用機材

スイッチ:Baffalo BS-GS2024

ルータ:YAMAHA RTX830

ネットワーク構成

その他条件

・A課⇔情シス、情シス⇔OPEN LAN、A課⇔OPEN LANの相互通信は不可

・A課/情シス/OPENLAN ⇔ ポート23・24の相互通信は可能

・A課と情シスは固定IPアドレス。OPEN LANのみDHCPにてIPアドレスを自動取得する。

設定手順

VLANの作成~通信確認

ルータの設定

①LANの設定

ルータのプライマリアドレスを「192.168.2.2」に設定する。
また、セカンダリアドレスも必要であれば設定する。

スイッチの設定

①VLAN設定

スイッチ内にA課(以下VLAN1)、情シス(以下VLAN2)、OPEN LAN(以下VLAN3)、インターネット用(以下VLAN4)の4つのVLANを構築する。

VLANを作成したら、VLANポート(PVID)の振り分けを行う。PVIDを設定しないとVLANは機能しないので、必ず設定する。

②デフォルトゲートウェイの設定

ルーティングのレイヤー設定で「レイヤー3」のモードを選択しておく。レイヤー3モードにすると静的ルーティング設定が行えるようになるので、デフォルトゲートウェイにルータのIPアドレス(192.168.2.2)を設定し、ルータへのルートを作成する。

ここまでの設定で、VLAN1~3 ⇒ VLAN4 ⇒ ルータへの通信が可能となる。

ただしpingで通信確認をすると、VLAN4 ⇒ ルータは通信確認が取れるがVLAN1~3の通信はできていないことが分かる。これはルータからの戻り先が不明の状態のため。
VLAN1~3からも通信できるようにするため、ルータ側でスイッチへのルートを作成する。
なお、VLAN4とルータのIPアドレスのネットワークは同じなので通信可能。

ルータの設定

①ルーティングの設定

ルータからVLAN1~VLAN3への戻りルートを設定する。設定内容は以下の通り。

ルータからVLAN4を経由してVLAN1~VLAN3に戻るという意味になる。
各VLANのネットワークに戻るので、IPアドレスの第4オクテッドは0、サブネットマスクは24。

上記の設定を行い再度pingを打つとVLAN1~VLAN3からもルータへの通信が確認できる。

ここまでの設定で各VLANからルータへの通信が可能となったが、VLAN1、VLAN2、VLAN3間の相互通信が可能な状態なので、次の手順で相互通信を不可にする。

ACL設定によるVLAN間の通信制御

レイヤー2モードではVLAN間の相互通信はデフォルトで通信不可だが、レイヤー3モードではVLAN間の相互通信はデフォルトで通信が可能である。(これは一般的なL2、L3の仕様と同様)

今回は、ACLを設定することによりVLAN間の通信を不可にする。

スイッチの設定

①ACLの設定

Baffalo BS-GS2024では、ACLグループを作成しその中に複数のルールを設定することができるのでまずはVLAN1用のACLグループ、VLAN2用のACLグループ、VLAN3用のACLグループをそれぞれ作成する。
この時ACLグループ名およびグループ番号は任意。

②VLAN1用のACL設定

以下の優先度順になるようにACLルールを作成する。

1.送信先がルータのIPアドレスを「許可」
2.送信元がルータのIPアドレスを「許可」
3.送信先がVLAN2のIPアドレスを「拒否」
4.送信先がVLAN3のIPアドレスを「拒否」
5.送信先、送信元ともにすべてのIPアドレスを「許可」
※5を入れないと自分自身のIPアドレスを拒否してしまうので必ず入れる。

③VLAN2用のACL設定

以下の優先度順になるようにACLルールを作成する。

1.送信先がルータのIPアドレスを「許可」
2.送信元がルータのIPアドレスを「許可」
3.送信先がVLAN1のIPアドレスを「拒否」
4.送信先がVLAN3のIPアドレスを「拒否」
5.送信先、送信元ともにすべてのIPアドレスを「許可」

④VLAN3用のACL設定

以下の優先度順になるようにACLルールを作成する。

1.送信先がルータのIPアドレスを「許可」
2.送信元がルータのIPアドレスを「許可」
3.送信先がVLAN1のIPアドレスを「拒否」
4.送信先がVLAN2のIPアドレスを「拒否」
5.送信先、送信元ともにすべてのIPアドレスを「許可」

上記の設定により、VLAN1~VLAN3間の相互通信は不可となる。

DHCPを有効にする

VLAN3のみDHCPでIPアドレスを取得できるように設定をする。
Baffalo BS-GS2024はDHCP機能を持たないため、今回はルータのYAMAHA RTX830のDHCP機能を使用する。

ルータの設定

ルータのDHCP機能を有効にする。また、DHCPサーバーで割り当てるIPアドレスの範囲を設定する。

スイッチの設定

VLAN外にあるDHCPサーバーを使用することになるため、DHCPリレーの設定を行う。

VLAN3のみDHCPを設定するため、VLAN3のみ有効にしDHCPサーバのIPアドレスを入力する。
(今回はルータのDHCPサーバ機能を使用しているためルータのアドレスを入力している)

まとめ

上記の設定により、「ネットワーク構成」に記載のL3構成が実現できる。

手順化すると意外と難しいことはしていないけどいきなりやれと言われるとかなり苦戦した覚えがあります。どなたかの参考になれば幸いです。

参考サイト

以下のサイトを参考にさせていただいています。ありがとうございます。