ー PR : Udemy 今セール中かも! ー

Udemyではパーソナライズオファーという「あなただけ割引になるお得な制度」が不定期で開催しております!
気になる方は今すぐ「Udemy公式サイト」を確認しましょう!

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

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

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

Junos BGP(eBGP) 検証内容


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

ネットワーク図

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

設定要件

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

▼ 設定要件 ▼
  • R2 – R3間でeBGPを確立する事
  • R1にてR3のLo0(3.3.3.3/32)の経路をBGPで学習する事

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

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

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

Junos BGP(eBGP) 事前確認


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

【事前確認】R1設定確認

R1では以下の通り、IPアドレスとiBGPの設定は完了しております。

// 以下はBGPネイバー情報です。R1とR2間はiBGPが確立済みです。
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        394        396       0       1     2:55:21 Establ

// 以下はR1がR2へ アドバタイズしているBGPルートの情報です。
// R1はR2に対して、1.1.1.1/32というBGP経路をアドバタイズしております。
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

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

set routing-options router-id 1.1.1.1
set routing-options autonomous-system 100
set protocols bgp group INT-PEER type internal
set protocols bgp group INT-PEER local-address 1.1.1.1
set protocols bgp group INT-PEER neighbor 2.2.2.2

set protocols bgp group INT-PEER export ADVERTISE-IBGP
set policy-options policy-statement ADVERTISE-IBGP term 1 from route-filter 1.1.1.1/32 exact
set policy-options policy-statement ADVERTISE-IBGP term 1 then accept

【事前確認】R2設定確認

R2では以下の通り、IPアドレスとiBGPの設定は完了しております。
ただし、R2-R3間のeBGPの設定は実施しておりません。(今回の検証範囲です。)

// 以下はBGPネイバー情報です。R1とR2間はiBGPが確立済みです。
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        401        396       0       0     2:57:05 Establ
  inet.0: 0/1/1/0


// 以下はR1から受信しているBGPルートの情報です。
// 今回は1.1.1.1/32というBGP経路を受信しております。
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


// 以下はR2のルーティングテーブル情報です。(BGP経路のみ)
// 1.1.1.1/32というBGP経路を学習しております。
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:28:47, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                   >  to 192.168.12.1 via ge-0/0/0.0

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

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

【事前確認】R3設定確認

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

// R2-R3間のeBGPの設定は実施しておりません。(今回の検証範囲です。) 
test-user@R3> show bgp summary 
BGP is not running

// ただし、各種IPアドレスの情報は設定済みです。 
test-user@R3> show interfaces lo0 terse         
Interface               Admin Link Proto    Local                 Remote
lo0                     up    up
lo0.0                   up    up   inet     3.3.3.3             --> 0/0

test-user@R3> 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.1/30 

Configは以下の通りです。

set system host-name R3
set interfaces ge-0/0/3 unit 0 family inet address 23.23.23.1/30
set interfaces lo0 unit 0 family inet address 3.3.3.3/32
set protocols ospf area 0 interface ge-0/0/0
set protocols ospf area 0 interface lo0

set system host-name R3
set interfaces ge-0/0/3 unit 0 family inet address 23.23.23.1/30
set interfaces lo0 unit 0 family inet address 3.3.3.3/32

Junos BGP(eBGP) 設定変更作業


それでは、R2-R3間のBGP(eBGP)の設定をしてみましょう!
[br num=”1″]
設定は以下の手順に沿って、実施します。

  1. R3にてBGPの基本設定(Router-ID,BGP AS)を設定する
  2. R2,R3にてeBGPを設定する
  3. R3にて経路の広報設定をする

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

手順① R3にてBGPの基本設定(Router-ID,BGP AS)を設定する

ここではBGPのRouter-idとASの設定をします。
[br num=”1″]
それでは、R3にて次ルータのルータID(3.3.3.3)、自AS番号(200)を設定してみます。
Configは以下の通りです。

R3 BGPの基本設定

set routing-options router-id 3.3.3.3 // <--ルータIDの設定
set routing-options autonomous-system 200 // <--自AS番号の設定

手順② R2,R3にてeBGPを設定する

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

R2 eBGP設定

ここではBGPタイプ、リモート機器(R3)のAS番号ネイバーIPアドレスを設定する必要があります。

