🔥

Cisco 892 で複数の interface で ip nat outside する

2023/03/10に公開

ip nat outside を 2 箇所に書きたい

以下のような環境を考えます。

  • ExpressRoute の Private Peering と Microsoft Peering を利用
  • インターネット接続も利用
  • Cisco 直下、または Private Peering 経由の Private IP アドレス空間のクライアントからインターネットまたは Microsoft Peering 側へ NAT して抜けていく

つまり ip nat outside が複数あるため、ip nat inside source list 1 interface GigabitEthernet9 overload みたいな形では書けないんですね。
ip nat inside source list 1 interface GigabitEthernet9 overload がある状態で、ip nat inside source list 1 interface GigabitEthernet8.715 overload を追加すると、以前のものが置き換わる、もしくはエラーでコマンドが受け付けてもらえません。

結局、ip nat される条件が access-list 1 だとガバガバすぎるという話なので、それをより明確にするために route-map を書くという感じですね。
例えばインターネットに向かうトラフィックが該当する route-map はここに当たります。

route-map Internet permit 10
 match ip address 1
 match interface GigabitEthernet9

match ip address 1 というのは access-list 1 に該当するということを示しているので、ここに該当するトラフィックが該当する感じです。

access-list 1 permit 10.100.10.0 0.0.0.255
access-list 1 permit 10.0.0.0 0.0.255.255

それに加えて match interface GigabitEthernet9 にも該当する、ということの条件の組み合わせにより、これらの IP アドレスから送信され、GigabitEthernet9 から出ていく、今回の構成ではインターネット向けのインターフェースから出ていくトラフィックがこの ip nat により NAT される感じです。

sample config

いろいろな所を省いて重要な部分だけにした、さんぷるのこんふぃぐはこんな感じになります。

tky01#show run
!
interface GigabitEthernet0
 switchport access vlan 10
 no ip address
!
interface GigabitEthernet8.714
 encapsulation dot1Q 714
 ip address 172.16.0.1 255.255.255.252
 ip nat inside
 ip virtual-reassembly in
!
interface GigabitEthernet8.715
 encapsulation dot1Q 715
 ip address x.y.131.241 255.255.255.252
 ip nat outside
 ip virtual-reassembly in
!
interface GigabitEthernet9
 ip address x.y.131.78 255.255.255.240
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto
!
interface Vlan10
 ip address 10.100.10.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
!
ip nat inside source route-map Internet interface GigabitEthernet9 overload
ip nat inside source route-map MSPeering interface GigabitEthernet8.715 overload
ip route 0.0.0.0 0.0.0.0 x.x.131.65
!
route-map Internet permit 10
 match ip address 1
 match interface GigabitEthernet9
!
route-map MSPeering permit 10
 match ip address 1
 match interface GigabitEthernet8.715
!
access-list 1 permit 10.100.10.0 0.0.0.255
access-list 1 permit 10.0.0.0 0.0.255.255
!
end

参考

  • これが正解という感じです

https://networkengineering.stackexchange.com/questions/45928/nat-on-outside-interface-alternatives

  • Ciscoコンフィグ - PAT

いつも NAT (というか PAT) するために参考にしてる URL、いつもありがとうございます
https://www.infraexpert.com/study/natz2.html

Discussion