[[CISCO入門]]

#setlinebreak(on)

バージョン: &Version; &br;
オンラインユーザー数: &online;
閲覧数表示 本日/トータル: &counter(today); / &counter(total); &br;
最終更新:&lastmod();&br;


*BGP [#z0657f3f]

**ASの接続形態 [#v412f076]

***スタブAS [#ma50f4a3]
スタブAS:1つのリンクで1つの他のASとだけ接続しているASシングルホームASとも呼ばれる。
出入り口が1つしかない為、他のASに向けてDefaultGWをStaticに設定するだけでよいので、
基本的にBGPは必要ありません。


***マルチホーム非トランジットAS [#q1a7e5b7]
複数のASにマルチホーム接続し、外部AS間のパケットは自AS内を通過させないASを
マルチホーム非トランジットASといいます。
マルチホームな非トランジットASでは受け取ったルート情報を他のASに送信せず、自ASの
ローカルルートのみをアナウンスします。一般的な企業がマルチホーム接続を行う場合は
非トランジットASになります。

***トランジットAS [#ha37ca3b]
複数のASにマルチホーム接続し、外部AS間のパケットを中継するトランジットASといいます。
トランジットASは他のASから受け取ったASからのルート情報を更に別のASに送信することで、
外部AS宛のトラフィックが自分のASを通過して配送されるのを可能にします。
また自AS内ルートもアナウンスします。
一般的なISPのASはマルチームなトランジットASになります。



**BGPの動作 [#eb708be1]
BGPはトランスポート層で唯一TCPを使用するルーティングプロトコルで
3つのテーブルを用いて動作します。
またBGPネイバー関係には内部BGPと外部BGPがあります。


***BGPメッセージ [#a928365b]
BGPのネイバー間で交換されるBGPメッセージは次の四種類

-OPEN
TCPコネクションを確立し、ネイバーとのセッション番号を開始する為の通知メッセージです。
OPENメッセージにはバージョン番号、AS番号、BGPルータID、待機時間などが含まれます。


-UPDATE
ルート情報の追加、変更、削除を伝える為のメッセージです。
ルート情報にはネットワークアドレス、サブネットマスクと、様々なパスアトリビュート(属性)が含まれています。


-KEEPALIVE
ネイバーの生存確認をする為のメッセージです。ホールドダウンタイマ内にKEEPALIVEメッセージが
受け取れない場合、BGPネイバーはダウンした時みなされます。


-NOTIFICATION
エラーメッセージが検出された時に、それを通知する為のメッセージ。
OPENメッセージに含まれる情報が接続条件を満たさない場合やホールドダウン時間を超過した場合
など、いくつかの状況においてBGPセッションを維持・確率できない場合があります。
その場合、ネイバーにNOTIFICATIONメッセージを送信し、エラーの内容通知を行いBGPセッション断する


***BGPデータベース [#d4505b46]
BGPルータはネイバーとの間で送受信されるルート情報を格納するために独自のテーブルを保持しています。

-ネイバーテーブル
BGPネイバーリスト

-BGPテーブル
各ネイバーから受信した全てのルート情報を格納するDB
各ルートに関するBGPアトリビュートが含まれる

-ルーティングテーブル
宛先ネットワークへの最適パスのリスト


***BGPピア(BGPネイバー) [#qf908c43]
BGPルーティングプロセスを実行するルータをBGP''スピーカ''といいます。
2台のBGPスピーカはTCPコネクションを形成します。
この関係をBGPピア、又はBGPネイバーと呼びます。

BGPピアにはIBGPピア、EBGPピアがあります。


-IBGPピア
同じASにある2台のルータ間で確立するBGPピアを内部BGP(IBGP)ピアと呼ぶ。

<条件>
同じASに属している
直接接続している必要は無い(IP到達可能が必須)

-EBGPピア
異なるASに属するBGPピアを外部BGP(EBGP)ピアと呼ぶ。

<条件>
違うASに属している
原則として直接接続して、到達可能であること。
(直結していない場合ebgp-multihopコマンドとIP到達性が必須)




**BGPの6つの状態 [#z9047fbf]

-Idle
BGP接続の為の最初の段階

-Connect
TCP接続の完了待ち。
TCP接続が成功するとOpen Sent状態に移行
TCP接続が失敗した場合はActive状態に移行する。

-Active
TCP接続を開始し、試行している状態。
OPENメッセージを送信しOPEN Sent状態に移行します。
TCP接続が完了しない場合は再びConnect状態にもどります。
設定ミスにより予期しないIPアドレスでTCP接続が行われると
Activeの状態のままになります。

-Open Sent
OPENメッセージを送信して、ピアからOPENメッセージ確認を行っている状態。
OPENメッセージを受信出来る場合KEEPALIVEメッセージの送信を開始し、
Open Confirm状態に遷移します。
Openメッセージがエラーの場合、NOTIFICATIONメッセージを送信しIdle状態に戻ります。

-Open Confirm
KEEPALIVEメッセージまたはNOTIFICATIONメッセージを待っている状態。
KEEPALIVEメッセージを受け取るとEstablished状態に遷移します。
NOTIFICATIONメッセージを受け取ったらIdle状態に遷移します。

-Established
BGPピアが完全に確立している状態です。
UPDATE/KEEPALIVE/NOTIFICATIONが交換することが出来ます。
UPDATE/KEEPALIVEを受信するたびにホールドタイムがリセットされます。
NOTIFICATIONメッセージを受け取ったらIdle状態に遷移します。




**パスアトリビュート [#zfad5195]
BGPで交換するルート情報には様々なパスアトリビュート(パス属性)と呼ばれるパラメータが付加される。


・全てのBGPルータがサポートしているかどうか
 Well-known(識別出来る)/Optional(識別できない)

・全てのUPDATEメッセージに付加されるかどうか
 mandatory(必須)/discretionary(任意)

・他のネイバーへ伝播するかどうか
 Transitive(伝播する)/non-transitive(伝播しない)

これらの特性を組み合わせることでパスアトリビュートを次の4タイプの分類しています。

,タイプ,説明,パスアトリビュート
,Well-known mandatory,全てのBGP実装で識別出来、必ず付加される,ORIGIN、AS_APTH、NEXT_HOP
,Well-know discretionary,全てのBGP実装で認識出来るが、付加は任意,LOCAL_PREFERENCE
,Optional transitive,一部の実装で識別出来ない可能性があるが、ネイバー伝播する,COMMUNITY
,Optional non-transitive,一部の実装で識別出来ない可能性があり、ネイバー伝播しない,MED



**BGPの基本設定 [#t6ced035]

           10.10.10.0/24
             .10   .11
     ┌───┐    ┌───┐
     │  R1  ├──┤  R2  │
     └───┘    └───┘
 10.11.11.11            10.12.12.12

***R1のConfig(BGP) [#vea284d5]

    router bgp 64512
     no synchronization
     bgp router-id 1.1.1.1
     bgp log-neighbor-changes
     network 10.11.11.0 mask 255.255.255.0
     neighbor 10.10.10.11 remote-as 64513
     no auto-summary

***R2 [#f33b6ea7]
    !
    router bgp 64513
     no synchronization
     bgp router-id 1.1.1.2
     bgp log-neighbor-changes
     network 10.12.12.0 mask 255.255.255.0
     neighbor 10.10.10.10 remote-as 64512
     no auto-summary
    !


***showで情報交換されたの確認 [#g8b609be]
 R2#show ip route
 
 Gateway of last resort is not set
  
      10.0.0.0/24 is subnetted, 3 subnets
 C       10.12.12.0 is directly connected, FastEthernet0/1
 B       10.11.11.0 [20/0] via 10.10.10.10, 00:02:20
 C       10.10.10.0 is directly connected, FastEthernet0/0


    R1#show ip bgp summary
    BGP router identifier 1.1.1.1, local AS number 64512
    BGP table version is 7, main routing table version 7
    2 network entries using 234 bytes of memory
    2 path entries using 104 bytes of memory
    3/2 BGP path/bestpath attribute entries using 372 bytes of memory
    1 BGP AS-PATH entries using 24 bytes of memory
    0 BGP route-map cache entries using 0 bytes of memory
    0 BGP filter-list cache entries using 0 bytes of memory
    BGP using 734 total bytes of memory
    BGP activity 6/4 prefixes, 6/4 paths, scan interval 60 secs
 
    Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
    10.10.10.11     4 64513      12      12        7    0    0 00:07:19        1
    R1#


    R1#show ip bgp neighbors
    BGP neighbor is 10.10.10.11,  remote AS 64513, external link
      BGP version 4, remote router ID 1.1.1.2
      BGP state = Established, up for 00:07:49
      Last read 00:00:49, last write 00:00:49, hold time is 180, keepalive interval is 60 seconds
      Neighbor capabilities:
        Route refresh: advertised and received(old & new)
        Address family IPv4 Unicast: advertised and received
      Message statistics:
        InQ depth is 0
        OutQ depth is 0
                             Sent       Rcvd
        Opens:                  1          1
        Notifications:          0          0
        Updates:                1          1
        Keepalives:            10         10
        Route Refresh:          0          0
        Total:                 12         12
      Default minimum time between advertisement runs is 30 seconds
 
     For address family: IPv4 Unicast
      BGP table version 7, neighbor version 7/0
     Output queue size : 0
      Index 1, Offset 0, Mask 0x2
      1 update-group member
                                     Sent       Rcvd
      Prefix activity:               ----       ----
        Prefixes Current:               1          1 (Consumes 52 bytes)
        Prefixes Total:                 1          1
        Implicit Withdraw:              0          0
        Explicit Withdraw:              0          0
        Used as bestpath:             n/a          1
        Used as multipath:            n/a          0
 
                                       Outbound    Inbound
      Local Policy Denied Prefixes:    --------    -------
        Bestpath from this peer:              1        n/a
        Total:                                1          0
      Number of NLRIs in the update sent: max 1, min 1
 
      Connections established 1; dropped 0
      Last reset never
    Connection state is ESTAB, I/O status: 1, unread input bytes: 0
    Connection is ECN Disabled, Mininum incoming TTL 0, Outgoing TTL 1
    Local host: 10.10.10.10, Local port: 47198
    Foreign host: 10.10.10.11, Foreign port: 179
 
    Enqueued packets for retransmit: 0, input: 0  mis-ordered: 0 (0 bytes)
 
    Event Timers (current time is 0x6337A7):
    Timer          Starts    Wakeups            Next
    Retrans            11          0             0x0
    TimeWait            0          0             0x0
    AckHold            10          8             0x0
    SendWnd             0          0             0x0
    KeepAlive           0          0             0x0
    GiveUp              0          0             0x0
    PmtuAger            0          0             0x0
    DeadWait            0          0             0x0
 
    iss: 3851312442  snduna: 3851312730  sndnxt: 3851312730     sndwnd:  16097
    irs: 1680345820  rcvnxt: 1680346108  rcvwnd:      16097  delrcvwnd:    287
 
    SRTT: 231 ms, RTTO: 769 ms, RTV: 538 ms, KRTT: 0 ms
    minRTT: 0 ms, maxRTT: 300 ms, ACK hold: 200 ms
    Flags: active open, nagle
    IP Precedence value : 6
 
    Datagrams (max data segment is 1460 bytes):
    Rcvd: 12 (out of order: 0), with data: 10, total data bytes: 287
    Sent: 21 (retransmit: 0, fastretransmit: 0, partialack: 0, Second Congestion: 0), with data: 11, total data bytes: 287


    R1#show ip protocols
    Routing Protocol is "bgp 64512"
      Outgoing update filter list for all interfaces is not set
      Incoming update filter list for all interfaces is not set
      IGP synchronization is disabled
      Automatic route summarization is disabled
      Neighbor(s):
        Address          FiltIn FiltOut DistIn DistOut Weight RouteMap
        10.10.10.11
      Maximum path: 1
      Routing Information Sources:
        Gateway         Distance      Last Update
        10.10.10.11           20      00:10:19
      Distance: external 20 internal 200 local 200


    R1#show ip bgp
    BGP table version is 7, local router ID is 1.1.1.1
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale
    Origin codes: i - IGP, e - EGP, ? - incomplete
 
       Network          Next Hop            Metric LocPrf Weight Path
    *> 10.11.11.0/24    0.0.0.0                  0         32768 i
    *> 10.12.12.0/24    10.10.10.11              0             0 64513 i
    R1#

    R1#show ip route b
    R1#show ip route bgp
         10.0.0.0/24 is subnetted, 3 subnets
    B       10.12.12.0 [20/0] via 10.10.10.11, 00:12:00




**BGPの同期 [#l1d94165]

BGP同期(Synchronization)は''IBPGから受信したルートはIGPと同期されるまで利用出来ない''
これはブラックホールASと呼ばれる現象を回避する為にあります。

IOS12.2(8)以降無効化されております。

 router bgp 64513
  no synchronization ←BGP作成時に自動的に作成されるコレ

**BGPのルート集約 [#a5731df6]

BGPのルート集約には二つの方法があります。
基本的にはaggregate-addressコマンドでルート集約を行います。

-aggregate-addressコマンド
-networkコマンド


***aggregate-addressコマンドによる集約例 [#j6ddfe9f]
Summary-onlyを入れると集約されたアドレスのみ広報され、
入れないと集約後のアドレスと集約前のアドレス両方が広報される。


-Summary-only無し
 R2(config)# router bgp 64513
 R2(config-router)#aggregate-address 10.12.0.0 255.255.0.0

-Summary-only有り
 R2(config)# router bgp 64513
 R2(config-router)#aggregate-address 10.12.0.0 255.255.0.0 summary-only

***BGPのおけるauto-summary [#z13b0d61]
BGPの自動集約はIGPと異なりBGP再配布されるルートに対してのみ自動集約が行われます。
但し現在のISPではフルメッシュIBGPなどの環境でnetworkコマンドによってルートをアドバタイズするのが
一般的であり、外部ASのルート情報をAS内のIGPへ再配布することは殆どありません。
従ってIOS12.2(8)以降ではDefでno auto-summaryとなっています。


*BGPのルート決定プロセス [#p37db957]
BGPは同じ宛先に対して同じプレフィックス長を持つルートが複数ある場合、
様々なパスアトリビュートの情報に従って最適ルートを一つ選択します。



**BGPのルート決定プロセス [#ze7d4029]
BGPは同じ宛先に対して同じプレフィックス長を持つルートが複数ある場合、
様々なパスアトリビュートの情報に従って最適ルートを一つ選択します。


***BGPのルート決定プロセス [#v3e4ad31]
NEXT_HOPアトリビュートのIPアドレスに到達できることが前提。


-WEIGHTアトリビュートが最大ルートを優先
※Cisco独自のパラメータ


-LOCAL_PREFERENCEアトリビュートが最大のルートを優先
WEIGHTが同じ場合、LOCAL_PREFERENCEの値が最大のルートを優先する
表示が無いルートはDef:100とみなします。


-AS_PATHアトリビュートが最短のルートを優先
ローカルルータが発生元のルートが無い場合、AS_PATHが最も短いルートが優先される


-ORIGINアトリビュートが最小のルートを優先
(高:IGP<EGP<INCOMPLETE:低)
AS_PATHの長さが同じ場合、ORIGINを参照します。
3つのORIGINは数値化され、IGPはEGPより小さく、EGPはINCOMPLETEより小さくなっている。


-MEDアトリビュートが最小のルート
ORIGINアトリビュートが同じ場合、MED値が最小のルートを優先します。
(同じASに属する複数のEBGPピアからのルート情報の比較に用います)


-IBGPからのルートより、EBGPからのルートを優先
MED値が同じ場合、ネイバータイプが確認され、IBGP(内部)ルートよりもEBGP(外部)ルートを優先


-NEXT_HOPへのIGPメトリックが最小のルートを優先

-EBGPからのルートの場合、最も古いものを優先

-ルータIDが最小のBGPピアからのルートを優先

-ネイバーのIPアドレスが最小のルートを優先


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS