JANOG routing チュートリアル Matsuzaki maz Yoshinobu <maz@iij.ad.jp> maz@iij.ad.jp 1
インターネット maz@iij.ad.jp 2
ネットワーク AS AS ISP ISP ISP ISP IX IX ISP AS AS maz@iij.ad.jp 3
アクセス網とバックボーン網 バックボーン バックボーン アクセス網 AS/ISP 2 AS/ISP 1 maz@iij.ad.jp 4
ホスト 回線 ルータ maz@iij.ad.jp 5
ホスト IP で通信したい人たち PC ゲーム PDA テレビ それぞれネットワークに接続するためのインターフェスを持つ イーサネット 無線 LAN 無線 WAN シリアル パラレル USB maz@iij.ad.jp 6
回線 IP パケットを転送するための線 専用線 ダークファイバ アクセス網経由の回線 (pppoe, ppp) 光ファイバ イーサケーブル 帯域の保証や到達距離 保守など メディアやサービスに応じて違いがある 実のところ 回線は何が流れてても気にしない IP 以外でも良い 独自プロトコルを利用するために利用する人も maz@iij.ad.jp 7
2 拠点間を結ぶ回線種別 ファイバー イーサケーブル SONET/SDH DSU DSU 広域 ether M/C M/C maz@iij.ad.jp 8
ルータ IP パケットを経路表に応じて転送する人たち ブロードバンドルータ エンタープライズ用ルータ バックボーン用ルータ インタフェースや学習できる経路数などで違いがある maz@iij.ad.jp 9
ルータの違い とあるブロードバンドルータ 148,810pps (6micro sec/packet) とある大きなルータ 770,000,000pps (1pico sec/packet) 専用ハードウェアによる高速化 maz@iij.ad.jp 10
ネットワーク設計 利用可能なネットワークが維持される様に 冗長であること 拡張しやすいこと 運用しやすいこと 日々のトラヒックを運びつつも 様々な障害に耐え 増設も素直に行え 運用に過度の負荷をかけない maz@iij.ad.jp 11
障害 回線は切れる 異経路の確保 ルータは落ちる 通常時の負荷軽減 迂回路の確保 データセンタでも停電する 一カ所に依存しない運用 maz@iij.ad.jp 12
拡張しやすさ 運用しやすさ 動くネットワークは誰でも設計できる いろんなパターンが考えられる 維持できるネットワークを設計しないと駄目 増強時にも素直に拡張できる トラブル時に混乱しない シンプルで一貫性のあるポリシ 設定変更時に変更箇所が少なくて済むように maz@iij.ad.jp 13
設計の制限事項 電源 割り振られた電源容量 場所 機器を設置するラック数 回線 長距離区間を引ける本数 帯域 引き込める回線種別 ルータや機器 ポート数やインタフェース種別 サポートしているプロトコル 機能 maz@iij.ad.jp 14
RFC と実装 全ての実装が標準に忠実とは限らない 実装ミス 運用上や性能上の都合 独自の拡張機能 後に RFC となる場合もある 異なる実装の相互接続で問題となりうる OSPF のタイマーとか maz@iij.ad.jp 15
標準技術と非標準技術 標準技術 みんなが使ってるのでメンテナンスされる 他の機器で置き換えられる ベンダ特有の非標準技術 痒いところを掻いてくれる ( かも ) さっさと利用できる どれをどう採用するかはネットワークに寄る IIJ では標準技術を重視 maz@iij.ad.jp 16
機器の評価と検証 ベンダでも全てを検証しているわけではない 機能の組み合わせによる場合分けが破綻した 求める機能 性能が利用できるか確かめる カタログスペックなんて当てにならない 自分たちが使うところを集中的に 標準的な構成 機能を利用していると安心感 maz@iij.ad.jp 17
IPv4 アドレス表記 32bit 長を 8bit 毎に 10 進数表記. で繋ぐ 192.168.0.1 maz@iij.ad.jp 18
IPv6 アドレス表記 128bit 長を16bit 毎に16 進数表記 : で繋ぐ 2001:0db8:0000:0000:0000:0000:0000:0001 先頭の0を省略 2001:db8:0:0:0:0:0:1 連続の0を圧縮 2001:db8::1 ただし :: は一か所だけ (ex: 2001:db8::1:0:1) maz@iij.ad.jp 19
ネットワークのプレフィックス表記 192.168.0.0/24 = 192.168.0.0~192.168.0.255 = 192.168.0.0 mask 255.255.255.0 2001:db8::/64 = 2001:db8:: ~ 2001:db8::ffff:ffff:ffff:ffff 連続ネットマスクが前提 非連続ネットマスクは表現できない 192.168.0.10 mask 255.255.0.255 複数行での表記になる場合 192.168.0.0~192.168.2.255 192.168.0.0/23, 192.168.2.0/24 maz@iij.ad.jp 20
クラスレス (Classless) クラスの概念は過去の遺物なので忘れよう 昔はネットワークアドレスの認識に利用 IPv4 アドレスを見れば ネットマスクが分かった RIP などで利用 最近はプロトコルでプレフィックス長を伝播する 今やクラスレスが標準 クラス A 0.0.0.0 ~ 127.255.255.255 /8 クラス B 128.0.0.0 ~ 191.255.255.255 /16 クラス C 192.0.0.0 ~ 223.255.255.255 /24 maz@iij.ad.jp 21
ルーティングとは どこを経由してパケットを宛先に届けるか ルータはパケットの宛先アドレスをみて次の送り先を判断する maz@iij.ad.jp 22
IPv4 パケット送信 同じネットワークに属していれば直接送信 inet 192.168.0.1 netmask 255.255.255.0 192.168.0.0~192.168.0.255 が同じセグメント上にある etherフレーム dst-mac src-mac dst-ip src-ip dst-ip dst-mac dst データ src src-ip src-mac ip: 192.168.0.2 ip: 192.168.0.1 maz@iij.ad.jp 23
IPv4 パケット送信 2 遠くには経路情報に従ってルータに投げる dst rt-ip rt-mac etherフレーム rt-mac src-mac dst-ip データ src-ip dst-ip ip: 172.16.0.1 default 経路 : rt-ip src src-ip src-mac ip: 192.168.0.1 maz@iij.ad.jp 24
arp (Address Resolution Protocol) ether ではパケット送信に MAC アドレスが必要 IPv4 アドレスは分かってる (ex. default の向け先 ) 機器の IPv4 アドレスから MAC アドレスを知りたい arp で解決 RFC826 arp who-has 192.168.0.2 tell 192.168.0.1 0x0000: ffff ffff ffff 0019 bb27 37e0 0806 0001 0x0010: 0800 0604 0001 0019 bb27 37e0 c0a8 0001 0x0020: 0000 0000 0000 c0a8 0002 arp reply 192.168.0.2 is-at 00:16:17:61:64:86 0x0000: 0019 bb27 37e0 0016 1761 6486 0806 0001 0x0010: 0800 0604 0002 0016 1761 6486 c0a8 0002 0x0020: 0019 bb27 37e0 c0a8 0001 0000 0000 0000 0x0030: 0000 0000 0000 0000 0000 0000 maz@iij.ad.jp 25
IPv6 パケット送信 同じネットワークに属していれば直接送信 inet6 2001:db8::1 prefixlen 64 2001:db8::~2001:db8::ffff:ffff:ffff:ffff が同じセグメント上にある etherフレーム dst-mac src-mac dst-ip src-ip dst-ip dst-mac dst データ src src-ip src-mac ip: 2001:db8::beef:cafe ip: 2001:db8::1 maz@iij.ad.jp 26
IPv6 パケット送信 2 遠くには経路情報に従ってルータに投げる dst rt-ip rt-mac etherフレーム rt-mac src-mac dst-ip データ src-ip dst-ip ip: 2001:db8:cafe::1 default 経路 : rt-ip src src-ip src-mac ip: 2001:db8::1 maz@iij.ad.jp 27
ndp (Neighbor Discovery Protocol) ether ではパケット送信に MAC アドレスが必要 機器の IPv6 アドレスから MAC アドレスを知りたい ndp で解決 RFC4861 ICMPv6 を利用して MAC アドレスを問い合わせる 送り先を未学習なら multicast アドレス宛て IP: ff02::1:ff00:0000 ~ ff02::1:ffff:ffff 送信先 IP アドレスの下位 24bit を利用して生成 MAC: 33:33:00:00:00:00 ~ 33:33:ff:ff:ff:ff 送信先 IP アドレスの下位 32bit を利用して生成 maz@iij.ad.jp 28
ndp で MAC アドレス解決 IP6 2001:db8::1 > ff02::1:ffef:cafe ICMP6, neighbor solicitation, who has 2001:db8::beef:cafe source link-address option: 00:19:bb:27:37:e0 0x0000: 3333 ffef cafe 0019 bb27 37e0 86dd 6000 0x0010: 0000 0020 3aff 2001 0db8 0000 0000 0000 0x0020: 0000 0000 0001 ff02 0000 0000 0000 0000 0x0030: 0001 ffef cafe 8700 9a90 0000 0000 2001 0x0040: 0db8 0000 0000 0000 0000 beef cafe 0101 0x0050: 0019 bb27 37e0 IP6 2001:db8::beef:cafe > 2001:db8::1 ICMP6, neighbor advertisement, tgt is 2001:db8::beef:cafe destination link-address option: 00:16:17:61:64:86 0x0000: 0019 bb27 37e0 0016 1761 6486 86dd 6000 0x0010: 0000 0020 3aff 2001 0db8 0000 0000 0000 0x0020: 0000 beef cafe 2001 0db8 0000 0000 0000 0x0030: 0000 0000 0001 8800 c1fd 6000 0000 2001 0x0040: 0db8 0000 0000 0000 0000 beef cafe 0201 0x0050: 0016 1761 6486 maz@iij.ad.jp 29
ちなみに point-to-point リンクの場合 SDH/SONET/PPPとか 回線の先には必ず通信相手が一台だけ arp/ndpなどは利用しません MAC アドレス解決が必要ない 経路情報に従ってパケットを送出 回線に投げれば相手に届く ( はず ) maz@iij.ad.jp 30
経路情報 宛先プレフィックス + ネクストホップの集合 172.16.0.0/24 プレフィックス ネクストホップ 172.16.0.0/24 10.0.0.1 192.168.0.0/24 10.0.0.6 RT1 RT2 RT3 10.0.0.1 10.0.0.5 10.0.0.2 10.0.0.6 プレフィックス ネクストホップ 172.16.0.0/24 10.0.0.5 192.168.0.0/24 直接接続 192.168.0.0/24 maz@iij.ad.jp 31
経路の優先順位 1. prefix 長が長い ( 経路が細かい ) ほど優先 長い prefix 長短いホスト経路 (/128) default 経路 (::/0) ホスト経路 (/32) default 経路 (0.0.0.0/0) 優先優先度非優先 2. 経路種別で優先 1 connected 経路 2 static 経路 3 動的経路 (ospf, bgp, etc...) 内訳はベンダ依存 maz@iij.ad.jp 32
経路の種類 静的経路 connected 経路 ルータが直接接続して知っている経路 static 経路 ルータに静的に設定された経路 動的経路 ルーティングプロトコルで動的に学習した経路 OSPF や IS-IS BGP などで学習した経路 maz@iij.ad.jp 33
パケットと経路 送信元から宛先まで経路に矛盾が無ければ パケットが届く 双方向で問題が無ければ 相互に通信できる 行きと帰りの経路は違うかもしれない maz@iij.ad.jp 34
経路ループ 起こしちゃダメ 簡単に回線帯域が埋まる 大抵設定 / 設計ミス 矛盾のあるstatic route 無茶な設定の動的経路制御 static route 10.0.0.0/8 static route default 10.0.1.0/24 maz@iij.ad.jp 35
動的経路制御 インターネットと動的経路制御 maz@iij.ad.jp 36
動的経路制御の必要性 ネットワーク変化を経路情報に反映 もちろん事前の設計は必要 ISP のバックボーン運用では必須 インターネットは変化し続けてる プロトコルごとの得手不得手を把握しておく 何を設定しているのか理解しておく maz@iij.ad.jp 37
動的経路制御の基本アイディア 検知 ルータがネットワークの変化を検知 通知 情報を生成し他のルータに伝達 構成 最適経路で経路テーブルを構成 経路情報の生成経路情報の伝播 RT1 RT2 RT3 172.16.0.0/24 トラヒックの流れ 経路情報の伝搬の方向とトラヒックの流れは逆になる maz@iij.ad.jp 38
動的経路制御の種類 ディスタンスベクタ (distance vector) RIP など 距離と方向を扱うプロトコル リンクステート (link state) OSPF や IS-IS など リンクの状態を収集して管理するプロトコル パスベクタ (path vector) BGP など パス属性と方向を扱うプロトコル maz@iij.ad.jp 39
インターネットの構成 AS AS ISP ISP ISP ISP IX IX ISP AS AS maz@iij.ad.jp 40
AS Autonomous System 統一のルーティングポリシのもとで運用されている IP プレフィックスの集まり インターネットでは AS の識別子として IR から一意に割り当てられた AS 番号を利用する ISP ISP AS AS maz@iij.ad.jp 41
IGP と EGP IGP OSPF IS-IS BGP 等 AS 内 EGP 事実上 BGPのみ AS 間 BGP で制御 ISP IGP で制御 AS IX maz@iij.ad.jp 42
ISP でのプロトコルの利用法 OSPF or IS-IS ネットワークのトポロジ情報 必要最小限の経路で動かす 切断などの障害をいち早く通知 迂回 BGP その他全ての経路 顧客の経路や他 AS からの経路 大規模になっても安心 ポリシに基づいて組織間の経路制御が可能 maz@iij.ad.jp 43
トラヒック増加への対応 総務省 : 情報通信白書 24 年版より http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h24/html/nc245320.html 2013/7/2 44
トラヒック増加対応 1 インタフェースの上限速度がある 今のところ 10GEが標準的 100GEがようやく出て来たけどまだ高い ISP 間 ルータ間は 10G 以上のトラヒック 実効帯域を何とかして増やしたい しかも 冗長構成は必須 maz@iij.ad.jp 45
link aggregation 10Gbps の回線を束ねて ルータで論理的に一つの回線に見せる 複数の回線を束ねられる 束ねられる回線数には実装により 上限あり 回線が切れると迂回路に回る 用意した帯域の半分程度しか利用できない maz@iij.ad.jp 46
multipath OSPF Multipath ISP(AS) 内には有効 標準技術 BGP Multipath 非標準技術だが 多くのベンダが採用 構成をきちんと組めば ISP(AS) 間にも有効 帯域の利用効率が良い maz@iij.ad.jp 47
より高速なインタフェース 100Gbps インタフェースを備えたルータが市場に出て来たが お値段が高い ポート密度が上がるまで時間がかかる maz@iij.ad.jp 48
経路数増加への対応 http://bgp.potaroo.net/bgprpts/rva-index.html maz@iij.ad.jp 49
IPv6 経路も増加中 http://bgp.potaroo.net/index-v6.html maz@iij.ad.jp 50
減りゆくルータのメモリ 512MB メモリ 4GB メモリ maz@iij.ad.jp 51
経路増加にはグッとくる解決無し default 経路併用による運用 小規模ルータで経路削り 泣きながら増強 BGP でトランジット提供している場合 maz@iij.ad.jp 52
OSPF maz@iij.ad.jp 53
OSPF 概要 リンクステート型 全ルータがネットワークのトポロジ情報を持つ ネットワークに変更があれば通知 SPF アルゴリズムによる最適経路の選択 リンクのコストによる優先付け 同一コストの複数パスによる負荷分散 エリアによる階層化 エリア境界はルータ 隣接のルータと情報を交換 maz@iij.ad.jp 54
OSPF の基本アイディア 準備 隣接した他の OSPF ルータと隣接関係を構築 通知 各ルータが必要な情報をタイプ別に LSA として生成 隣接関係のルータに LSA を送信 受信した LSA をさらに他のルータに flood して網内に伝播 構成 各ルータが全 LSA を集め LSDB として保持 各ルータで LSDB を元に SPF 計算して最短パスを求め 経路情報を生成 maz@iij.ad.jp 55
OSPF RFCs 必読 [RFC2328] OSPF Version 2 この他にもいっぱい [RFC2370] The OSPF Opaque LSA Option [RFC2740] OSPF for IPv6 [RFC3101] The OSPF NSSA Option [RFC3137] OSPF Stub Router Advertisement : maz@iij.ad.jp 56
OSPF 用語 ルータ ID OSPF の AS 内でルータを識別する 32bit の数値 特に指定が無い場合 ルータのインタフェースの IP アドレスから選ぶ場合が多い ルータ ID を変更する場合は OSPF プロセスの再起動が必要なため 実運用では変更が発生しないように loopback インタフェースに付与した IP アドレスを利用する maz@iij.ad.jp 57
OSPF の経路選択 OSPF とコスト maz@iij.ad.jp 58
リンクコスト (link cost) RT1 RT2 RT3 3 10 15 7 13 ルータが そのインタフェースからパケットを送出するときのコスト ( 負担 ) 1~65535 の整数を管理者が設定する maz@iij.ad.jp 59
コスト (cost) 172.16.0.0/24 RT1 10 RT2 15 RT3 3 7 13 プレフィックス コスト 172.16.0.0/24 13+7+3=23 宛先までのパスで パケットが出力されるインタフェースのリンクコストを合計した値 maz@iij.ad.jp 60
小さいコストのパスが優先 172.16.0.0/24 RT4 RT5 2 2 1 1 1 1 RT1 RT2 RT3 10 15 3 7 13 プレフィックス コスト 172.16.0.0/24 3+1+2+1=7 最も小さいコストの経路を探索するのが SPF アルゴリズム maz@iij.ad.jp 61
各ルータの SPF 計算 RT5 RT3 RT4 RT1 RT2 RT4 RT5 2 2 1 1 1 1 RT1 RT2 RT3 10 15 RT5 RT3 RT4 RT1 RT2 RT1 RT2 RT4 RT5 RT3 3 172.16.0.0/24 7 RT2 RT1 13 RT4 RT5 RT3 RT3 RT2 RT5 RT4 RT1 各ルータは SPF で自身を頂点とするツリーを計算する maz@iij.ad.jp 62
同じコストのパスを複数利用できる 172.16.0.0/24 RT4 RT5 2 2 1 1 1 17 RT1 RT2 RT3 10 15 3 7 13 プレフィックス コスト 172.16.0.0/24 3+1+2+17=23 172.16.0.0/24 3+7+13= 23 同じコストの経路を同時に利用できる Equal Cost Multi Path(ECMP) と呼ばれる maz@iij.ad.jp 63
隣接関係 隣接関係の構築 maz@iij.ad.jp 64
ネイバとアジャセンシ ネイバ (neighbor) 隣接する2 台のルータで関係 多くの場合 Helloで自動的に探索 維持される アジャセンシ (adjacency) 経路情報を交換するネイバの関係 全ネイバがアジャセンシになるわけではない ネイバ アジャセンシ maz@iij.ad.jp 65
アジャセンシ アジャセンシ アジャセンシ RT1 RT2 RT3 OSPF で経路交換を行う隣接ルータのこと maz@iij.ad.jp 66
代表ルータ (DR) Designated Router のこと ブロードキャストや NBMA ネットワークで選ばれる アジャセンシ数を減らしたい セグメントのルータ数が増えるとアジャセンシ数は猛烈に増加 アジャセンシ数が減れば負荷を軽減できる 一つのセグメントでは 選出された代表ルータとだけアジャセンシを確立すればよい 実際にはバックアップの BDR ともアジャセンシを確立 maz@iij.ad.jp 67
DR BDR と DR Other DR BDR とアジャセンシを確立して LSA をやりとりする DR BDR DR Other 同士は Hello でネイバ関係を維持するだけ DR Other DR Other DR Other DR Other( その他のルータ ) は DR と BDR とのみアジャセンシを確立する DR Other 同士は アジャセンシを確立せずにネイバ状態 (2way) を維持する maz@iij.ad.jp 68
DR BDR の選出 ルータ優先度の高いルータが選出される ただし 既に選出済みの場合は置き換わらない ルータ優先度はHelloで交換される 優先度が同じ場合は ルータIDの大きな方 DR が故障したときは BDR が DR へと移行する BDR が DR になるまで 新たな BDR は選ばれない 不要な遷移をできるだけ防ぐため maz@iij.ad.jp 69
隣接関係の状態遷移 Down Init Exchange ExStart DR の選出 2way Loading ネイバ状態 Full アジャセンシ状態 maz@iij.ad.jp 70
ネイバの確立まで RT1 の状態 OSPF パケット RT2 の状態 RT1 Down HELLO [RT1] HELLO [RT1,RT2] HELLO [RT1,RT2] Down Init RT2 2way 2way Down - Helloを受信していない状態 Init - Helloを受信した状態 2way - 受信したHelloに自ルータIDが有る状態 # アジャセンシを確立する条件が整っていれば 2way にならずに ExStart に進む # point-to-point リンクや ルータのどちらかが既に DR BDR の場合 maz@iij.ad.jp 71
ネイバ確立の条件 Hello パケットに含まれる情報で判別 同一でなければならないもの 認証情報 エリア ID 所属するネットワーク p2p と virtual 接続を除く Option の E-bit(stub エリアかどうか ) hello 送信間隔 ルータ死亡間隔秒数 maz@iij.ad.jp 72
データベースの同期 RT1 の状態 OSPF パケット RT2 の状態 RT1 ExStart Exchange DD DD ExStart Exchange RT2 LSR Loading LSU Loading Full Full ExStart - 同期するマスターを選んでいる状態 Exchange - お互い保持するLSDBの情報を交換している状態 Loading - LSDBの差分を交換している状態 Full - LSDBが同期し アジャセンシが確立した状態 maz@iij.ad.jp 73
データベースの同期条件 Database Description パケットに含まれる情報で判別 同一でなければならないもの インタフェースの MTU Option の E-bit(stub エリアかどうか ) maz@iij.ad.jp 74
OSPF パケット OSPF のパケットフォーマット maz@iij.ad.jp 75
OSPF パケットの送信先 ALLSPFRouter[224.0.0.5] 全ての OSPF ルータが受信する ALLDRouter[224.0.0.6] DR, BDR のみが受信する p2p 接続では [224.0.0.5] 宛 ブロードキャストネットワークで Hello 及び DR と BDR からの LS update LS Ack は [224.0.0.5] 宛 DROther からの LS update LS Ack は [224.0.0.6] 宛 その他 ネイバへの unicast 宛 maz@iij.ad.jp 76
OSPF packet header 32 bit バージョン タイプ パケット length ルータID エリアID チェックサム 認証タイプ 認証 認証 24-octet の固定長 タイプ : 1 Hello 2 Database Description 3 Link State Request 4 Link State Update 5 Link State Acknowledgment 認証タイプ : 1 認証なし 2 シンプルパスワード認証 3 暗号認証 maz@iij.ad.jp 77
タイプ 1 - Hello ネイバの管理 ルータID エリアIDの通知 ネイバの検出 維持 生死確認 ルータ優先度の通知 DR BDR の選出 Option フィールドでルータの機能の通知 E-bit: 外部経路が扱えるかどうか Stubエリアでは0 それ以外は1 maz@iij.ad.jp 78
OSPF header タイプ 1 = Hello OSPF v2 応答が無い場合に死亡したと判断するまでの秒数 タイプ 1 - Hello 32 bit 2 タイプ = 1 パケット length ルータID エリアID チェックサム 認証タイプ 認証 認証 ネットワークマスク hello を送信するネットワークのネットマスク E-bit: 外部経路を扱える 既に知っていれば DR,BDR の IP アドレス 知らなければ 0.0.0.0 hello 間隔秒数 Option ルータ優先度ルータ死亡間隔秒数 DR( 代表ルータ ) BDR( バックアップ代表ルータ ) ネイバ : ネイバ DR,BDR の選出に利用 現時点で有効なネイバのルータ ID をリストする maz@iij.ad.jp 79
タイプ 2 - Database Description アジャセンシ確立時に 保持する LSA を通知 LSDBの同期をとる 全 LSAのヘッダのみを伝える マスタとスレーブになって情報を交換 ルータIDの大きい方がマスタ スレーブはマスタのDDシーケンス番号に同期する インタフェースのMTUを伝える Optionフィールドでルータの機能の通知 E-bit: 外部経路が扱えるかどうか (Stub エリアでは 0) maz@iij.ad.jp 80
OSPF header タイプ 2 - Database Description タイプ 2 = DD OSPF v2 リンクで送りだせる最大の IP パケットサイズ 32 bit 2 タイプ = 2 パケット length ルータID エリアID チェックサム 認証タイプ 認証 認証 インタフェースMTU Option DDシーケンス番号 00000 I M MS I bit: Init 最初の DD パケットを示す M bit: More まだ送る DD パケットがある MS bit: 1: Master 0: Slave 保持している LSA のヘッダを繰り返す フラグメントがなるべく発生しないように複数パケットに分けて送信 LSA ヘッダ (20-octet) データ交換開始時はユニークで 交換中は増加する maz@iij.ad.jp 81
タイプ 3 - Link State Request DD パケットで LSA 情報を交換後 差分を埋めるために LSA を要求する 最新の LSA を要求 保持していない LSA を要求 LSA が識別できる情報をリストして送信する LS タイプ リンクステート ID 広告元 ID maz@iij.ad.jp 82
OSPF header タイプ 3 - Link State Request タイプ 3 = LS Reqest OSPF v2 32 bit 2 タイプ = 3 パケット length ルータID エリアID チェックサム 認証タイプ 認証 認証 LSタイプリンクステートID 広告元 ID 要求する LSA 分だけ繰り返す フラグメントがなるべく発生しないように複数パケットに分けて送信 要求する LSA のヘッダの一部 maz@iij.ad.jp 83
タイプ 4 - Link State Update 一つ以上の LSA を運ぶ 隣接の OSPF ルータまで伝播する LSA の転送は Hop by Hop 受信確認は状態によって異なる Loading 中の受信確認は無く Link State Request で必要なものが再要求される アジャセンシ確立 (Full) 後はアジャセンシから Link State Acknowledgment が返信される maz@iij.ad.jp 84
OSPF header タイプ 4 - Link State Update タイプ 4 = LS Update OSPF v2 32 bit 2 タイプ = 4 パケット length ルータID エリアID チェックサム 認証タイプ 認証 認証 以降に含まれる LSA 数 LSA 数 LSA( 各 LSA で長さは異なる ) 運ぶ LSA 数分繰り返す maz@iij.ad.jp 85
タイプ 5 - Link State Acknowledgment 受信確認を通知する LSAのヘッダを通知する これで確実にLSAが伝わったことを保証する 一つ以上の受信確認を運ぶ アジャセンシ確立 (Full) 後に利用 maz@iij.ad.jp 86
OSPF header タイプ 5 = LS Ack OSPF v2 タイプ 5 - Link State Acknowledgment 32 bit 2 タイプ = 5 パケット length ルータID エリアID チェックサム 認証タイプ 認証 認証 受信確認する LSA 数分繰り返す LSA ヘッダ (20-octet) maz@iij.ad.jp 87
LSA の伝播と管理 LSA の管理を解説する maz@iij.ad.jp 88
OSPF の再計算 トポロジの変化等があれば 新規の LSA 生成 接続断や新規ネットワークの接続 検知 ルータがネットワークの変更を検知 通知 新規 LSA を生成して伝播 LSDB の更新 再構成 各ルータで SPF を計算して経路情報を更新 maz@iij.ad.jp 89
LSA の伝播 LSA は LSU パケットでアジャセンシに広報される LSU パケットは複数の LSA を運べる 受信した LSA には受信証明として LS ACK を返信 伝播したことを明確にするため 1 3 RT1 RT2 RT3 5 RT4 2 4 6 maz@iij.ad.jp 90
LSA の aging ルータは保持する全ての LSA に対して 生成されてからの経過秒数を管理する Max Age(60 分 ) に達すると LSA が消される LSA は生成元が定期的にリフレッシュする 幽霊 LSA を無くせる maz@iij.ad.jp 91
LSA のリフレッシュ LSA LS age = 0 LSA LS age = 0 t0 LS Seq = N t1 LS Seq = N+1 t2 時間 LSRefreshTime (30min) Max Age (60min) LSA の生成元はリフレッシュ時間 (30 分 ) がくると新規に LSA を生成して広報 変化が無くても生成される リフレッシュされない LSA は MaxAge 後に利用されなくなる maz@iij.ad.jp 92
OSPF と外部経路 外部経路の扱いを解説する maz@iij.ad.jp 93
OSPF の中と外 OSPF の AS 他の経路制御 ASBR OSPF で経路制御しているルータのグループが AS 他の経路制御との接点になっているルータが ASBR maz@iij.ad.jp 94
OSPF の AS と ASBR AS - Autonomous System 共通のプロトコル (OSPF 等 ) で経路情報を交換するルータのグループ BGP などでいう AS とは概念が異なる インターネットでの AS は BGP の AS を指す場合が多い ここでは誤解を避けるため OSPF の AS と明記する ASBR AS boundary router AS 境界ルータ 外部の経路 (static 等 ) を AS 内に広報するルータ maz@iij.ad.jp 95
外部経路 (external route) OSPF の AS 172.16.0.0/24 RT1 static 経路 RT2 RT3 15 13 RT2 は static 経路を OSPF の AS 内に広報できる 外部経路を広報する際にメトリックを付加できる maz@iij.ad.jp 96
外部経路メトリック Type 1 - リンクコストと同様に加算される 同じ宛先の Type 1 外部経路があった場合 途中リンクのコストも加算して もっとも小さなコストの経路が選ばれる Type 2 - とにかく小さな値が選ばれる 同じ宛先の Type 2 外部経路があった場合 もっとも小さな Type 2 メトリックの経路が選ばれる 同じ Type 2 メトリックの場合 転送先アドレスまでのコストがもっとも小さな経路が選ばれる 同じ宛先の Type 1 と Type 2 の外部経路があった場合 Type 1 の経路が選ばれる maz@iij.ad.jp 97
Type 1 外部経路 static 経路 static 経路 Type 1 メトリック 5 RT1 OSPF の AS RT3 Type 1 メトリック 10 RT2 15 7 5+15= 20 10+7= 17 リンクコストの加算の結果 RT3 が広報する外部経路が優先される maz@iij.ad.jp 98
Type 2 外部経路 static 経路 static 経路 Type 2 メトリック 5 RT1 OSPF の AS RT3 Type 2 メトリック 10 Type 2 メトリック 5 15 RT2 7 Type 2 メトリック 10 小さな Type 2 メトリックを持つ RT1 からの外部経路が優先される maz@iij.ad.jp 99
外部経路の混在 static 経路 static 経路 Type 2 メトリック 5 RT1 OSPF の AS RT3 Type 1 メトリック 10 Type 2 メトリック 5 15 RT2 7 10+7= 17 常に Type 1 経路が優先される BGP のネクストホップになるアドレスを運ぶなら Type 1 経路 closest exit が維持できて便利 maz@iij.ad.jp 100
OSPF エリア OSPF のエリアについて解説する maz@iij.ad.jp 101
エリア (area) OSPF の AS area area OSPF では連続したネットワークのグループを作成できる これに接続するルータを含めて エリアと呼ぶ maz@iij.ad.jp 102
エリアの概要 ルータがエリアの境界になる それぞれのエリアで独立に LSDB が管理され 経路情報が計算される あるエリアのトポロジは 他のエリアからは見えない 必要な経路情報のみが伝播する 計算負荷の軽減 maz@iij.ad.jp 103
エリア間とエリア内 宛先が同じエリアか違うエリアか エリア内経路 (intra-area 経路 ) エリア間経路 (inter-area 経路 ) 同じ宛先については エリア内経路が優先 intra-area 経路 inter-area 経路 area area maz@iij.ad.jp 104
エリア ID(area ID) 各エリアを識別する 32bit の数値 各エリアに管理者が ID を設定する そのまま数字で表記する書式 area 0 IP アドレスの様に 8bit 毎に区切った書式 area 0.0.0.0 maz@iij.ad.jp 105
バックボーンエリア (area 0) エリア ID が 0 各エリアの経路情報を交換できる特別なエリア OSPF のマルチエリア構成は バックボーンエリアを中心としたスター型 OSPF の AS area 2 外部 area 1 area 0 area 3 static 経路等 maz@iij.ad.jp 106
stub エリア 外部経路が増大した構成での対策を考えた 外部経路は基本的に全エリアに広報される これを軽減する仕組みが stub エリア 外部経路を伝播しない代わりに default 経路をエリア境界ルータが広報する ASBR が無いエリアに適用できる エリア内の全てのルータで stub エリアと設定する maz@iij.ad.jp 107
area 2 を stub エリアにしている例 OSPF の AS area 2 - stub 外部 static 経路等 area 1 area 0 area 3 area 2 にはエリア間経路 (inter area 経路 ) と default 経路のみが広報される この場合 area 3 も stub エリアにすることができる maz@iij.ad.jp 108
LSA LSA(link state advertisement) の パケットフォーマットを解説する maz@iij.ad.jp 109
リンクステート広告 (LSA) link state advertisement 各ルータが広告する情報のこと LSAの集合がLSDBになる 目的に応じた幾つかのタイプがある maz@iij.ad.jp 110
LSA の種類 ( 基本 ) LSタイプ 1. ルータLSA ルータに接続するリンク ネットワーク情報を運ぶリンク種別に応じてp2p, transit, stub, virtualの4 種類 2. ネットワークLSA ネットワークに接続するルータ情報を運ぶ 3. サマリLSA( ネットワーク ) エリア外のネットワークへの経路を運ぶ 4. サマリLSA(ASBR) エリア外のASBRへの経路を運ぶ 5. AS-external-LSA 外部経路を運ぶ Type 1とType 2のメトリックタイプが存在する maz@iij.ad.jp 111
LSA header 32 bit LS age Options LSタイプ リンクステートID 広告元 ID LSシーケンス番号 LS チェックサム length 20-octet の固定長 LSA を個別に識別できる LS タイプ, リンクステート ID, 広告元 ID 新しい LSA を識別できる LS age, LS シーケンス番号, LS チェックサム maz@iij.ad.jp 112
LS タイプ 1 - ルータ LSA 全ルータが一つずつ広告する自己紹介 4 種類のリンクタイプ 4. virtual link 1. point-to-point link RT2 2. transit network 3. stub network maz@iij.ad.jp 113
LSA header ルータ LSA 32 bit LS タイプ 1 = ルータ LSA V bit: virtual 接続の終端ルータ E bit: ASBR B bit: ABR リンクタイプ 1:p2p 接続 2:transit 3:stub 4:virtual 接続 LS age Options 1 リンクステートID = ルータID 広告元 ID = ルータID LS シーケンス番号 LS チェックサム length 00000VEB00000000 リンクタイプ リンクID リンクデータ # TOS リンク数 メトリック リンクステート ID はルータ ID ルータが接続しているリンク数 リンクコストの値が入る TOS に応じたメトリックの数 RFC2328 は TOS をサポートしていないので 0 リンク数分 繰り返す maz@iij.ad.jp 114
ルータ LSA で運ぶ情報 stub ネットワークのみが経路情報を運び その他はトポロジ情報を運ぶ リンクタイプ リンクID 1 p2p ネイバのルータID 2 transit DRのリンクのIPアドレス リンクデータデータ種類 MIB-II ifindex 値トポロジ ( あれば リンクのIPアドレス ) リンクのIPアドレストポロジ 3 stub リンクの IP ネットワーク 4 virtual ネイバのルータ ID ネットワークマスク リンクの IP アドレス 経路 トポロジ maz@iij.ad.jp 115
LS タイプ 2 - ネットワーク LSA transit ネットワークに接続するルータのリスト ネットワークにつき 1 台の代表ルータ (DR) のみが広告する DR BDR DR Other DR Other DR Other maz@iij.ad.jp 116
LSA header ネットワーク LSA 32 bit LS age Options 2 リンクステートID = DRのリンクのIPアドレス広告元 ID = ルータID LS シーケンス番号 LS チェックサム length ネットワークマスク 接続ルータのルータID : 接続ルータのルータID LS タイプ 2= ネットワーク LSA 該当ネットワークの DR のリンクの IP アドレス ネットワークのネットマスク 接続しているルータ数分 繰り返す maz@iij.ad.jp 117
LSA header ネットワーク LSA で運ぶ情報 トポロジと経路を同時に運ぶ トポロジ 32 bit LS age Options 2 リンクステートID = DRのリンクのIPアドレス広告元 ID = ルータID LS シーケンス番号 LS チェックサム length ネットワークマスク 経路 接続ルータのルータID : 接続ルータのルータID maz@iij.ad.jp 118
LS タイプ 3 - サマリ LSA エリア外のネットワークへの経路情報を運ぶ エリア境界で エリア境界ルータが生成する area area maz@iij.ad.jp 119
LSA header LS タイプ 3 サマリ LSA 32 bit LS age Options 3 リンクステートID = 宛先ネットワークのIPアドレス広告元 ID = ルータID LS シーケンス番号 LS チェックサム length ネットワークマスク 0 メトリック LS タイプ 3= サマリ LSA ( ネットワーク ) 宛先ネットワークの IP アドレス ネットワークのネットマスク ネットワークへのコスト maz@iij.ad.jp 120
LS タイプ 4 - サマリ LSA エリア外のASBRへの経路情報を運ぶ エリア境界で エリア境界ルータが生成する LSタイプ3とほぼ一緒 リンクステート ID がルータ ID ネットマスクが 0 static 経路等 外部 ASBR area area maz@iij.ad.jp 121
LSA header LS タイプ 4 サマリ LSA 32 bit LS age Options 4 リンクステートID = ASBRのルータID 広告元 ID = ルータID LS シーケンス番号 LS チェックサム length 0 0 メトリック LS タイプ 4= サマリ LSA (ASBR) ASBR のルータ ID ASBR へのコスト maz@iij.ad.jp 122
LS タイプ 5 - AS-external-LSA static や他のプロトコルで学習した経路情報を外部経路として OSPF 内で運ぶ AS 境界ルータ (ASBR) が生成する Type1 または Type2 のメトリック static 経路等 外部 ASBR area area maz@iij.ad.jp 123
LSA header メトリックタイプ 0:Type1 1:Type2 E AS-external-LSA 32 bit LS age Options 5 リンクステートID = 宛先ネットワークのIPアドレス広告元 ID = ルータID LS シーケンス番号 LS チェックサム length LS タイプ 5= AS-external LSA 宛先ネットワークの IP アドレス ネットワークのネットマスク ネットワークマスク 0 メトリック E bitに応じたメ フォワーディングアドレス トリック 外部経路タグ トラヒックの転送先 0.0.0.0 だと ASBR 向けに経路が向く maz@iij.ad.jp 124
LSA とエリア エリア間の LSA の伝播を整理する maz@iij.ad.jp 125
バックボーンから他エリアへの LSA ルータ LSA, ネットワーク LSA の経路部分が伝播する その他の LSA はそのまま伝播する area 0 area 1 LS タイプ 1( ルータ LSA) p2p, transit, stub, virtual LS タイプ 3(stub の経路情報を伝播 ) LS タイプ 4( ルータが ASBR) LSタイプ2( ネットワークLSA) LSタイプ3(LSA 内の経路情報を伝播 ) LSタイプ3( サマリLSA) LSタイプ4( サマリLSA) LSタイプ5(AS-external-LSA) maz@iij.ad.jp 126
エリア間での LSA バックボーンエリアのみがサマリ LSA を他エリアに中継できる area 1 area 0 area 2 LS タイプ 1( ルータ LSA) p2p, transit, stub, virtual LS タイプ 3(stub の経路情報を伝播 ) LS タイプ 4( ルータが ASBR) LS タイプ 2( ネットワーク LSA) LS タイプ 3(LSA 内の経路情報を伝播 ) LS タイプ 3( サマリ LSA) LS タイプ 4( サマリ LSA) LS タイプ 5(AS-external-LSA) maz@iij.ad.jp 127
stub エリアへの LSA 外部経路が伝播せず default 経路が広告される ASBR への経路も必要ないので 伝播しない area 0 area 1 - stub LS タイプ 1( ルータ LSA) LS タイプ 3(stub の経路情報を伝播 ) p2p, transit, stub, virtual LS タイプ 2( ネットワーク LSA) LS タイプ 3(LSA 内の経路情報を伝播 ) LS タイプ 3( サマリ LSA/ ネットワーク ) LS タイプ 4( サマリ LSA/ASBR) LS タイプ 5(AS-external-LSA) LS タイプ 3(default 経路 ) maz@iij.ad.jp 128
エリア構成を誤った場合 area 1 がバックボーンエリアに接していない ほとんどの経路がバックボーンに届かない 外部経路も転送先アドレスが到達できないと考えられるので ほぼ全ての経路が利用できない area 1 LSタイプ1( ルータLSA) p2p, transit, stub, virtual LSタイプ2( ネットワークLSA) LSタイプ3( サマリLSA) LSタイプ4( サマリLSA) LSタイプ5(AS-external-LSA) area 2 LSタイプ3(stubの経路情報を伝播 ) LSタイプ4( ルータがASBR) LSタイプ3(LSA 内の経路情報を伝播 ) area 0 maz@iij.ad.jp 129
virtual link の利用 area 0 が張り出している様に LSA のやり取りを行う 構成が複雑になるので 緊急時以外お勧めしない area 1 LS タイプ 1( ルータ LSA) p2p, transit, stub, virtual area 2 - transit area LS タイプ 3(stub の経路情報を伝播 ) LS タイプ 4( ルータが ASBR) area 0 LSタイプ2( ネットワークLSA) LSタイプ3( サマリLSA) LSタイプ4( サマリLSA) LSタイプ5(AS-external-LSA) LS タイプ 3(LSA 内の経路情報を伝播 ) virtual link maz@iij.ad.jp 130
OSPF 経路の優先順序 1. エリア内経路 (intra area 経路 ) ルータ LSA(LS タイプ 1) ネットワーク LSA(LS タイプ 2) 2. エリア間経路 (inter area 経路 ) サマリ LSA(LS タイプ 3, 4) 3. 外部経路タイプ 1 AS-external-LSA(LS タイプ 5) メトリックタイプ 1 4. 外部経路タイプ 2 AS-external-LSA(LS タイプ 5) メトリックタイプ 2 maz@iij.ad.jp 131
OSPFv3 OSPF for IPv6 のこと 詳しくは [RFC2740] IPv6 に対応するために 変更が加えられた トポロジ情報と経路情報の分離 ルータ LSA ネットワーク LSA から経路を削除 ルータ LSA の stub ネットワーク ネットワーク LSA のネットマスク 代わりに Intra-Area-Prefix-LSA を用意 LSA に Flooding Scope の要素が追加 maz@iij.ad.jp 132
OSPFv3 LSA を分かりやすく改名 サマリLSA(LSタイプ3) Inter-Area-Prefix-LSA サマリLSA(LSタイプ4) Inter-Area-Router-LSA リンクの識別手法の変更 OSPFv2 3 種類 リンクタイプ リンクID リンクデータ OSPFv3 4 種類 リンクタイプ インタフェースID ネイバインタフェースID ネイバルータID maz@iij.ad.jp 133
他のプロトコルとの比較 OSPF と IS-IS 1980 年台の後半に開発が始まる IS-IS の draft が原型となり OSPF が開発される その後 各ベンダが実装 現在も IETF のそれぞれの working group で議論が続く どちらも SPF アルゴリズムを利用してリンクステートデータベースから経路情報を計算する maz@iij.ad.jp 134
IS-IS と OSPFv2 IS-IS で IP の経路制御を出来るように拡張したものが Integrated IS-IS または Dual IS-IS プロトコルパケットの転送 Integrated IS-IS OSPFv2 CLNS IPv4 扱う経路情報 階層化 エリア境界 CLNS and/or IPv4 Level1( エリア内 ) Level2( エリア間 ) リンク IPv4 中継を担う area0 とその他のエリアルータ maz@iij.ad.jp 135
IS-IS L1/L2 ルータ L1/L2 ルータ L1 ルータ Level 1 Level 2 Level 1 L2 ルータ エリア境界はリンク上 Level2 がエリア間の通信を担う Level1 からエリア外への通信は近隣の L1/L2 ルータに頼る L2 の経路を L1 内に伝播させることもできる [RFC2966] maz@iij.ad.jp 136
IPv4/IPv6 と IGP 一つの IGP で両方処理する IPv4/IPv6 が完全に同じネットワーク構成であれば問題なく運用できる IS-IS で実現可能 将来は OSPFv3 も行けるかも それぞれ異なる IGP を採用 多少経路計算が冗長になる IPv4 - OSPF (or IS-IS) IPv6 - OSPFv3 (or IS-IS) maz@iij.ad.jp 137
maz@iij.ad.jp 138
BGP 概要 パスベクタ型プロトコル プレフィックスに付加されたパス属性で経路制御 AS 番号によって 組織間 組織内を認識する 経路交換にTCPを利用 データの到達や再転送は TCP 任せ 変更があった場合にのみ通知 ベスト経路のみを通知する 現在のバージョンは 4 (BGP4) maz@iij.ad.jp 139
BGP の基本アイディア 準備 経路交換したい BGP ルータと TCP でネイバを構築 通知 ベスト経路に変更があれば UPDATE としてネイバに広報 受信した経路は幾つかの条件を経て 他のネイバに広報 構成 各ルータが受信経路にポリシを適用し パス情報を元にベスト経路を計算 maz@iij.ad.jp 140
BGP RFCs 基本 [RFC4271] A Border Gateway Protocol 4 (BGP-4) この他にもいっぱい [RFC1997] BGP Communities Attribute [RFC3065] AS Confederations for BGP [RFC4451] BGP MED Considerations [RFC4456] BGP Route Reflection maz@iij.ad.jp 141
BGP 用語 BGP ID ルータを識別する 32bit の数値 インタフェースの IP アドレスから選ばれる 実運用では変更が発生しないように loopback インタフェースに付与した IP アドレスを利用する NLRI Network Layer Reachability Information ネットワーク層到達可能性情報 prefix で示される宛先のこと maz@iij.ad.jp 142
BGP の世界 AS AS ISP ISP ISP ISP IX ISP IX IBGP EBGP AS AS maz@iij.ad.jp 143
IBGP(Internal BGP) 同じ AS 内での BGP 接続 IBGP で受信した経路は他の IBGP ルータに広報されない 全ての経路を伝えるには AS 内の全 BGP ルータが full-mesh で IBGP を張る必要がある RT1 RT2 RT3 IBGP IBGP BGP 経路 maz@iij.ad.jp 144
EBGP(External BGP) 異なる AS との BGP 接続 EBGP から受信した経路は 他の BGP ルータに広報する IBGP から受信した経路も EBGP には広報する RT1 RT2 RT3 IBGP IBGP BGP 経路 - 1 EBGP RT4 BGP 経路 - 0 maz@iij.ad.jp 145
BGP のいにしえのモデル BGP 経路を IGP に再広報 BGP 経路を IGP に再広報 EBGP IBGP EBGP EBGP を張るルータのみが BGP ルータとなる BGP 経路を IGP(OSPF や IS-IS) に再広報して AS 内部は IGP で経路制御 経路数が増大すると破綻 maz@iij.ad.jp 146
経路数の増大に対応した BGP モデル EBGP IBGP EBGP 主要なルータは全て BGP ルータ IGP はトポロジと最低限の経路を運び BGP でその他の全ての経路を運ぶ IBGP 接続の増大 maz@iij.ad.jp 147
IBGP full-mesh n*(n-1)/2 AS 内に BGP ルータが増える毎に IBGP 接続が増大していく 20 台目の BGP ルータが接続すると 19 接続追加 ルータリソースの問題 設定負荷の問題 解決策の模索 [RFC4456] ルートリフレクタ [RFC3065] コンフェデレーション 気にせずリソースを強大にする ルータを減らす maz@iij.ad.jp 148
ルートリフレクタ IBGP で受信した経路の転送ルールを変更 ルートリフレクタの機能 BGP 接続ごとに設定される クライアント以外の IBGP で受信した経路をクライアントに送信 クライアントから受信した経路を他の IBGP ルータに送信 ベスト経路のみを広報するルールは変わらない 経路反射 RT1 RT2 RT3 IBGP IBGP ルートリフレクタ クライアント 経路反射 maz@iij.ad.jp 149
ルートリフレクタの利点と欠点 ルートリフレクタ IBGP IBGP EBGP IBGP EBGP クライアント クライアント クライアント 利点 IBGP 接続数が削減できる 比較的容易に導入できる 欠点 経路削除時に UPDATE が増える可能性がある 経路情報が隠蔽されるため最適ではない経路を選ぶ可能性がある リフレクタの階層はできるだけ物理トポロジに合わせるべし! maz@iij.ad.jp 150
コンフェデレーション 外部からは一つの AS のままだが 内部を複数のメンバ AS で構成する メンバ AS 間の BGP 接続は EBGP に似た挙動をする メンバ AS にはプライベート AS を使うのが一般的 AS Member-AS Member-AS Member-AS EBGP EBGP EBGP IBGP EBGP EBGP EBGP maz@iij.ad.jp 151
コンフェデレーションの利点と欠点 AS EBGP EBGP Member-AS Member-AS Member-AS EBGP EBGP Member-AS Member-AS EBGP EBGP EBGP 利点 IBGP 接続数が削減できる 管理区分を分けられる 欠点 経路削除時に UPDATE が増える可能性がある 経路情報が隠蔽されるため最適ではない経路を選ぶかもしれない maz@iij.ad.jp 152
BGP パケット BGP のプロトコルパケットの フォーマットを解説する maz@iij.ad.jp 153
BGP 接続の確立 RT1 RT1の状態 Idle Connect tcp/syn ~TCP 接続完了 ~ RT2の状態 Active Passive RT2 OpenSent OpenConfirm OpenConfirm Established Established Idel 初期状態 Connect TCP の接続完了待ち Active 隣接からの TCP 接続を待つ OpenSent OPEN 送信後 隣接からの OPEN を待つ OpenConfirm OPEN 受信後 隣接からの KEEPALIVE を待つ Established BGP 接続完了 経路交換の開始 maz@iij.ad.jp 154
BGP Message header 32 bit Marker Length Marker( マーカ ) 16-octet の全 bit が 1 過去との互換性のため Length 2-octet のメッセージ長 19~4096 タイプ タイプ (1-octet) 1. OPEN 2. UPDATE 3. NOTIFICATION 4. KEEPALIVE 5. ROUTE_REFRESH maz@iij.ad.jp 155
タイプ 1 OPEN メッセージ TCP 接続が確立後 最初にやりとりされる パラメタの交換 バージョン AS 番号やBGP ID ホールドタイム オプションパラメータで各種機能を通知しあう タイプ 4 KEEPALIVE で接続確立 maz@iij.ad.jp 156
BGP ヘッダ 現在 4 沈黙死だとみなすまでの秒数 全オプション情報の長さ なければ 0 タイプ 1 OPEN メッセージ 32 bit Marker(16-octet) Length タイプ =1 バージョン自 AS 番号ホールドタイム BGP ID 全オプション長 オプションパラメータオプションパラメータ BGP ルータを識別する ID ホールドタイムは 0 もしくは 3 以上 小さな値が採用される 0 の場合 セッション維持に KEEPALIVE を利用しない オプション情報を必要なだけ記述 maz@iij.ad.jp 157
オプションパラメータフォーマット パラメータタイプ パラメータタイプ 2. 能力 (Capabilities) 広告 16 bit パラメータ長 パラメータ値 Capability code Capability 長 Capability 値 Capability code 能力広告 今のところ能力広告に利用 利用可能な機能をピア先へ通知する maz@iij.ad.jp 158
Capability コード 1 Multiprotocol Extension 2 Route Refresh サポートする <AFI, SAFI> の広告 rfc 版の Route Refresh 機能広告 3 Cooperative Route Filtering 4 Multiple routes to a destination 64 Graceful Restart 65 Support for 4-octet AS number 67 Support for Dynamic Capability 128 Route Refresh(cisco) Cisco 独自の Route Refresh 機能広告 maz@iij.ad.jp 159
タイプ 2 UPDATE メッセージ 経路情報を運ぶ 一つのメッセージで以下の情報を運べる 複数の Withdrawn( 取り消された ) 経路 同じパス属性を持つ複数の NLRI Withdrawn 経路に含まれる経路は 同じメッセージ中で NLRI に含まれてはならない 情報の伝播保証は TCP 任せ maz@iij.ad.jp 160
BGP ヘッダ タイプ 2 UPDATE メッセージ 32 bit Marker(16-octet) Length タイプ =2 BGP UPDATE - Withdrawn 経路 - パス属性 +NLRI パス属性が異なる NLRI は 異なる UPDATE メッセージで運ばれる maz@iij.ad.jp 161
BGP UPDATE フォーマット Withdrawn 経路 Withdrawnの長さ (2-octet) Withdrawn 経路の列挙 到達可能経路 全パス属性の長さ (2-octet) パス属性の列挙 NLRIの列挙 Withdrawn 経路長 (2-octet) Withdrawn 経路 ( 可変長 ) 全パス属性長 (2-octet) パス属性 ( 可変長 ) NLRI( 可変長 ) プレフィックスの格納形式 長さ (1-octet) プレフィックス ( 可変長 ) 例 :10.0.0.0/8 8(1-octet) 例 :10.0.0.127/25 25(1-octet) 10(1-octet) 10.0.0.127(4-octet) maz@iij.ad.jp 162
タイプ 3 NOTIFICATION メッセージ エラーを検出すると送信する 送信後 すぐに BGP 接続を切断する エラー内容がエラーコードとエラーサブコードで示される 必要であれば 追加のデータも通知される maz@iij.ad.jp 163
BGP ヘッダ タイプ 3 NOTIFICATION メッセージ Length タイプ =3 エラーコードサブコードデータコードに応じた情報を必要なだけ記述 1. メッセージヘッダエラー 2. OPENメッセージエラー 3. UPDATEメッセージエラー 4. HoldTime 超過 5. 状態遷移エラー 6. Cease 32 bit Marker(16-octet) NOTIFICATION maz@iij.ad.jp 164
タイプ 4 KEEPALIVE メッセージ BGP 接続を確立させる BGP 接続を維持する 送信間隔内にUPDATEが無ければ送信 送信間隔はホールドタイムの1/3 程度 最小で 1 秒 ホールドタイムが 0 の場合は送信してはならない maz@iij.ad.jp 165
BGP ヘッダ タイプ 4 KEEPALIVE メッセージ 32 bit Marker(16-octet) Length=19 タイプ =4 KEEPALIVE KEEPALIVE であること以外 何も運ばない 最小の BGP メッセージ maz@iij.ad.jp 166
タイプ 5 ROUTE-REFRESH メッセージ 全経路の再広報を依頼する <AFI, SAFI> を指定 (IPv4 unicast など ) 受信時 知らない <AFI, SAFI> であれば無視 メッセージを送信するには OPEN メッセージの Capability 広告で ROUTE_REFRESH 機能が通知されている必要がある maz@iij.ad.jp 167
BGP ヘッダ タイプ 5 ROUTE-REFRESH メッセージ 32 bit Marker(16-octet) AFI Length タイプ =5 予約 SAFI 0 ROUTE REFRESH AFI = Address Famiry Identifier IPv4 や IPv6 など SAFI = Subsequent Address Famiry Identifier Unicast や Multicast など maz@iij.ad.jp 168
パス属性 パス属性の構成と主要なパス属性について解説する maz@iij.ad.jp 169
パス属性フォーマット 1-octet 1-octet Flag タイプコードパス属性長 パス属性値 1 or 2-octet OTPE0000 O bit: Optional( パス属性の種別 ) 0=Wellknown, 1=optional T bit: Transitive( パス属性の転送 ) 0=non-transitive, 1=transitive P bit: Partial( パス属性の処理 ) 0=complete, 1=partial E bit: Extended length 0= パス属性長は 1-octet 1= パス属性長は 2-octet 一つの UPDATE に同じパス属性を複数含んではいけない Partial bit オプション属性が 経路が広報されてから経由した全てのルータで解釈されたかどうかを示す 0: 全てのルータで解釈された 1: 解釈されなかったルータあり maz@iij.ad.jp 170
パス属性の 4 つのカテゴリ 周知必須 - well-known mandatory [T] 全ての BGP ルータで解釈可能 NLRI 情報があれば必ずパス属性に含まれる 周知任意 - well-known discretionary [T] 全ての BGP ルータで解釈可能 必ずしも含まれない オプション通知 - Optional transitive [OT] 一部の BGP ルータでは解釈できないかもしれない 解釈できなくても そのまま他のルータに広報する この際 Partial bit を 1 にセットする オプション非通知 - Optional non-transitive [O] 一部の BGP ルータでは解釈できないかもしれない 解釈できない場合は 他のルータに広報するとき属性を削除する maz@iij.ad.jp 171
ORIGIN 属性値 周知必須 NLRI の起源を示す 3 つのタイプ 経路生成元で付加され その後変更されない 0 IGP AS 内部で生成 1 EGP EGP[RFC904] から生成 2 INCOMPLETE その他の方法で生成 maz@iij.ad.jp 172
AS_PATH 属性 周知必須 NLRI が通過してきた AS 番号のリスト 例えば 10 20 30 一番右は経路を生成した AS 番号 他の AS に広報するときに先頭に自 AS 番号を付加 用途に応じてセグメントが用意されている 通常は AS_SEQUENCE を利用する 異なる AS_PATH を集約した場合は AS_SET AS_SET は {} でくくられる表記が多い 例えば 10 20 30 {40 41} maz@iij.ad.jp 173
AS_PATH 属性フォーマット 1-octet 1-octet 1 or 2-octet 010E0000 タイプコード2 パス属性長パス属性値 1-octet 1-octet セグメントタイプ AS 数 セグメント値 セグメントタイプ セグメントタイプ 1: AS_SET UPDATE が経由した AS 番号 順序は意味を持たない異なる AS Path の経路を集約したときに生成される 2: AS_SEQUENCE UPDATE が経由した AS 番号 順序に意味がある経由した最新の AS 番号はセグメント値の一番左 AS 数 octet 数ではなく AS 数つまり 255 個の AS まで セグメント値 2-octet の AS 番号のリスト 新しい情報は先頭 ( 左 ) に付加される maz@iij.ad.jp 174
AS_PATH 属性の処理 経路を転送する場合 広報先 IBGP EBGP 変更しない 自 AS 番号を AS_SEQUENCE タイプで AS_PATH 属性の先頭に付加する 経路を生成する場合 広報先 IBGP EBGP 空の AS_PATH 属性を生成する AS_SEQUENCE タイプで自 AS 番号のみの AS_PATH 属性を生成する maz@iij.ad.jp 175
NEXT_HOP 属性 周知必須 NLRI へ到達するためのネクストホップ IP アドレス NEXT_HOP:RT3 NLRI:10.0.0.0/24 NEXT_HOP:RT3 NLRI:10.0.0.0/24 RT1 RT2 EBGP RT3 IBGP NEXT_HOP maz@iij.ad.jp 176
NEXT_HOP 属性の処理 IBGP に経路を転送するときは 変更しない ただし 設定で自身の IP アドレスに変更することも可能 IBGP に生成した経路を広報するときは その宛先に到達するためのネクストホップを設定する ただし 自身の IP アドレスを設定することも可能 EBGP に経路を広報するときは BGP 接続に利用している自身の IP アドレスを設定する ただし 宛先のネクストホップが EBGP ルータと共通のサブネットに属する場合は 他のルータの IP アドレスや自身の別なインタフェースの IP アドレスを設定することも可能 maz@iij.ad.jp 177
MULTI_EXIT_DISC(MED) 属性 周知任意 隣接 AS との距離を表す 4-octet の数値 小さいほど優先される 付加されていないと最小の 0 と見なす [RFC4271] EBGP で受信した MED は他の EBGP でそのまま広報してはならない 幾つかの注意点 BGP MED Considerations [RFC4451] など maz@iij.ad.jp 178
LOCAL_PREF 属性 周知 AS 内での優先度を示す4-octetの数値 大きいほど優先される IBGP と EBGP で取り扱いが異なる IBGPへの広報では付加されるべき EBGPへの広報では付加してはならない 付加されていた場合は無視 コンフェデレーションのSubAS 間の場合は例外 maz@iij.ad.jp 179
COMMUNITIES 属性 オプション通知 NLRI に 32bit の数値で情報を付加する この情報を元に予め実装したポリシ等を適用 上位 16bit と下位 16bit に分けた表記が一般的 10 進数で 上位 : 下位 の様に表記する 自 AS での制御は上位に自 AS 番号を用い 下位で制御の情報を付加するのが一般的 つまり asn:nn maz@iij.ad.jp 180
Well-Known-community (0xFFFFFF01) NO_EXPORT 他 AS に広報しない コンフェデレーション内のメンバ AS には広報する (0xFFFFFF02) NO_ADVERTISE 他 BGP ルータに広報しない (0xFFFFFF03) NO_EXPORT_SUBCONFED 他 AS に広報しない コンフェデレーション内でメンバ AS にも広報しない (0xFFFFFF04) NOPEER [RFC3765] 対等ピアには広報しない まだ実装は無さそう maz@iij.ad.jp 181
EBGP&IBGP とパス属性 パス属性 EBGP IBGP ORIGIN 必須 必須 AS_PATH 必須 必須 NEXT_HOP 必須 必須 MULTI_EXIT_DISC 任意 任意 LOCAL_PREF 不許可 付加すべき COMMUNITIES 任意 任意 maz@iij.ad.jp 182
BGP の経路選択 経路処理方法や 経路選択ルールを解説する maz@iij.ad.jp 183
BGP の経路処理 ネイバから受信したままの未処理の経路情報 決定プロセスで選択された経路情報 ネイバに広報するための経路情報 Adj-RIB-in Loc-RIB Adj-RIB-out ポリシの適用 ベスト経路の決定 ポリシの適用 ポリシは設定 / 実装依存 無理なポリシを適用すると 経路ループを引き起こす可能性があるので注意 maz@iij.ad.jp 184
ベスト経路のみを広報 AS65500 AS AS AS AS AS AS AS RT1 では 7 経路見える ただし利用している経路はベストの 1 つだけ RT2 へ広報されるのは RT1 で選択されたベスト経路のみ RT1 RT2 AS maz@iij.ad.jp 185
NEXT_HOP 解決 NEXT_HOP 属性の IP アドレスまで到達可能であること BGP も含めた経路で再帰解決して 最終的に BGP ルータの隣接するネクストホップが得られる必要がある [RFC4271] RT3 192.168.0.1 RT1 IBGP NEXT_HOP: 10.0.0.1 NLRI: 172.16.3.0/24 RT2 プレフィックス ネクストホップ 10.0.0.1/32 192.168.0.1 172.16.3.0/24 10.0.0.1 maz@iij.ad.jp 186
経路優先度 1 NEXT_HOP NEXT_HOP 属性の IP アドレスが到達不可能な経路は無効 2 AS loop AS Path 属性に自身の AS 番号が含まれている経路は無効 3 LOCAL_PREF LOCAL_PREF 属性値が大きい経路を優先 (LOCAL_PREF 属性が付加されていない場合は ポリシに依存 ) 4 AS_PATH AS_PATH 属性に含まれる AS 数が少ない経路を優先 (AS_SET タイプは幾つ AS を含んでも 1 として数える ) 5 ORIGIN ORIGIN 属性の小さい経路を優先 (IGP < EGP < INCOMPLETE) 6 MULTI_EXIT_DISC 同じASからの経路はMED 属性値が小さな経路を優先 (MED 属性が付加されていない場合は 最小 (=0) として扱う ) 7 PEER_TYPE IBGP よりも EBGP で受信した経路が優先 8 NEXT_HOP METRIC NEXT_HOP への内部経路コストが小さい経路が優先 ( コストが算出できない経路がある場合は この項目をスキップ ) 9 BGP_ID BGP ID の小さな BGP ルータからの経路が優先 (ORIGINATOR_ID がある場合は これを BGP ID として扱う ) 10 CLUSTER_LIST CLUSTER_LIST の短い経路が優先 11 PEER_ADDRESS ピアアドレスの小さな BGP ルータからの経路を優先 maz@iij.ad.jp 187
属性値の評価 属性値がどう評価されるかを 解説する maz@iij.ad.jp 188
受信経路で重要な属性値 Local Preference 受信時に設定する AS Path 相手 AS から広報される MED 相手 AS から設定されて広報される もしくは受信時に上書き設定する NEXT_HOP Cost AS 内部のトポロジに依存する maz@iij.ad.jp 189
Local Preference 10.0.1.0/24 BGP UPDATE traffic の流れ AS65500 AS65501 LP 100 AS LP 120 AS s view: prefix LocPref AS-PATH 10.0.1.0/24 100 65500 >10.0.1.0/24 120 65501 65500 Local Preference の大きな値が優先 ある AS 経由の経路を優先したい場合に有効 maz@iij.ad.jp 190
AS Path 10.0.1.0/24 BGP UPDATE traffic の流れ AS65500 AS65501 AS AS s view: prefix AS-PATH >10.0.1.0/24 65500 10.0.1.0/24 65501 65500 AS Path 長が短い経路が優先 maz@iij.ad.jp 191
MED(MULTI_EXIT_DISC) AS65500 10.0.1.0/24 BGP UPDATE traffic の流れ MED 200 AS MED 100 AS s view: prefix MED >10.0.1.0/24 100 10.0.1.0/24 200 MED の値が小さい経路が優先 ある AS との複数接続に優先順位をつけたい場合に有効 maz@iij.ad.jp 192
NEXT_HOP COST AS65500 10.0.0.1 50 nexthop 10.0.0.1 10.0.1.0/24 50 RT3 80 RT3 s view: prefix nexthop [cost] >10.0.1.0/24 10.0.0.1 [100] 10.0.1.0/24 10.0.0.5 [130] 10.0.0.5 50 nexthop 10.0.0.5 AS BGP UPDATE traffic の流れ NEXT_HOP への igp コストが小さい経路を優先 これを利用したのが closest exit maz@iij.ad.jp 193
他 AS への広報で重要な属性値 AS Path prepend で AS Path 長を伸ばす MED 複数接続に優先順位をつける Community 広報先 AS での処理を期待する 相手とのポリシのすり合わせが重要 maz@iij.ad.jp 194
AS Path ( 広報時 ) AS65500 prefix AS-PATH >10.3.0.0/16 65509 10.3.0.0/16 65501 65509 AS65500 AS65501 BGP UPDATE traffic の流れ AS65509 10.3.0.0/16 AS Path 長が短い経路が優先 maz@iij.ad.jp 195
AS Path prepend AS65500 prefix AS-PATH 10.3.0.0/16 65509 65509 65509 >10.3.0.0/16 65501 65509 AS65500 AS65501 BGP UPDATE traffic の流れ prepend AS65509 10.3.0.0/16 ある AS との接続リンクを利用したくない場合に AS Path を長くして優先度を下げることが出来る maz@iij.ad.jp 196
広報通常時 AS65500 prefix AS-PATH 10.3.0.0/16 65509 10.3.0.0/16 65509 AS65500 BGP UPDATE traffic の流れ AS65509 10.3.0.0/16 AS65500 で特別な制御を行っていなければ closest exit になるはず トラヒックの分散は相手 AS の構成に依存する maz@iij.ad.jp 197
MED( 広報時 ) AS65500 prefix MED AS-PATH >10.3.0.0/16 100 65509 10.3.0.0/16 200 65509 MED 200 AS65500 MED 100 BGP UPDATE traffic の流れ AS65509 10.3.0.0/16 複数接続に優先順位をつけたい場合 AS65500 で MED を受け付ける設定になっていれば 小さな MED 値の経路が優先される MED を受け付けるかどうかは相手 AS のポリシ依存 maz@iij.ad.jp 198
Community 利用例 通常の経路は LocPref = 100 BGP UPDATE traffic の流れ AS65500 AS65501 65500:1 が付加された経路は LocPref = 90 65500:1 AS65509 10.3.0.0/16 AS65500 が Community 制御を実装していれば利用できる 経路に Community 情報を付加して その制御を利用する Community を受け付けるかどうかは AS のポリシ依存 maz@iij.ad.jp 199
BGP のパス選択 OSPF と BGP の関わりなどを 解説する maz@iij.ad.jp 200
10.0.1.0/24 AS65501 AS65500 closest exit と BGP AS65502 BGP UPDATE traffic の流れ AS 大阪 東京 名古屋 prefix AS-PATH >10.0.1.0/24 65501 65500 10.0.1.0/24 65502 65500 5 10 5 10 名古屋 名古屋では 65501( 大阪 ) 経由を選択中 maz@iij.ad.jp 201
10.0.1.0/24 AS65501 AS65500 OSPF のコスト変更 AS65502 BGP UPDATE traffic の流れ AS 大阪 東京 名古屋 prefix AS-PATH 10.0.1.0/24 65501 65500 >10.0.1.0/24 65502 65500 15 10 15 10 名古屋 名古屋からは 65502( 東京経由 ) に更新 maz@iij.ad.jp 202
OSPF コストと BGP RT1 RT3 10 10 RT4 prefix nexthop BGP 10.0.1.0/24 10.1.10.1 OSPF 10.1.10.1/32 RT2 RT4 RT2 prefix nexthop BGP 10.0.1.0/24 10.1.10.1 OSPF 10.1.10.1/32 RT1 5 RT2 BGP ネクストホップへの OSPF コストが一番小さな経路が選択される 5 maz@iij.ad.jp 203
RT2 が突然 reload RT1 RT3 10 10 RT4 prefix nexthop BGP 10.0.1.0/24 10.1.10.1 OSPF 10.1.10.1/32 RT3 RT4 5 RT2 5 RT2 が再起動 他のルータが障害を検出し OSPF 再計算 トラヒックは RT3 を迂回している maz@iij.ad.jp 204
OSPF と BGP の収束時間が違う RT3 RT1 10 10 - 予期せぬreload 発生 - 再起動 5 RT2 5 -OSPF 収束 : 吸い込みが発生 -BGP 収束 RT2 prefix nexthop OSPF 10.1.10.1/32 RT1 RT4 RT4 prefix nexthop BGP 10.0.1.0/24 10.1.10.1 OSPF 10.1.10.1/32 RT2 OSPF は収束したので RT4 では RT2 側を選択 RT2 はまだ BGP 経路を受信しきっていない その間 RT2 がトラヒックを破棄してしまう maz@iij.ad.jp 205
OSPF StubRouterAdvertisement RT3 RT1 10 10 5 RT2 5 RT4 - 予期せぬ reload 発生 - 再起動 -OSPF Stub Rt. Adv. 開始 -OSPF 収束 -BGP 収束 -OSPF Stub RT Adv. 終了 ルータを経由するトラヒックを迂回させる機能 OSPF 起動後に実施して BGP 収束までトラヒックを迂回させる等の利用が考えられる 詳しくは [RFC3137] を参照 maz@iij.ad.jp 206
BGP Multipath AS 50 10.0.1.0/24 50 50 RT3 50 AS 複数の経路を有効にできる手法 ベンダの実装依存 経路選択で特定の段階まで優先度が一致すれば Multipath として扱う RT3 で Multipath を使用 RT3 が他のルータに広報する経路は通常選択される 1 つのベスト経路のみ maz@iij.ad.jp 207
BGP4+ BGP4 のマルチプロトコル (IPv6) 対応 [RFC2545] [RFC2858] OPEN メッセージでマルチプロトコル対応を通知 BGP セッションは IPv4 or IPv6 どちらでも可 IPv6 だと global unicast or link-local が選べる IPv6 の到達性を保証するには IPv6 でセッションを確立するのがお勧め NEXT_HOP は global unicast (+ link-local) プレフィックスと共に MP_REACH_NLRI で運ばれる maz@iij.ad.jp 208
BGP の転用 BGP は ルータに TCP で情報を通知できる パス属性で情報を運ぶ IPv6 経路等もパス属性で運ばれる パス属性のみで NLRI が無い UPDATE も有効 経路を運ぶ以外の目的にも利用されるようになってきた maz@iij.ad.jp 209
maz@iij.ad.jp 210
参考資料 BGP NOTIFICATION メッセージコード BGP パス属性コードタイプ maz@iij.ad.jp 211
BGP NOTIFICATION メッセージ 1. メッセージヘッダエラー 2. OPENメッセージエラー 3. UPDATEメッセージエラー 4. HoldTime 超過 5. 状態遷移エラー 6. Cease maz@iij.ad.jp 212
コード 1 メッセージヘッダエラー メッセージヘッダの処理中にエラーを検出 1 サブコードデータ サブコードエラー内容データに含まれる値 1. Markerの値が不正 2. Lengthの値が不正 3. 解釈できないタイプ 不正だと判断した Length の値解釈できなかったタイプの値 maz@iij.ad.jp 213
コード 2 OPEN メッセージエラー OPEN メッセージの処理中にエラーを検出 2 サブコードデータ サブコードエラー内容データに含まれる値 0. 特定なし 1. バージョン不一致 サポートする最も近いバージョン 2. AS 番号でエラー 3. BGP IDが不正 4. 解釈できないオプションパラメータがある 5. [Deprecated] 6. ホールドタイマ値が受け入れられない 7. 未サポートのCapability サポートしていないCapabilityコード maz@iij.ad.jp 214
コード 3 UPDATE メッセージエラー UPDATE メッセージの処理中にエラーを検出 1. アトリビュートが不正 2. 周知必須属性が解釈できなかった エラーを検出した属性 (TLV) 3. あるべき周知必須属性が無かった無かった周知必須属性のタイプコード 4. フラグが不正エラーを検出した属性 (TLV) 5. パス属性長が不正エラーを検出した属性 (TLV) 6. ORIGIN 属性値が未規定の値エラーを検出した属性 (TLV) 7. [Deprecated] 8. NEXT_HOP 属性値の書式が不正エラーを検出した属性 (TLV) 9. オプション属性値でエラーエラーを検出した属性 (TLV) 10. NLRI の書式が不正 11. AS_PATH 属性の書式が不正 3 サブコードデータ サブコードエラー内容データに含まれる値 maz@iij.ad.jp 215
コード 4 HoldTimer 超過 HoldTimer 期間中に UPDATE も KEEPALIVE も受信しなかった 4 サブコードデータ maz@iij.ad.jp 216
コード 5 状態遷移エラー 予期せぬイベントが発生 5 サブコードデータ maz@iij.ad.jp 217
コード 6 Cease その他のエラーを検出 6 サブコードデータ サブコードエラー内容データに含まれる値 1. 最大受信経路数に到達 <AFI(2), SAFI(1), prefix 上限値 (4)> 2. Administrative Shutdown 3. 設定削除 4. Administrative Reset 5. 接続拒否 6. その他の設定変更 7. 接続競合の解決 8. リソース不足 maz@iij.ad.jp 218
BGP パス属性値コードタイプ 1 ORIGIN 周知必須 2 AS_PATH 周知必須 3 NEXT_HOP 周知必須 4 MULTI_EXIT_DISC オプション非通知 5 LOCAL_PREF 周知任意 6 ATOMIC_AGGREGATE 周知任意 7 AGGREGATOR オプション通知 8 COMMUNITIES オプション通知 経路の生成情報経路が通過したASの情報経路の宛先 IPアドレス複数出口から経路選定する際の優先度経路の優先度経路が途中で集約された情報経路集約を行ったルータ処理を行うための情報 maz@iij.ad.jp 219
BGP パス属性値コードタイプ続き 9 ORIGINATOR オプション非通知 10 CLUSTER_LIST オプション非通知 14 MP_REACH_NLRI オプション非通知 15 MP_UNREACH_NLRI オプション非通知 クラスタ内での経路生成ルータ経路を反射したクラスタIDのリストマルチプロトコルの到達可能経路マルチプロトコルの到達不可能経路 maz@iij.ad.jp 220