家にL3SWを導入した (original) (raw)

おうちネットワークをアップデートしよう!

普段こういうのは個人用のHackMDとかに残しているんだけど、ガッッとやってしまったので思い出しつつブログにしてみる。アップデートというほどアップデートでもないのだけどスイッチをいじって思い通りに動いたのが結構楽しかった。

要件

とこんなもんである。複雑なことをやるつもりはあまりない。いきなり色々やろうとして理解の範疇を超える黒魔術をしていると後で痛い目を見るのでミニマルスタートで行きましょう。

ところで何買ったの

Catalyst3560-CX 8ポートです。Ciscoのスイッチといえば紺というか濃青緑(?)のもあるけど白のほうが見た目が好みだった。趣味なのでモチベを上げる色や形にすることは大事。

www.cisco.com

構成

[ONU] -> [Router] -> [L3SW] -> [PCs] よくあるホームネットワークです。いままではルータからPCなどへ直つなぎだったのをL3SWで諸々制御する目論見です。

設定投入

それではやっていき。まぁだいたいこう設定をすればいいだろうという案はこんな感じ

VLANの設定は、ホームLANとラボLANをつくるとしてそれぞれVLANを作成し、SVIを割り当てておけばよいでしょう。

Switch(config)#interface vlan 10 Switch(config-if)#ip address 192.168.100.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exit Switch(config)#interface vlan 20 Switch(config-if)#ip address 192.168.200.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exit

これで各VLANに属するホストがデフォゲをSVIにむければVLAN間ルーティングができる。 次はインターネットアクセス用の要件。ラボネットワークからはインターネットアクセスを禁じたいとは言ったものの、まぁインターネットアクセス自体はできるようにしておいてACLで制御すればいいよな...と思ってとりあえずすべてのVLANからインターネットアクセスできるようにすることを考えて、これには複数の案があると思っていた。

  1. L3SWとルータの間をトランクポートで接続し、ルータで各VLAN用にサブインターフェースをつくる。
  2. L3SWでルーテッドポートを作成し、ルータのLAN側のIPアドレスと同じセグメントのIPアドレスを割り当てる。ルータから各VLANへのルーティングはルータ内でスタティックルートを作成する。

複数のVLANのトラフィックが通過するポートはトランクポートとして設定する必要があるので、すべてのVLANがルータ経由でインターネットアクセスするなら、1つのトランクポートを通じてルータに中継し、VLANごとにNATすればいいなと思っていたのが1個目。とはいえサブインターフェースの設定は今使っているルータでできるのか怪しいと思っていたのでルーテッドポートを使うことも考えていた。こちらはスタティックルートが切れればいいので、さすがにルータと銘打っている以上はできるでしょ。そんじゃまぁ案も出たことですし、ルータ側でできる設定でもみていきますか。

ぼく「サブインターフェースあります?」
ルータ「それはないですね」
ぼく「了解。まぁそうっすよね、じゃスタティックルート切れますかねぇ」
ルータ「そこになければないですね」

...ルータってなんだっけ(´・ω・`)

というわけで、ルータはインターネット向け1レーンバケツリレー装置とみなして設定をしなければならない。
さっきつくったVLAN 10 をホームLANとしよう。
まずは、ルータのLAN側のIPアドレスは設定できたので、VLAN 10 のセグメントのIPアドレスを設定し(たとえば、192.168.100.1/24) 、ルータと接続するインターフェースをVLAN 10へ割り当てる。
さらに、L3SWのデフォゲを192.168.100.1/24に設定する。これでインターネット向けのトラフィックがインターネット向け1レーンバケツリレー装置へ向かうことになる。

Switch(config)# ip route 0.0.0.0 0.0.0.0 192.168.100.1

して、VLAN10に接続されているホストは、デフォゲをSVI 192.168.100.254 にすることで以下のようなルーティングでインターネットアクセスができる。同じVLAN内で取り回す格好になる。
host A -> SVI(192.168.100.254) -> ルータ(192.168.100.1) -> インターネット
VLAN間ルーティングはSVIをデフォゲにしているのだから、当然可能である。
host A -> SVI(192.168.100.254) -> SVI(192.168.200.254) -> host B

言ってみたかったこといってもいいですか?いいよ、いいよあり。
懸命な読者諸君はお気づきのことかと思いますが
ありがとうございます。満足しました。
そうなんですよね...ルータと接続しているインターフェースはアクセスポートとしてVLAN10に属しているインターフェースなので、トランクポートとして設定していない以上、他のVLAN(VLAN20)からのトラフィックを通過させることはありません。したがって、VLAN 20からインターネットアクセスはできません。なんだろう、目的を達成しているはずなのにこのやりきれなさは...投入する拡張ACLも考えていたのに

まとめ/感想

使えるものはできたのでいいかなといったところです。ラボ環境のアップデート系のサムシングがあると面倒だよなぁなどと思って、中継用のホストを建てるか、まともなルータ(FWとかでもいいかも?と思いつつ)を導入することも考えつつ、次の構成を考えるネタにもなって実質プラス。これをやる過程でL3SWのアーキテクチャやルーティングの仕組み、ACLのin out の概念、ホスト側でいうと今までルータのDHCPに頼りきりだったのをホストで固定IPを降る方法などいまさら聞けない系の設定を学ぶことができた。 失敗系の話でいうと、一番しょーもないのはホームLANからインターネットアクセスできなくなってしまって相当焦ったんですがルーティングを有効化していなかったりした。
あと、VLAN間ルーティングができなくなったときにtracerouteで調べると、別のVLANのSVIへルーティングされず、ルータへルーティングされているので「なんで〜」っていってたら、普通にデフォゲをSVIにしておらず、別のVLANに送りたいicmpがインターネットの彼方へすっとんでいたりした。
なんやかんや、こうして欲しい環境に合わせて色々わかった上で設定投入して実現させるとこまでできて初めて経験として消化できるなぁと思った。スイッチの使い方としてはかなりベーシックな機能しか使っていないと思うし、コンフィグレーションガイドを見ると他にも色々設定すると面白そうな内容が乗っている。まだまだ週間おうちネットワークは創刊号だし電力と相談して色々環境を整えていきたいところ。