情報通信ネットワーク(2005/10/28)
Ver. 1.3
2005年10月28日
栗野 俊一
目次
Static Routing
概要
- 直接forwarding tableの内容を作成する。
- 人間が手動で行うので面倒だが、細かい制御ができる。
- forwarding tableの内容は、設定後、変更を行わない限り、この情報が利用されるので、情報が変化しない(静的)。
- 通常は、他のDynamic Routingと併用される(1)。
詳細
- 各々の設定は、次の項目を指定する。
- Network Address :宛先のNetwork Address
- Network Mask :宛先のNetwork Mask
- Next Hop :宛先に送るために、次に転送すべき、直接通信可能な宛先
- Interface名: Router自身がこのnetworkに所属するので、下位(論理)層のProtocolで通信可能。
- IP Address :このNetworkは、このIP Addressを持つRouter (同一Networkに所属している)に中継をお願いする。
- 優先順位:同一のNetworkに対して、複数の情報がある場合(2)に、どちらを優先するかどうかを指定する。
- 優先順位の扱い:同一のNetworkに対して、複数の経路情報がある場合の選択は、次の二つで決定される(3)。
- より狭いnetwork maskを持つ経路情報を優先する。
- より優先度と高い経路情報を優先する
特別な経路情報
Classfull Network
- IP AddressにはClassがある(6)。
Class |
範囲 |
Natural Netmask |
Network数 |
Network内のHost数 |
- (13) |
0.0.0.0 |
/0 |
1 |
全てのIP Address |
A(14) |
1.0.0.0 - 127.255.255.255 |
/8 |
2^7 - 1 = 127 |
2^24 = 16777216 |
B(15) |
128.0.0.0 - 191.255.255.255 |
/16 |
2^21 - 2^7 = 32640 |
2^16 = 65536 |
C(16) |
192.0.0.0 - 223.255.255.255 |
/24 |
2^23 - 2^21 = 8355840 |
2^8 = 256 |
D(17) |
224.0.0.0 - 239.255.255.255 |
- |
- |
- |
E(18) |
240.0.0.0 - 255.255.255.255 |
- |
- |
- |
- 昔は、1 Class, 1組織とし、大きなNetworkを持つ組織はClass A,中規模の組織はClass B,小さな組織には、Class Cを割り振っていた。
Routing Protocol
Routing Protocol の分類
IGP と EGP
Internetでは、複数の組織が関っており、それぞれ異なるNetworkの運用方針(19)で、運用されている。
そこで、統一的な一つの運用方針の元に運用されているNetwork GroupをAS ( Autonomous System :自律システム)とよび、AS内のRoutingとAS間のRoutingを区別して扱う(20)。
AS内部のRoutingを行うために、利用されるRouting ProtocolをIGP ( Interior Gateway Protocol )と呼び、AS間Routing行うために、利用されるRouting ProtocolをEGP ( Exterior Gateway Protocol )と呼ぶ。
DV .vs. LS
Routing Protocolでは、そのProtocolを利用して交換される情報( Routing Information )の形式の違いにより、次の二つに大きく分類される。
- Distance Vector型
Routing Informationとして、宛先Network addressと、そこへ到達するために、どれ位のコストがかかるか(距離が遠いか? )を、互いに交換しあい、同じ宛先に対して、複数の経路がある場合は、コストが最小のものを選ぶ。
宛先に対する距離( Distance )の表( Vector )を交換するので、この名前がある。
- Link State型
- Routing Informationとして、「どことどこのNetworkが接続されているか?」あるいは、「その接続( Link )は継がっているいるかどうか( State )」を互いに交換し、その情報に基き、(AS内の) Network全体のTopologyを全て把握した上で、最適な経路を計算する。
様々な Interior Routing Protocol
RIP
DV型の典型的なRouting Protocol。広く利用されている。
VLSMが利用できない。
OSPF
LS型の典型的なRouting Protocol。広く利用されている。
VLSMが利用できる。
IGRP
DV型のRouting Protocolで、CISCO独自。
RIP (Routing Information Protocol)
概要
- Distance Vector型の典型的なRouting Protocolの一つ。
- 仕組が簡単で解りやすいので、昔から利用されている(今でも、利用されることが多い)。
- 単純なだけに、問題点も多く(後述)、多少、規模の大きいNetworkでは、他のRouting Protocolを使うことが望まれる。
- ARPANET ( The Internetの前身)時代から利用されており、BSD Unix上にroutedとして、標準提供されていたため、Internetの発展/ unix利用の拡大(21)/ routedの利用/ RIPが蔓延る..という構造で広がった。
RIP の特徴
- Distance Vector型
- Hop数をDistanceとして扱う。
- 最大Hop数は15 ( 16は到達不能)。
- アナウンス方法はBroadcast(22)。
- アナウンスのタイミングは、30秒に一度。
- 交換する情報は、宛先のNetwork AddressとHop数の対のTable。
RIP の挙動
経路情報の交換
- Interfaceの情報から、自分の所属するNetworkをHop数0としてTableに登録する
- 自分の保持しているForwarding Tableの内容を30秒に一回Broadcastでアナウンスする。
- アナウンスする内容は、Network Addressと、Hop数の組のみ。
- アナウンスを聞いたら次の手順で、Forwarding Tableの内容を更新
- アナウンスの内容のHop数を1ずつふやす。
- アナウンスの内容と、保持しているForwading Tableを比較し、もし、Forwarding Tableにないか、あるいは、Forwarding TableよりHop数の小さな対があった場合は、Forwarding TableのHop数と、Next Hop (これは、このアナウンスを行ったRouterのIP Addressになる)を更新する。
Link が切れたら
- 各々の経路に関しては、Timerをもち、最後にアナウンスされてから180秒経過した経路は、Hop数を16 ( RIPでは「到達不能」の意味)にしてしまう。
- その状態で、更に120秒経過すると、レコードが削除される。
- 他から新しい経路のアナウンスがあれば、それを用いて更新する(23)。
RIP の周辺
無限 Count 問題
- 途中で、Routerに障害が生じて、特定のLinkが切れた場合に、経路情報を消すことができない。
- Loopがある場合
N1
>--+-------+----<
| |
Ra Rb
| N2 | N3
>---+---+--< >-+-----+--<
| |
Rc Rd
| | N4
>---+-------+---------+----<
|
Re
| N5
>-----+-----<
- 最初は、Router Reが、N5への経路をアナウンスしていたので、Reを経由して、他のNetwork ( N1 - N4 )から、N5へパケットを送ることができた。
- 何らかのトラブル(24)で、ReがDownした。
- 本来ならば、Router Reが、N5の経路をアナウンスを止めるので、各々のRouter Ra - Rdは、N5への経路を忘れるべきなのだが...
- 適当な時間が経過すると、例えば、RdがN5の経路を忘れた。ところが、RcやRbが忘れていないと、RcやRbから、経路がアナウンスされてしまい、Rdは、N5の経路を再学習(25)してしまう(26)。同様にして、どこかのRouterが折角(正しく.. )経路を忘れるのだが、他のRouterに残骸が残っており、どんどんHop Countを大きくしながら、何時までたっても、無意味な( N5への)経路を、交換し続けることになる。
- Loopがなくても..
十分に大きな Network へ
|
| N1
>---+----+----<
|
Ra
| N2
>-+---+----<
|
Rb
| N3
>-+---+----<
|
Rc
| N4
>-----+----<
- Router Rcが生きている間は、Network N4への経路が、Router Ra, Rbにアナウンスされ通信が可能
- Rcが停止するとNetwork N4への経路情報を、RaとRbでキャッチボールすることが生じ得る。
RIP に於ける「無限 Count 問題」を押えるための仕組
無限 Hop
- 「無限Count問題」が生じると、Hop Countがどんどん大きくなる。
- 適当な数より大きなHop Countは無限Countと解釈して、「到達不能」の意味で扱う。
- RIPでは、16 Hopで、無限Countと解釈する。
- 実は、無限Countではなく、本当に16 Hop先にNetworkがあっても.. RIPでは、「到達不能」として扱ってしまう。
- 上記の問題で、RIPでは本質的に、大きなNetwork ( cf. The Internet )では利用できない。
Triggered Update (トリガー アップデート)
- Time Out ( RIPでは180秒)して、そのNetworkへの経路が失われたことを確認したら、その経路のHop数を明示的に16 (到達不能)として、次のRouterへもアナウンスする。
- Rbは、Rcの停止によって、N4の経路がなくなったことに気が付いたら、単に、自分のTableの経路を16 (到達不能)にするだけでなく、同時に、Raにその情報を直に、アナウンスする(27)。
Split Horizon (スプリット ホリゾン)
- 特定のInterfaceから受けた、Routing情報を記録しておき、そのInterfaceから受けた情報を、そのInterfaceに対して、アナウンスしないようにするというアルゴリズム。
- Raは、Rbからアナウンスされた経路情報( N4への経路)を、Rbに返さないので、無限Hop Count問題をさけることができる(28)。
Split Horizon with Poisonous Reverse
- 特定のInterfaceから受けた、Routing情報を記録しておき、そのInterfaceから受けた情報を、そのInterfaceに対して、アナウンスする場合は、無限Hop数としてアナウンスする。
- Raは、Rbからアナウンスされた経路情報( N4への経路)を、Rbに返す場合には、敢て、到達不能Hop数( Hop数16 )としてアナウンスする。
Netmask の扱い
- RIPで交換するRouting Informationには、Netmaskの情報が含まれない(29)。
- Network Maskは、次の情報から自動的に取り出す仕組になっている。
- アナウンスを受けたInterfaceと同じClassのNetwork Addressの場合は、InterfaceのNetmaskを採用する。
- アナウンスを受けたInterfaceと同じClassのNetwork Addressの場合は、自然なNetowrk Maskを採用する。
- 弊害として次のような問題が生じている。
- 単一のClassのNetwork内では、同一のSubnet maskを利用しないといけない(30)。
- 単一のClassのNetworkは、直接つながっていないといけない。
参考