L3スイッチとVRFでつくる自宅ラボ・ネットワーク
はじめに
珍しくここのところ連日ブログ更新しています。昨年後半くらいからちょっとずつためていたネタを放出しているだけなのですが。これ書いたらいったん終わりかなあ…。
これまでは、宅内環境つくるにあたってみてきた要素技術を切り出して書いてきました。そこで、実際のところこういう利用方法があるよ、という例として自宅の構成の話を。自分が何をやりたくてそれぞれの要素を見てきたのかをまとめておこうと思ったわけです。以下「楽」とか「面倒」とか何度も出てきますが、要はどれだけ手を抜けるかという記録です。
宅内ネットワーク構成図
2011/7月末にも書いているのですが、その後、結構自宅ラボ用機材の補強をしました。スマートフォン買って無線 LAN がほしくなったので、Cisco 892W を導入したり。1812J が浮いたので買い足してテスト環境として独立させたり。
個人的に、自宅検証用環境に求めているのはこういうことです :
- (L3 以上の) 柔軟性・再現性
- L1/L2 まで含めて環境を作ろうとすると、とにかく場所がない。機材買う費用も電気代も厳しい。ので、物理的な機材はなるべく少なく。仮想化とかで対応できる物は極力使ってごまかす。L1/L2 の検証 (耐障害性とか) までは無理しなくてもいいや……という考え方です。少ない台数でなるべく汎用的に使えそうな物を。
- 安定した普段使いのインターネット環境と、多少無茶してもよい検証環境の共存
- 前にも書いたのですが、普通にネット使いたい環境と実験用の環境とを混在させてしまって、検証環境をいじるのに引きずられてネット接続ができなくなるとか、非常に困るのでそこは分けたい。でも上記の通り、機材は極力減らしたい。
- 検証環境はどうやったって使い捨てなので、毎回毎回デフォルトのコンフィグとか入れなくてもちゃんと使い回せるようにしたいよねーとか。何かを試すための余計な作業とか面倒くささのハードルはできるだけ下げたい。L1 の作業(配線変更とか)その最たる物で、「うーんまた配線いじるのかー」とか思い始めると萎えてしまう。特に冬場は…コタツから出ないでテストがしたい(重要!) 物理構成変更は時間もかかるし。思いついたらさっと作って試したい。
そんなこんなで、今の構造はこういう感じになりました。
余計な物は消したのだけど、それでもごちゃごちゃしてわかりにくいので (L1-L3 まで 1 枚にしてしまっているので) ざっくり役割分けるとこういう感じになります。
それぞれどういう意図があって、どういう使い方をしているのかというのを残しておきます。
機材
パケットキャプチャのとりやすさ
- 外部接続のところ、あえて VLAN2 でスイッチ挟んでいるのは、インターネットの出口のところをミラーリングしてデバッグできるようにしたかったからです。外部公開サービスとか、いよいよ何かあったときにどう見るかというところで、間に 1 枚はさまっていると対処しやすい。たとえば、いま外から VPN 接続できるようにしているのだけど、つながらない場合に実際にパケット飛んでるのかどうか? とか、そもそも上流(キャリアネットワーク)側に問題ないかどうかの切り分けがこれでやれます。
- 宅内の通信は原則 L3SW を経由してやるようにしておくと、パケットキャプチャ用の PC つないでミラーポートの設定いじるだけで、任意の箇所で通信追いかけることができます。そもそもスイッチ挟まないで機材間直結しちゃうとポート数足りなくてキャプチャ取れないとかあるし、面倒だよね。
内部用と実験用の分離
- 内部ネットワークはどれも GRT で構成してあります。実験用(1)(2)とは L2(VLAN)+L3(VRF) で完全に分離。これで実験用環境で何をやっても内部には全く影響がありません。(ブロードキャストストーム起こして CPU 飛ばすとかそういうのをしなければだけど…。) ただ内部用と実験用を完全に分けると、そもそもアクセスできなくなるので、踏み台用のサーバを置いてあります。VM だけど。内部の機材からは原則踏み台経由で実験環境操作を行います。
- 内部は機材構成の都合とかでまたいくつに分けてあるのですが、無線 LAN が分離されてたり NAS 周りが分離されていたりするので、間で OSPF をしゃべっています。VM でたててある NAS 周りを分けてあるのは、そこだけ GbE 直結させたかっただけ…。ダイナミックルーティング使える L3SW 使ってると、この辺、セグメントの分割とか経路制御とかはどうにでもできるので楽ちんですね。
実験用ネットワーク
- 実験用(1) は VRF のルート漏洩の挙動とか設定とかを見たくて作っただけで、正直無駄です。いまは使っていません。そのへんいろいろ試して得られた結果は ルータ2台で始める VRF 入門 というかたちでまとめました。実験用(2) の 1812J つかってもう一度整理し直したのだけど。
- 実験用(2) 機器間接続は全部 VLAN です。たとえばルータ 2 からルータ 4 の間をつなぎたい場合は VLAN 724 を使う、とか簡単なルールを決めておいて全部 VLAN でやります。物理構成接続なしで、全部コマンドラインで機器間のつなぎ替え (論理トポロジの構成変更) をやります。
- 実験用(2) はポイントがふたつ。ひとつは AutoInstall による初期コンフィグの自動設定、もうひとつは "mgmt" VRF による管理アクセスの分離。
- AutoInstall についてはすでにまとめた ので簡単に。シリアルサーバとかない環境で機材の初期化して再構築とかやるのは面倒です。いちいちシリアルつなぎ直してリモートアクセスの設定? どうせ毎度同じ設定なんだし、初期化して起動したら勝手にデフォルトのコンフィグ読み込んでほしいよね、っていうのをやってます。write erase して reload かけたら即リモート接続可能。
- で、読み込む初期コンフィグは "mgmt" (management) っていう VRF で管理接続をわけるようにしてあります。こうしておくと、実験用に構築する環境と管理用接続を完全に分離させることができます。物理的にも論理的 (L3) にも管理パスをわけてしまえば、実験環境を作ってからどういうルートでリモートアクセスさせるかとかいちいち悩まなくて良いわけです。
- 例えば OSPF とかルーティングの試験やりたい場合、管理パスをインラインにすると、設定まちがえたりするとつながらなくなります。前述の通りシリアルサーバとかがないのであれば、いちいちシリアルつなぎ替えて設定なおして復旧しなければいけません。実験で管理パスを確保しながら環境作るのは厄介なので(特に即席で良いから作りたい・試したいみたいな場合)、完全に管理アクセスのパスは分離させてしまって、やりたいことだけに集中した方が楽なわけです。ということで、L1(ポート) + VRF で管理アクセスを実験用に環境から切り離してしまう。
サービスとは切り離して、独立した管理用ネットワークを構成したいという要求は、宅内だろうが社内だろうが常にあります。VRF による管理アクセスの分離はどんなネットワークでも使える汎用的なテクニックでしょう*1。Cisco さんは IPBASE でも VRF 使えるようにしてくれたらいいのにと本当に思うよ…… VRF 2個くらいあればイイから*2。管理パスの分離については、VDC (Virtual Device Context) とか使える機材の場合、管理用のコンテキスト作るという手もあります*3。
問題点
- 耐障害性
- 見てわかる通り、基本冗長化は捨てているので、内部ネットワークに絡むどこか1台が死んだら泣きます。とはいえ、892W も 1812J もスイッチポート持っているのでそこは多少融通は利くのだけど。まあ自宅で使う分にはそこまで冗長性担保はさせなくてもね。(お金かかるし)
- L2/STP 設計
- 原則 L3SW に機材がぶら下がっていくだけの接続なので、全然考えてません。(L2ループがない。) VLAN もそれほど数ないし、per-VLAN RSTP で十分まわる。実験(2) の機材をスイッチポートでもうちょっとつなぐようにすると考えないといけないだろうけど、そもそも L3SW 側のポート数の都合もあるし。たぶん増やさないと思う。
- スイッチのポートが足りなくなったらスイッチ置き換えか増強はするだろうけど。いっそ 3750 Stack とか考えるか?
- 性能
- GbE 化はしたいんだけどなー。どうしようかな。