2023-07-30 06:50 PM 2023-08-28 12:38 PM 更新
FTP通信(Passive)にあたって、
C8200Lで、宛先と送信先の両方をNATさせたく。
設定してみましたが、FTP-Serverまで通信が到達しません。
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#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-07-31 12:05 PM
まず前提情報として、
・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アドレス情報を指定できるようです。他のミドルウェアでも似たような設定があるかもしれません。
2023-07-31 03:44 PM 2023-07-31 03:44 PM 更新
返信ありがとうございます。
記載が漏れていたのですが、
L3-Switch(20.20.20.2) でパケットキャプチャしたところ、
FTP通信をキャプチャすることはできませんでした。
(パケットがそもそもC8200Lを抜けていないように見える)
エキスパートの回答、ステップバイステップガイド、最新のトピックなどお気に入りのアイデアを見つけたら、あとで参照できるように保存しましょう。
コミュニティは初めてですか?これらのヒントを活用してスタートしましょう。 コミュニティの活用方法 新メンバーガイド
下記より関連するコンテンツにアクセスできます