ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム










.

device:router:routing:bgp.html


Top#ルータに戻る

BGPで動的ルーティング

概要

BGPが他社との接続でもっとも使われるプロトコルです。


用語

AS番号

AS番号は、BGPを利用する時の番号です。
プライベートAS番号も、通常は会社で1つ決めて、どこと接続する時にもそのAS番号を利用します。

AS番号は2バイト長であるため、利用できる番号は0~65535しかありません。
ただし、不足してきており、現在は、4バイトAS番号が開始されています。

1~64511 グローバルAS番号
64512~65534 プライベートAS番号

ピアリングとトランジット

ISPが持つネットワークを相互接続する方法は'ピアリング(Peering)'と'トランジット(Transit)'の2つがあります。

ピアリング BGPを利用するルータ同士の接続
お互いのネットワーク間だけのトラフィック配送を可能にする
トランジット インターネットの接続性の提供
各ASは、他のインターネット全域のASに対する接続性を別のASから提供してもらう
「トランジットAS」 :受け取った経路をアナウンスするAS
「非トランジットAS」:自ASのローカル経路のみをアナウンスするAS

シングルホームとマルチホーム

シングルホーム 外部との接続を1つしか持たないネットワーク
マルチホーム 複数の接続を持つネットワーク

その他

アドバタイズ 経路広報(経路広告)
ルーティングプロトコルを使用してルート情報を隣接ルータに教えること
BGPスピーカー BGPを実行するデバイスのこと
ネイバー(Neighbor)
ピア(Peer)
BGPを利用するときの相手のルータ
フルルート インターネット上のすべての経路情報
IBP BGPルートが、同じAS内から生成されるもの
EGP Exterior Gateway Protocol
BGPルートが、他のASから生成されるもの


経路制御

  • BGPは、上りと下りを別々に経路制御可能
    ただし、上りは自分たちで制御可能だが、下りは他社と調整が必要。
  • 複数のBGPスピーカーから同じ経路を受けるが、パス属性を使って、最適なルーティングテーブルを作る

出口の経路制御

出口:上り(他社へ行く方向)

属性 補足
LOCAL_PREF属性 値が高い経路を通る
LOCAL_PREF属性を付け、高い経路の方(数値が大きい経路)から送る。
WEIGHT (Cisco独自) 0(最低)~65535(最高)

設定例(LOCAL_PREF属性)

router bgp 50
  neighbor x.x.x.x remote-as 10   #相手のIPとAS番号
  neighbor x.x.x.x router-map set-localpref in
!
route-map set-localpref permit 10
 set local-preference 90          #相手を100  だと、相手の100が使われる。
access-list 1 permit 10.1.1.1 0.0.0.0
!
route-map weight1 permit 10
  match ip address 1
  set weight 100    #優先度が低い
  
route-map weight2 permit 10
  match ip address 1
  set weight 200    #優先度が高い
!
router bgp 50
  neighbor 1.1.1.1 route-map weight2 in    #こっちが使われる
  neighbor 2.2.2.2 route-map weight1 in 

設定例(WEIGHT属性)

router bgp 10
    neighbor 1.1.1.1 remote-as 10
    neighbor 1.1.1.1 weight 200      #低い
    neighbor 2.2.2.2 remote-as 20
    neighbor 2.2.2.2 weight 300      #高い
! 回線リプレースで、こっちは事前に準備しておく場合、古い方の優先度を低くしておきます。
router bgp 10
    neighbor 1.1.1.1 remote-as 100
    neighbor 1.1.1.1 weight 200      #低い
    neighbor 2.2.2.2 remote-as 100
    neighbor 2.2.2.2 weight 300      #高い


入口の経路制御

入口:下り(他社から来る方向)

属性 補足
AS_PATH属性 AS_PATH属性は、ASを通るたびに追加される値です。
AS_PATHの数が多いと、それだけ遠いいとされます。
待機系にAS_PATHを余分に追加することで、現用系を優先させます。
MED属性
COMMUNITY属性 値が高い経路を通る
COMMUNITY属性を設定している方から値を送り、
受信した方が値の高い方を優先して送る
例:AWS Direct Connectで、自社の機器にCOMMUNITY属性を設定すると、
AWS側から来る経路を指定できる

AS_PATH prepend

■待機系機器
router bgp 50
  neighbor x.x.x.x remote-as 10   #相手のIPとAS番号
  neighbor x.x.x.x router-map aspath-prepend out
!
router-map aspath-prepend permit 10
  set as-path prepend 50 50


BGPコンバージェンス(ダウンタイム)

コンバージェンスとは、ダイナミックルーティングで、ネットワークの変化が発生してから、正常に通信できるようになることです。

(1)インターフェースでリンクダウンを検知すれば一瞬で検知し、切り替わる
(2)インターフェースでリンクダウンを検知できない場合、HelloやKeepaliveのホールドタイムを失効(Expire)するまで障害を検知できない。

Keepaliveを短くする方法

BGPのKeepaliveインターバル、ホールドタイムは、値の短いほうにネゴシエーションされます

BGPデフォルト値
Cisco 180秒
Juniper 90秒

ただし、ホールドタイムを20秒以下にすると、Flapするからよっくないと言われる

