無料ブログはココログ

【OSPF】 11. 続・エリア分割時の注意

11. 続・エリア分割時の注意

エリアを分割する主な動機は経路数を減らすことでしょう。 500拠点とか、1000拠点といった規模のネットワークになると、 さすがにエリアで区切って経路を集約しないとルータがもちません。

このとき注意したいのは、エリア境界で集約する経路のコストは「そのエリアの中の経路の最大コスト」になることです。

たとえば、次のようにエリア分割したとします。

この場合、バックボーンエリアのルータはサブエリアの集約経路(10.20.0.0/16)を二つ学習します。 一つはABR1が作成した10.20.0.0/16で、もう一つはABR2が作成した10.20.0.0/16です。 ABR1から見て、サブエリアの中で最も遠い経路はコスト60ですので、集約経路もコスト60でバックボーンに広告されます。 同様にABR2が広告する集約経路もコスト60です。

バックボーンエリアの中にいるルータは、集約経路のコストに、ABRに到達するコストを加えて評価します。 なので、サブエリア宛てのトラフィックは最寄りのABRに転送され、 詳細なルーティングはサブエリアの中で行われる、ということになります。 バックボーンルータの位置によって、どのABRを使うか決まる、と言って良いでしょう。

ここで注意したいのは、サブエリアの中で障害が発生すると、 バックボーンに広告される集約経路もコストを新しくして作り直される、ということです。 たとえば次の図では、サブエリア内の障害によってABRが広告する集約経路のコスト値が変化しています。

このような状況になると、最寄りのABRよりも、遠いABRの方がコスト的に小さくなることもあり得ます。 重要なのは、「サブエリア内の1カ所の障害によって、サブエリア内の全拠点の通信パターンが変化する」 ということです。 上の図では、ABR2→ABR1向きのトラフィックが急増するわけです。

ABR間が広帯域なLANで繋がっているときは、大した問題にはならないかもしれませんが、 もしABR間が東京-大阪間のWANだったら・・・ABR間のリンクは輻輳してしまうかもしれません。

問題を解決するには

ABRにloopbackインタフェースを作成してサブエリアに収容します。 とてつもなく大きなコストを割り当てれば、ABRがバックボーンに広告するコスト値は常に固定ということになります。

ちょっとした工夫ですが、エリア分割して経路を集約するときには大切な事です。

【OSPF】 10. エリア分割時の注意

10. エリア分割時の注意

OSPFはエリアを分割することで大規模ネットワークにも対応しています。 が、正直エリア分割はギリギリまでやらない方がいいと考えています。 単に組織の境界に合わせてエリア分割する、とかいうのは止めた方がいいと思います。 最近のルータは、1エリア100台程度なら余裕でいけると思います。

バックボーンが脆弱にならないように配慮する

OSPFバックボーンは必ず1つだけ存在しなければなりません。 そして、万が一障害が発生しても、バックボーンエリアが分断されるような事態になってはいけません。 そんな事が起こったら、それは設計ミスです。

たとえば、次のようなネットワークでエリア分割をするとしたら、どういう分割方法がよいでしょうか?

どちらでも動くのですが、対障害性という観点では上のエリア分割が優れています。 下のエリア分割で、頂点のルータ間のリンクがダウンすると、エリアが分断してしまいます。 たった一カ所の障害でバックボーンエリアが分断してしまうのはよろしくありません。

エリアの境界が2カ所ある場合どっちを優先するか配慮する

エリア内に境界ルータが2台いる場合、それぞれが出すサマリーLSAのコストがいくつになるのか、考えなければいけません。

上の図には2台の境界ルータがいます。それらはサマリーLSA①とサマリーLSA②を別々に作成します。 これらは自動で生成される場合と、手動で設定する場合があります。 自動で生成する場合には、エリア境界ルータからみたコストが使われます。 手動で生成する場合、サマライズする経路のうち、最も大きいコストのものを使用します。 ただし、設定次第では固定値を割り当てることもできます(area rangeコマンドを使います)。 ①と②は、固定メトリックを割り当てない限り、異なったメトリック値で生成されると考えた方がよいでしょう。

サマリーLSA①と②は、バックボーンエリアに流れていきます。 バックボーンエリアのルータはサマリーLSAを2個受信しますので、コストの小さい方を優先して使います。 ただし、生成した境界ルータまでのコストも加えて評価しますので、 トポロジを考慮しないとどっちを使うか分かりません。

サマリーLSA①と②は、バックボーンエリアの別の境界ルータに到達します。 それがそのまま転送されるわけではなく、新たに作り直されて転送されます。 それがサマリーLSA③と④です。

以上の事から、他エリアへの通信を制御するのは非常に難しいコスト制御が必要だ、ということを認識するべきです。 細かい制御はほぼ不可能に近く、大雑把にこっち側を優先的に使う、というような制御になります。

エリア境界で経路をサマライズする場合、ループバックアドレスは除外するように配慮する

MPLSを使う場合が特にそうなのですが、ルータのループバックアドレスが見えていないと困る時があります。 エリア境界でループバックアドレスを含めてサマライズされると困ってしまいます。 アドレスを設計する時点で、ループバック用のアドレスブロックを別途確保しておくとよいでしょう。

