「A10 CGN 設計」の版間の差分
編集の要約なし |
編集の要約なし |
||
| 221行目: | 221行目: | ||
== ユーザ IP の変更 == | == ユーザ IP の変更 == | ||
= 検証ツール = | |||
L4 をイジメられるソフトウェアが必要。筆者が使用したことがあるのは、以下です。 | |||
* IXIA | |||
* Cisco Trex | |||
* Nping | |||
= 落とし穴 = | = 落とし穴 = | ||
2025年12月17日 (水) 11:34時点における最新版
このページでは主に以下の設計について扱います。
- ISP 向け A10 Thunder CGN 物理アプライアンスの設計
- NAT44 の設計
統合管理
aVCS (Virtual Chassis Cluster)

複数の物理筐体のコンフィグを統合し、1 つの running-config で設定することができます。
設定自体は筐体個別に動作しているため、aVCS アクティブ機で各筐体の設定を吸い上げて管理しています。
例えばルーティング テーブルは物理筐体別に持っており、筺体 (device-context) ごとにルーティング テーブルを設定します。
- Cisco Catalyst のように物理筺体 2 台で 1 つのルーティングテーブルを構成する、といった動作は行いません
Harmony Controller
A10 ADC , SSLi , CFW , CGN を統合管理するソフトウェアです。
aVCS は同一拠点内の機器を統合管理しますが、Harmony Contoroller は複数拠点を管理するのが一般的と考えられます。
ここでは扱いません。
冗長化
複数の冗長化方式/プロトコルで物理筺体の冗長化を行えます。
ACOS 2.x で使用できた HA (High Availability) は、ACOS 4.x 以降で使用できなくなっているため、ここでは扱いません。
VRRP-a
FHRP の VRRP を A10 が拡張して作成した、独自プロトコル [1] です。
動作はかなり異なるため別物として認識して、メーカーのコンフィギュレーション ガイドをよく読んで設定する必要があります。
大まかには以下の動作を行います。
- VIP を持つ Vlan では Hello を送信せず、Master / Slave を選出しない
- セッション同期 Vlan 経由で、NAT などのセッション情報を筺体間で同期して、Active / Standby を選出する
- 8 台まで冗長化が可能で、Active / Standby を複数持たせて入れ子とすることで、マルチ Active の N+1 構成を取ることが可能
- 例) VRID1 : #1 Active / #2 Standby + VRID2 : #1 Standby / #2 Active
将来的に N+1 構成を取る場合、コンフィギュレーションはあらかじめ最大構成を考慮して設計すると、増設時に再設計せずにすみます。
Scaleout
VRRP-a は台数が増えるにしたがって、コンフィギュレーションが複雑化します。
今後は Scaleout という機能で、台数が多い割には設定が簡素化できるようになるようです。
ISP の CGN ではまだ事例が少ないようです。
LAG
A10 は Sun Microsystems / Brocade と同様に、LAG は trunk と呼称するため注意が必要です。
Cisco で言う dot1q tag はコンフィグ上で tagging と表記されます。
LACP
2025 年現在、A10 はマルチシャーシ LAG は対応しません。
サイジング
WAN 回線や AS に割り当てられる グローバル IP アドレスから、CGN に使用できるグローバル IP アドレス プールを決めます。
NAT 対象としたいユーザ数を確認し、1 ユーザに割り当てるポート数を制限することで、サイジングを行います。
- ポート数が多い = ユーザは多数のアプリケーションを使用できるが、グローバル IP の消費が多い
- ポート数が少ない = ユーザは同時に少数のアプリケーションしか使用できないが、グローバル IP の消費を節約できる
サイジング例
1 グローバル IP アドレスあたりのポート数は、一般的に以下を使用します。
- 65535 ポート - ウェルノウンポート 1-1023 番 = 1024-65535 = 約 64000 ポート
1 ユーザに 1000 ポートのクォータを割り当てた場合、
- 64000 ポート / 1000 ポート(1ユーザ) = 64 ユーザ
1 つのグローバル アドレスで 64 ユーザを収容することが可能です。
なお、A10 では TCP / UDP / ICMP ごとにポートが別々に存在します。
サイジングは後述の総務省の手順書 Vol.1 が詳しいため、要参照。
NAT プールカウント
デフォルトではプールアドレスの数が少ないため、通常はもっと大きい値に変更します。
For example to adjust the resource allocations, use the following CLI:
ACOS(config)# cgnv6 resource-usage lsn-nat-addr-count 513
ACOS(config)#system resource-usage l4-session-count 4194302
ユーザ クオータ
A10 では送信元ポートの数によりユーザ クオータ数が消費されます。
ISP では 1% のユーザが非常に多くのポートや 50% の帯域幅を消費しようとする傾向 [2] があるため、
ポート数
- quota : 1 ユーザが使用できる最大ポート数を設定可能
- リザーブオプションがない場合、このポート数が必ず消費される (=reserve と同一の効果) [3]
- reserve : リザーブで必ず確保されるポート数を定義可能
- リザーブオプションがある場合、必ず消費されるポートがリザーブの値に減少する [4]
For example:
ACOS(config)#cgnv6 lsn-lid 1
ACOS(config-lsn-lid)#user-quota tcp 1000 reserve 100
セッション数
A10 のセッション数は宛先ポート番号が異なる場合に、別のセッションが生成されます。
送信元ポートが 1 つ (=クォータ 1 つ) で多数の宛先ポートを使用するアプリケーションがある場合、クオータの消費は少ないが、セッション数が多いユーザとなる場合があります。
- 例) P2P アプリケーション
筐体のセッション数の不足が懸念される場合は、ユーザごとのセッション数を制限し、過剰にセッション数を消費させないようにします。
Use the following CLI to set a total session limit:
ACOS(config)#cgnv6 lsn-lid 1
ACOS(config-lsn-lid)#user-quota session 5000
NAT 機能
フルコーン NAT
EIM と EIF の両方が満たされる場合、フルコーン NAT となる。
ウェルノウン ポートである 1-1023 番ポートについては、サーバ・クライアント型通信のため、無効にするのが一般的。[5]
EIM (Endpoint Independent Mapping)
EIF (Endpoint Independent Filtering)
ヘアピン NAT
CGN 配下のユーザ間で、NAT されたグローバル IP 間の P2P 型通信が発生したときに、CGN で折り返して通信ができる機能。
無効だとオンライン対戦ゲームなどができないため、有効にする。
ALG (Application Layer Gateway)
IP のレイヤ 7 ペイロードに IP アドレスが埋め込まれているアプリケーションに対しても、NAT する機能。
CPU で実行されるため、あまりに多いパケット数だと CPU リソースを浪費してしまう。
FTP や IPsec などではアプリケーション側で回避できる [6] ため、無効化でも良い。
ポート割当手法
動的割り当て
PBA
静的割り当て
セッションタイムアウト
A10 CGN の NAT セッション タイムアウトは、基本的にデフォルトで 300 秒となっている。
- タイムアウト値が短い = NAT セッションが残りづらい
- メリット : セッション数に余裕が出る
- デメリット : アプリケーションやサービスによって、セッション断とされてユーザ体験が低下する可能性がある
- タイムアウト値が長い = NAT セッションがしばらく残る
- メリット : アプリケーションやサービスのセッション断が起きにくくなる
- デメリット : セッション数に余裕がなくなる
TCP
TCP は FIN で TCP セッションがクローズされるため、CGN でも FIN を認識して NAT セッションのエントリを削除 [7] する。
UDP
タイムアウト値を経過すると、NAT セッションのエントリを削除する。
ICMP
ICMP リプライを受信すると、NAT セッションのエントリを削除する。
例外的にデフォルトは fast として 2 秒となっている。
DNS
DNS は非常にクエリ数が多く、セッションを保持する必要性が薄いため、A10 では DNS クエリ レスポンスが受信されると、早急に削除 [8] される。
IP アドレッシング
ルーティング・L3SW 設計