set protocols bgp group EXT-PEER type external // <--- eBGPを意味しております
set protocols bgp group EXT-PEER peer-as 200 // <---R3のAS番号を設定します
set protocols bgp group EXT-PEER neighbor 23.23.23.1 // <---R3のIPアドレスを設定します

R3 eBGP設定

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

set protocols bgp group EXT-PEER type external  // <--- eBGPを意味しております
set protocols bgp group EXT-PEER peer-as 100  // <---R2のAS番号を設定します
set protocols bgp group EXT-PEER neighbor 23.23.23.2  // <---R2のIPアドレスを設定します

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

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

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

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

Junos BGP(eBGP) 正常性確認


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

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

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

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

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

R2 show bgp summary の出力結果

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

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

[br num="1"]

R3 show bgp summary の出力結果

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

test-user@R3> 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...
23.23.23.2              100         29         30       0       0       12:45 Establ  //<--本検証にて追加した部分
  inet.0: 0/0/0/0

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

BGPネイバーの詳細を確認したい場合は「show bgp neighbor x.x.x.x コマンド」で確認できます。
※ x.x.x.x にはネイバーIPアドレスが入ります。
[br num="1"]
それでは、showコマンドの結果を見てみましょう!

test-user@R3> show bgp neighbor 23.23.23.2 
Peer: 23.23.23.2+179 AS 100    Local: 23.23.23.1+60472 AS 200  // <-- ネイバー情報
  Group: EXT-PEER              Routing-Instance: master  // <--BGP Group名とインスタンス
  Forwarding routing-instance: master  
  Type: External    State: Established    Flags: 
  Last State: OpenConfirm   Last Event: RecvKeepAlive
  Last Error: None
  Export: [ ADVERTISE-EBGP ] // <--Exportポリシー名
  Options: 
  Options: 
  Holdtime: 90 Preference: 170   // <--BGP タイマーとプリファレンス値
  Graceful Shutdown Receiver local-preference: 0
  Number of flaps: 0
  Peer ID: 2.2.2.2         Local ID: 3.3.3.3           Active Holdtime: 90
  Keepalive Interval: 30         Group index: 0    Peer index: 0    SNMP index: 2     
  I/O Session Thread: bgpio-0 State: Enabled
  BFD: disabled, down
  Local Interface: ge-0/0/3.0   // <--BGPインターフェース
  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 1    Sent 26   Checked 805 
  Input messages:  Total 31Updates 1Refreshes 0 Octets 593
  Output messages: Total 32Updates 1Refreshes 0 Octets 641
  Output Queue[1]: 0            (inet.0, inet-unicast)

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

Junosでのルーティングテーブル(BGPルートの経路のみ)を確認したい場合は「show route protocol bgp コマンド」で確認できます。
[br num="1"]
それではR2のルーティングテーブルの出力結果を見てみましょう。
[br num="1"]

R2 show route protocol bgp の出力結果

以下の通り、3.3.3.3/32経路を学習している点が、確認できますね!

test-user@R2> show route protocol bgp 

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

1.1.1.1/32          [BGP/170] 01:57:40, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                    >  to 192.168.12.1 via ge-0/0/0.0
3.3.3.3/32         *[BGP/170] 00:07:58, localpref 100 // <--新しく学習した経路情報
                      AS path: 200 I, validation-state: unverified
                    >  to 23.23.23.1 via ge-0/0/3.0

[br num="1"]

R1 show route protocol bgp の出力結果

次にR1のルーティングテーブルを見てましょう!
以下の通り、3.3.3.3/32経路を2.2.2.2から学習している点が、確認できますね!

test-user@R1> show route protocol bgp    

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

3.3.3.3/32         *[BGP/170] 00:09:18, localpref 100, from 2.2.2.2
                      AS path: 200 I, validation-state: unverified
                    >  to 100.123.0.1 via fxp0.0

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

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

test-user@R3> show route advertising-protocol bgp 23.23.23.2 

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

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

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

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

inet.0: 11 destinations, 12 routes (11 active, 0 holddown, 0 hidden)
  Prefix  Nexthop       MED     Lclpref    AS path
* 3.3.3.3/32              23.23.23.1                              200 I

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

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

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

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

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

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

Junosの勉強方法


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


まとめ


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

この記事をシェアする

記事一覧へ戻る

関連記事 Relation Entry