■3日目の復習

□IS-ISとOSPFの相違点

①エリアの種類
	OSPFは多数
	IS-ISは一つ

②エリアの境界
	OSPFはルータ
	IS-ISはリンク上

③メトリック
	OSPFはbandwidth値で変化
	IS-ISはデフォルト値(=10) … 変更可


④
リンクステートを伝える方法、さらにそのパケットもしくはデータユニットの構造


IS-IS LSP ← LSP全体ににシーケンス番号・ライフタイムがつく
+----------+
|  TLV   |
+----------+ 
|  TLV   |
+----------+
|  TLV   |
+----------+ 
|  TLV   |
+----------+

OSPF LSU
+----------+
|  LSA   | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+ 
|  LSA   | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+
|  LSA   | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+ 
|  LSA   | ← LSA1つ毎にシーケンス番号・エージタイムがある
+----------+


□IS-IS
①レベル1ルートを確認するコマンド
show isis route 

②レベル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)を伝えない<strong>トータリースタブエリア</strong>
として構成するときには、
R2(config-router)#area 1 stub no-summary
とする。



本日はここから

■ポリシーベースルーティング … PBR

□PBRでのroute-map動作
・denyに一致したパケットは、<strong>廃棄</strong>ではなく、<strong>通常ルート</strong>を利用する。
・破棄したいときには、<strong>deny</strong>ではなく、<strong>null0</strong>インターフェースへ送出する。
・送出インターフェースではなく、受信インターフェースに適用する。


□setコマンド

   Host A-+    s0 ----------------- s0        |
            +--R1                         R2 ----+
      |   s1 ----------------- s1        | 10.0.0.0/8

	PBR … 送信元がAならばs0から出力する


      R1のルーティングテーブル
	① o  10.0.0.0/8   … 明示的なルートがある
	② s  0.0.0.0/0  s1 … 明示的なルートがなくデフォルトルートが存在


	①set interface s0

	②set default interface s0



■ロードバランスPBR

□



■BGP

□特徴
・TCP

・差分のみ送信

・AS間を接続する。

・ルーティング情報は「ネットワーク情報」に「アトリビュート」を付与してアドバタイズ。
	IGPはネットワークに到達するまでのコストをアドバタイズ

・BGPはネイバーテーブル・BGPテーブル・フォワーディングテーブルを扱う。

・扱うメッセージは、OPEN・KEEPALIVVE・UPDATE・NOTIFICATION の4つ。


□ネイバー

・ピア もしくは ネイバー … TCPコネクションを形成する二つのルータ
	ネイバーは明示的に設定するする。

・EBGPネイバー … ネイバーを形成するルータ・お互いが異なるASに属する
	config)#router bgp <as-num1>
	config-router)#neighbor <ip_addr> remote-as AS<num_2>

・IBGPネイバー … ネイバーを形成するルータ・お互いが同じASに属する
	config)#router bgp <as-num1>
	config-router)#neighbor <ip_addr> remote-as AS<num_1>


    .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 <as-num>


ネイバー指定
	config-router)#neighbor {<remote-ip-addr> | peer-group-name } remote-as <remote-as-num>


アドバタイズするネットワークの指定
	config-router)#network <ip-addr> mask <netmask>

               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 <ip-addr> shutdown   … 無効

	config-router)#no neighbor <ip-addr> 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 <ip-addr> <mask> summary-only


□IBGPネイバー

 R1とR3をネイバーとして設定したい。間に複数経路がある場合、ループバックアドレスを
neighborコマンドで指定すると、常に接続性が確保される。

	config-router)#neighbor <ip-addr> remote-as <remote-as-num>
                  ↑
                ここをloopbackアドレスにする。

 異なる経路でBGPセッションを継続したい。以前と異なる送信元アドレスではネイバー関係が破棄されてしまう。
対処するには、送信元アドレスをループバックアドレスにすればよい。
 
	config-router)#neighbor <ip-addr> update-souce <intface-type> <intface-num>
                  ↑
                ここを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 <ip-addr> 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にアドバタイズされる
 ② R1はIBGPセッションでR3にアドバタイズする。
 ③ R2はBGPを運用していないため、ネットワーク10.0.0.0を学習しない。
	 → ブラックホール

 → R1とR3を直接接続する、
もしくは
 → IGPでの再配信。


□BGP同期

 適合するルートがIGPから学習されるまで
	① IBGPが学習したルートを使用したり
	② 外部ネイバーにアドバタイズしない

 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値とは、どのインターフェースを使うかの優先度

② local-preference値が最大のルートが選択
	local-preference値とは、ASからの出口のどのルータを使うかの優先度
	(複数の出口・経路があることが前提)

③ ローカルルータが発生元であるルートが優先
	next-hop=0.0.0.0

④ AS_PATHが最短のルートが選択
	通過したASのリストが最小

⑤ ORIGINコードが最小のルートが選択
	IGP < EGP < incomplete

⑥ MED値が最小のルートが選択
	MED値とは転送先ASでどの入口(ルータ)を利用するかの優先度	
	(複数の入口・経路があることが前提)

⑦ IBGPパスよりもEBGPパスが優先


⑧ 最も近いIGPネイバーが通るパスを選択


⑨ EBGPパスとして最も古いルートを選択


⑩ ネイバーのBGPルータIDが最小であるパスを選択


□BGPセッションの解除

 BGPはネイバーより学習したルートを失わない
	→ 消去するには明示的消去の必要がある。