SPF Delayの遅延に注意

OSPFルータはLSAに変化を検出しても即座に経路を計算するわけではなく、 一定期間待った後で計算します。 障害によるトポロジ変化は一つのLSAだけでなく、2個、3個のLSAに影響がでるのが普通です。 最初のLSAを受信した時点で計算すると、意味のない計算になってしまう可能性が高いため、 そのような待機時間を設けているわけです。 LSAのフラッドは十分に高速なことを考えると、一定期間後に、ほぼ同時に全ルータが計算を開始する事になります。

ただしこれは一つのエリアに限った話しです。エリア境界ルータは、エリア内経路を計算するとサマリーLSAも変更します。 サマリーLSAを広告した後、さらにSPF Delay待たないと別のエリアには伝搬しないことになります。

エリアを分割すると、このようにSPF Delayが積み重なっていきますので、経路の伝搬もそれに応じて遅くなっていきます。

【OSPF】 9. OSPFとHSRP

9. OSPFとHSRP

OSPFとHSRPは基本的に独立したものですが、まったく無関係というわけではありません。 行きのトラフィックはHSRPで救えても、 戻ってくるトラフィックはOSPFでルーティングされてくるわけですから、 どのくらいの時間で通信が復旧するかの見積もりにはOSPFの知識が欠かせません。

HSRPを組んだセグメントがブロードキャスト型になっていると、 指名ルータにリンク障害が発生するとRouter Dead Intervalだけ通信が途絶えてしまいます。 ネットワークのタイプをp2mpに変更する、といった工夫が必要です。

またコスト設計にも注意が必要です。スタンバイルータが直接WANへ投げるようなコスト設計が必要です。 たとえば、次のようなコスト設計は失敗です。

上記のコスト設計では、R6から対向側LAN(192.168.1.0/24)に到達するのに、現用回線を通るとコスト50(30+10+10)、 バックアップ回線を通ると60(30+30)となり、常に現用回線を通るようになってます。 これでは、せっかくHSRPを使ってアクティブ・スタンバイ切り替えを高速にしても、 ルーティングが落ち着くまで迂回してくれません。

次のように設計すれば、HSRPの動作と、ルーティング動作が連携してよい結果が得られます。

つづく。

【OSPF】 8. OSPFの豆知識

8. OSPFの豆知識

CiscoのHello interval

CiscoのHello intervalはネットワークタイプに応じて自動でデフォルト値が変わります。 broadcastは10秒、point-to-pointは10秒、point-to-multipointは30秒です。 さらにRouter DeadはHello Intervalが変わると自動的に変わります。 Router DeadはHello Intervalの4倍です。

MTUとOSPFの関係

MTU長が一致していないとネイバーのステートがEXCHANGEから先に進めなくなります。 トンネルインタフェースや、L3SW系でMTUが1500よりも長くなっているときには注意が必要です。 Ciscoは設定でMTU不一致を無視することもできます(IOSに依存します)。 インタフェース設定で、ip ospf mtu-ignoreコマンドを入れておけばOKです。

OSPFでLSAを消去するには

RIPの場合メトリック無限大(16)のRIPを送信して経路を取り消します(poison)。 OSPFの場合にはLS AgeフィールドにMaxAgeの値をセットして再フラッドします。

ルータID

ルータIDは32ビットの正数値ですが、IPv4アドレスと同じ形式で設定することが多いです。 Ciscoはループバックアドレスを設定していると、そのアドレスがルータIDに選ばれます。 IPアドレスを一つも設定していない状態でOSPFを設定しようとすると、 弾かれますので注意しましょう。

ルータID自体は単なる識別子ですので、0.0.0.1とかそういう値を設定すればよいのですが、 ループバックアドレスを持つならそれをルータIDにした方がよいでしょう。

ルータIDが変化した場合、そのルータが生成したすべてのLSAはMaxAgeに設定してドメイン内で消去し、 OSPFのプロセスを再スタートさせる必要があります。 この処理を行わないと実際にMaxAge経過するまでの間、ルーティングがおかしいままになります。

なお、隣接ルータ間でルータIDが同じだった場合、 DDのシーケンスで処理は停止します。これはMaster/Slaveの関係が構築できないためです。 (Router IDの大小でMaster/Slaveが決定するので、同じRouter IDだと勝負が決まらないためです)。

SPF Delay調整

LSAに変化を検出してSPF計算をするまでの待ち時間は、全OSPFルータで揃ってないといけません。 揃っていない場合、ピンポン現象が発生することがあります。 Juniperは50msecがデフォルト、Ciscoは5秒です。

Ciscoはtimers spfコマンドで設定しますが、これはtimers throttle spfコマンドに置き換えられました。 変更するのなら次のようにするといいと思います。

!
router ospf 1
  router-id 0.0.0.1
  timers throttle spf 50 1000 10000

【OSPF】 7. p2mpが指名ルータを救う

7. p2mpが指名ルータを救う

