ー PR : Udemy ビッグセール開催中! ー

【4/23までの期間限定】今ならUdemyの各種コースがいつもより格安で購入できます!
気になる方は今すぐ「Udemy公式サイト」を確認しましょう!

BGP(iBGP)の設定方法・設定確認方法を紹介【Junos, Juniper】

BGP(iBGP)の設定方法・設定確認方法を紹介【Junos, Juniper】

本記事ではJunosでのBGP(iBGP設定)についてご紹介させて頂きます。
[br num=”1″]
[char no=”3″ char=”解決者”]この記事は以下のような方にオススメです!
・ JunosのiBGPの設定方法を知りたい方
・ JunosのiBGPに関するshowコマンド・その結果を確認したい方
[/char]

Junos BGP(iBGP) 検証内容


それでは最初に設定要件とネットワーク構成をご紹介します。

ネットワーク図

検証時のネットワーク環境は以下の通りです。

また、本記事ではiBGPの設定にフォーカスしている為、eBGPの設定は紹介しておりません。
eBGPに関する検証結果を確認されたい方は、以下の記事で纏めております。
ご興味のある方はご覧ください!

▼ あなたにオススメな記事 ▼

>>参考記事: BGP(eBGP)の設定方法・設定確認方法を紹介

設定要件

本検証では以下の要件に基づきiBGPの設定を実装します。

▼ 設定要件 ▼
  • Router-idは明示的に設定する事
  • R1 – R2間でiBGPを確立する事
  • R1のLo0(1.1.1.1/32)の経路情報をiBGP経由でR2へ伝える事

Junos BGP(iBGP) 事前確認


検証前時点の各機器の設定内容やログは以下の通りです。

【事前確認】R1設定確認

R1にて以下の通り、IPアドレスは設定済です。

// インターフェース設定(ge-0/0/0, lo0)は設定済み
test-user@R1> show interfaces lo0 terse 
Interface               Admin Link Proto    Local                 Remote
lo0                     up    up
lo0.0                   up    up   inet     1.1.1.1             --> 0/0

test-user@R1> show interfaces ge-0/0/0 terse 
Interface               Admin Link Proto    Local                 Remote
ge-0/0/0                up    up
ge-0/0/0.0              up    up   inet     192.168.12.1/30 

Configは以下の通りです。

set system host-name R1
set interfaces ge-0/0/0 unit 0 family inet address 192.168.12.1/30
set interfaces lo0 unit 0 family inet address 1.1.1.1/32
set protocols ospf area 0 interface ge-0/0/0
set protocols ospf area 0 interface lo0

【事前確認】R2設定確認

R2では以下の通り、IPアドレスは設定済です。

// インターフェース設定(ge-0/0/0, ge-0/0/3, lo0)は設定済み
test-user@R2> show interfaces lo0 terse         
Interface               Admin Link Proto    Local                 Remote
lo0                     up    up
lo0.0                   up    up   inet     2.2.2.2             --> 0/0

test-user@R2> show interfaces ge-0/0/0 terse 
Interface               Admin Link Proto    Local                 Remote
ge-0/0/0                up    up
ge-0/0/0.0              up    up   inet     192.168.12.2/30 

test-user@R2> show interfaces ge-0/0/3 terse    
Interface               Admin Link Proto    Local                 Remote
ge-0/0/3                up    up
ge-0/0/3.0              up    up   inet     23.23.23.2/30  

Configは以下の通りです。

set system host-name R2
set interfaces ge-0/0/0 unit 0 family inet address 192.168.12.2/30
set interfaces ge-0/0/3 unit 0 family inet address 23.23.23.2/30
set interfaces lo0 unit 0 family inet address 2.2.2.2/32
set protocols ospf area 0 interface ge-0/0/0
set protocols ospf area 0 interface lo0

Junos BGP(iBGP) 設定変更作業


早速ですが、BGP(iBGP)の設定をしてみましょう!
[br num=”1″]
設定は以下の手順に沿って、実施します。

  1. Router-IDを設定する
  2. BGP ASを設定する
  3. iBGPを設定する
  4. 経路の広報設定をする

[br num=”1″]
では、上記1〜4の順でコマンド含めてご紹介します。

手順① Router-idを設定する

BGP Router-idの設定は「set routing-options router-id コマンド」で実現可能です。
[br num=”1″]
本検証ではR1には1.1.1.1、R2には2.2.2.2のルータIDを設定します。
Configは以下の通りです。

R1 Router-id設定

set routing-options router-id 1.1.1.1 

R2 Router-id設定

set routing-options router-id 2.2.2.2 

手順② BGP ASを設定する

