TFTP ALG
トリビアルファイル転送プロトコル(TFTP)ALGは、UDP宛先ポート69へのリクエストを開始するTFTPパケットを処理し、ゲートを開いて、逆方向からリクエストを送信するポートへのリターンパケットを許可します。ステートフルファイアウォールとNATサービスをサポートするには、UDP宛先ポート69のTFTP ALGを設定する必要があります。
Feature Explorerを使用して、特定の機能に対するプラットフォームとリリースのサポートを確認します。
プラットフォームに関連する注意事項については、「 プラットフォーム固有の TFTP ALG の動作 」セクションを確認してください。
TFTP ALGについて
概要
Trivial File Transfer Protocol(TFTP)は、ファイル転送 (RFC 1350)に使用されるシンプルなプロトコルです。TFTPはUDPの上に実装されており、宛先ポート69が既知のポートです。TFTPアプリケーション層ゲートウェイ(ALG)は、リクエストを開始するTFTPパケットを処理し、逆方向からのリターンパケットを許可するピンホールを作成します。
フロー処理では、1 つの TFTP カンバセーションに対して 2 つのセッションがあり、1 つは読み取り要求(RRQ)または書き込み要求(WRQ)パケットによって作成された TFTP 制御セッションです。もう 1 つは、DATA パケット(RRQ の場合)または確認応答(ACK)パケット(WRQ の場合)によって作成された TFTP データ セッションです。
Junos OSファイアウォールでは、TFTP制御セッションはjunos-TFTPアプリケーションポリシーによって許可されます。データ セッションは、制御セッション パケットの受信時に、サーバーの任意のポートからクライアントの TID(ポート)への TFTP ALG オープン ピンホールを介して許可されます。NAT 変換は既に実行されており、その情報はセッション・データ構造から入手できるため、NAT 変換は必要ありません。
TFTPパケット
すべての転送は、ファイルの読み取りまたは書き込みの要求で始まります。512バイト未満のデータパケットは、転送の終了を通知します。
TFTP は、次の 5 種類のパケットをサポートします。
読み取り要求 (RRQ)
書き込み要求 (WRQ)
データ (DATA)
肯定応答(ACK)
エラー (ERROR)
TFTPセッション
TFTP ALGは、ステートレスなトランスポートプロトコルであるUDPに基づいています。ファイアウォールでは、TFTP ALGはタイムアウトのあるUDPセッションとして機能します。パケット更新セッションがない場合、セッションはタイムアウト後に終了します。TFTP クライアントとサーバーは TFTP カンバセーションの終了を決定しますが、Fireware ではセッションを認識しない場合があります。したがって、このシナリオでは、クライアントとサーバーが新しいTFTPカンバセーションを要求できます。
TFTP ALGセッションは、次のいずれかの方法で続行できます。
TFTP制御セッションがタイムアウトに達しても、データセッションがまだ有効であれば、セッションは終了しません。
TFTPセッションは、データセッションが進行中かどうかに関係なく、
clear security flow session all
またはclear specific session
CLIコマンドによって終了または破損する可能性があります。新しいTFTPセッション要求が到着し、既存のセッションに到達すると、TFTP ALGは新しい要求に対してピンホールを再度開きます。
ピンホールがすでに存在する場合、TFTP ALGはピンホールを再度開くことはなく、パケットのドロップはありません。
TFTP ALGはパケットをドロップしません。
TFTP ALGカンバセーションについて
デフォルトでは、TFTPサーバーはポート69でTFTPクライアントからの着信要求をリッスンします。TFTPクライアントは、送信元トンネル識別子(TID)ポートを選択し、最初の要求をサーバーに送信します。これに対して、サーバーは送信元ポートとして選択された TID を使用し、宛先ポートとしてクライアントの TID に応答を送信します。その後、2 つの TID ポートが残りのデータ転送に使用されます。
Read file conversation steps:
ホスト A(クライアント)は、送信元として A の TID、宛先としてポート 69 を使用して RRQ パケットをホスト B(サーバー)に送信します。
ホストB(サーバ)は、BのTIDを送信元、AのTIDを宛先として、DATAパケットをホストA(クライアント)に送信します。
ホスト A(クライアント)は、A の TID を送信元、B の TID を宛先として、ACK パケットをホスト B(サーバー)に送信します。
DATA パケットと ACK パケットの会話は、ファイルデータの転送が完了するまで継続されます。
Write file conversation steps:
ホストA(クライアント)は、送信元としてAのTID、宛先としてポート69を使用して、WRQパケットをホストB(サーバー)に送信します。
ホスト B(サーバー)は、送信元として B の TID、宛先として A の TID を使用して、ACK パケットをホスト A(クライアント)に送信します。
ホストA(クライアント)は、AのTIDを送信元、BのTIDを宛先として、DATAパケットをホストB(サーバー)に送信します。
ホスト B(サーバー)は、送信元として B の TID、宛先として A の TID を使用して、ACK パケットをホスト A(クライアント)に送信します。
TFTP ALGのIPv6サポートについて
TFTP(簡易ファイル転送プロトコル)アプリケーション層ゲートウェイ(ALG)が拡張され、送信元IPアドレスとIP アドレスの両方にIPv6とIPv4のアドレスを持つIPv6およびIPv4のTFTPカンバセーションがサポートされるようになりました。
TFTP ALGは、ルーティング要求を開始し、ピンホールを作成するパケットを処理して、逆方向から要求を送信したポートへのリターンパケットを許可します。
データ セッションは、クライアントからサーバーへの最初のパケットによってセットアップされます。TFTP ALG は最初のパケットを監視し、サーバー上の任意のポートからクライアントへのピンホールを開きます。このプロセスは、サーバーからのリターンパケットと後続のデータパケットが通過するのに役立ちます。
例:TFTP ALGの設定
TFTP ALGは、要求を開始するTFTPパケットを処理し、ゲートを開いて、逆方向から要求を送信するポートへのリターンパケットを許可します。
この例では、デバイスの送信元NAT プールでTFTPトラフィックを通過するようにTFTP ALGを設定する方法を示します。
必要条件
送信元 NAT プール内のすべての IP アドレスに対してプロキシ ARP を設定します。
TFTP ALG の基本概念を理解します。 TFTP ALGについてを参照してください。
概要
この例では、TFTPトラフィックを監視および許可するようにTFTP ALGが設定されており、ジュニパーネットワークスのデバイスの反対側にあるクライアントとサーバー間でファイルを転送します。
構成
NAT 送信元プール、ルール セット、およびポリシーの設定
CLIクイック構成
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit]
階層レベルで CLI にコピー アンド ペーストして、設定モードから commit
を入力します。
set security nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32 set security zones security-zone green address-book address sa1 1.1.1.0/24 set security zones security-zone red address-book address da1 2.2.2.0/24 set security nat source rule-set rs1 from zone green set security nat source rule-set rs1 to zone red set security nat source rule-set rs1 rule r1 match source-address 1.1.1.0/24 set security nat source rule-set rs1 rule r1 match destination-address 2.2.2.0/24 set security nat source rule-set rs1 rule r1 then source-nat pool pool1
set security policy from-zone green to-zone red policy pol1 match destination-address da1 set security policy from-zone green to-zone red policy pol1 match source-address sa1 set security policy from-zone green to-zone red policy pol1 match application junos-tftp set security policy from-zone green to-zone red policy pol1 then permit
TFTPクライアントとサーバのIPアドレスがわからない場合は、「da1」と「sa1」を「any」に置き換えることができます。
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
送信元 NAT プールを設定するには、次の手順に従います。
NAT ソース プールを作成します。
[edit security] user@host# set nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32
セキュリティ ゾーンのアドレス帳エントリーを設定します。
[edit security zones security-zone] user@host# set green address-book address sa1 1.1.1.0/24 user@host# set red address-book address da1 2.2.2.0/24
NAT 送信元ルール・セットを作成します。
[edit security nat source rule-set rs1] user@host# set from zone green user@host# set to zone red user@host# set rule r1 match source-address 1.1.1.0/24 user@host# set rule r1 match destination-address 2.2.2.0/24 user@host# set rule r1 then source-nat pool pool1
ポリシーを構成する
[edit security policies from-zone green to-zone red policy pol1] user@host# set match source-address sa1 user@host# set match destination-address da1 user@host# set match application junos-tftp user@host# set then permit
業績
設定モードから、 show security nat
コマンドと show security policies
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security nat source { pool pool1 { address { 10.10.10.1/32 to 10.10.10.10/32; } } rule-set rs1 { from zone green; to zone red; rule r1 { match { source-address 1.1.1.0/24; destination-address 2.2.2.0/24; } then { source-nat { pool { pool1; } } } } }
[edit] user@host# show security policies from-zone green to-zone red {policy pol1 { policy pol1 { match { source-address sa1; destination-address da1; application [junos-tftp]; } then { permit; } } } default-policy { permit-all; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認します。
NAT 送信元プールとルール セットの検証
目的
TFTP ALGをサポートするために使用されるNATソースプールとルールセットが正しく機能していることを確認します。
アクション
動作モードから、 show security nat static rule r1
コマンドを入力します。
プラットフォーム固有のTFTP ALG動作
Feature Explorerを使用して、特定の機能に対するプラットフォームとリリースのサポートを確認します。
次の表を使用して、プラットフォームのプラットフォーム固有の動作を確認します。
プラットホーム |
差 |
---|---|
SRX シリーズ |
|