「A10 CGN 設計」の版間の差分

提供:hkatou_Lab
ナビゲーションに移動 検索に移動
ページの作成:「このページでは主に以下の設計について扱います。 * ISP 向け A10 Thunder CGN 物理アプライアンスの設計 * NAT44 の設計 = 統合管理 = == aVCS (Virtual Chassis Cluster) == なし|フレーム|A10 aVCS 複数の物理筐体のコンフィグを統合し、1 つの running-config で設定することができます。 設定自体は筐体個別に動作しているため、aVCS アクティブ機…」
 
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
14行目: 14行目:
例えばルーティング テーブルは物理筐体別に持っており、筺体 (device-context) ごとにルーティング テーブルを設定します。
例えばルーティング テーブルは物理筐体別に持っており、筺体 (device-context) ごとにルーティング テーブルを設定します。


* Cisco Catalyst のように物理筺体 2 台で 1 つのルーティングテーブルを構成する、といった動作は行いません。
* Cisco Catalyst のように物理筺体 2 台で 1 つのルーティングテーブルを構成する、といった動作は行いません


== Harmony Controller ==
== Harmony Controller ==
26行目: 26行目:
複数の冗長化方式/プロトコルで物理筺体の冗長化を行えます。
複数の冗長化方式/プロトコルで物理筺体の冗長化を行えます。


ACOS 2.x で使用できた、HA は ACOS 4.x などで使用できなくなっているため、ここでは扱いません。
ACOS 2.x で使用できた HA (High Availability) は、ACOS 4.x 以降で使用できなくなっているため、ここでは扱いません。


== VRRP-a ==
== VRRP-a ==
82行目: 82行目:


なお、A10 では TCP / UDP / ICMP ごとにポートが別々に存在します。
なお、A10 では TCP / UDP / ICMP ごとにポートが別々に存在します。
サイジングは後述の総務省の手順書 Vol.1  が詳しいため、要参照。


== NAT プールカウント ==
== NAT プールカウント ==
131行目: 133行目:
</syntaxhighlight>
</syntaxhighlight>


= L3SW 設計 =
= 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> ため、無効化でも良い。
 
== ポート割当手法 ==
動的割り当て


== PBR ==
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 アドレッシング =
 
=== PS (Provider Shared) アドレス ===
 
= ルーティング・L3SW 設計 =
[[ファイル:CGN Traffic Isolation.png|なし|フレーム|CGN Traffic Isolation]]
 
== PBR + スタティック ルーティング ==


== VRF ==
== VRF ==
= NAT セッションログ設計 =
=== Abuse 対応 ===
= 移行設計 =
== ユーザ IP の変更 ==
= 検証ツール =
L4 をイジメられるソフトウェアが必要。筆者が使用したことがあるのは、以下です。
* IXIA
* Cisco Trex
* Nping


= 落とし穴 =
= 落とし穴 =
142行目: 234行目:


= リファレンス =
= リファレンス =
太字のドキュメントを最初に読んでおけば、全体像が把握でき、大体の疑問は解決できる 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 ネットワークス 総合カタログ]
155行目: 248行目:


== 総務省 ==
== 総務省 ==
[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)''']
 
== RFC ==
[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://www.soumu.go.jp/main_content/000352303.pdf IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.2)]
= 引用 =
[[カテゴリ:A10]]
[[カテゴリ:A10]]

2025年12月17日 (水) 11:34時点における最新版

このページでは主に以下の設計について扱います。

  • ISP 向け A10 Thunder CGN 物理アプライアンスの設計
  • NAT44 の設計

統合管理

aVCS (Virtual Chassis Cluster)

A10 aVCS

複数の物理筐体のコンフィグを統合し、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 アドレッシング

PS (Provider Shared) アドレス

ルーティング・L3SW 設計

CGN Traffic Isolation

PBR + スタティック ルーティング

VRF

NAT セッションログ設計

Abuse 対応

移行設計

ユーザ IP の変更

検証ツール

L4 をイジメられるソフトウェアが必要。筆者が使用したことがあるのは、以下です。

  • IXIA
  • Cisco Trex
  • Nping

落とし穴

ユーザログイン情報が show run に保存されない

リファレンス

太字のドキュメントを最初に読んでおけば、全体像が把握でき、大体の疑問は解決できる or とっかかりを得られると思われる。

A10

運用の簡素化と 柔軟なパフォーマンス確保を同時に実現する AXのaVCS™機能

LARGE SCALE NETWORK ADDRESS TRANSLATION HOW TO CONFIGURE LARGE SCALE NAT (LSN) ON A10 THUNDER/VTHUNDER CGN DEVICES

A10 ネットワークス 総合カタログ

A10ネットワークス Thunderシリーズ ハンズオントレーニング

テクログ|A10ネットワークスのスケールアウト技術

総務省

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

RFC1918 プライベート網のアドレス割当

RFC6056 - Recommendations for Transport-Protocol Port Randomization 日本語訳

RFC6302 - Logging Recommendations for Internet-Facing Servers 日本語訳

RFC6598 - IANA-Reserved IPv4 Prefix for Shared Address Space 日本語訳

引用

  1. 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.
  2. 帯域制御の運用基準に関するガイドライン (改定) 平成 19 年頃には、全体の約1%のユーザが P2P ファイル交換ソフト3の利用に よりバックボーン帯域の約 50%を消費しているという調査結果(資料3)が出 される
  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.
  4. 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.
  5. IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1) (5)EIM/EIF(Full Cone)設計 今回検証した機器では、0-1023 の well known port については EIM/EIF が disable にされていたが、well known port では主にサーバ-クライアント型の通信のた め、問題ないと考えられる。
  6. IPv4 アドレスの枯渇時に生じる諸課題に 適切に対処するための手順書 (Vol.1) (7)ALG 設計 - アプリケーション側の対応によって解決可能なもの(FTP passive mode, IPsec NAT traversal, TURN など) - セキュリティ上脆弱性の発見されたプロトコル(PPTP) については必ずしも有効化の必要はないと思われる。
  7. 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.
  8. 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).