見出し画像

NAT+PPPoEした際のCiscoルータのスループット

安い割に性能高そうだったので3台ほどCisco891fjを導入して管理していたのですが、某所にて性能不足が気になってきた昨今。Ciscoルータのスループットを調べてみると、例えば次のようなページが見つかります。

https://www.curvature.com/ja/resources/tech-guides/which-isr-series-is-right-for-your-network/

ここでいうスループットは双方向の合計値なのですが、これはNATを使っていない状態での値。インターネット接続用ルータとして事実上必須であるNATを使った場合、NAT変換により場合によっては大きく性能が低下するっぽいのです。

891fjのスループットは、一応1.2Gbpsとのことではあるんですが、某所のギガビット回線を受けるPPPoE+NAT機として稼働させた場合、どんなに空いている時間に各種のスピード測定サイトで測定しても200Mbpsで頭打ちになります。ちなみに、某所の稼働状況は次の通り。

  • IPアドレス空間:/28

  • インターネットサーバ:DNS、メール、web。DMZに置いてグローバルアドレスとスタティックNATしている。

  • クライアント端末:頭数は1000台強くらい?常時稼働しているのが100台程度。最大同時アクセス台数は200~300台?

長年特に問題なく稼働してきたんですが、昨今は50台のPCを一斉にWindowsUpdateすると一部の端末が繋がらなくなったり、何でもないのにインターネット接続が出来ないタイミングが稀に発生したりしていました。調べたところNAT変換テーブルが一杯になっているっぽかったので、NAT変換テーブルの保持時間を短めにするという対症療法で凌いでいました。古い1812jとか1712(流石にこれは古すぎて使い物にならないですね)が余っているので、50台のクライアントPCだけ1812jでNATして、それをインターネット接続ルータで再度NATして変換テーブルの消費を減らすか?
なんて考えていた昨今。
ISR G2シリーズが保守終了になったの伴い、現役時代は自動車が一台買える値段であった中大規模ルータがお小遣い価格でヤフオクに溢れるようになりました。
そこで、たまたま出品のあったCisco3945Eを5000円程度で入手し、従来の891fjのコンフィグを手直ししてPPPoE+NAT機として突っ込んでみた結果。

Cisco3945EでPPPoE+NATした場合のスループット値。明け方4時頃測定。

はぁ~、やはりルータのNAT性能がボトルネックだったんですね。確定。
NAT変換テーブルの最大エントリ数については、

Q. Cisco IOS の NAT 機能でサポートされる同時 NAT セッションの数はいくつですか。

A. NAT セッションの上限数は、ルータに搭載されている DRAM の使用可能量によって制限されます。各 NAT 変換は、約 312 バイトの DRAM を消費します。その結果、10,000 変換(一般に 1 つのルータで処理されるより多い数)では約 3 MB が消費されます。そのため、標準的なルーティング ハードウェアは、数千の NAT 変換をサポートするのに十分なメモリを備えています。

891fjのメインメモリは512MBなので、計算上は1万エントリでも十分余裕?に思えなくもないんですが、「NAT変換テーブルを早くexpireしないと、他の通信のNATが行えなくなる症状」が発生した(と思われる)以上、メモリ云々よりも、891fjには荷が重い運用だったということなのでしょう。

内側→外側へのNATの他、インターネットからDMZへの通信、それもDNSクエリのように一つ一つのトラフィック量自体は大した事なくても、クライアント数がやたらと多くなる場合が見込まれる通信も負荷を掛けていたんでしょうね。

現在稼働させている3945でsh verしてみるとこんな感じです。(抜粋)

Cisco IOS Software, C3900e Software (C3900e-UNIVERSALK9-M), Version 15.4(3)M5, RELEASE SOFTWARE (fc1)
ROM: System Bootstrap, Version 15.1(1r)T5, RELEASE SOFTWARE (fc1)
System image file is "flash0:c3900e-universalk9-mz.SPA.154-3.M5.bin"
Technology Package License Information for Module:'c3900e'
ipbase ipbasek9 Permanent ipbasek9
security securityk9 Permanent securityk9

まぁこれでしばらく様子を見てみます。

一方、自分ちと第二拠点はどちらもVDSLで891fjを使っているのですが、

じぶんちの速度
第二拠点の速度

どちらもPPPoE+NATさせて、トンネル掘って、サーバ置いてwebやらdnsやらを動かしているのですが、某所で200Mbpsでルータの性能が頭打ちになってしまった、という経験からするに、

100Mbps回線の環境では、891fjで必要にして十分である!

ということも導けてしまったのでした。

実は3945と一緒に2911も入手してしまったのです。まぁ、

3945がダメそうなら2911も試してみるべ。もし3945が行けそうなら、自宅で2911を使ったらパフォーマンス上がるべか?

3945Eを動かす前の計算@俺氏

なんて考えていたのですが、結論からするとVDSL環境で2911にする意味はないし、それ以前にファンの音がうるさすぎて家では使えんだろ!

というわけで使い道のない迷子の2911が発生してしまったというお話でありました。合掌

Cisco3945E
3945Eのメインボード(SPE250/K9)。DIMM足したら性能向上するんだべか。

この記事が気に入ったらサポートをしてみませんか?