wakamonog6 Routing Tutorial

29
ルーティング チュートリアル チュートリアル ルーティングプロトコル紹介 古河ネットワークソリューション株式会社 神谷 尚秀 1

description

2014/09/29に開催されたwakamonog #6で使った ルーティングチュートリアルの資料です。 静的経路制御・動的経路制御の違い、動的経路制御として OSPF, BGP を簡単に紹介しています。

Transcript of wakamonog6 Routing Tutorial

Page 1: wakamonog6 Routing Tutorial

ルーティング チュートリアル チュートリアル ルーティングプロトコル紹介

古河ネットワークソリューション株式会社 神谷 尚秀

1

Page 2: wakamonog6 Routing Tutorial

自己紹介名前 神谷 尚秀

所属 古河ネットワークソリューション㈱

業務内容 ルータのソフト開発 (3 年目) BGP OSPF

コミュニティ活動 wakamonog committee JANOG committee

2

Page 3: wakamonog6 Routing Tutorial

agenda

経路制御 (routing) とは 静的経路制御 (static routing), 動的経路制御 (dynamic routing) の違い 各種動的経路制御の紹介 OSPF (Open Shortest Path First) BGP (Border Gateway Protocol)

3

Page 4: wakamonog6 Routing Tutorial

経路制御 (routing) とは

何処を経由してパケットを宛先に届けるか

ルータ (RT) はパケットの宛先アドレスを見て次の送り先を判断

4

Page 5: wakamonog6 Routing Tutorial

経路情報宛先 prefix と next hop (NH) の集合 経路情報の種類 静的経路 connected 経路 ルータが直接接続して知っている経路

static 経路 ルータに静的に設定された経路

動的経路 ルーティングプロトコルで動的に学習した経路

5

Page 6: wakamonog6 Routing Tutorial

静的経路制御 (172.16.1.0/24 の経路登録)

6

RT A

RT C RT D RT G

RT E

RT B

10.0.0.1

10.0.0.2

10.0.0.310.0.3.1

10.0.2.1 10.0.2.2172.16.1.0/24

10.0.4.210.0.3.2

10.0.4.1

prefix NHx.x.x.x/x 10.0.5.2

172.16.1.0/24 10.0.0.2x.x.x.x/x 10.0.0.3

prefix NHx.x.x.x/x 10.0.0.1

172.16.1.0/24 10.0.2.2x.x.x.x/x 10.0.0.3

prefix NHx.x.x.x/x 10.0.2.1x.x.x.x/x 10.0.3.2

172.16.1.0/24 10.0.4.2

RT F

10.0.5.2

10.0.5.1

RT A から 172.16.1.0/24 へ packet を送信するため、各 RT に static 経路を登録 ネットワーク構成が変わる度に各 RT に static 経路の登録・更新が必要

Page 7: wakamonog6 Routing Tutorial

動的経路制御 (172.16.1.0/24 の経路登録)

7

RT A

RT C RT D RT G

RT E

RT B

10.0.0.1

10.0.0.2

10.0.0.310.0.3.1

10.0.2.1 10.0.2.2

10.0.4.210.0.3.2

10.0.4.1

RT F

10.0.5.2

10.0.5.1

①: RT G は 172.16.1.0/24 が自分の方にあることを伝える

②: ①の情報 (経路情報) が RT G から RT D に伝わる

③: RT D は経路情報を受けて経路テーブルを作成する

prefix NHx.x.x.x/x 10.0.3.2

172.16.1.0/24 10.0.4.2x.x.x.x/x 10.0.2.1

172.16.1.0/24

各 RT にルーティングプロトコルを設定することで、動的に経路を学習可能 ネットワーク構成が変わる度に、動的に経路を学習

Page 8: wakamonog6 Routing Tutorial

動的経路制御 (172.16.1.0/24 の経路登録)

8

RT A

RT C RT D RT G

RT E

RT B

10.0.0.1

10.0.0.2

10.0.0.310.0.3.1

10.0.2.1 10.0.2.2

10.0.4.210.0.3.2

10.0.4.1

RT F

10.0.5.2

10.0.5.1

④: RT D は172.16.1.0/24 が 自分の方にあることを RT C, E に伝える

⑤: RT C, E は経路情報を受けて経路テーブルを作成する

⑥: RT C, E は172.16.1.0/24 が 自分の方にあることを RT A, F に伝える

⑦: 経路が各 RT に伝わり、経路テーブル構築後、パケットが転送される

172.16.1.0/24

各 RT にルーティングプロトコルを設定することで、動的に経路を学習可能 ネットワーク構成が変わる度に、動的に経路を学習

Page 9: wakamonog6 Routing Tutorial

静的経路制御 (障害発生時の動作)

9

RT A

RT C RT D RT G

RT E

RT B

10.0.0.1

10.0.0.2

10.0.0.310.0.3.1

10.0.2.1 10.0.2.2

10.0.4.210.0.3.2

10.0.4.1

RT F

10.0.5.2

10.0.5.1

②: バックアップ経路に切り替わらない

①: RT C, D 間で回線が切断

prefix NHx.x.x.x/x 10.0.5.2

172.16.1.0/24 10.0.0.2x.x.x.x/x 10.0.0.3

x x x172.16.1.0/24

RT A は RT C, D 間の回線断に気づかないため、packet ロスが発生

Page 10: wakamonog6 Routing Tutorial

動的経路制御 (障害発生時の動作)

10

RT A

RT C RT D RT G

RT E

RT B

10.0.0.1

10.0.0.2

10.0.0.310.0.3.1

10.0.2.1 10.0.2.2

10.0.4.210.0.3.2

10.0.4.1

RT F

10.0.5.2

10.0.5.1

①: RT C, D 間で回線が切断

prefix NHx.x.x.x/x 10.0.0.1

172.16.1.0/24 10.0.0.2172.16.1.0/24 10.0.0.3

x x

②: 自動でバックアップ経路に切り替わる

RT C, D が回線断を各 RT に教え合うことで、RT A は迂回経路を学習できるため、packet ロスは発生しない

172.16.1.0/24

Page 11: wakamonog6 Routing Tutorial

静的経路制御・動的経路制御の違いまとめ

11

経路制御の種類 長所 短所

静的経路制御ルーティングプロトコルの packet が流れない ルータに負荷がかからない

設定管理が困難 動的経路変更が不可能

動的経路制御 設定管理が容易 動的経路変更が可能

ルーティングプロトコルの packet が流れる ルータに負荷がかかる

ISP 等では以下の理由から動的経路制御を行なう必要がある 変化し続けるインターネットへの対応 障害時の動的経路変更が必須

Page 12: wakamonog6 Routing Tutorial

各種動的経路制御の紹介 (OSPF & BGP)

12

Page 13: wakamonog6 Routing Tutorial

インターネットの構成

13

RT RT RT

RTRTRT

RTRT

RT

RTRT

RT

RTRT RT

RT

RTRT

RT

ASIX

Page 14: wakamonog6 Routing Tutorial

EGP と IGPEGP (Exterior Gateway Protocol) AS 間で使用されるルーティングプロトコル Internet 上の目的地に達する前に、自 AS 内のどの出口から出ればいいかを解決

IGP (Interior Gateway Protocol) AS 内部で使用されるルーティングプロトコル EGP で解決される自 AS 内の出口にどうやったら到達するかを解決

14

RT RT RT

RTRTRTRTRT

RT

RTRT RT

RT

EGP で制御IGP で制御

Page 15: wakamonog6 Routing Tutorial

ルーティングプロトコルの種類

OSPF IGP として利用 各 RT がネットワーク構成を把握 必要最小限の経路で動作させる 障害をいち早く通知、迂回

BGP EGP として利用 自 AS 以外の全ての経路を扱う 経路制御の処理を軽くして、膨大な経路数に対応 ポリシに基づいて組織 (AS) 間の経路制御が可能

15

Page 16: wakamonog6 Routing Tutorial

OSPF16

Page 17: wakamonog6 Routing Tutorial

OSPF 概要リンクステートアルゴリズムを使用したルーティングプロトコル 各ルータはリンクステートというメッセージを交換 リンクステートには、ルータが接続しているリンクの状態、そのリンクのネットワークアドレス、コストなどが入っている

リンクステートの情報に基づきリンクステートデータベース (LSDB) を作成、NW 構成を把握 LSDB より、Shortest Path First (SPF) アルゴリズムにより最短パスツリーを作成 最短パスツリーによる経路テーブル作成

各ルータがネットワーク構成を把握しているため、ネットワーク構成が変化した際、素早く経路テーブルを再構築可能 (素早い収束性)

17

Page 18: wakamonog6 Routing Tutorial

リンクステートアルゴリズム

18

RT ART B

RT C

②: LSDB の作成 ③: 自身を root とした 最短パスツリーの作成

prefix next hop

④: 経路テーブルの作成

リンクステートの交換から経路テーブルが出来るまで

①: リンクステート の交換

リンクステート

AB

C

Page 19: wakamonog6 Routing Tutorial

経路テーブルの作成

19

RT A RT C

RT D

10

20 5 5

10

prefix next hop cost◎ 172.16.1.0/24 RT D 20172.16.1.0/24 RT A 45

コストを元に経路テーブルを作成 コストはインターフェースで設定され、packet が送出されるインタフェースを通過する時に加算 コストが最小の経路 (最短パス) を経路テーブルに登録

RT B RT E2010 10 10 10

172.16.1.0/24

Page 20: wakamonog6 Routing Tutorial

障害時の動作

20

RT A RT C

RT D

10

20 5 5

10

prefix next hop cost◎ 172.16.1.0/24 RT D 20172.16.1.0/24 RT A 45

各 RT がネットワーク構成を把握しているため、ネットワーク構成が変化した際、素早く経路テーブルを再構築可能

RT B RT E2010 10 10 10

172.16.1.0/24xx

Page 21: wakamonog6 Routing Tutorial

BGP21

Page 22: wakamonog6 Routing Tutorial

