Top#ルータに戻る
BGPが他社との接続でもっとも使われるプロトコルです。
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から生成されるもの |
出口:上り(他社へ行く方向)
属性 | 補足 |
---|---|
LOCAL_PREF属性 | 値が高い経路を通る LOCAL_PREF属性を付け、高い経路の方(数値が大きい経路)から送る。 |
WEIGHT (Cisco独自) | 0(最低)~65535(最高) |
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
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側から来る経路を指定できる |
■待機系機器 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
コンバージェンスとは、ダイナミックルーティングで、ネットワークの変化が発生してから、正常に通信できるようになることです。
(1)インターフェースでリンクダウンを検知すれば一瞬で検知し、切り替わる
(2)インターフェースでリンクダウンを検知できない場合、HelloやKeepaliveのホールドタイムを失効(Expire)するまで障害を検知できない。
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 (Bidirectional Forwarding Detection)
ケーブルの問題を1秒以内に検出するには、BFD (Bidirectional Forwarding Detection) をリンク間で有効化し、 BFDによるリンク障害検知をBGPデーモンに通知します。
Host# show ip bgp Host# show ip route
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
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
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
> 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#ルータに戻る