前回までのあらすじ
ネットワークを二重化構成にしていても、障害の発生した場所が指名ルータになっていると、 通信が途絶える時間は長くなってしまう。 これは古い指名ルータの作成したネットワークLSAが無効になってしまうためである。 新しい指名ルータが選ばれるには、Router Dead Interval待たなければならない。

指名ルータとは

ブロードキャスト型のネットワークの場合、同じセグメントに多数のルータが同居することになります。 その場合、ルータ同士が直接隣接関係を作ると、自分以外の(N-1)台のルータを意識しなければなりません。 リンクステート型では、相手がどのLSAを持っているのか常に把握している必要がありますので、隣接数が多いとこれは大変です。 OSPFではこれを工夫して、誰か一人をそのLANの代表者とし、そこを中心に隣接関係を構築します。

実際にはバックアップ指名ルータもいますので、2台のルータと隣接関係を構築します。 LAN上に4台以上のルータがいると、ネイバー状態を表示したときに2WAY以上に進まないルータが出てきますが、まったく問題ありません(たとえば上の図でいうとRa-Rb間は2way止まりです。

指名ルータをなくすには

指名ルータを使うことで、全体的な処理負荷を下げることができるわけですが、 ノードの数がそう多くないなら、あまり効果は望めないと言えます。

OSPFではブロードキャスト型以外に、point-to-multipoint(以下p2mp)というタイプが使えます。 基本的にATMとかフレームリレーのような、point-to-pointの集まったネットワークに使用するのですが、 実はイーサネットの上でも使えます。 試してみましょう。

次の図で、R1-R2-R7のLAN(ピンクの網掛け部分)をp2mpに変更してみます。

R7(Cisco)の設定は次(↓)のようにします。 タイプをp2mpに変えるとHelloインターバルが自動的に30秒になってしまいます。 これだとJuniperと一致しなくなってしまいますので、手動で10秒に戻します。 ip mtuもjuniperと一致させるために設定しています。 (一致させないとOSPFのDDのシーケンスではじかれてしまいます)。

!
interface Ethernet1
 ip address 192.168.1.7 255.255.255.0
 ip mtu 1486
 ip ospf network point-to-multipoint
 ip ospf hello-interval 10
 ip ospf priority 0

Juniperはこう(↓)します。 Juniperの場合、p2mpを設定すると、既知のネイバーにしかHelloを送信しません。 R7(Cisco)はマルチキャストでHelloを出してくれるので、 R7-R1やR7-R2は自動でネイバーを確立しますが、 R1-R2間のネイバーには手動設定が必要です。

ospf {
    area 0.0.0.0 {
        interface fe-0/0/0.0 {
            interface-type p2mp;
            metric 10;
            neighbor 192.168.1.2;
            neighbor 192.168.1.7;
        }
        interface lo0.0;
        interface fxp0.0 {
            disable;
        }
        interface so-0/1/0.0 {
            metric 10;
        }
    }
}

設定したら、LSAの一覧を調べてみましょう。 どのルータで実行しても同じですが、R4でshow ip ospf databaseコマンドを入力してみます(↓)。 ネットワークLSAが一つ無くなっていることがわかります。 192.168.1.0/24のセグメントには指名ルータがいないので、192.168.1.0/24のネットワークLSAは無くなりました。

R4#show ip ospf database

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.254.1   192.168.254.1   976         0x80000194 0x00458F 6
192.168.254.2   192.168.254.2   987         0x800001DF 0x00E730 6
192.168.254.4   192.168.254.4   192         0x80000029 0x00D478 3
192.168.254.5   192.168.254.5   181         0x80000024 0x00755F 2
192.168.254.6   192.168.254.6   1883        0x80000031 0x007F86 4
192.168.254.7   192.168.254.7   1371        0x8000002D 0x0091BD 4

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.2.6     192.168.254.6   1883        0x80000027 0x006681
R4#

次にR1(Juniper)が生成したルータLSAを見てみます(↓)。 青字になっているところが変化したところです。 自分のインタフェースアドレス192.168.1.1/32のホストルートを広告しているのが分かります。

R4#show ip ospf database router adv-router 192.168.254.1

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

  LS age: 1065
  Options: (No TOS-capability, No DC)
  LS Type: Router Links
  Link State ID: 192.168.254.1
  Advertising Router: 192.168.254.1
  LS Seq Number: 80000194
  Checksum: 0x458F
  Length: 96
  Number of Links: 6

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 0

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.7
     (Link Data) Router Interface address: 192.168.1.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.2
     (Link Data) Router Interface address: 192.168.1.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 0

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.4
     (Link Data) Router Interface address: 0.0.0.70
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.4
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

R7(Cisco)が生成したルータLSAを見てみましょう(↓)。 Juniperと同じく、自足のインタフェースアドレス192.168.1.7/32のホストルートを広告しています。

R4#show ip ospf database router adv-router 192.168.254.7

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

  LS age: 1590
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 192.168.254.7
  Advertising Router: 192.168.254.7
  LS Seq Number: 8000002D
  Checksum: 0x91BD
  Length: 72
  Number of Links: 4

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.1
     (Link Data) Router Interface address: 192.168.1.7
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.2
     (Link Data) Router Interface address: 192.168.1.7
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.1.7
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 0

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.7
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

192.168.1.0/24のネットワークLSAが無くなり、 なおかつルータLSAでは自足のインタフェースアドレスしか広告してませんから、 他のルータから見ると・・・
次のように、192.168.1.0/24のセグメントはホストルートしか見えないことになります。

R4#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
C       172.16.2.0 is directly connected, FastEthernet0/0
O    192.168.26.0/24 [110/21] via 192.168.2.6, 00:05:01, FastEthernet1/0
     192.168.254.0/32 is subnetted, 6 subnets
O       192.168.254.6 [110/2] via 192.168.2.6, 00:05:01, FastEthernet1/0
O       192.168.254.7 [110/21] via 192.168.254.1, 00:05:01, POS2/0
C       192.168.254.4 is directly connected, Loopback0
O       192.168.254.5 [110/2] via 192.168.2.5, 00:05:01, FastEthernet1/0
O       192.168.254.2 [110/21] via 192.168.2.6, 00:05:01, FastEthernet1/0
O       192.168.254.1 [110/10] via 192.168.254.1, 00:05:01, POS2/0
     192.168.1.0/32 is subnetted, 3 subnets
O       192.168.1.1 [110/10] via 192.168.254.1, 00:05:01, POS2/0
O       192.168.1.2 [110/21] via 192.168.2.6, 00:05:01, FastEthernet1/0
O       192.168.1.7 [110/20] via 192.168.254.1, 00:05:01, POS2/0
C    192.168.2.0/24 is directly connected, FastEthernet1/0
R4#

このことはつまり、そのセグメントにホスト(PC)を接続しても、外からは通信できないことを意味します。 あくまでルータ間のリンクしか使えない技であることに注意しましょう。

切り替え速度は速くなるのか?

R5→R7にpingを打ちながら、R1(Juniper)のfe-0/0/0を抜いてみましょう。

R5#ping
Protocol [ip]:
Target IP address: 192.168.254.7
Repeat count [5]: 1000000
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 1000000, 100-byte ICMP Echos to 192.168.254.7, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 99 percent (473/476), round-trip min/avg/max = 1/3/8 ms
R5#

6秒ほどの通信断時間の後、経路が切り替わりました。 CiscoのSPF Delayが5秒ですから、悪くない数字です。

このように、ルータ間のネットワークタイプをp2mpにすることで指名ルータを排除し、 経路の切り替え速度を上げることができます。

つづく。

【OSPF】 6. OSPFの経路切り替えは速くない

6. OSPFの経路切り替えは速くない

OSPFの経路切り替えは一般に高速なのですが、 ブロードキャスト型を使っているときにはそうとは限りません。 実験してみましょう。

次のネットワークでは全体をエリア0としてOSPFでルーティングしています。 R5-R7間の通信は常に左側、R1-R4間を通るようにコストを調整しています。 R1のイーサを抜いたときに、どのくらいでその障害を迂回するのか調べたいと思います。

設定 ( R1  R2  R4  R6  R6  R6)

R1-R2セグメントはイーサネットですので、どちらかが指名ルータを実行します(R7はプライオリティを0にしています)。 R1が指名ルータをやっているときと、R2が指名ルータをやっているときで、 停止時間に差があるかどうかを調べます。

実験1:R2が指名ルータの時

show ip ospf databaseコマンドでLSAの一覧を調べてみます。 次の表示では、R2(Router ID=192.168.254.2)がネットワークLSAを作っています。 このことから、R2が指名ルータを実行していることが分かります。

R7c2514#show ip ospf database

            OSPF Router with ID (192.168.254.7) (Process ID 100)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.254.1   192.168.254.1   9           0x80000164 0x5230   4
192.168.254.2   192.168.254.2   9           0x800001B3 0xCC0A   4
192.168.254.4   192.168.254.4   2019        0x80000008 0x86F    3
192.168.254.5   192.168.254.5   956         0x80000004 0xB53F   2
192.168.254.6   192.168.254.6   611         0x80000011 0x62E9   4
192.168.254.7   192.168.254.7   215         0x80000006 0xCB1C   2

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.2     192.168.254.2   9           0x80000002 0xAF8B
192.168.2.6     192.168.254.6   852         0x80000008 0xA462
R7c2514#

R5→R7にpingを打ち続けながら、R1のfe-0/0/0を抜いてみます。

R5#ping
Protocol [ip]:
Target IP address: 192.168.254.7
Repeat count [5]: 10000000
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 10000000, 100-byte ICMP Echos to 192.168.254.7, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
途中省略
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 99 percent (551/554), round-trip min/avg/max = 1/3/8 ms
R5#

およそ6秒で通信が復活しました。 CiscoのSPF Delayが5秒であることを考えると、納得のいく速さです。


実験2:R1が指名ルータの時

もう一度show ip ospf databaseでLSAの一覧を調べてみます。 R1(Router ID=192.168.254.1)がネットワークLSAを作っていることから、 R1が指名ルータを実行していることがわかります。

R7c2514#show ip ospf database

            OSPF Router with ID (192.168.254.7) (Process ID 100)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.254.1   192.168.254.1   353         0x80000160 0x5037   4
192.168.254.2   192.168.254.2   350         0x800001B0 0xC812   4
192.168.254.4   192.168.254.4   1659        0x80000008 0x86F    3
192.168.254.5   192.168.254.5   597         0x80000004 0xB53F   2
192.168.254.6   192.168.254.6   251         0x80000011 0x62E9   4
192.168.254.7   192.168.254.7   408         0x80000005 0xB732   2

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     192.168.254.1   353         0x80000002 0xC379
192.168.2.6     192.168.254.6   493         0x80000008 0xA462
R7c2514#

この状態で、R5→R7にpingを打ちながら、R1のfe-0/0/0を抜いてみます。

R5#ping
Protocol [ip]:
Target IP address: 192.168.254.7
Repeat count [5]: 1000000
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 1000000, 100-byte ICMP Echos to 192.168.254.7, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
途中省略
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!.UUUUUUUUUUUU.....................!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!
Success rate is 95 percent (672/706), round-trip min/avg/max = 1/3/4 ms
R5#

およそ40秒停止しました。


違いが出るのはなぜ?

R1はリンクダウンと同時にルータLSAを作り直します。 ところが、ネットワークLSAは指名ルータが作りますので、 リンクダウンしたインタフェースが指名ルータかどうかで動作が変わってきます。

もしリンクダウンしたインタフェースが指名ルータだとすると、 そのセグメントには指名ルータが一人もいなくなることになります。 新しい指名ルータを選ぶには、Helloによる選挙が必要です。 Helloの選挙はRouter Dead Intervalが経過しないと始まりませんので、 その期間中は古いネットワークLSAが残りっぱなしになります。

実際、通信できない期間中にLSAの一覧を表示すると、 ネットワークLSAが古いまま残っていることが分かります。 (この表示はリンクダウンさせてから30秒程経過した後で採取しました)。

R7c2514#show ip ospf database

            OSPF Router with ID (192.168.254.7) (Process ID 100)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.254.1   192.168.254.1   28          0x80000161 0xA1D4   3
192.168.254.2   192.168.254.2   481         0x800001B0 0xC812   4
192.168.254.4   192.168.254.4   1790        0x80000008 0x86F    3
192.168.254.5   192.168.254.5   728         0x80000004 0xB53F   2
192.168.254.6   192.168.254.6   382         0x80000011 0x62E9   4
192.168.254.7   192.168.254.7   539         0x80000005 0xB732   2

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     192.168.254.1   3624        0x80000002 0xC379
192.168.2.6     192.168.254.6   624         0x80000008 0xA462
R7c2514#

Router Dead Intervalが経過して新しい指名ルータが選ばれると、 ネットワークLSAも新しくなり、通信が復旧します。

リンクダウンしたインタフェースが指名ルータでなければ、 既存の指名ルータがネットワークLSAを即座に作り直しますので、 通信の復旧は高速なのです。

というわけで、イーサネットのようなブロードキャスト型のネットワークを使っていると、 必ずしも切り替え速度は高速でないことを頭に入れておくべきです。

Juniperのコンフィグを見ると分かると思いますが、実はR1とR2にBFDの設定を入れています。 BFDを使うと上記のような指名ルータ問題を解決できるのでしょうか? その答えはこちら

つづく。

【OSPF】 5. ネットワークタイプとルータLSA

5. ネットワークタイプとルータLSA

OSPFではネットワークのタイプを明確に分けています。 タイプによって、LSAの配布動作が変わるだけでなく、ルータLSAの作り方も変わります。 各種タイマーのデフォルト値も変わります。

以下に、簡単にまとめておきます。

ブロードキャスト型

ブロードキャストが可能なメディアで指定します。EthernetやFDDI、TokenRing等が該当します。

普通に使われるデフォルト値

  • Hello Interval = 10秒
  • Router Dead Interval = 40秒

隣接が確立されていない時のルータLSA

  • Connection to stub
    • Link ID = ネットワーク番号
    • Link Data = マスク

NBMA

滅多に使われません。今はpoint-to-multipointを使います。

ネイバーを一つ一つ手で指定します。 指定したネイバーとHelloを交換し、代表ルータを決定します。 代表ルータはネットワークLSAを生成します。 したがって、NBMAのネットワークタイプになっている網全体で一つのネットワークアドレスになるようにアドレス設計します。

hub & spokeの形態の場合、指名ルータの位置を固定しないといけません。 すべてのネイバーに直接通信できるhubルータが代表ルータになるように調整します。 これは生成されたネットワークLSAが網内すべてのルータに行き渡るようにするためです。

普通に使われるデフォルト値

  • Hello Interval = 30秒
  • Router Dead Interval = 120秒

LSAの中身はブロードキャストと同じです。

point-to-point

ネイバー毎に独立したインタフェースを生成する時に使います。 hub & spokeの形態の場合、hubルータはインタフェースを大量に消費してしまうのが難点です。 Ciscoルータはソフト、ハード込みで計300インタフェースしか生成できませんので、注意が必要です。

インタフェース毎に独立したアドレッシングが可能で、unnumberedもサポートされています。 (unnumberedができるのはpoint-to-pointのネットワークタイプのみです)。

普通に使われるデフォルト値

  • Hello Interval = 10秒
  • Router Dead Interval = 40秒

numberedの場合のルータLSA

  • Connection to point-to-point
    • Link ID = 相手ルータのルータID
    • Link Data = 相手ルータのインタフェースIPアドレス
  • Connection to stub
    • Link ID = ネットワーク番号
    • Link Data = マスク

ただし、unnumberedの場合、相手ルータのIPアドレスがいまいち分からない場合もあるので、 その場合、conn. to stubは省略しても構いません。 Ciscoは省略しますが、Juniperは省略しません。 省略する場合は下のような形式になります。

unnumberedの場合のルータLSA

  • Connection to point-to-point
    • Link ID = 相手ルータのルータID
    • Link Data = MIB IIのifIndex

point-to-multipoint

一つのインタフェースでマルチアクセスできる場合、個々のネイバーをpoint-to-pointの束として扱います。 基本的に網内におけるすべてのネイバーはpoint-to-multipointを設定しないといけません。 hub & spokeの形態になっている時、hubルータだけがp2mpとして設定しがちですが、それは間違いです。 マルチアクセスのインタフェースでunnumberedは設定不可能ですので、網内で一つのネットワークアドレスを持つように設定します。 ただし、ルータのルーティングテーブルにこのネットワークアドレスはインストールされません。 インタフェースに振ったアドレスのホストルートがインストールされます(それで充分なはずです)。

普通に使われるデフォルト値

  • Hello Interval = 30秒
  • Router Dead Interval = 120秒

point-to-multipointのルータLSA(必ずnumbered)

  • Connection to point-to-point
    • Link ID = 相手ルータのルータID
    • Link Data = 相手ルータのインタフェースIPアドレス
  • Connection to stub
    • Link ID = 自分のインタフェースIPアドレス
    • Link Data = 255.255.255.255

つづく。

【OSPF】 4. ルータLSAの中身

4. ルータLSAの中身

ルータLSAはその時のルータの状況によって変化していきます。 同じイーサネットに繋がっているときでも、そのイーサ上に他にルータがいるときと、いないときで中身は変化します。

たとえば次の図の左側は、2台のルータはお互いに存在を認識していない状況です。 立ち上げ直後とか、スパニングツリーのブロッキング状態などでこういう状況になります。 そうなると、ルータは「自分以外にルータのいないセグメント」というように判断しますので、 Connection to a stub networkというようにルータLSAを作ります。 Helloを使って隣接ルータを認識すると、右の図のようになります。 こうなると、Connection to a transit networkという内容でルータLSAを作ります。 ネットワークに異変が起こると、その状況に応じて次々にその中身を変えていくわけです。

イーサネット(というか、ブロードキャスト型)の場合、 自分以外のルータがいるかどうかでLSAの作り方が変わるのですが、 もう一つ注意したいのは専用線の場合です。 Point-to-pointネットワークではIPアドレスを割り当てないunnumberedという接続方法がよく用いられますが、 アドレスを割り当てた場合と、unnumberedの場合でルータLSAの中身は変わります。

RFC2328のセクション12.4.1.1によると、 Connection to a point-to-pointというのが必須です。 加えて、Connection to a stubというのも入れるべきだと言っています。

分かりづらいので、ここでは実験して具体的に見てみましょう。

設定 ( R1  R2  R4  R6)

R1, R2はJuniperです。R4, R6はCiscoです。R5とR7はおまけのCiscoで、ホストの代わりに置いてます。 R1-R4間をPOSで繋ぎ、Unnumberedとします。R2-R6間もPOSで繋ぎ、ここには192.168.26.0/24のサブネットを割り当てます。

このネットワークでLSAが全部で何個生成されるか見てみましょう。

R4#show ip ospf database

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.254.1   192.168.254.1   350         0x80000156 0x00642D 4
192.168.254.2   192.168.254.2   835         0x800001A8 0x00D80A 4
192.168.254.4   192.168.254.4   1305        0x80000005 0x000E6C 3
192.168.254.6   192.168.254.6   1923        0x8000000D 0x006AE5 4

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     192.168.254.1   370         0x80000003 0x007639
192.168.2.6     192.168.254.6   412         0x80000004 0x0085F6
R4#

全部でルータLSAが4個、ネットワークLSAが2個あります。 OSPFルータは4台で、それぞれが1個ずつルータLSAを作成しています。 ネットワークLSAは、2台以上のルータがいるブロードキャスト型ネットワークに登場します。 指名ルータがネットワークLSAを作成します。

Juniperのunnumbered point-to-pointの例

R1(Juniper)はUnnumberedリンクを持っています。

R4#show ip ospf database router adv-router 192.168.254.1

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

  LS age: 620
  Options: (No TOS-capability, No DC)
  LS Type: Router Links
  Link State ID: 192.168.254.1
  Advertising Router: 192.168.254.1
  LS Seq Number: 80000156
  Checksum: 0x642D
  Length: 72
  Number of Links: 4

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.1
     (Link Data) Router Interface address: 192.168.1.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 0

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.4
     (Link Data) Router Interface address: 0.0.0.70
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.4
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

青い字になっている部分がPOSの部分に相当します。 Juniperの場合、Connection to point-to-pointに加えて、Connection to a stubを入れてます。 RFCで推奨される通りの動作ですが・・・
その中身に注目してください。 Connection to a stubで広告している192.168.254.4/32はR4のループバックアドレスです。 これは意味的におかしいですね。 R4が広告すべきホストルートをR1が広告してしまってます。 これはUnnumberedリンクの弊害で、仕方ないことです。

Juniperのnumbered point-to-pointの例

R2のPOSは192.168.26.0/24というサブネットを持ったPoint-to-pointです。

R4#show ip ospf database router adv-router 192.168.254.2

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

  LS age: 1758
  Options: (No TOS-capability, No DC)
  LS Type: Router Links
  Link State ID: 192.168.254.2
  Advertising Router: 192.168.254.2
  LS Seq Number: 800001A8
  Checksum: 0xD80A
  Length: 72
  Number of Links: 4

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.1
     (Link Data) Router Interface address: 192.168.1.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.2
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 0

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.6
     (Link Data) Router Interface address: 192.168.26.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.26.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

同じく、青い字になっている部分がPOSの部分に相当します。 Connection to point-to-pointの中身(Link ID、Link Data)がunnumberedの時と微妙に違うのが分かります。 Connection to a stubは、割り当てられたサブネット192.168.26.0/24なので、これは納得です。

Ciscoのunnumbered point-to-pointの例

次にCiscoのunnumberedの例を見てみましょう。

R4#show ip ospf database router adv-router 192.168.254.4

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

  LS age: 429
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 192.168.254.4
  Advertising Router: 192.168.254.4
  LS Seq Number: 80000006
  Checksum: 0xC6D
  Length: 60
  Number of Links: 3

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.4
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.1
     (Link Data) Router Interface address: 0.0.0.5
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.2.6
     (Link Data) Router Interface address: 192.168.2.4
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

Ciscoの場合、Connection to point-to-pointのみになってます。 RFCではConnection to stubはSHOULDなので、これでもよいのです。 むしろ、好ましいと言えます。

Ciscoのnumbered point-to-pointの例

Ciscoのnumberedの場合も見ておきましょう。

R4#show ip ospf database router adv-router 192.168.254.6

            OSPF Router with ID (192.168.254.4) (Process ID 100)

                Router Link States (Area 0)

  LS age: 1185
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 192.168.254.6
  Advertising Router: 192.168.254.6
  LS Seq Number: 8000000E
  Checksum: 0x68E6
  Length: 72
  Number of Links: 4

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.6
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 192.168.254.2
     (Link Data) Router Interface address: 192.168.26.6
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.26.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.2.6
     (Link Data) Router Interface address: 192.168.2.6
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

これはJuniperのnumberedと同じですね。

つづく。

【OSPF】 3. マップからルーティングテーブルへ

3. マップからルーティングテーブルへ

前回までのあらすじ

OSPFを実行するルータは、必ず一つルータLSAを作ります。 イーサで繋がっている部分は指名ルータというものを選びます。指名ルータはネットワークLSAを作ります。 それらLSAを全部集めると地図を作ることができます。

ルータは最終的にルーティングテーブルを作らないといけないのですが、そこで用いるのがダイクストラ演算です。 複雑なネットワークでは、同じ宛先にたどり着くのにいくつもの経路が存在することになります。 このとき全てのルータが同じアルゴリズムで経路を選択しないと、 ループ(ピンポン現象)やブラックホール現象が発生してしまいます。 経路を選択する基準は『宛先に到達するための最短パス』です。

OSPFではインタフェースごとにコストという値を設定します。 ルータによってデフォルト値が決まっていたり、回線速度によって調整されてたりしますが、 本来は設計者が手動で設定しなければいけないパラメータです。 そして、ルータは宛先にたどり着くのに必要なトータルコストが最短になるものを選び出すわけです。

コストは「ルータからネットワーク」に到達するときに加算されます。 ですから↓のようなコスト設計では、R1→R2のコストは10、R1→R3のコストは20となるわけです。 当然、行きと帰りで異なるコスト値になることもあります。

コスト設計というのは、意図したとおりにトラフィックを通そうとすると時に非常に難しい事になります。 たとえば↓のような二重化構成のネットワークで、 Rg→RhのトラフィックはRg→Rc→Rh、Rg→Rd→Rh、Rg→Rc→Rd→Rh、という通り方がありますが、 これをコストで制御するわけです。

これがどのくらい難しいかを実感してもらうために、簡単なアプリケーションを作ってみました。 Dijkstra.exe をローカルに保存してから実行してみてください。 実行したら、編集→サンプル→サンプル(2階層ツリートポロジ)、と辿ってください。 こんな画面↓が現れると思います。

使い方

  • 何もない所をクリックするとルータを追加します。
  • シフトキーを押しながら、ルータからルータへドラッグすると線を追加します。
  • コントロールキーを押しながら、赤い丸のルータをドラッグすると、頂点ルータを変えることができます。
  • コスト値は線上の三角をドラッグすることで変えられます。値は1~100までです。
  • コスト値を0にすると線は消えます。
  • コントロールキーを押しながら、ルータをウィンドの外にドラッグすると、そのルータを削除します。
  • イコールコストマルチパスには対応してません

どうですか? 案外コスト設計は難しいでしょう?

最短コストのツリーが完成したら、ここからルーティングテーブルを作るのは容易な作業です。 全ての宛先について、そこに到達するのにどのネクストホップを使えばいいかを調べるだけです。

つづく。

【OSPF】 2. 地図を作るには

2. 地図を作るには

いちおう前回の解説をしておきます。 ルータ3台からなるOSPFネットワークを作りました。 人間はネットワークを設計するときに↓のような図を書くわけですが、 実はOSPFルータも内部で同じような事をやってるのです。

Ciscoルータでshow ip ospf database router、 show ip ospf database networkコマンドの表示結果をフラッシュに食わせると↓のような絵が描けたと思います。 緑色の丸がルータ、四角がネットワークを表しています。

このようにリンクステートデータベースというのは、 ネットワークの図を書くための情報がもれなく記述されていて、 ルータは機械的にその絵を作ることができるのです。 もっとも、ルータは絵を描きたいわけではなく、ルーティングテーブルを計算するのが目的です。

ルータLSAとは

ルータLSAはどのルータも必ず一つ作成し、インタフェースがどういうネットワークに繋がっているのかを記してます。 大雑把に言うと、どのアドレスにコストいくつで繋がっているか、という情報で構成されてます。


  LS age: 335
  Options: (No TOS-capability, No DC)
  LS Type: Router Links
  Link State ID: 192.168.254.1
  Advertising Router: 192.168.254.1
  LS Seq Number: 80000107
  Checksum: 0x47ED
  Length: 60
  Number of Links: 3

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.2
     (Link Data) Router Interface address: 192.168.1.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.0.6
     (Link Data) Router Interface address: 192.168.0.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 192.168.254.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 0

青い文字の部分はLSAの共通ヘッダです。 そのLSAの種類は何なのか(ルータLSAなのかネットワークLSAなのか)、 誰が作ったのか、 作られて何秒経過したか、 等の情報が入ってます。

ルータLSAの中身は、どういうリンクに繋がっているのか、という情報がインタフェースの数だけ含まれてます。 Link connected to: a Transit Networkというのは、「他にもルータが存在するネットワークに繋がっている」という意味です。 Link connected to: a Stub Networkというのは、「自分以外にルータはいないネットワークに繋がっている」という意味です。

上記のルータLSAはR1が作ったものなのですが、R1-R6間はTransit、R1-R2間もTransit、あと一つループバックインタフェースというのを持っているのですが、これはStubです。 Transitに繋がっている場合、指名ルータのアドレスが重要な情報になります。 というのも、 OSPFでは指名ルータがネットワークLSAを作成するため、ルータLSAとネットワークLSAをくっつけるのにこの情報が必要になるのです。 Stubに繋がっている場合、それがどういうアドレス/マスクなのかを記します。

次にネットワークLSAを見てみましょう。R6が作成したネットワークLSAを次に示します (R6がネットワークLSAを作っているということは、R1-R6間のセグメントはR6が指名ルータになっていることを意味します)。


  Routing Bit Set on this LSA
  LS age: 1045
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 192.168.0.6 (address of Designated Router)
  Advertising Router: 192.168.254.6
  LS Seq Number: 80000034
  Checksum: 0x1140
  Length: 32
  Network Mask: /24
        Attached Router: 192.168.254.6
        Attached Router: 192.168.254.1

青い字は共通ヘッダです。 中身は何かというと、そのセグメントのサブネットマスクと、そのセグメントに存在するルータのリストです。

ルータLSAとネットワークLSAを繋ぐには

イーサネットでルータ間を接続していると、ネットワークLSAっていうのが出てきます。 地図を作るにはルータLSAとネットワークLSAを繋いでいくわけですが、これは次の手順で行います。

  1. ルータLSAを取り出します。
  2. Connection To: a Transit Networkになっているインタフェースを見つけたら、それはイーサに繋がっていて、他にもルータがいるセグメントだと考えます。
  3. そういうセグメントには指名ルータが必ず存在しますので、誰が指名ルータなのかを調べます。ルータLSAにちゃんと書いてあります。
  4. その指名ルータが作成したネットワークLSAを探します。Attached Routerにそのルータが入っているものを選びます。
  5. これでルータLSAとネットワークLSAが繋がりました。
  6. そのネットワークのアドレスは、ルータLSAに書かれたインタフェースアドレスと、ネットワークLSAに書かれたマスクを組み合わせることで判断します。

このようにしてルータLSA→ネットワークLSAを繋いでいくと、最終的に一つの地図ができるわけです。

つづく。

より以前の記事一覧