BGP 概要パスベクタ型プロトコル Prefix とパス属性を合わせた BGP 経路情報を交換 パス属性には、経路がどのような AS を経由しているか、経路の優先度がいくらか等の情報が入っている

Prefix とパス属性を用いて、AS 間の経路制御を自 AS のポリシーに従って行なう ポリシーは、AS 間のトラフィックの制御方針などを示す

BGP ピア先の AS 番号によって組織内の BGP ピア (iBGP) か、組織外の BGP ピア (eBGP) かを識別し、其々異なった動作をする 簡易な経路制御の処理により、スケーラビリティがある

22

Page 23: wakamonog6 Routing Tutorial

BGP テーブル

BGP の基本動作

23

BGP スピーカ A

BGP スピーカ A

BGP スピーカ A

BGP スピーカ A

BGP スピーカ B

BGP スピーカ B

BGP スピーカ B

BGP スピーカ B

BGP スピーカ C

TCP セッション確立

BGP ピア確立

経路情報のやり取り

Prefix + パス属性

経路交換終了

BGP ピア維持 ベストパスを広告

経路テーブル

BGP 制御の流れ

BGP を設定した RT (BGP スピーカ) 間の経路交換の流れピア先からの BGP 経路情報を格納①

ピア A 以外からの BGP 経路情報も含めてベストパス選択を実行

Page 24: wakamonog6 Routing Tutorial

BGP ピアの種類

24

RT RT RT

RTRTRTRTRT

RT

RTRT RT

RT

eBGPiBGP

AS 2 AS 1

AS 4 AS 3

eBGP 組織外 (他 AS) に属する BGP スピーカ間の BGP ピア 他 AS の BGP スピーカと BGP 経路情報をやり取り

iBGP 組織内 (自 AS) に属する BGP スピーカ間の BGP ピア 自 AS の BGP スピーカと BGP 経路情報をやり取り

IGP

Page 25: wakamonog6 Routing Tutorial

AS 間の経路制御AS1 を中心に考えた時の AS 間の経路制御 AS3 へのトラフィックは AS2 or AS5 どちらに流すか AS8 へのトラフィックは AS6 or AS7 どちらに流すか AS9 からのトラフィックはどちらの回線から流して欲しいか

25

AS2 AS5

AS3 AS4

AS1 AS8AS7

AS6AS9

AS_PATH 属性で制御

LOCAL_PREF 属性!で制御

MED 属性!で制御

Page 26: wakamonog6 Routing Tutorial

パス属性を用いた経路制御 (AS_PATH 属性)AS_PATH 属性 経路情報が通過してきた AS を示す AS_PATH のリストが短い経路ほど優先度が高い

26

AS3 172.16.0.0/16

AS4

AS5AS2

AS_PATH = AS3 AS2

AS_PATH = AS3

prefix AS_PATH172.16.0.0/24 AS5 AS4 AS3

◎ 172.16.0.0/24 AS2 AS3

AS1

AS_PATH = AS3 AS_PATH = AS3 AS4

AS_PATH = AS5 AS4 AS3

: BGP を使った経路情報の流れ : AS1 から AS3 へのトラフィック

Page 27: wakamonog6 Routing Tutorial

パス属性を用いた経路制御(LOCAL_PREF 属性)LOCAL_PREF (local preference) 属性 自 AS から出て行くトラヒック制御に利用 値が大きい経路ほど優先度が高い

27

prefix AS_PATH LOCAL_PREF172.16.0.0/24 AS6 AS8 90

◎ 172.16.0.0/24 AS7 AS8 100

AS1

AS6

AS7

AS8 172.16.0.0/16

LOCAL_PREF = 90

LOCAL_PREF = 100

AS1 の RT A, B で AS6 及び AS7 から流れてきた経路に LOCAL_PREF 属性を設定

RT A

RT B

: BGP を使った経路情報の流れ : AS1 から AS8 へのトラフィック

Page 28: wakamonog6 Routing Tutorial

パス属性を用いた経路制御 (MED 属性)MULTI_EXIT_DISCRIMINATOR (MED) 属性 ある AS 間で複数の接続点があるときの経路制御に利用 値が小さい経路ほど優先度が高い

28

AS1 172.16.0.0/16

AS1 の出口で AS9 向けに経路を広告するときに MED を設定

prefix next hop MED172.16.0.0/24 RT A 200

◎ 172.16.0.0/24 RT B 100

AS9

BGP での経路情報 MED 100

RT C

RT D

RT A

RT B

BGP での経路情報 MED 200

: BGP を使った経路情報の流れ : AS9 から AS1 へのトラフィック

Page 29: wakamonog6 Routing Tutorial

まとめ経路制御には静的な経路制御・動的な経路制御がある

ISP などではネットワークの変化に対応するため動的経路制御が必要である

動的経路制御には AS 内の経路制御を行なう IGP と、AS 間の経路制御を行なう EGP がある

OSPF はネットワークの変化に迅速に対応出来るため、IGP としてよく用いられている

BGP はパス属性を利用することで、ポリシーに従って経路制御を行なうことが出来る

29