PBR + スタティック ルーティング
VRF
NAT セッションログ設計
Abuse 対応
移行設計
ユーザ IP の変更
検証ツール
L4 をイジメられるソフトウェアが必要。筆者が使用したことがあるのは、以下です。
- IXIA
- Cisco Trex
- Nping
落とし穴
ユーザログイン情報が show run に保存されない
リファレンス
太字のドキュメントを最初に読んでおけば、全体像が把握でき、大体の疑問は解決できる or とっかかりを得られると思われる。
A10
運用の簡素化と 柔軟なパフォーマンス確保を同時に実現する AXのaVCS™機能
A10ネットワークス Thunderシリーズ ハンズオントレーニング
総務省
IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1)
- ACOS 2.x の頃のコンフィギュレーションは、現在の ACOS 4.x 以降など新しい OS Ver だと変更が必要な点に注意
- ip nat -> cgnv6
- ha -> vrrp-a
- system resource-usage -> cgnv6 resource-usage
IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.2)
RFC
RFC6056 - Recommendations for Transport-Protocol Port Randomization 日本語訳
RFC6302 - Logging Recommendations for Internet-Facing Servers 日本語訳
RFC6598 - IANA-Reserved IPv4 Prefix for Shared Address Space 日本語訳
引用
- ↑ HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES VRRP-A CONFIGURATION Virtual Router Redundancy Protocol-A10 (VRRP-A) is an A10 Networks proprietary technology that enhances a High Availability (HA) implementation and is used to implement multiple system redundancy.
- ↑ 帯域制御の運用基準に関するガイドライン (改定) 平成 19 年頃には、全体の約1%のユーザが P2P ファイル交換ソフト3の利用に よりバックボーン帯域の約 50%を消費しているという調査結果(資料3)が出 される
- ↑ HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES USER QUOTAS When an Internal user initiates a session, the entire quota value is allocated to that user.
- ↑ HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES USER QUOTAS To alleviate this issue, the operator may choose to reserve a subset of the total quota to a protocol, guaranteeing that subset and freeing the remainder of the ports to be used by another client.
- ↑ IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1) (5)EIM/EIF(Full Cone)設計 今回検証した機器では、0-1023 の well known port については EIM/EIF が disable にされていたが、well known port では主にサーバ-クライアント型の通信のた め、問題ないと考えられる。
- ↑ IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1) (7)ALG 設計 - アプリケーション側の対応によって解決可能なもの(FTP passive mode, IPsec NAT traversal, TURN など) - セキュリティ上脆弱性の発見されたプロトコル(PPTP) については必ずしも有効化の必要はないと思われる。
- ↑ HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES NAT SESSION TIMEOUT For a TCP session, the data session is removed when the Thunder CGN device observes that FIN or RST messages are exchanged by the two endpoints of the session.
- ↑ HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES NAT SESSION TIMEOUT Note: DNS defaults to a timeout of fast (3 seconds in this case).