# KeepAliveの送信間隔 10秒、BGPピアがいなくなってから経路情報を削除するまでの時間を30秒
router bgp 100
  neighbor 10.0.0.1 timers 10 30

DC内で設定される一般的な値は、keepalive timer 3秒、hold timer 9秒です。
BGP in the Data Centerを読みました (2/6) : Chapter 2 - How BGP Has Been Adapted to the Data Center - baron tech blog


BFDでケーブル問題を1秒以内で検知

BFD (Bidirectional Forwarding Detection)

ケーブルの問題を1秒以内に検出するには、BFD (Bidirectional Forwarding Detection) をリンク間で有効化し、 BFDによるリンク障害検知をBGPデーモンに通知します。


Cisco設定例

Cisco BGPの確認

Host# show ip bgp
Host# show ip route


Cisco BGP設定例

 192.168.0.0/24      192.168.1.0/24      192.168.2.0/24 
----------------[R1]----------------[R2]----------------
             .1      .1          .2      .2
           AS10                          AS20
R1(config)# router bgp 10    <- 自分のAS番号を宣言し、BGPを利用する

#接続相手(ネイバー)の情報
R1(config-router)# neighbor 192.168.1.2 remote-as 20

#自分が知っていて、相手に渡したいネットワーク
R1(config-router)# network 192.168.0.0  0.0.0.255
R2(config)# router bgp 20    <- 自分のAS番号を宣言し、BGPを利用する

#接続相手(ネイバー)の情報
R1(config-router)# neighbor 192.168.1.1 remote-as 10

#自分が知っていて、相手に渡したいネットワーク
R2(config-router)# network 192.168.2.0  0.0.0.255


Cisco BGP設定例(実際に利用される構成例)

Cisco BGP設定例

A-L3-1

interface GigabitEthernet1/0/24
  description To_B
  no switchport
  ip vrf forwarding VRF-B
  ip address 10.0.1.1 255.255.255.254

interface Vlan10
  description To_B
  ip vrf forwarding VRF-B
  ip address 192.168.1.2  255.255.255.240
  standby 201 ip 192.168.1.1
  standby 201 priority 105   #Active側を優先させる
  standby 201 preempt
  standby 201 track 3 decrement 20


trac 1  GigabitEthernet1/0/24 line-protocol
trac 2 ip route 172.16.0.0 255.255.255.240
 ip vrf VRF-B
track 3 list boolean and
  object 1
  object 2


address-family ipv4 vrf VRF-B
  netwrok 192.168.1.0  mask 255.255.255.240
  neighbor 10.0.1.2 remote-as 65534
  neighbor 10.0.1.2 active
exit-address-family

A-L3-2

interface GigabitEthernet1/0/24
  description To_B
  no switchport
  ip vrf forwarding VRF-B
  ip address 10.0.2.1 255.255.255.254

interface Vlan10
  description To_B
  ip vrf forwarding VRF-B
  ip address 192.168.1.3  255.255.255.240
  standby 201 ip 192.168.1.1
  standby 201 priority 90   #待機系のプライオリティを下げる
  standby 201 preempt

! 待機系にはtrac不要

address-family ipv4 vrf VRF-B
  network 192.168.1.0  mask 255.255.255.240
  neighbor 10.0.2.3 remote-as 65534
  neighbor 10.0.2.3 active
exit-address-family


Juniperの設定

確認方法

> show bgp neighbor
> show route protocol bgp
 192.168.0.0/24      192.168.1.0/24      192.168.2.0/24 
----------------[R1]----------------[R2]----------------
             .1      .1          .2      .2
           AS10                          AS20
          1.1.1.1                        2.2.2.2
root@R1# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/24
root@R1# set interfaces lo0 unit 0 family inet address 1.1.1.1/32
root@R1# set routing-options router-id 1.1.1.1

root@R1# set routing-options autonomous-system 10

root@R1# set protocols bgp group EXT type external
root@R1# set protocols bgp group EXT neighbor 192.168.1.2 peer-as 20


■ルート情報のアドバタイズ
root@R1# set policy-options prefix-list AS10ROUTE 192.168.0.0/24

root@R1# set policy-options policy-statement ADV-ROUTE01 term 1 from prefix-list AS10ROUTE
root@R1# set policy-options policy-statement ADV-ROUTE01 term 1 then accept

root@R1# set protocols bgp group EXT export ADV-ROUTE01
root@R2# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/24
root@R2# set interfaces lo0 unit 0 family inet address 2.2.2.2/32
root@R2# set routing-options router-id 2.2.2.2

root@R2# set routing-options autonomous-system 20

root@R2# set protocols bgp group EXT type external
root@R2# set protocols bgp group EXT neighbor 192.168.1.1 peer-as 10


■ルート情報のアドバタイズ
root@R2# set policy-options prefix-list AS20ROUTE 192.168.2.0/24

root@R2# set policy-options policy-statement ADV-ROUTE01 term 1 from prefix-list AS20ROUTE
root@R2# set policy-options policy-statement ADV-ROUTE01 term 1 then accept

root@R2# set protocols bgp group EXT export ADV-ROUTE01








Top#ルータに戻る


device/router/routing/bgp.html.txt · 最終更新: 2021/04/28 17:02 by kurihara

ページ用ツール