PPPoEマルチセッションでのftpサーバー公開

  • 投稿日:
  • by
  • カテゴリ:

 妻の実家に転がり込んでいるわけですが、PPPoEのアカウントは、実家のものと私のものの二つがあるので、ルーターでマルチセッションの設定にて常時接続しています。マルチセッションでも、外部にサーバーを公開する場合は、大概のものは静的マスカレードでどうにかなるわけですが、ftpに関してはちょっとこつが要ります。

 外部から来るコマンドと、それに対する結果の通知はTCPのポート21が使われて、ファイルのリストやデータの送受信にはサーバーが新たにポート20を使ったセッションをクライアントに対して張るという動作をします。基本的には、21番ポートにコマンドが入ってくると、PASVだろうとポート固定だろうと、ルーターが勝手にポートを開けてくれる仕様らしいのですが、開けるセッションの対象が規定でプライマリセッション(うちの環境では実家のアカウント)らしく、外部からftpコマンドは受け付けるのですが、応答のデータ転送セッションが確立されずに応答なしになってしまいます。
 うちでサーバーを公開しているのはセカンダリセッション(ぷららから取得したグローバルIPアドレス)なので、プライマリに対して応答を返しても、受け取るクライアントがいないわけです。この仕組みがわかるまでだいぶ時間がかかりましたが、ポリシールーティングを使うことによって、サーバーのプライベートなIPアドレスからのftp応答はセカンダリのぷららのセッションに対してルーティングされるように設定して解決しました。