ルーティング
スタティック
IPv6スタティックルーティング
IPv6スタティックルーティングコマンド
・IPv6スタティックルーティングのコマンドは基本的にIPv4スタティックルーティングの設定と同じ
・異なる部分は「ip route」ではなく「ipv6 route」コマンドを使う事、宛先の指定にサブネットマスクではなくプレフィックス長を使う事
Router(config)#ipv6 route {宛先} {転送先} [AD値]
{宛先}の指定方法
・ホストルート
ホストルートとは、そのアドレスを持つホストへの経路
宛先アドレスにホストアドレスを指定し、プレフィックスに「/128」を使用する
例:(config)#ipv6 route 2001:DB8:1:1::1/128 2001:DB8:2:2::2
・ネットワークルート
ネットワークルートとは、そのネットワークへの経路
宛先アドレスにネットワークアドレスを指定し、プレフィックスに「/64」などを使用する
例:(config)#ipv6 route 2001:DB8:1:1::/64 2001:DB8:2:2::2
・デフォルトルート
デフォルトルートとは、未知のネットワークにパケットを転送する際に使用する経路
宛先アドレスに「::」(全て0)を指定し、プレフィックスに「/0」を使用する
例:(config)#ipv6 route ::/0 2001:DB8:2:2::2
{転送先}の指定方法
・直接接続スタティックルート
転送先に「出力インターフェース」のみを指定する方法
宛先ネットワークに到達するための出口となる
インターフェースが1つしかないポイントツーポイントのような場合に使用する
インターフェースがダウンしている場合は有効な経路にはならない(ルーティングテーブルに載らない)
例:(config)#ipv6 route 2001:DB8:1:1::/64 FastEthernet0/0
・再帰スタティックルート
転送先に「ネクストホップアドレス」のみを指定する方法
ネクストホップ向けの出力インターフェースはルーティングテーブルをもとに解決する
ネクストホップが解決されない場合は有効な経路にはならない
例:(config)#ipv6 route 2001:DB8:1:1::/64 2001:DB8:2:2::2
・完全指定スタティックルート
転送先に「出力インターフェースとネクストホップアドレス」の両方を指定する方法
出力インターフェースがEthernetのようなマルチアクセスでネクストホップを明示的に指定する必要がある場合に使用する
直接接続スタティックルートと同様に、指定したインターフェースがダウンしている場合、有効な経路にはならない
例:(config)#ipv6 route 2001:DB8:1:1::/64 FastEthernet0/0 2001:DB8:2:2::2
OSPF
OSPF
OSPFの主な特徴
・リンクステート型のルーティングプロトコル
・ダイクストラアルゴリズム(Shortest Path First:SPFアルゴリズムとも呼ばれる)による高速収束
・VLSM(variable length subnet mask)をサポート
・30分に1度 LSDB(Link-State Database:OSPFで使用するデータベース)を同期させる
・ネットワークに変更があったときにLSUが送信される(トリガードアップデート)
・ホップ数に制限がない
・等コストロードバランスをデフォルトでサポート
・マルチベンダー対応
・認証機能をサポート
・エリアという概念による階層設計
エリア
・OSPFでは、番号によって識別されるエリアを単位とするグループに分けて管理を行う
・エリアが1つの場合はシングルエリアと呼ばれ、通常「エリア0」を使用する
・エリアが複数存在する場合はマルチエリアと呼ばれ、「エリア0」に他のエリアを接続する形態となる
・エリア0は「バックボーンエリア」とも呼ばれる
マルチエリア
・マルチエリアOSPFにすることで、他エリアのルーティング情報の集約が可能になる
・集約することによりルーティングテーブルのサイズが小さくなり、ルーティングにおけるオーバーヘッドが減少する
・障害が発生した場合でも、障害発生時のSPF計算はエリアごとに行われるため影響を1つのエリア内だけに留めることができるので、コンバージェンスも早くなる
・大規模なOSPFネットワークではマルチエリアOSPFが利用される
OSPFのルータのタイプ
・内部ルータ:全インターフェースが同一エリア内に収まっているルータ
・バックボーンルータ:エリア0に接続するインターフェースを持っているルータ
・エリアボーダルータ(ABR):インターフェースが複数のエリアにまたがっているルータ
・自律システムボーダルータ(ASBR):外部ASと接続されたインターフェースを持っているルータ
*マルチエリアOSPFのルールとして、ABRはエリア0に接続している必要がある
OSPFステート
OSPFを起動したルータが隣接関係を確立して、コンバージェンスするまでのステートの流れは以下になる
「DOWN→INIT→2WAY→EXSTART→EXCHANGE→LOADING→FULL」
DOWN・・・Helloを受け取っていない最初の状態
INIT・・・Helloパケットを受信し、相手を認識
2WAY・・・お互いに認識した状態
EXSTART・・・DR、BDR決定(選出)済み
EXCHANGE・・・データベースの交換
LOADING・・・詳細情報確認
FULL・・・コンバージェンス(最適経路の計算が完了した状態)
OSPFでよく使われる用語
・ネイバー(隣接)
OSPFパケットを交換する相手(隣接しているOSPFルータ)
・SPFアルゴリズム(Shortest Path First)
LSDBを元にルーティングに使用する最短経路を導きだす計算
ダイクストラアルゴリズムとも呼ばれる
・LSDB(Link Status Data Base)
LSAをまとめた情報
LSAを受け取り更新する
・LSA(Link State Advertisement)
自身のルータIDやリンク等の情報
LSUで送信される
・LSU(Link State Update)
LSAをネイバーに伝える際に使用するOSPFパケット
・DR(Designated Router)
マルチアクセスネットワーク環境で選出される代表ルータ
全OSPFルータと隣接環境を構築する
マルチキャスト 224.0.0.5(全OSPFルータ宛)にLSUを送信する
・BDR(Backup DR)
マルチアクセスネットワーク環境で選出されるDRのバックアップルータ
全OSPFルータと隣接関係を構築する
DRが故障した時にDRに代わる
・DROTHER
DR、BDR以外のルータ
DR、BDRと隣接関係を構築する
マルチキャスト 224.0.0.6(DR、BDR宛)にLSUを送信する
OSPFの経路学習プロセス
・OSPFルータはHelloパケットを送信してネイバーを検出し、ネイバーテーブルを作成する
・検出したネイバーに、マルチキャストでLSU(LSUを含むパケット)を送信する
・LSUを受信したルータは、自分のネットワークに関する詳細な情報を保存したLSDBを作成する(同じエリア内のルータは、同一のLSDBを保持)
・続いて、ルータはLSDBを元に、ダイクストラアルゴリズム(SPFアルゴリズム)により宛先ネットワークへの経路の計算を行い、最短経路を選択する
・最短経路を選択する際のメトリックにはコスト(10の8乗÷帯域幅で表される値)を使用。コストの値が最小の経路がルーティングテーブルに登録される
・コンバージェンス後は、ネイバーにHelloパケットを定期的に送信し、リンクがアクティブであること確認し続ける(キープアライブ)
・ネットワークに変更があった場合はトリガーアップデートを使用して、変更情報だけをフラッディングする(差分アップデート)
・各ルータは30分ごとにLSAを送信して情報の維持を行う
ブロードキャストマルチアクセスとHello/Dead間隔
・タイプを設定するコマンド:ip ospf network broadcast
・DR/BDR選出:する
・Hello:10秒
・Dead:40秒
・1つのインターフェースで複数のルータと接続するネットワークのタイプ
・Ethernetインターフェースで接続した際はコマンド無しで自動的に選択される
ポイントツーポイントとHello/Dead間隔
・タイプを設定するコマンド:ip ospf network point-to-point
・DR/BDR選出:しない
・Hello:10秒
・Dead:40秒
・1つのインターフェースで1台のルータと接続するネットワークのタイプ
・Serialインターフェースで接続した際はコマンド無しで自動的に選択される
主なLSAタイプ
・ルータリンク
LSAを生成するルータ:全ルータ
LSAに含まれる主な情報:生成したルータの情報
・ネットワークリンク
LSAを生成するルータ:DR
LSAに含まれる主な情報:DRの情報
・集約リンク
LSAを生成するルータ:ABR
LSAに含まれる主な情報:他のエリアへの経路情報
ルータIDの選出(優先順位)
1.router-idコマンドで明示的に指定したID
Router(config)#router ospf 10
Router(config-router)#router-id 1.1.1.1
2.起動しているループバックインターフェースの中で最大のIPアドレス
(config)#interface loopback 0
(config-if)#ip address 192.168.1.1 255.255.255.0
3.起動しているインターフェースの中で最大のIPアドレス
(config)#interface FastEthernet 0/0
(config-if)#ip address 192.168.5.1 255.255.255.0
(config)#interface FastEthernet 1/0
(config-if)#ip address 192.168.2.1 255.255.255.0
上記全てを設定している場合ルータIDは「1.1.1.1」になる(router-idコマンドが最も優先されるため)
router-idを設定していない場合ルータIDは「192.168.1.1」になる(ループバックインターフェースが優先されるため)
ループバックも設定していない場合ルータIDは「192.168.5.1」になる(192.168.5.1の方が大きいため)
DR/BDRの選出(優先順位)
1.プライオリティ
最大値のルータがDRに選出される
次に高い値を持つルータがBDRに選出される
(config-if)#ip ospf priority {プライオリティ値}
デフォルト値:1
指定可能な値:0~255
*「0」を指定したルータはDR/BDRに選出されない
2.ルータID
プライオリティが同じ場合、ルータIDの最も高いルータがDRに選出される
次に高いルータIDを持つルータがBDRに選出される
(config-router)#router-id {ルータID}
デフォルト:インターフェースに設定しているIPv4アドレスから選出
混同しやすいルーティングプロトコル用語
・EIGRPのAS番号
自律システム番号
1~65535から任意の値を指定
経路情報を共有したいルータと一致させる必要有り
・OSPFのプロセスID
OSPFルーティングプロセスを識別する番号
1~65535から任意の値を指定
他のルータと一致させる必要無し
・OSPFのルータID
OSPFルータを一意に識別する番号
IPアドレスと同じく32ビットの値を指定可能
デフォルトでは、インターフェースのIPアドレスがルータIDとして利用される
他のルータと一致させてはいけない
・OSPFのエリアID
エリアを識別する番号
シングルエリアOSPFでは「0」を使用する
OSPFネイバー関係を確立するために一致させる必要がある情報
・Hello/Deadの間隔
・エリアID
・認証パスワード
・サブネットマスク
・スタブエリアフラグ
・MTUサイズ
OSPF Helloパケット
・ネイバーの検出と維持のために使用される
・ネイバー関係を維持するために定期的に送信する
・DR/BDRの選出のために使用される
・リンクステートデータベースを作成・管理するために使用する
OSPFの有効化(ルータコンフィグレーションモード)
(config)#router ospf {プロセスID}
(config-router)#network {アドレス} {ワイルドカードマスク} area {エリアID}
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
アドレス:OSPFを有効にしたいインターフェースの「ネットワークアドレス」または「IPアドレス」を指定
ワイルドカードマスク:アドレスを読み取るためのワイルドカードマスクを指定(サブネットマスクを入力した場合、自動的にワイルドカードマスクに変換して処理する)
エリアID:所属させるエリアIDを指定(シングルエリアのOSPFの場合は0を指定)
OSPFの有効化(インターフェースコンフィグレーションモード)
(config)#interface {インターフェース}
(config-if)#ip ospf {プロセスID} area {エリアID}
インターフェース:OSPFを有効にしたいインターフェースを指定
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
エリアID:所属させるエリアIDを指定(シングルエリアのOSPFの場合は0を指定)
OSPFのネットワークタイプ設定
(config)#interface {インターフェース}
(config-if)#ip ospf network {broadcast | point-to-point}
インターフェース:設定したいインターフェースを指定
broadcast:ネットワークタイプを「ブロードキャストマルチアクセス」にする
point-to-point:ネットワークタイプを「ポイントツーポイント」にする
OSPFのプライオリティの設定
(config)#interface {インターフェース}
(config-if)#ip ospf priority {プライオリティ}
インターフェース:設定したいインターフェースを指定
プライオリティ:0~255の中から指定(大きい値を持つルータがDRに選出される)
等コストロードバランシングの最大数の設定
(config)#router ospf {プロセスID}
(config-router)#maximum-paths {最大数}
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
最大数:最大でいくつまでの経路を使って等コストロードバランシングを行うかの数を指定
基準帯域幅の設定
(config)#router ospf {プロセスID}
(config-router)#auto-cost reference-bandwidth {基準帯域幅}
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
基準帯域幅(Mbps):1~42944967の中から指定(コスト計算に使われる)
インターフェースの帯域幅の設定
(config)#interface {インターフェース}
(config-if)#bandwidth {帯域幅}
インターフェース:設定したいインターフェースを指定
帯域幅(kbps):1~10000000の中から指定(コスト計算に使われる)
OSPFのコストの設定
(config)#interface {インターフェース}
(config-if)#ip ospf cost {コスト}
インターフェース:設定したいインターフェースを指定
コスト:1~65535の中から指定
OSPFのルータIDの設定
(config)#router ospf {プロセスID}
(config-router)#router-id {ルータID}
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
ルータID:IPv4アドレスの形式で、任意のルータIDを指定
OSPFによるデフォルトルートの広告設定
(config)#router ospf {プロセスID}
(config-router)#default-information originate [always]
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
always:ルーティングテーブルにデフォルトルートが存在しなくても、デフォルトルートを広告する
*「always」オプションを付けない場合は、ルーティングテーブルにデフォルトルートが存在する時のみデフォルトルートを広告する
パッシブインターフェースの設定
(config)#router ospf {プロセスID}
(config-router)#passive-interface {インターフェース | default}
プロセスID:1~65535の中から任意の番号を指定(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
インターフェース:指定したインターフェースでルーティングアップデートとHelloパケットの送信を停止する
default:全インターフェースでルーティングアップデートとHelloパケットの送信を停止する
OSPFの確認コマンド
・show ip ospf
・show ip ospf neighbor
・show ip ospf interface
・show ip ospf interface brief
・show ip ospf database