Catalyst 9300でNAPTの設定
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の有効化
有効になっていなければ下記で有効化します.
ip routing
インターフェースの設定
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
を指定する必要があります.
ルーティングテーブルの設定
適切に設定しないとグローバル側のパケットが迷子になります.
ip route 0.0.0.0 0.0.0.0 10.0.0.254
NATの設定
まず,変換元のIPをaccess-listで指定します.
access-list 1 permit 192.168.0.0 0.0.0.255
そして,NATの設定をします.
ip nat inside source list 1 interface Vlan10 overload
overload
を付与することで,ポート変換(NAPT)もしてくれます.
今回は,変換先をインターフェースで直接指定しましたが,
以下のようにすることでIPプールを変換先にすることもできます.
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を使って設定します.
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