BGPのAS設定は「set routing-options autonomous-system コマンド」で実施できます。
それではR1、R2にAS100を設定してみましょう!
[br num=”1″]
Configは以下の通りです。

R1 autonomous-system設定

set routing-options autonomous-system 100

R2 autonomous-system設定

set routing-options autonomous-system 100

手順③ iBGPを設定する

iBGPの設定は「set protocols bgp group コマンド」で実施できます。
[br num=”1″]
Configは以下の通りです。

R1 bgp group設定

ここではBGPタイプネイバーIPアドレスiBGPネイバーを張る際に使う自身のIPアドレスを設定する必要があります。

set protocols bgp group INT-PEER type internal  // <--- iBGPを意味しております
set protocols bgp group INT-PEER local-address 1.1.1.1  // <---iBGPネイバーを張る時に使うR1自身のIPアドレスを設定します
set protocols bgp group INT-PEER neighbor 2.2.2.2  // <---R2のIPアドレスを設定します

R2 bgp group設定

それでは、同じようにR2でも設定してみましょう!

set protocols bgp group INT-PEER type internal  // <--- iBGPを意味しております
set protocols bgp group INT-PEER local-address 2.2.2.2  // <---iBGPネイバーを張る時に使うR2自身のIPアドレスを設定します
set protocols bgp group INT-PEER neighbor 1.1.1.1  // <---R1のIPアドレスを設定します

手順④ 経路の広報設定をする

BGP経路の広報設定は「set protocols bgp groupコマンド」と「set policy-options policy-statement」にて設定可能です!
[br num="1"]
Configは以下の通りです。

set protocols bgp group INT-PEER export ADVERTISE-IBGP  // <--BGPへポリシー(ADVERTISE-IBGP)に合致する経路をexportする
set policy-options policy-statement ADVERTISE-IBGP term 1 from route-filter 1.1.1.1/32 exact  // <--1.1.1.1/32を指定
set policy-options policy-statement ADVERTISE-IBGP term 1 then accept

上記設定後、「commit」すれば、設定完了です。
[br num="1"]
ここまででBGP(iBGP)の設定作業は完了です。

Junos BGP(iBGP) 正常性確認


それでは、要件通り設定変更がされているか、確認してみましょう。
[br num="1"]
本検証は以下を確認します。

  1. BGPネイバーの確認
  2. ルーティングテーブルの確認
  3. R1にてBGP送出経路の確認
  4. R2にてBGP受信経路の確認

[br num="1"]
では、上記1〜3の順でshowコマンドの出力結果含めてご紹介します。

正常性確認① BGPネイバーの確認の確認

BGPネイバーを確認したい場合は「show bgp summary コマンド」で確認できます。
[br num="1"]

R1 show bgp summary の出力結果

以下の通り、R1-R2間でiBGPネイバー(2.2.2.2)が確立できているが、確認できますね!

test-user@R1> show bgp summary                  
Threading mode: BGP I/O
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet.0               
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
2.2.2.2                 100        349        352       0       1     2:35:35 Establ  //<--本検証にて追加した部分
  inet.0: 0/0/0/0

[br num="1"]

R2 show bgp summary の出力結果

同じようにR2から見ても、R1-R2間でiBGPネイバー(1.1.1.1)が確立できているが、確認できますね!

test-user@R2> show bgp summary 
Threading mode: BGP I/O
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet.0               
                       1          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
1.1.1.1                 100        354        349       0       0     2:36:29 Establ  //<--本検証にて追加した部分
  inet.0: 0/1/1/0

特定のBGPネイバーに関する情報が見たい時

BGPネイバーの詳細を確認したい場合は「show bgp neighbor x.x.x.x コマンド」で確認できます。
※ x.x.x.x にはネイバーIPアドレスが入ります。
[br num="1"]
本検証ではiBGPネイバー(2.2.2.2)の情報を見てみましょう!

