キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
967
閲覧回数
1
いいね!
2
返信

C8200Lで、宛先と送信元の両方を同時にNATしたいが、機能しない。

makiko
Spotlight
Spotlight

FTP通信(Passive)にあたって、
C8200Lで、宛先と送信先の両方をNATさせたく。

設定してみましたが、FTP-Serverまで通信が到達しません。


image.png

  •  構成は上図のとおりで、FTP-ServerFTP-ClientはOutsideにあります。
  • FTP通信がC8200Lまで到達していることは、確認済みです。
    ACLを設定して、ログから判断しました。
  • FTP-ClinetからFTP-Server宛てに、pingを実行したところ
    応答がありました。
  • "show ip nat statistics" の結果を見てみました。
    pingは、hitカウントが加算されますが、
    FTPは、加算されません。
  • C8200Lの設定は、以下のとおりです。

 

interface GigabitEthernet0/0/0
 ip address 192.168.2.3 255.255.255.0
 ip nat outside
 negotiation auto
 ip virtual-reassembly

interface GigabitEthernet0/1/0
 switchport access vlan 100
 switchport mode access

interface Vlan100
 ip address 20.20.20.3 255.255.255.0
 ip nat inside

ip forward-protocol nd
ip nat inside source static 10.10.10.1 192.168.2.100
ip nat outside source static 192.168.1.1 20.20.20.1 no-alias add-route
ip route 192.168.1.0 255.255.255.0 192.168.2.2
ip route 10.10.10.0 255.255.255.0 20.20.20.2​

 

  • C8200Lのバージョンは、
    Cisco IOS Software [Bengaluru] Version 17.6.1a
  • "sh ip nat translations" の結果を見てみました。
    問題にないように見えます。

 

C8200L#sh ip nat translations
Pro  Inside global         Inside local          Outside local         Outside global
---  ---                   ---                   20.20.20.1            192.168.1.1
---  192.168.2.100           10.10.10.1         ---                   ---
Total number of translations: 2
C8200L#​

 

  • 追記 2023-08-01
    L3-Switch(20.20.20.2) でパケットキャプチャしたところ、
    FTP通信をキャプチャすることはできませんでした。
    (パケットがC8200Lを抜けていないように見える)
  • 追記 2023-08-04
    FTP以外のTCP通信も、NATが働かないようです。
     "sh ip nat translations verbose" の結果に、tcp通信が記載されない。
  • 追記 2023-08-04
    試しに、insideとoutsideを入れ替えてみたところ、FTP通信に成功しました。
    outside側から開始するtcp通信は、何か特別な許可設定が必要なのでしょうか?
2件の返信2

MyHomeNWLab
Spotlight
Spotlight

まず前提情報として、
・FTPのPassive Mode (PASV)で接続する際は、FTP Serverがデータ コネクションのための""IPアドレスとポート情報を返す挙動
Extended Passive Mode (EPSV)と呼ばれるオプションで接続する際は、FTP Serverがポート情報のみを返す挙動
になっていると思います。

上記を念頭に置くと双方向NAT環境の場合では
FTP ClientはNATされたIPアドレスに対して最初に制御コネクションの接続を試みるものの、
Passive Mode (PASV)への切り替えが行われる際に先とは異なる""IPアドレスへのデータ コネクションの接続試行が発生している可能性があるかなと見受けています。

curl コマンドが使える場合は下記のようにすると、FTP Raw Commandでの通信状況が把握できるので
(EPSVで接続できるのか観点も含めて、)まずはどの段階で詰まっているのか切り分けするのがよいかと思います。

# Passive Mode (PASV)
curl --verbose --ftp-pasv --disable-epsv TARGET_ADDRESS

# Extended Passive Mode (EPSV)
curl --verbose --ftp-pasv TARGET_ADDRESS


参考程度に、下記はLinuxディストリビューションなどを配布されている ftp.riken.jp に対して、FTPの接続テストを行った際のログの抜粋です。

# Passive Mode (PASV)
curl --verbose --ftp-pasv --disable-epsv ftp://ftp.riken.jp
~省略~
> PASV
* Connect data stream passively
* ftp_perform ends with SECONDARY: 0
< 227 Entering Passive Mode (134,160,*,*,174,201).  ← ※IPアドレスの情報があります。(ポート番号の情報もあります。)
* Skip 134.160.*.* for data connection, re-use ftp.riken.jp instead
* Trying 134.160.*.*...
~省略~


# Extended Passive Mode (EPSV)
curl --verbose --ftp-pasv ftp://ftp.riken.jp
~省略~
> EPSV
* Connect data stream passively
* ftp_perform ends with SECONDARY: 0
< 229 Entering Extended Passive Mode (|||54763|)  ← ※ポート番号の情報のみです。
* Trying 134.160.*.*...
~省略~

最後に補足情報ですが、
・NW機器の視点だと、FTPのペイロード情報に入っているIPアドレスやポート番号を変換してくれるFTP ALGの機能があるので、C8200Lでの当該機能の対応状況や設定方法をあわせて確認されるのもよいかと思います。
・FTP Serverの視点だと、vsftpd の場合では pasv_address の設定項目でFTP Clientに返すIPアドレス情報を指定できるようです。他のミドルウェアでも似たような設定があるかもしれません。

返信ありがとうございます。

記載が漏れていたのですが、
L3-Switch(20.20.20.2) でパケットキャプチャしたところ、
FTP通信をキャプチャすることはできませんでした。
(パケットがそもそもC8200Lを抜けていないように見える)