■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はネイバーより学習したルートを失わない → 消去するには明示的消去の必要がある。