Cisco機器の静的NAT(スタティックNAT)の概要と、 外部送信元アドレスのNAT(ip nat outside source)において、no-aliasオプションが必要な場合について説明します。
NATの概要については、下記を参照してください。
Cisco機器の基本的なNATの設定
Cisco機器では、下記の設定を行うことで、NATを行うことができます。
- インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定する
- NAT対象とするネットワーク(内部or外部)と変換前後のIPアドレスを設定する
外部送信元アドレスの変換 | ip nat outside source
ネットワーク構成
下記のネットワーク構成を例に、具体的なNAT設定について説明します。ここでは、外部サーバーのIPアドレスを”200.200.1.1″から”192.168.1.10″に変換します。※”192.168.1.10″は、inside側のセグメント内のアドレスです。
NATとルーティングの順序
NATとルーティングの順序に関しては、下記のルールがあります。外部送信元をNATする場合、insideからoutsideへのルーティングを考慮する必要があります。
inside側からoutside側への通信 | outside側からinside側への通信 |
---|---|
「ルーティング」→「NAT」の順序で処理される | 「NAT」→「ルーティング」の順序で処理される |
詳細に関しては、下記を参照してください。
通信NGとなる設定(スタティックルートが正しく反映されない)
ルーティングを考慮して下記の設定を行っても、ルーティングテーブルにスタティックルートが反映されず、通信がNGとなります。
# Gi0/0をinsideに指定
interface GigabitEthernet0/0
ip nat inside
# Gi0/1をoutsideに指定
interface GigabitEthernet0/1
ip nat outside
# outside側の送信元アドレス"200.200.1.1"を"192.168.1.10"に変換する
ip nat outside source static 200.200.1.1 192.168.1.10
# insideからoutsideへの通信に必要なルーティングの設定
ip route 192.168.1.10 255.255.255.255 200.200.1.1
NATルーターのルーティングテーブルを確認します。
Router#show ip route
192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0
L 192.168.1.10/32 is directly connected, GigabitEthernet0/0
L 192.168.1.254/32 is directly connected, GigabitEthernet0/0
200.200.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 200.200.1.0/24 is directly connected, GigabitEthernet0/1
L 200.200.1.254/32 is directly connected, GigabitEthernet0/1
“192.168.1.10”は、ルーター自体のアドレス(L:Local)として、認識されていることがわかります。そのため、内部サーバーからの戻り通信は、ルーター自体が受け取ってしまいます。
通信の流れ(outside→insideへの通信) ※通信OK
外部サーバーから内部サーバー宛に通信が開始されます。
NATルーターにパケットが到達します。
送信元アドレスをNAT変換します。
送信先ネットワークに対して、ルーティング処理が行われます。
内部サーバーにパケットが到達します。
通信の流れ(inside→outsideへの通信) ※通信NG
外部サーバーから内部サーバー宛に通信が開始されます。
NATルーターにパケットが到達します。
「192.168.1.10」は、NATルーター自身のアドレスと認識しているため、ルーティング処理は行われず、外部サーバーにパケットは転送されません。
NATアドレスがLocalアドレスと認識される理由(Aliasの自動生成)
NATアドレスが、ルーターと直接接続されているセグメント内のアドレスの場合、ARPに応答するために、自動的にエイリアスアドレス(IP-Alias)が生成されます。※「inside global」や「outside local」のアドレスが対象となります。
エイリアスアドレスは、下記のコマンドで確認できます。
show ip alias
Router#show ip alias
Address Type IP Address Port
Dynamic 192.168.1.10
Interface 192.168.1.254
Interface 200.200.1.254
動的(Dynamic)アドレスとして、「192.168.1.10」が登録されていることがわかります。
通信OKとなる設定 (no-aliasオプション)
NAT設定に「no-alias」オプションを追加することで、動的なエイリアス作成が行われず、通信可能となります。
# Gi0/0をinsideに指定
interface GigabitEthernet0/0
ip nat inside
# Gi0/1をoutsideに指定
interface GigabitEthernet0/1
ip nat outside
# outside側の送信元アドレス"200.200.1.1"を"192.168.1.10"に変換する (no-aliasを追加)
ip nat outside source static 200.200.1.1 192.168.1.10 no-alias
# insideからoutsideへの通信に必要なルーティングの設定
ip route 192.168.1.10 255.255.255.255 200.200.1.1
NATルーターのルーティングテーブルを確認します。
Router#show ip route
192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0
S 192.168.1.10/32 [1/0] via 200.200.1.1
L 192.168.1.254/32 is directly connected, GigabitEthernet0/0
200.200.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 200.200.1.0/24 is directly connected, GigabitEthernet0/1
L 200.200.1.254/32 is directly connected, GigabitEthernet0/1
設定通りにスタティックルートが表示されていることがわかります。
通信の流れ(outside→insideへの通信) ※通信OK
外部サーバーから内部サーバー宛に通信が開始されます。
NATルーターにパケットが到達します。
送信元アドレスをNAT変換します。
送信先ネットワークに対して、ルーティング処理が行われます。
内部サーバーにパケットが到達します。
通信の流れ(inside→outsideへの通信) ※通信OK
外部サーバーから内部サーバー宛に通信が開始されます。
NATルーターにパケットが到達します。
送信先ネットワークに対して、ルーティング処理が行われます。
送信先アドレスをNAT変換します。
外部サーバーにパケットが到達します。
以上で、「Cisco機器のNAT設定 | 静的NAT(スタティックNAT – ip nat outside source ② ※no-alias設定が必要な場合 )」の説明は完了です!