BGP ルート認証
BGP のルーター認証について
ルーターとルートの認証とルートの整合性を使用すると、誤ったルーティング情報を他のルーターと共有するように構成されたマシンまたはルーターによる攻撃を受けるリスクが大幅に軽減されます。この種の攻撃では、攻撃されたルーターがだまされてルーティングループを作成させたり、攻撃されたルーターのルーティングテーブルを大幅に増やしてパフォーマンスに影響を与えたり、ルーティング情報を攻撃者が分析できるようにネットワーク内の場所にリダイレクトしたりする可能性があります。セグメントで偽の経路広告を送信することができます。これらの更新は、ルートの送信元を確認するための認証メカニズムがない限り、ネイバールーターのルーティングテーブルに受け入れられます。
ルーターとルートの認証により、ルーターは、パスワード(鍵)に基づいて信頼できる送信元と通信していることを確認できる場合にのみ、情報を共有できます。この方法では、ハッシュされたキーがルートとともに別のルーターに送信されます。受信側ルーターは、送信されたキーを自身で設定されたキーと比較します。それらが同じである場合、ルートを受け入れます。ハッシュ アルゴリズムを使用すると、キーはプレーン テキストでネットワーク経由で送信されません。代わりに、設定されたキーを使用してハッシュが計算されます。ルーティング更新は、キーとともにハッシュ関数への入力テキストとして使用されます。このハッシュは、ルート更新とともに受信ルーターに送信されます。受信側ルーターは、受信したハッシュを、設定された事前共有鍵を使用してルート更新時に生成するハッシュと比較します。2 つのハッシュが同じ場合、ルートは信頼できる送信元からのものと見なされます。キーは、送信ルーターと受信ルーターのみが認識します。
セキュリティをさらに強化するために、一連の認証キー( キーチェーン)を設定できます。各キーには、キーチェーン内で一意の開始時間があります。キーチェーン認証を使用すると、ピアリングセッションを停止せずにパスワード情報を定期的に変更できます。このキーチェーン認証方法は、ピアリングセッションをリセットしたり、ルーティングプロトコルを中断したりすることなく、キーがロールオーバーされるため、 ヒットレス と呼ばれます。
送信ピアは、以下のルールを使用して、アクティブな認証キーを識別します。
開始時刻が現在の時刻以下である (つまり、将来ではない)。
開始時刻は、開始時刻が現在の時刻より短い (つまり、現在の時刻に最も近い) チェーン内の他のすべてのキーの時刻よりも大きくなります。
受信ピアは、着信鍵識別子に基づいて、認証に使用する鍵を決定します。
送信ピアは、設定された開始時間に基づいて現在の認証キーを識別し、現在のキーを使用してハッシュ値を生成します。次に、送信ピアは、TCP拡張認証オプションオブジェクトをBGPアップデートメッセージに挿入します。オブジェクトには、オブジェクト ID (IANA によって割り当てられる)、オブジェクトの長さ、現在のキー、およびハッシュ値が含まれています。
受信ピアは、受信する TCP 拡張認証オプションを調べ、受信した認証鍵を検索し、開始時刻、システム時刻、および tolerance パラメーターに基づいて鍵が受け入れ可能かどうかを判別します。鍵が受け入れられると、受信ピアはハッシュを計算し、更新メッセージを認証します。
キーチェーンを TCP セッションに初めて適用すると、セッションがリセットされます。ただし、キーチェーンが適用されると、キーチェーンにパスワードを追加または削除しても、TCP セッションはリセットされません。また、キーチェーンが認証アルゴリズムから別の認証アルゴリズムに変更されても、TCP セッションはリセットされません。
関連項目
TCP認証
通常、TCP 認証は次の階層レベルで構成します。
-
[edit protocols bgp] -
[edit protocols bgp group group-name] -
[edit protocols bgp group group-name neighbor address]
TCP 認証とプレフィックス サブネット
Junosデバイスは、BGPグループで設定された許可されたプレフィックスサブネットを介して検出されるBGPピアへのTCP認証をサポートします。
BGPセッションのTCP-AOまたはTCP MD5のプレフィックスベースの認証を設定するには、以下の階層で allow (all | prefix-list) ステートメントを設定します。
-
[edit protocols bgp group group-name] -
[edit protocols bgp group group-name dynamic-neighbor dyn-name]
TCP認証の詳細については、TCPを参照してください。
例:BGP のルーター認証の設定
すべてのBGPプロトコル交換を認証することで、信頼済みのルーティングデバイスだけが自律システム(AS)ルーティング更新に参加することを保証できます。デフォルトでは認証は無効になっています。
要件
開始する前に、以下を実行します。
ルーター・インターフェイスを設定します。
内部ゲートウェイプロトコル(IGP)を設定します。
概要
認証を構成すると、アルゴリズムによってエンコードされたチェックサムが作成され、それが送信されるパケットに含まれます。受信側のルーティング デバイスは、認証キー(パスワード)を使用してパケットのチェックサムを検証します。
この例には、キーチェーンの設定と適用に関する次のステートメントが含まれています。
key- キーチェーンは複数のキーを持つことができます。キーチェーン内の各キーは、一意の整数値で識別される必要があります。有効な識別子値の範囲は 0 から 63 です。キーの長さは最大 126 文字です。文字には任意のASCII文字列を含めることができます。スペースを含む場合、すべての文字を引用符(" ")で囲んでください。
tolerance—(オプション)キーチェーンごとに、クロックスキューの許容値を秒単位で設定できます。クロックスキューの許容範囲は、BGP 更新の鍵を受け入れる受信側に適用されます。設定可能な範囲は 0 から 999,999,999 秒です。許容期間中は、現在のパスワードまたは以前のパスワードのいずれかを使用できます。key-chain- キーチェーンごとに、名前を指定する必要があります。この例では、1 つのキーチェーンを定義します。bgp-auth. ルーティングデバイスに複数のキーチェーンを設定できます。例えば、BGP 用のキーチェーン、OSPF 用のキーチェーン、LDP 用のキーチェーンを作成することができます。secret- キーチェーン内のキーごとに、秘密のパスワードを設定する必要があります。このパスワードは、secretステートメントに暗号化またはプレーンテキスト形式で入力できます。常に暗号化された形式で表示されます。start-time- 各キーで開始時刻を UTC 形式で指定する必要があります。制御は 1 つのキーから次のキーに渡されます。(ルーティングデバイスのクロックに基づいて)設定された開始時刻が到来すると、その開始時刻を持つキーがアクティブになります。開始時刻は、ルーティングデバイスのローカルタイムゾーンで指定され、キーチェーン内で一意である必要があります。authentication-key-chain- すべてのピア、グループ、またはネイバーに対して、グローバルBGPレベルでキーチェーンを適用できます。この例では、extという外部 BGP(EBGP)グループで定義されているピアにキーチェーンを適用します。authentication-algorithm- キーチェーンごとに、ハッシュアルゴリズムを指定できます。アルゴリズムには、AES-128、MD5、または SHA-1 のいずれかを指定できます。キーチェーンと認証アルゴリズムを BGP 隣接セッションに関連付けます。
この例では、 bgp-auth という名前のキーチェーンを設定します。キー 0 は、2011-6-23.20:19:33 -0700 から送信および承認され、キーチェーン内の次のキー (キー 1) がアクティブになると送信および承認を停止します。キー 1 は 1 年後の 2012-6-23.20:19:33 -0700 にアクティブになり、キー 1 の開始時刻より後の開始時刻で別のキーが構成されていない限り、送信と受け入れを停止しません。30 秒のクロック スキュー許容誤差は、鍵を受け入れるレシーバーに適用されます。許容期間中は、現在のキーまたは前のキーのいずれかを使用できます。キーは共有秘密パスワードです。つまり、認証されたルーティング更新を受信するネイバーは、同じキー(パスワード)を含め、同じ認証キーチェーン設定を持っている必要があります。そのため、ルーター R0 とルーター R1 がピアとして設定されている場合は、同じ認証キーチェーン設定が必要です。この例では、1つのルーティング・デバイスでの設定のみを示しています。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストしてください。
set protocols bgp group ext type external set protocols bgp group ext peer-as 65530 set protocols bgp group ext neighbor 172.16.2.1 set routing-options autonomous-system 65533 set protocols bgp group ext authentication-key-chain bgp-auth set protocols bgp group ext authentication-algorithm md5 set security authentication-key-chains key-chain bgp-auth tolerance 30 set security authentication-key-chains key-chain bgp-auth key 0 secret this-is-the-secret-password set security authentication-key-chains key-chain bgp-auth key 0 start-time 2011-6-23.20:19:33-0700 set security authentication-key-chains key-chain bgp-auth key 1 secret this-is-another-secret-password set security authentication-key-chains key-chain bgp-auth key 1 start-time 2012-6-23.20:19:33-0700
手順
ステップバイステップでの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用する を参照してください。
ルーターR1がデバイスCE1からのルート・フィルターを受信し、受信したフィルターを使用してアウトバウンド・ルート・フィルタリングを実行するように設定するためには:
ローカルの自律システムを設定します。
[edit routing-options] user@R1# set autonomous-system 65533
1 つ以上の BGP グループを設定します。
[edit protocols bgp group ext] user@R1# set type external user@R1# set peer-as 65530 user@R1# set neighbor 172.16.2.1
複数のキーを使用した認証を構成します。
[edit security authentication-key-chains key-chain bgp-auth] user@R1# set key 0 secret this-is-the-secret-password user@R1# set key 0 start-time 2011-6-23.20:19:33-0700 user@R1# set key 1 secret this-is-another-secret-password user@R1# set key 1 start-time 2012-6-23.20:19:33-0700
各キーの開始時刻は、キーチェーン内で一意である必要があります。
認証キーチェーンを BGP に適用し、ハッシュアルゴリズムを設定します。
[edit protocols bgp group ext] user@R1# set authentication-key-chain bgp-auth user@R1# set authentication-algorithm md5
(オプション)クロックスキュー許容値を秒単位で適用します。
[edit security authentication-key-chains key-chain bgp-auth] user@R1# set tolerance 30
結果
コンフィギュレーションモードから、show protocolsshow routing-options、、およびの各コマshow securityンドを入力し、コンフィギュレーションを確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R1# show protocols
bgp {
group ext {
type external;
peer-as 65530;
neighbor 172.16.2.1;
authentication-key-chain bgp-auth;
authentication-algorithm md5;
}
}
user@R1# show routing-options autonomous-system 65533;
user@R1# show security
authentication-key-chains {
key-chain bgp-auth {
tolerance 30;
key 0 {
secret $ABC123$ABC123
start-time “2011-6-23.20:19:33 -0700”;
}
key 1 {
secret $ABC123$ABC123
start-time “2012-6-23.20:19:33 -0700”;
}
}
}
デバイスの設定が完了したら、設定モードから commit を入力します。
BGP 対応デバイスごとに適切なインターフェイス名とアドレスを使用して、ネットワーク内のすべての BGP 対応デバイスを対象に、この手順を繰り返します。
検証
設定が正常に機能していることを確認します。
ネイバーの認証の確認
目的
show bgp neighbor コマンドの出力に [AutheKeyChain] オプションが表示されていることを確認します。
アクション
動作モードからshow bgp neighborコマンドを入力します。
user@R1> show bgp neighbor
Peer: 172.16.2.1+179 AS 65530 Local: 172.16.2.2+1222 AS 65533
Type: External State: Established Flags: <Sync>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Export: [ direct-lo0 ]
Options: <Preference PeerAS Refresh>
Options: <AutheKeyChain>
Authentication key is configured
Authentication key chain: jni
Holdtime: 90 Preference: 170
Number of flaps: 0
Peer ID: 172.16.2.1 Local ID: 10.255.124.35 Active Holdtime: 90
Keepalive Interval: 30 Peer index: 0
Local Interface: fe-0/0/1.0
NLRI advertised by peer: inet-unicast
NLRI for this session: inet-unicast
Peer supports Refresh capability (2)
Table inet.0 Bit: 10000
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 2
Received prefixes: 2
Suppressed due to damping: 0
Advertised prefixes: 1
Last traffic (seconds): Received 2 Sent 2 Checked 2
Input messages: Total 21 Updates 2 Refreshes 0 Octets 477
Output messages: Total 22 Updates 1 Refreshes 0 Octets 471
Output Queue[0]: 0認証メッセージが送信されたことを確認する
目的
BGP に拡張認証オプションがあることを確認します。
アクション
動作モードからmonitor traffic interface fe-0/0/1コマンドを入力します。
user@R1> monitor traffic interface fe-0/0/1 verbose output suppressed, use <detail> or <extensive> for full protocol decode Listening on fe-0/0/1, capture size 96 bytes 13:08:00.618402 In arp who-has 172.16.2.66 tell 172.16.2.69 13:08:02.408249 Out IP 172.16.2.2.1122 > 172.16.2.1.646: P 1889289217:1889289235(18) ack 2215740969 win 58486 <nop,nop,timestamp 167557 1465469,nop,Enhanced Auth keyid 0 diglen 12 digest: fe3366001f45767165f17037>: 13:08:02.418396 In IP 172.16.2.1.646 > 172.16.2.2.1122: P 1:19(18) ack 18 win 57100 <nop,nop,timestamp 1466460 167557,nop,Enhanced Auth keyid 0 diglen 12 digest: a18c31eda1b14b2900921675>: 13:08:02.518146 Out IP 172.16.2.2.1122 > 172.16.2.1.646: . ack 19 win 58468 <nop,nop,timestamp 167568 1466460,nop,Enhanced Auth keyid 0 diglen 12 digest: c3b6422eb6bd3fd9cf79742b> 13:08:28.199557 Out IP 172.16.2.2.nerv > 172.16.2.1.bgp: P 286842489:286842508(19) ack 931203976 win 57200 <nop,Enhanced Auth keyid 0 diglen 12 digest: fc0e42900a73736bcc07c1a4>: BGP, length: 19 13:08:28.209661 In IP 172.16.2.1.bgp > 172.16.2.2.nerv: P 1:20(19) ack 19 win 56835 <nop,Enhanced Auth keyid 0 diglen 12 digest: 0fc8578c489fabce63aeb2c3>: BGP, length: 19 13:08:28.309525 Out IP 172.16.2.2.nerv > 172.16.2.1.bgp: . ack 20 win 57181 <nop,Enhanced Auth keyid 0 diglen 12 digest: ef03f282fb2ece0039491df8> 13:08:32.439708 Out IP 172.16.2.2.1122 > 172.16.2.1.646: P 54:72(18) ack 55 win 58432 <nop,nop,timestamp 170560 1468472,nop,Enhanced Auth keyid 0 diglen 12 digest: 76e0cf926f348b726c631944>: 13:08:32.449795 In IP 172.16.2.1.646 > 172.16.2.2.1122: P 55:73(18) ack 72 win 57046 <nop,nop,timestamp 1469463 170560,nop,Enhanced Auth keyid 0 diglen 12 digest: dae3eec390d18a114431f4d8>: 13:08:32.549726 Out IP 172.16.2.2.1122 > 172.16.2.1.646: . ack 73 win 58414 <nop,nop,timestamp 170571 1469463,nop,Enhanced Auth keyid 0 diglen 12 digest: 851df771aee2ea7a43a0c46c> 13:08:33.719880 In arp who-has 172.16.2.66 tell 172.16.2.69 ^C 35 packets received by filter 0 packets dropped by kernel
認証エラーのチェック
目的
認証エラーが原因で TCP によってドロップされたパケットの数を確認します。
アクション
動作モードからshow system statistics tcp | match authコマンドを入力します。
user@R1> show system statistics tcp | match auth
0 send packets dropped by TCP due to auth errors
58 rcv packets dropped by TCP due to auth errorsキーチェーンの動作確認
目的
認証エラーが原因で TCP によってドロップされたパケットの数を確認します。
アクション
動作モードからshow security keychain detailコマンドを入力します。
user@R1> show security keychain detail
keychain Active-ID Next-ID Transition Tolerance
Send Receive Send Receive
bgp-auth 3 3 1 1 1d 23:58 30
Id 3, Algorithm hmac-md5, State send-receive, Option basic
Start-time Wed Aug 11 16:28:00 2010, Mode send-receive
Id 1, Algorithm hmac-md5, State inactive, Option basic
Start-time Fri Aug 20 11:30:57 2010, Mode send-receive
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer をご利用ください。
