AWSをパブリッククラウドとしてだけではなく、プライベートクラウドとして利用するためにはAWSとのVPNを形成する必要があります。
Infrabbitは当初から最終的には事務所内のオンプレミス機器を純粋なラボ環境としての運用にシフトしたいと思っていたので、運用上必要な各種サーバ類はAWS上に退避させたいと思っていました。具体的には、ネットワークストレージ、rsyslogなどのロギングシステム、ESXi上で稼働しているVyOSのローカルルータなどがその代表です。
尤も、ローカルルータをAWS上に置くといくら何でもラボ用のVLANとの通信の都度AWSまでパケットが出かけていく、というのはいくら何でも無駄なので、内部にローカルルータは持ちたいところ。
というわけで、安価かつ多機能なVPNルータとしてYAMAHAさんのRTX830を導入することにいたしました。
VPNにも対応できますし、VLANも普通に通りますし。トランキングがどーだったかなぁ、とかうろ覚えなんですが、コマンドリファレンス開くのも面倒くさいので、どうせあるんじゃないかしら。まあなくてもスイッチとの間が冗長化できないってだけだし、現状より悪くなるわけではないので。
注文後にリファレンスを確認しましたが普通にVLANトランクポートはあったので問題ないですね、たぶん。
Ciscoじゃないのは、高いからです。あと単純にYAMAHAは使い慣れている、というのもあります。
ONUはPR-500MIなのでVPNサーバは持っているんですが、あんまり高機能でもないのと細かい設定がほとんどできないので、ONUはONUだけやっといていただくことにしたいかと思います。
まずはRTX830を構成して、ONUからルータを引き剥がすとともに、VLANの接続回りが少し変わるのでVLANの設定をいじくらないといけないですね。
基幹スイッチになっている24ポート*2のスイッチにはもう空きが2ポートくらいしか残ってないので、ONUに近い位置に居るエッジスイッチ側につなぎましょう。どうせこのエッジスイッチから無線APとONUとのラインが外れるので、最低でも2ポート空きますし、その2ポートでRTX830とトランクしてもらえば問題ないでしょう。
正直な話、事務所としている環境はこんなことになっているので、自分でも配線表見ないと即興ではなにがなんだか思い出せません。そしてそれらも微妙にアップデートしてなくてちょっと現環境と合わない部分もあったりするので、きちんとしないとなぁと思いつつ、ネットワークって手間が大きいので後回しになってしまっています。
そしてエッジの設定見ようとしたらエッジスイッチが応答しない…。
結局数日かけて接続表をアップデートしました。めんどくさかった…。スイッチのポートにもDescription書けるようにすることを標準化してくれないかなぁ。
いろいろバタバタしつつ、デフォルトVLANであるVLAN ID 1を普通にVLANの一つとして扱ってたのですが、どうやらRTX830さんはVLAN ID 1を特別枠扱いしていてタギングされて渡されても無視してしまう、というかLAN1で受けてしまう。vlanインターフェースで受けてほしいのだけど、vlanインターフェースのidに1を設定できないw
まあこれはVLAN 1を普通に使ってた私が悪いんですが。
しょうがないので結局ポートベースでLAN1をポート分割して使いました。タギングとか何だったのか。まあ、タグは主にスイッチの世界がメインですしね。ルータのタグ解釈とか割とオマケ感があります。ルータについてる4ポートもインテリになってくれればいいのに。そしたらLACPとかで遊べるのですけど、なかなかむつかしいでしょうね、コスト跳ね上がりますし、素直にL3スイッチ買ってこい、という話ですよね。
というわけで、トランクはあるのだけどうちでは使えない(というか環境構築しなおせば使えるとは思いますが)、という残念なことに。
どこかのベンダーでL3スイッチの安いの出してくれないですかねぇ。まあ、そんなもの買ったらPPPoEとさようならしないといけなくなるので絶対買いませんけど。
あとはサクサクとPPPoEを置き換え、さくっと入れ替えたのですが、ONUを同じセグメントに入れているとRTX830が謎挙動を引き起こす。
具体的には、RTX830のDHCPを有効化していて、ONUのDHCPを殺すとDHCPが応答しなくなる。ブロードキャストに応答していない、ってことなのかな、と思ったりしますが、
「ONUのDHCPを有効化するとなぜかRTX830のDHCPが応答をし始める」という本当に意味の分からない状況が発生します。というか早い者勝ちでDHCPのパケットを拾ってるっぽいんですが、ONUのDHCPを止めるとまただんまりする。これにだいぶ頭を抱えてしまい、結局ONUは別セグメントに切りなおして排除したら普通にDHCPが応答し始めました。
ONUのDHCPだけ有効化してRTX830のDHCPを殺してもよかったのですが、NTTのONUのDHCPはデフォルトゲートウェイを指定できないゴミ仕様なので、こんなもの使うくらいならきちんとDHCPオプション含めて配布できるRTX830を使いたいです。
もっとも、この後IPv6 IPoEが有効化してるのに機能してくれない、とか発生していますが、とりあえずIPv4ではつながったのでひとまずは良しとします。
L2TPも設定し、外部からVPNでの接続も確認したので、次はAWSとのネットワークを形成します。こちらはチュートリアル通りの流れと、RTProサイトのサンプルConfigをまるっと引っこ抜いてくる感じです。
ルーティングもBGPが面倒見てくれるので、Staticにせねば!とか考えない限り基本的には問題無し。
VPC側のセキュリティグループに充てる接続元は169.254~の仮想プライベートゲートウェイのアドレスを用いる。カスタマーゲートウェイがパブリックIPをセットアップするので、AWSからDLしたConfigのipsec ike addressはNATしている場合は書き換えないといけないのはご愛敬。
169.254のアドレスをうまいことVPNのトンネリングに充てて、セグメント分割していて、これは上手ですね。たしかにこれなら絶対にコンフリクトはしないです。VPNは一本でも作れるっぽいですが、二本作って片系ダウン時も接続できるようにするのがセオリーのご様子。
一か月くらい回して、実際にどれくらいかかるか見ながらかなぁ。プライベート側のサブネットにBGPのルーティングをアドバタイズしていますが、0.0.0.0/0をアドバタイズするようなので、この辺はbgpを少しいじらないとダメかな。パブリックサブネットでは0.0.0.0/0はigwにつながっているわけですし。まあ、プライベートサブネットにBastion立てればよいのでは、という話でもあるんですが。
とりあえずこれで、どこのご家庭にもある自宅データセンターをAWSにオフロードする用意が整いました。
…で、IPv6 IPoEの件はどうしようw