test-user@R1> show bgp neighbor 2.2.2.2                      
Peer: 2.2.2.2+64614 AS 100     Local: 1.1.1.1+179 AS 100   // <-- ネイバー情報
  Group: INT-PEER              Routing-Instance: master   // <--BGP Group名とインスタンス
  Forwarding routing-instance: master  
  Type: Internal    State: Established    Flags: 
  Last State: OpenConfirm   Last Event: RecvKeepAlive
  Last Error: None
  Export: [ ADVERTISE-IBGP ]  // <--Exportポリシー名
  Options: 
  Options: 
  Local Address: 1.1.1.1 Holdtime: 90 Preference: 170  // <--BGP タイマーとプリファレンス値
  Graceful Shutdown Receiver local-preference: 0
  Number of flaps: 1
  Last flap event: RecvNotify
  Error: 'Cease' Sent: 0 Recv: 1
  Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90
  Keepalive Interval: 30         Group index: 0    Peer index: 0    SNMP index: 4     
  I/O Session Thread: bgpio-0 State: Enabled
  BFD: disabled, down
  NLRI for restart configured on peer: inet-unicast
  NLRI advertised by peer: inet-unicast
  NLRI for this session: inet-unicast
  Peer supports Refresh capability (2)
  Stale routes from peer are kept for: 300
  Peer does not support Restarter functionality
  Restart flag received from the peer: Notification
  NLRI that restart is negotiated for: inet-unicast
  NLRI of received end-of-rib markers: inet-unicast
  NLRI of all end-of-rib markers sent: inet-unicast
  Peer does not support LLGR Restarter functionality
  Peer supports 4 byte AS extension (peer-as 100)
  Peer does not support Addpath
  NLRI(s) enabled for color nexthop resolution: inet-unicast
  Table inet.0 Bit: 20000
    RIB State: BGP restart is complete
    Send state: in sync
    Active prefixes:              0
    Received prefixes:            0
    Accepted prefixes:            0
    Suppressed due to damping:    0
    Advertised prefixes:          1     
  Last traffic (seconds): Received 23   Sent 2    Checked 9960
  Input messages:  Total 372Updates 1Refreshes 0Octets 7116
  Output messages: Total 375Updates 4Refreshes 0Octets 7248
  Output Queue[1]: 0            (inet.0, inet-unicast)

正常性確認② ルーティングテーブル 反映確認

Junosでのルーティングテーブル(BGPルートの経路のみ)を確認したい場合は「show route protocol bgp コマンド」で確認できます。
[br num="1"]
それでは、R2のルーティングテーブルを確認してみます。
以下の通り、1.1.1.1/32が反映されている点が確認できますね。

test-user@R2> show route protocol bgp                    

inet.0: 10 destinations, 11 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32          [BGP/170] 01:09:49, localpref 100, from 1.1.1.1   // <--新しく学習した経路情報
                      AS path: I, validation-state: unverified
                    >  to 192.168.12.1 via ge-0/0/0.0

正常性確認③ R1にてBGP送出経路の確認

BGP送出経路(BGPネイバーへ送信している経路)を確認したい場合は「show route advertising-protocol コマンド」で確認できます。
[br num="1"]
以下の通り、R1からBGP経路(1.1.1.1/32)をiBGPネイバー(2.2.2.2)へ送信していますね。

test-user@R1> show route advertising-protocol bgp 2.2.2.2 

inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
  Prefix  Nexthop       MED     Lclpref    AS path
* 1.1.1.1/32              Self                         100        I

正常性確認④ R2にてBGP受信経路の確認

BGP受信経路(BGPネイバーへ受信している経路)を確認したい場合は「show route receive-protocol コマンド」で確認できます。
[br num="1"]
それでは、R2のshowコマンドを見てみましょう!
以下の通り、iBGPネイバーのR1(1.1.1.1)からBGP経路(1.1.1.1/32)を受信している点が、確認できますね!

test-user@R2> show route receive-protocol bgp 1.1.1.1 

inet.0: 10 destinations, 11 routes (10 active, 0 holddown, 0 hidden)
  Prefix  Nexthop       MED     Lclpref    AS path
  1.1.1.1/32              1.1.1.1                      100        I

inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

最後に実業務でよく利用するJunosの各種コマンドについては、以下の記事で纏めております。
ご興味のある方はご覧ください!

▼ あなたにオススメな記事 ▼

>>参考記事: 業務で役立つshow、clear、requestコマンドを紹介!

また、eBGPに関する検証結果を確認されたい方は、以下の記事で纏めております。
ご興味のある方はご覧ください!

▼ あなたにオススメな記事 ▼

>>参考記事: BGP(eBGP)の設定方法・設定確認方法を紹介

Junosの勉強方法


では最後に「Junosの勉強方法」について紹介いたします。
[br num="1"]
Juniper機器は通信プロバイダーなどのミッションクリティカルが環境で多く導入されております。
[br num="1"]
その為、Junosを勉強すると、大規模なネットワークへ関わるチャンスが増えます!
Junosの勉強は以下の参考書で勉強を進めましょう!!
[br num="1"]
以下のアマゾンリンクから内容の詳細(価格/評価等)が確認出来ますので、ぜひ確認してみて下さいね!


まとめ


最後までお読み頂きましてありがとうございます。
[br num="1"]
Juniperに関する記事は以下にまとめております。
ご興味のある方は是非ご覧ください。

この記事をシェアする

記事一覧へ戻る

関連記事 Relation Entry