例:ルーティングエンジンを保護するためのDHCPファイアウォールフィルターの設定
この例では、適切なDHCPパケットが、 jdhcpd プロセスを実行しているサポートされているルーターのルーティングエンジンに到達できるように、ファイアウォールフィルターを設定する方法を示しています。
要件
この設定例は、従来のdhcpdプロセスや fud(UDP転送)プロセスではなく、DHCPローカルサーバーおよびDHCPリレーエージェントサービスがjdhcpdプロセスによって提供されるルーターにのみ適用されます。DHCP リレーは、[edit forwarding-options helpers bootp] 階層レベルではなく、[edit forwarding-options dhcp-relay] 階層レベルで設定する必要があります。
この機能を設定する前に、デバイスの初期化以外の特別な設定は必要ありません。
概要
ルーティングエンジンでDHCPパケットを処理するファイアウォールフィルターは、DHCPサーバートラフィックのUDPポート67(bootps)とDHCPクライアントトラフィックのUDPポート68(bootpc)の両方を適切に考慮する必要があります。これらのポートはDHCP操作の基本であり、ファイアウォールフィルター設定で正しく処理する必要があります。
Junos OSは、管理者が理解する必要がある特定のDHCPパケット処理動作を示しています。ラインカードでパケットを受信すると、jdhcpdプロセスはカプセル化を実行し、UDPヘッダーを変更し、送信元と宛先ポートの両方を68に設定してからルーティングエンジンに転送します。このポート書き換えは、ジュニパーのDHCP実装の重要な側面です。
DHCPリレーとプロキシのシナリオでは、トラフィックフローは特定のポートパターンに従います。サーバーに送信されるクライアント発のパケットは、最初に送信元ポート68と宛先ポート67を使用します。サーバーが応答すると、送信元と宛先ポート67が使用されますが、ラインカードは別の変更を実行し、ルーティングエンジンに配信する前にこれらをポート68に書き換えます。
これらの動作は、ファイアウォールに重要な影響を及ぼします。DHCPが適切に動作するようにするには、ポート67と68の両方を許可するようにファイアウォールフィルターを設定する必要があります。このデュアルポート要件は、元のクライアント要求(ポート68から67を使用)と書き直されたサーバー応答(ポート67から68に変換)の両方に対応します。フィルターは、すべての正当なDHCPトラフィックシナリオを処理するために、この柔軟性を維持しながら、ルーティングエンジンに意図した保護を提供する必要があります。
この例では、可能なすべての設定選択肢を示しているわけではなく、設定でフィルターがどのように適用されるかも示していません。この例は、フィルターの静的アプリケーションと動的プロファイルを使用した動的アプリケーションの両方に適用されます。
設定
手順
CLIクイックコンフィグレーション
サンプル ルーティングエンジン DHCP フィルターをすばやく設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除してから、コマンドをコピーして CLI に貼り付けます。
[edit] edit firewall family inet filter RE-protect edit term dhcp-client-accept set from source-address 0.0.0.0/32 set from destination-address 255.255.255.255/32 set from protocol udp set from source-port 68 set from destination-port [67 68] set then count dhcp-client-accept set then accept up edit term dhcp-server-accept set from protocol udp set from source-port 67 set from source-port 68 set from destination-port 67 set from destination-port 68 set then count dhcp-server-accept set then accept top
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。その方法の詳細については、 設定モードでの CLI エディターの使用を参照してください。
DHCPファイアウォールフィルターをルーティングエンジンを保護するように設定するには:
ファイアウォールフィルターを作成または指定します。
[edit firewall] user@host# edit family inet filter RE-protect
クライアントのフィルター条件を作成します。
[edit firewall family inet filter RE-protect] user@host# edit term dhcp-client-accept
DHCPパケットの一致条件を指定します。
[edit firewall family inet filter RE-protect term dhcp-client-accept] user@host# set from source-address 0.0.0.0/32 user@host# set from destination-address 255.255.255.255/32 user@host# set from protocol udp user@host# set from source-port 68 user@host# set from destination-port 67
一致したパケットに対して実行するアクションを指定します。
[edit firewall family inet filter RE-protect term dhcp-client-accept] user@host# set then count dhcp-client-accept user@host# set then accept
サーバーのフィルター条件を作成します。
[edit firewall family inet filter RE-protect] user@host# edit term dhcp-server-accept
DHCPパケットの一致条件を指定します。
[edit firewall family inet filter RE-protect term dhcp-server-accept] user@host# set from protocol udp user@host# set from source-port [67 68] user@host# set from destination-port [67 68]
一致したパケットに対して実行するアクションを指定します。
[edit firewall family inet filter RE-protect term dhcp-server-accept] user@host# set then count dhcp-client-accept user@host# set then accept
結果
設定モードから、 show firewall コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit]
user@host# show firewall
family inet {
filter RE-protect {
term dhcp-client-accept {
from {
source-address {
0.0.0.0/32;
}
destination-address {
255.255.255.255/32;
}
protocol udp;
source-port 68;
destination-port 67;
}
then {
count dhcp-client-accept;
accept;
}
}
term dhcp-server-accept {
from {
protocol udp;
source-port [ 67 68 ];
destination-port [ 67 68 ];
}
then {
count dhcp-server-accept;
accept;
}
}
}
}
デバイスの設定が完了したら、設定モードから commit を入力します。
検証
ルーティングエンジンのDHCP保護フィルターがDHCPパケットを正しく渡していることを確認するには、以下のタスクを実行します。
DHCPフィルター動作の検証
目的
DHCP トラフィックがルーティングエンジンに渡されるにつれて、両方のカウンターが増加することを確認します。
アクション
動作モードから、 show firewall family inet filter RE-protect コマンドを入力します。
user@host> show firewall family inet filter RE-protect Filter: RE-protect Counters: Name Bytes Packets dhcp-client-accept 328 1 dhcp-server-accept 574 1 user@host> show firewall family inet filter RE-protect Filter: RE-protect Counters: Name Bytes Packets dhcp-client-accept 660 2 dhcp-server-accept 1152 2
意味
出力には、設定された両方のカウンターdhcp-client-acceptとdhcp-server-acceptが一覧表示されます。コマンドを複数回発行することで、バイトフィールドとパケットフィールドの両方に、トラフィックが受け入れられ、カウントされていることが示されていることがわかります。