■3日目の復習
□IS-ISとOSPFの相違点
@エリアの種類
OSPFは多数
IS-ISは一つ
Aエリアの境界
OSPFはルータ
IS-ISはリンク上
Bメトリック
OSPFはbandwidth値で変化
IS-ISはデフォルト値(=10) … 変更可
C
リンクステートを伝える方法、さらにそのパケットもしくはデータユニットの構造
IS-IS LSP ← LSP全体ににシーケンス番号・ライフタイムがつく
+----------+
| TLV |
+----------+
| TLV |
+----------+
| TLV |
+----------+
| TLV |
+----------+
OSPF LSU
+----------+
| LSA | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+
| LSA | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+
| LSA | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+
| LSA | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+
□IS-IS
@レベル1ルートを確認するコマンド
show isis route
Aレベル2ルートを確認するコマンド
show clns route
□OSPFシュミレーション
.1 10.0.0.0/30 .2 .1 172.16.0.0/30 .2 | loop0
R1 s0 ----------------- s0 R2 s1 ----------------- s0 R3 ----+
area 1 area 0 | area 2
|
問
OSPFを動作しているルータが3台ある。
トポロジ条件を満たすように設定せよ。
ただしR3は設定済みとする。
さらに、エリア1には外部自律システムの情報をそのまま流さないものとする。
解1
R1(config)#router ospf 1
R1(config-router)#network 10.0.0.0 0.0.0.3 area 1
R1(config-router)#area 1 stub
R2(config)#router ospf 1
R2(config-router)#network 172.16.0.0 0.0.0.3 area 0
R2(config-router)#network 10.0.0.0 0.0.0.3 area 1
R2(config-router)#area 1 stub
※ area 1に集約LSA(Type3LSA)を伝えないトータリースタブエリア
として構成するときには、
R2(config-router)#area 1 stub no-summary
とする。
本日はここから
■ポリシーベースルーティング … PBR
□PBRでのroute-map動作
・denyに一致したパケットは、廃棄ではなく、通常ルートを利用する。
・破棄したいときには、denyではなく、null0インターフェースへ送出する。
・送出インターフェースではなく、受信インターフェースに適用する。
□setコマンド
Host A-+ s0 ----------------- s0 |
+--R1 R2 ----+
| s1 ----------------- s1 | 10.0.0.0/8
PBR … 送信元がAならばs0から出力する
R1のルーティングテーブル
@ o 10.0.0.0/8 … 明示的なルートがある
A s 0.0.0.0/0 s1 … 明示的なルートがなくデフォルトルートが存在
@set interface s0
Aset default interface s0
■ロードバランスPBR
□
■BGP
□特徴
・TCP
・差分のみ送信
・AS間を接続する。
・ルーティング情報は「ネットワーク情報」に「アトリビュート」を付与してアドバタイズ。
IGPはネットワークに到達するまでのコストをアドバタイズ
・BGPはネイバーテーブル・BGPテーブル・フォワーディングテーブルを扱う。
・扱うメッセージは、OPEN・KEEPALIVVE・UPDATE・NOTIFICATION の4つ。
□ネイバー
・ピア もしくは ネイバー … TCPコネクションを形成する二つのルータ
ネイバーは明示的に設定するする。
・EBGPネイバー … ネイバーを形成するルータ・お互いが異なるASに属する
config)#router bgp
config-router)#neighbor remote-as AS
・IBGPネイバー … ネイバーを形成するルータ・お互いが同じASに属する
config)#router bgp
config-router)#neighbor remote-as AS
.1 10.0.0.0/30 .2 .1 172.16.0.0/30 .2
R1 s0 ----------------- s0 R2 s1 ----------------- s0 R3 ----
RIP RIP RIP
C 10.0.0.0
R 172.16.0.0
※ IBGPネイバーは直接接続している必要はない。例) R1とR3
※ IBGPネイバーを形成する前にIGPで通信できている必要がある。
□コマンド
BGPの有効化
config)#router bgp
ネイバー指定
config-router)#neighbor { | peer-group-name } remote-as
アドバタイズするネットワークの指定
config-router)#network mask
AS 65001 AS 65002
R2 ---------------------------------------------------------- R3
ルーティングテーブル BGPテーブル
R 10.1.0.0/16 network 10.1.0.0 mask 255.255.0.0 10.1.0.0
R 10.2.0.0/16
R 172.16.0.0/16
R 192.168.0.0/16 network 192.168.0.0 mask 255.255.0.0 192.168.0.0
シャットダウン
config-router)#neighbor shutdown … 無効
config-router)#no neighbor shutdown … 再度有効
□ネイバーセッション遷移
idle → connect → open sent → open confirm → established
↑
3 way-hand-shake
SYN-ACK
□自動集約・アドバタイズ
(1)auto-summaryコマンド(デフォルトではno auto-summary)
AS 65001 AS 65002
R2 ---------------------------------------------------- R3
ルーティングテーブル BGPテーブル
R 10.1.0.0/16 10.0.0.0/8
R 10.2.0.0/16
config-router)#auto-summary
config-router)#network 10.0.0.0
(2)ip routeコマンド
ルーティングテーブル BGPテーブル
R 10.1.0.0/16 10.0.0.0/8
R 10.2.0.0/16
R 10.3.0.0/16
R 10.4.0.0/16
S 10.0.0.0/8
config-router)#network 10.0.0.0
configr)#ip route 10.0.0.0 255.0.0.0 null 0
(3)aggregate-addressコマンド
config-router)#aggregate-address summary-only
□IBGPネイバー
R1とR3をネイバーとして設定したい。間に複数経路がある場合、ループバックアドレスを
neighborコマンドで指定すると、常に接続性が確保される。
config-router)#neighbor remote-as
↑
ここをloopbackアドレスにする。
異なる経路でBGPセッションを継続したい。以前と異なる送信元アドレスではネイバー関係が破棄されてしまう。
対処するには、送信元アドレスをループバックアドレスにすればよい。
config-router)#neighbor update-souce
↑
ここをloopbackアドレスにする。
□EBGPネイバー
EBGPネイバーでLoopbackアドレスを利用するときには、TTLを変更すること。
□ネクストホップの書換え
BGP UPDATEメッセージ内のNEXT_HOPアトリビュートは次のASの入り口のアドレスが格納されている。
EBGPからIBGPにネクストホップが伝わるときにはBGP UPDATEメッセージ内のNEXT_HOPアトリビュートが
書き換えられる。IBGP内では書換えは起こらない。
IBGPでこのアドレスを持つルータと直接接続していないルータはこのメッセージを受け取っても、
NEXT_HOPのアドレスを持つルータに到達できない。この場合、NEXT_HOPアトリビュートのアドレスを
書き換えるとよい。
config-router)#neighbor next-hop-self
↑
ここをloopbackアドレスにするとIGPでこのループバックアドレスでの
ルートを明示的に通知する必要がある。
受け取るルータとこのコマンドを設定したルータが直接接続していれば、
ルートの通知を明示的に設定する必要はない。
□IBGPスプリットホライズンルール
デフォルトでは、IBGPから学習したルートは他のIBGPネイバーに転送されない。
→ 情報を全IBGPネイバーに伝えるにはフルメッシュトポロジが必要。
□非フルメッシュネットワークでのIBGPルーティング問題
AS65103 → R1 ----------------- R2 ----------------- R3 → AS65101
10.0.0.0 OSPF OSPF OSPF
BGP BGP
@ ネットワーク10.0.0.0はEBGPセッションを通じてR1にアドバタイズされる
A R1はIBGPセッションでR3にアドバタイズする。
B R2はBGPを運用していないため、ネットワーク10.0.0.0を学習しない。
→ ブラックホール
→ R1とR3を直接接続する、
もしくは
→ IGPでの再配信。
□BGP同期
適合するルートがIGPから学習されるまで
@ IBGPが学習したルートを使用したり
A 外部ネイバーにアドバタイズしない
IBGPとIGPの情報が一致するまで他のASに情報を転送しない、というルールがある。
→ 情報の一貫性 → ブラックホールの回避
フルメッシュや全ルータがBGPを運用しているときには、この同期を無効にしたい。
→ IGPでの学習を待ちたくない。
config-router)#no syncronization
同期を無効にした場合の解決方法
ルートリフレクタ … BGPルートリフレクタが他のASからアップデートを受け取ると全てのBGPピアにアップデートを送る
ASコンフィデーション
□ピアグループ
・ポリシーやパラメータのテンプレレート
・同じポリシーを適用する多数のネイバーが存在する場合に有効
□ORIGINアトリビュート
IGP ------------+--- RIP
AS内で使用 +--- OSPF
+--- EIGRP
+--- IS-IS
EGP ------------+--- EGP
AS間で使用 +--- BGP
□ルート選択の決定プロセス
@ weight値が最大のルートが選択
weight値とは、どのインターフェースを使うかの優先度
A local-preference値が最大のルートが選択
local-preference値とは、ASからの出口のどのルータを使うかの優先度
(複数の出口・経路があることが前提)
B ローカルルータが発生元であるルートが優先
next-hop=0.0.0.0
C AS_PATHが最短のルートが選択
通過したASのリストが最小
D ORIGINコードが最小のルートが選択
IGP < EGP < incomplete
E MED値が最小のルートが選択
MED値とは転送先ASでどの入口(ルータ)を利用するかの優先度
(複数の入口・経路があることが前提)
F IBGPパスよりもEBGPパスが優先
G 最も近いIGPネイバーが通るパスを選択
H EBGPパスとして最も古いルートを選択
I ネイバーのBGPルータIDが最小であるパスを選択
□BGPセッションの解除
BGPはネイバーより学習したルートを失わない
→ 消去するには明示的消去の必要がある。