🌊

Catalyst 9300でNAPTの設定

2024/12/05に公開

MMA Advent Calendar 2024 6日目の記事です

はじめに

Cisco Catalyst 9300は,Network AdvantageライセンスがあればL3スイッチなのにNAPT(IPマスカレード)をすることができます.

というわけで実際にやってみました.

今回の環境

インターフェース サブネット スイッチのIPアドレス ゲートウェイ
グローバル Vlan10 10.0.0.0/24 10.0.0.1 10.0.0.254
ローカル Vlan20 192.168.0.0/24 192.168.0.254 同左

検証環境の都合上,グローバル側もVlanインターフェースです.

しかし,本来はTenGigabitEthernet1/0/1等を指定することのほうが多いと思います.

configの設定

L3の有効化

有効になっていなければ下記で有効化します.

startup-config
ip routing

インターフェースの設定

startup-config
interface Vlan10
 ip address 10.0.0.1 255.255.255.0
 ip nat outside
!
interface Vlan20
 ip address 192.168.0.254 255.255.255.0
 ip nat inside

グローバル側にはip nat outside

ローカル側にはip nat insideを指定する必要があります.

ルーティングテーブルの設定

適切に設定しないとグローバル側のパケットが迷子になります.

startup-config
ip route 0.0.0.0 0.0.0.0 10.0.0.254

NATの設定

まず,変換元のIPをaccess-listで指定します.

startup-config
access-list 1 permit 192.168.0.0 0.0.0.255

そして,NATの設定をします.

startup-config
ip nat inside source list 1 interface Vlan10 overload

overloadを付与することで,ポート変換(NAPT)もしてくれます.

今回は,変換先をインターフェースで直接指定しましたが,
以下のようにすることでIPプールを変換先にすることもできます.

startup-config
ip nat pool HOGE-POOL 10.0.0.2 10.0.0.5 netmask 255.255.255.0
ip nat inside source list 1 pool HOGE-POOL overload

パケットのフィルタリング

上記の設定で,NATの設定は一通り完了です.
しかし,このままでは外から中への通信も許されてしまいます.

そのような通信をACLでフィルタリングします.

Catalyst 9300では,拡張access-listを使って設定します.

startup-config
interface Vlan10
 ip access-group 100 in
ip access-list extended 100
 10 deny ip any 192.168.0.0 0.0.0.255
 20 permit ip any any

これで外からpingしてもフィルタリングされるようになりました.

ハードウェアリソースについて

本家のルーターとは違い,L3スイッチなので,ハードウェアでのアドレス変換数もあまり多くはありません.

C9300の場合,2500までしかできないようです.

アドレス変換数の確認は以下のコマンドでできます.

Switch#show ip nat translations | count tcp
Number of lines which match regexp = 132

スループットについて

実際に運用してみてわかったことがありました.

C9300のNAPTが非常に遅かったのです.


左がソフトウェアルーター,右がC9300のNAPT

先述のアドレス変換数の上限の影響ではありません.上限を下回っていても,ある程度の変換数があると急に速度が下がってしまうようです.

そのため,C9300のNAPTが利用できるシーンはかなり限られるといえます.

あくまでC9300はL3スイッチなので,仕方がないです.

ポート変換はせず,静的なNATであれば,CEFの力でいくらかは軽減されそうです.

参考

Discussion