安価(?)でプチキャリアグレードNATルータを作ってみた

寒い日が続きますが、皆さん体調など崩していないでしょうか?
自分はサバゲで叫びすぎて喉を痛めてその後いっきに冷え込んだため、そのまま喉をやられてしまいました。
内部ネットワークを10Gでリプレースというでかい作業に着手した直後に同僚が不摂生という不可抗力で倒れ、一人で糞暑い中連日DCに通って朝から晩まで作業して、やっとこさ落ち着いたらこのざまです。

さて、自社でも大変重宝しているCore i7 870のVyattaですが、そのトラフィックもとうとうピーク時で大量のショートパケットをさばきつつ out/400Mbps inout/280Kpps 前後をNATで処理するようなところまできてしまいました。
今となっては貧弱なハードウェアでここまでできてしまったのは、正直想定外です。
CPUはチューニングのためにハイパースレッドをオフにして、各コア綺麗に分散している状態でピーク時で45%くらいなのでそろそろキャパシティに不安がでてきました。

natter1 natter3 natter2

そこで内部ネットワークの10G化にあわせて、新しいNATルータを設置することにしました。
自分の中での要件は以下のとおりでした。

・通常だと一個しか置けないデフォゲーNATルータを複数置いてスケールさせたい
・安定性と冗長性は絶対ゆずらない
・アクティブスタンバイ構成をやめてアクティブアクティブにして効率化したい
・Vyattaの負荷を考慮してデフォゲーと内部ルーティング用を分離して、全サーバにスタティックルートを書いている運用を捨てたい
・フェイルオーバーは2,3秒くらいでしてほしい

という夢の様な要件から、以下の方法を導き出しました。

・NAT/IP Masquaredeは従来通りVyattaでがんばる、ここはCPUパワーでコスパを出すしかない
・デフォゲーは信頼性向上と直近でセグメント間の通信をワイヤレートでする必要があるため、思い切ってディストリビューションスイッチとしてL3スイッチを導入する
・デフォゲーを受けたL3スイッチからは、OSPFのECMPでNATルータの負荷分散をする、冗長性はルーティングプロトコルで担保する

このように、L3スイッチが得意とする超高速ルーティングと、CPUバウンドでなんとかなるIP Masuquaredeの処理をVyOSでするという分担構造になりました。

説明用に軽く図をかいてみました。

natter4

これならば高信頼かつワイヤレートでVLAN間が通信できるし、NATルータはL3スイッチのECMP上限数まで増やせるし、内部と外部用でゲートウェイわけなくてもいいし、一石億鳥やー!ってことでプロジェクトは動き始めました。

L3スイッチとVyattaでのOSPF ECMP NAT串刺しルーティング構成の検証はVirtual Box上で、Arista NetworksのvEOSを対向として行いました。
vEOSは多少の機能制限があるものの、ほぼ完璧にL3スイッチの動作をするのでこちらで検証を行いました。

もちろん外部と正常に通信できるのは当たり前ですが、ルーティング的に問題ないことはわかっていたので、ECMPの分散に偏りがでないかを重点的に調べました。
一昔前のL3スイッチではECMPの負荷分散がIPを元にハッシュ化していたため、しばしば偏りECMPの意味がないといった状況が多発していたようです(?)
現在ではパケット単位が標準のようです。

ディストリビューションスイッチはアライドテレシスのx8100を導入しました。
要件に対して事前の検証やアドバイス、導入支援まで迅速に数多くしていただきました。

今回はこの程度の概要しか気合が足りなくて書きませんが、リクエストがあればもうちょっと深く掘り下げて書いて見ようと思います。

このドサクサにまぎれてVyattaからVyOSに移行しました。
詳細は過去のエントリーにあります。

あとサーバルームの連続稼働は一日6時間くらいまでが健全だと思いました。

コメントを残す

メールアドレスが公開されることはありません。


*