例:BGP ルート広告の有効化
Junos OSは、あるEBGPピアから学習した経路を同じ外部BGP(EBGP)ピアに戻してアドバタイズすることはありません。さらに、ソフトウェアは、ルーティングインスタンスに関係なく、送信元ピアと同じ自律システム(AS)内にあるEBGPピアにルートをアドバタイズしません。コンフィギュレーションにこのステート advertise-peer-as
メントを含めることで、この動作を変更することができます。
コンフィグレーションにこのadvertise-peer-as
というステートメントを含めると,BGPはこのチェックに関係なくルートをアドバタイズします。
デフォルトの動作に戻すには、コンフィギュレーションにこのno-advertise-peer-as
というステートメントを含めます:
no-advertise-peer-as;
コンフィグレーションにこのas-override
というステートメントが含まれる場合、ルート抑止のデフォルト動作は無効になります。 as-override
およびという両方のステートno-advertise-peer-as
メントをコンフィギュレーションに含めると、このというステートno-advertise-peer-as
メントは無視されます。
要件
この例を構成する前に、デバイスの初期化以上の特別な構成は必要ありません。
この例は、Junosリリース21.2R1で更新され、再検証されました。
概要
この例では、外部BGP(EBGP)接続を持つ3つのルーティングデバイスを示しています。デバイスR2には、デバイスR1へのEBGP接続と、デバイスR3への別のEBGP接続があります。AS 64511にあるデバイスR2で分離されていますが、デバイスR1とデバイスR3は同じAS(AS 64512)にあります。デバイスR1とデバイスR3は、独自のループバックインターフェイスアドレスへのBGPダイレクトルートにアドバタイズします。
デバイスR2はこれらのループバックインターフェイスルートを受信し、 advertise peer-as
ステートメントによりデバイスR2はそれらをアドバタイズできます。具体的には、デバイスR1は192.168.0.1ルートをデバイスR2に送信し、デバイスR2には advertise peer-as
が設定されているため、デバイスR2はデバイスR3に192.168.0.1ルートを送信できます。同様に、デバイスR3は192.168.0.3ルートをデバイスR2に送信し、 advertise peer-as
デバイスR2がデバイスR1にルートを転送できるようにします。
デバイスR1とデバイスR3が、ASパスにそれ自身のAS番号を含むルートを受け入れるようにするには、デバイスR1とデバイスR3に loops 2
ステートメントが必要です。
トポロジー
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
デバイスR1
set interfaces xe-0/2/0 description R1-to-R2 set interfaces xe-0/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp family inet unicast loops 2 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 64511 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options autonomous-system 64512
デバイスR2
set interfaces xe-0/2/0 description R2-to-R1 set interfaces xe-0/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces xe-0/2/1 description R2-to-R3 set interfaces xe-0/2/1 unit 0 family inet address 10.1.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext advertise-peer-as set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 64512 set protocols bgp group ext neighbor 10.1.0.2 peer-as 64512 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options autonomous-system 64511
デバイスR3
set interfaces xe-0/2/0 description R3-to-R2 set interfaces xe-0/2/0 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp family inet unicast loops 2 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 64511 set protocols bgp group ext neighbor 10.1.0.1 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options autonomous-system 64512
手順
ステップバイステップでの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用する を参照してください。
Device R1を設定するには:
-
デバイスインターフェイスを設定します。
[edit interfaces] user@R1# set xe-0/2/0 description R1-to-R2 user@R1# set xe-0/2/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
-
BGP を設定します。
[edit protocols bgp group ext] user@R1# set type external user@R1# set peer-as 64511 user@R1# set neighbor 10.0.0.2
-
loops 2
ステートメントを含めることで、デバイス R3 からのルートがデバイス R1 で非表示にならないようにします。loops 2
ステートメントは、ルートを非表示にすることなく、ローカルデバイス自身のAS番号をASパスに1回まで表示できることを意味します。ローカルデバイスのAS番号がパスで2回以上検知された場合、ルートは非表示になります。[edit protocols bgp family inet unicast] user@R1# set loops 2
-
直接ルートを送信するルーティングポリシーを設定します。
[edit policy-options policy-statement send-direct term 1] user@R1# set from protocol direct user@R1# set then accept
-
デバイスR2とのBGPピアリングセッションにエクスポートポリシーを適用します。
[edit protocols bgp group ext] user@R1# set export send-direct
-
自律システム(AS)番号を設定します。
[edit routing-options ] user@R1# set autonomous-system 64512
ステップバイステップでの手順
デバイスR2 を設定するには:
-
デバイスインターフェイスを設定します。
[edit interfaces] user@R2# set xe-0/2/0 description R2-to-R1 user@R2# set xe-0/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set xe-0/2/1 description R2-to-R3 user@R2# set xe-0/2/1 unit 0 family inet address 10.1.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
-
BGP を設定します。
[edit protocols bgp group ext] user@R2# set type external user@R2# set neighbor 10.0.0.1 peer-as 64512 user@R2# set neighbor 10.1.0.2 peer-as 64512
-
同じAS内で、あるEBGPピアから別のEBGPピアに学習されたルートをアドバタイズするように、デバイスR2を設定します。
言い換えると、デバイスR1およびデバイスR3が同じAS内にあっても、デバイスR3から(およびその逆から)学習したデバイスR1のルートにアドバタイズします。
[edit protocols bgp group ext] user@R2# set advertise-peer-as
-
直接ルートを送信するルーティングポリシーを設定します。
[edit policy-options policy-statement send-direct term 1] user@R2# set from protocol direct user@R2# set then accept
-
エクスポートポリシーを適用します。
[edit protocols bgp group ext] user@R2# set export send-direct
-
AS番号を設定します。
[edit routing-options] user@R2# set autonomous-system 64511
結果
設定モードから、show interfaces
、show protocols
、show policy-options
、およびshow routing-options
のコマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
デバイスR1
user@R1# show interfaces xe-0/2/0 { description R1-to-R2; unit 0 { family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { family inet { unicast { loops 2; } } group ext { type external; export send-direct; peer-as 64511; neighbor 10.0.0.2; } }
user@R1# show policy-options policy-statement send-direct { term 1 { from protocol direct; then accept; } }
user@R1# show routing-options autonomous-system 64512;
デバイスR2
user@R2# show interfaces xe-0/2/0 { description R2-to-R1; unit 0 { family inet { address 10.0.0.2/30; } } } xe-0/2/1 { description R2-to-R3; unit 0 { family inet { address 10.1.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; advertise-peer-as; export send-direct; neighbor 10.0.0.1 { peer-as 64512; } neighbor 10.1.0.2 { peer-as 64512; } } }
user@R2# show policy-options policy-statement send-direct { term 1 { from protocol direct; then accept; } }
user@R2# show routing-options autonomous-system 64511;
デバイスの設定が完了したら、設定モードからcommit
を入力します。
検証
設定が正常に機能していることを確認します。
BGP ルートの検証
目的
デバイスR1とデバイスR3のルーティングテーブルに、予期されるルートが含まれていることを確認します。
アクション
-
デバイスR2で、BGP設定の
advertise-peer-as
ステートメントを無効にします。[edit protocols bgp group ext] user@R2# deactivate advertise-peer-as user@R2# commit
-
デバイスR3で、BGP設定の
loops
ステートメントを無効にします。[edit protocols bgp family inet unicast ] user@R3# deactivate unicast loops user@R3# commit
-
デバイスR1で、デバイスR2に対してどのルートがアドバタイズされているかを確認します。
user@R1> show route advertising-protocol bgp 10.0.0.2 inet.0: 5 destinations, 6 routes (5 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.0.0.0/30 Self I * 192.168.0.1/32 Self I
-
デバイスR2で、デバイスR1から受信したルートを確認します。
user@R2> show route receive-protocol bgp 10.0.0.1 inet.0: 7 destinations, 9 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 10.0.0.0/30 10.0.0.1 64512 I * 192.168.0.1/32 10.0.0.1 64512 I
-
デバイスR2で、デバイスR3に対してどのルートがアドバタイズされているかを確認します。
user@R2> show route advertising-protocol bgp 10.1.0.2 inet.0: 7 destinations, 9 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.0.0.0/30 Self I * 10.1.0.0/30 Self I * 192.168.0.2/32 Self I
-
デバイスR2で、BGP設定の
advertise-peer-as
ステートメントを有効にします。[edit protocols bgp group ext] user@R2# activate advertise-peer-as user@R2# commit
-
デバイスR2で、デバイスR3にアドバタイズされているルートを再確認します。
user@R2> show route advertising-protocol bgp 10.1.0.2 inet.0: 7 destinations, 9 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.0.0.0/30 Self I * 10.1.0.0/30 Self I * 192.168.0.1/32 Self 64512 I * 192.168.0.2/32 Self I * 192.168.0.3/32 10.1.0.2 64512 I
-
デバイスR3で、デバイスR2から受信したルートを確認します。
user@R3> show route receive-protocol bgp 10.1.0.1 inet.0: 5 destinations, 6 routes (5 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.0.0.0/30 10.1.0.1 64511 I 10.1.0.0/30 10.1.0.1 64511 I * 192.168.0.2/32 10.1.0.1 64511 I
-
デバイスR3で、BGP設定の
loops
ステートメントを有効にします。[edit protocols bgp family inet unicast ] user@R3# activate unicast loops user@R3# commit
-
デバイスR3で、デバイスR2から受信したルートを再確認します。
user@R3> show route receive-protocol bgp 10.1.0.1 inet.0: 6 destinations, 8 routes (6 active, 0 holddown, 1 hidden) Prefix Nexthop MED Lclpref AS path * 10.0.0.0/30 10.1.0.1 64511 I 10.1.0.0/30 10.1.0.1 64511 I * 192.168.0.1/32 10.1.0.1 64511 64512 I * 192.168.0.2/32 10.1.0.1 64511 I
意味
まず、 advertise-peer-as
ステートメントと loops
ステートメントが非アクティブ化され、デフォルトの動作を調べることができます。デバイスR1は、デバイスR1のループバックインターフェイスアドレス192.168.0.1/32へのルートをデバイスR2に送信します。デバイスR2は、デバイスR3にこのルートをアドバタイズしません。advertise-peer-as
ステートメントを有効にした後、デバイスR2はデバイスR3に192.168.0.1/32ルートをアドバタイズします。デバイスR3は、 loops
ステートメントがアクティブになるまで、このルートを受け入れません。