「A10 CGN 設計」の版間の差分
編集の要約なし |
編集の要約なし |
||
| 14行目: | 14行目: | ||
例えばルーティング テーブルは物理筐体別に持っており、筺体 (device-context) ごとにルーティング テーブルを設定します。 | 例えばルーティング テーブルは物理筐体別に持っており、筺体 (device-context) ごとにルーティング テーブルを設定します。 | ||
* Cisco Catalyst のように物理筺体 2 台で 1 | * Cisco Catalyst のように物理筺体 2 台で 1 つのルーティングテーブルを構成する、といった動作は行いません | ||
== Harmony Controller == | == Harmony Controller == | ||
| 26行目: | 26行目: | ||
複数の冗長化方式/プロトコルで物理筺体の冗長化を行えます。 | 複数の冗長化方式/プロトコルで物理筺体の冗長化を行えます。 | ||
ACOS 2.x | ACOS 2.x で使用できた HA (High Availability) は、ACOS 4.x 以降で使用できなくなっているため、ここでは扱いません。 | ||
== VRRP-a == | == VRRP-a == | ||
| 132行目: | 132行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= NAT 機能 = | |||
== フルコーン NAT == | |||
EIM と EIF の両方が満たされる場合、フルコーン NAT となる。 | |||
ウェルノウン ポートである 1-1023 番ポートについては、サーバ・クライアント型通信のため、無効にするのが一般的。<ref>[https://www.soumu.go.jp/main_content/000240919.pdf IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1)] | |||
'''(5)EIM/EIF(Full Cone)設計''' | |||
今回検証した機器では、0-1023 の well known port については EIM/EIF が disable にされていたが、well known port では主にサーバ-クライアント型の通信のた め、問題ないと考えられる。</ref> | |||
=== 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 などではアプリケーション側で回避できる <ref>[https://www.soumu.go.jp/main_content/000240919.pdf IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1)] | |||
'''(7)ALG 設計''' | |||
- アプリケーション側の対応によって解決可能なもの(FTP passive mode, IPsec NAT traversal, TURN など) - セキュリティ上脆弱性の発見されたプロトコル(PPTP) については必ずしも有効化の必要はないと思われる。</ref> ため、無効化でも良い。 | |||
== ポート割当手法 == | |||
動的割り当て | |||
PBA | |||
静的割り当て | |||
== セッションタイムアウト == | |||
A10 CGN の NAT セッション タイムアウトは、基本的にデフォルトで 300 秒となっている。 | |||
* タイムアウト値が短い = NAT セッションが残りづらい | |||
** メリット : セッション数に余裕が出る | |||
** デメリット : アプリケーションやサービスによって、セッション断とされてユーザ体験が低下する可能性がある | |||
* タイムアウト値が長い = NAT セッションがしばらく残る | |||
** メリット : アプリケーションやサービスのセッション断が起きにくくなる | |||
** デメリット : セッション数に余裕がなくなる | |||
=== TCP === | |||
TCP は FIN で TCP セッションがクローズされるため、CGN でも FIN を認識して NAT セッションのエントリを削除 <ref>[https://www.a10networks.com/wp-content/uploads/A10-DG-Carrier_Grade_NAT_CGN_Large_Scale_NAT_LSN.pdf 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.</ref> する。 | |||
=== UDP === | |||
タイムアウト値を経過すると、NAT セッションのエントリを削除する。 | |||
=== ICMP === | |||
ICMP リプライを受信すると、NAT セッションのエントリを削除する。 | |||
例外的にデフォルトは fast として 2 秒となっている。 | |||
=== DNS === | |||
DNS は非常にクエリ数が多く、セッションを保持する必要性が薄いため、A10 では DNS クエリ レスポンスが受信されると、早急に削除 <ref>[https://www.a10networks.com/wp-content/uploads/A10-DG-Carrier_Grade_NAT_CGN_Large_Scale_NAT_LSN.pdf 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).</ref> される。 | |||
= IP アドレッシング = | = IP アドレッシング = | ||
=== PS (Provider Shared) アドレス === | |||
= ルーティング・L3SW 設計 = | = ルーティング・L3SW 設計 = | ||
[[ファイル:CGN Traffic Isolation.png|なし|フレーム|CGN Traffic Isolation]] | |||
== PBR + スタティック ルーティング == | == PBR + スタティック ルーティング == | ||
== VRF == | == VRF == | ||
= NAT セッションログ設計 = | |||
=== Abuse 対応 === | |||
= 移行設計 = | |||
== ユーザ IP の変更 == | |||
= 落とし穴 = | = 落とし穴 = | ||
| 146行目: | 227行目: | ||
= リファレンス = | = リファレンス = | ||
太字のドキュメントを最初に読んでおけば、全体像が把握でき、大体の疑問は解決できる or とっかかりを得られると思われる。 | |||
== A10 == | == A10 == | ||
[https://www.a10networks.co.jp/download/files/SBAX_20110128_aVCS.pdf 運用の簡素化と 柔軟なパフォーマンス確保を同時に実現する AXのaVCS™機能] | [https://www.a10networks.co.jp/download/files/SBAX_20110128_aVCS.pdf 運用の簡素化と 柔軟なパフォーマンス確保を同時に実現する AXのaVCS™機能] | ||
[https://www.a10networks.com/wp-content/uploads/A10-DG-Carrier_Grade_NAT_CGN_Large_Scale_NAT_LSN.pdf LARGE SCALE NETWORK ADDRESS TRANSLATION HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES] | [https://www.a10networks.com/wp-content/uploads/A10-DG-Carrier_Grade_NAT_CGN_Large_Scale_NAT_LSN.pdf '''LARGE SCALE NETWORK ADDRESS TRANSLATION HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES'''] | ||
[https://www.a10networks.co.jp/download/files/A10Product_Guide_2025_JUN.pdf A10 ネットワークス 総合カタログ] | [https://www.a10networks.co.jp/download/files/A10Product_Guide_2025_JUN.pdf A10 ネットワークス 総合カタログ] | ||
| 159行目: | 241行目: | ||
== 総務省 == | == 総務省 == | ||
[https://www.soumu.go.jp/main_content/000240919.pdf IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1)] | [https://www.soumu.go.jp/main_content/000240919.pdf '''IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1)'''] | ||
* ACOS 2.x の頃のコンフィギュレーションは、現在の ACOS 4.x 以降など新しい OS Ver だと変更が必要な点に注意 | |||
** ip nat -> cgnv6 | |||
** ha -> vrrp-a | |||
** system resource-usage -> cgnv6 resource-usage | |||
[https://www.soumu.go.jp/main_content/000352303.pdf IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.2)] | [https://www.soumu.go.jp/main_content/000352303.pdf '''IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.2)'''] | ||
== RFC == | == RFC == | ||
[https://www.nic.ad.jp/ja/translation/rfc/1918.html RFC1918 プライベート網のアドレス割当] | [https://www.nic.ad.jp/ja/translation/rfc/1918.html RFC1918 プライベート網のアドレス割当] | ||
[https://tex2e.github.io/rfc-translater/html/rfc6056.html RFC6056 - Recommendations for Transport-Protocol Port Randomization 日本語訳] | |||
[https://tex2e.github.io/rfc-translater/html/rfc6302.html RFC6302 - Logging Recommendations for Internet-Facing Servers 日本語訳] | |||
[https://tex2e.github.io/rfc-translater/html/rfc6598.html RFC6598 - IANA-Reserved IPv4 Prefix for Shared Address Space 日本語訳] | [https://tex2e.github.io/rfc-translater/html/rfc6598.html RFC6598 - IANA-Reserved IPv4 Prefix for Shared Address Space 日本語訳] | ||
2025年12月17日 (水) 11:32時点における版
このページでは主に以下の設計について扱います。
- 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 の変更
落とし穴
ユーザログイン情報が 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).