例:Configuring a DHCP Firewall Filter to Protect the Routing Engine
この例では、 jdhcpd プロセスを実行しているMXシリーズルーター MXシリーズ、M120、およびM320ルーターで、適切なDHCPパケットがルーティングエンジンに到達するようにファイアウォールフィルターを設定する方法を示しています。
要件
この設定例は、DHCPローカルサーバーおよびDHCPリレーエージェントサービスが、従来のdhcpdプロセスまたはfud(UDP転送)プロセスではなく、jdhcpdプロセスによって提供されるルーターにのみ適用されます。MXシリーズのルーター、M120ルーター、M320ルーターは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 67 user@host# set from source-port 68 user@host# set from destination-port 67 user@host# set from destination-port 68
一致したパケットに対して実行するアクションを指定します。
[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の両方の設定されたカウンタがリストされます。コマンドを複数回発行すると、バイトフィールドとパケットフィールドの両方が、トラフィックが受け入れられ、カウントされていることを示していることがわかります。