カテゴリー別アーカイブ: L3要素技術

NAT Operationの順序

Inside to Outside NAT

Ciscoルータにおいて、Inside NATがoperationされる順序。Outside NATとInside NATはそれぞれが完全な裏返しのOperationとはならない。

双方の違いを認識しておく必要がある。

 

1. IPsecがあればinput ACLのチェック

2. Decryption(IPsec, Cisco Encryotion Technology)

3. Input ACLのチェック

4. Input rate limitのチェック

5. Input Accounting

6. Redirect toWeb Cache

7. Policy Routing

8. Routing

9. NAT Inside to Outside

10. Crypto(Encryptionのためのチェックとマーキング)

11. Output ACLのチェック

12. CBACのinspection

13. TCPのintercept

14. Encryption

15. Queuing

 

Outside to Inside NAT

1. IPsecがあればinput ACLのチェック

2. Decryption(IPsec, CET)

3. Input ACLのチェック

4. Input rate limitのチェック

5. Input Accounting

6. Redirect to Web Cache

7. NAT Outside to Inside

8. Policy Routing

9. Routing

10. Crypto(Encryptionのチェックとマーキング)

11. Output ACLのチェック

12. CBACのinspect

13. TCP intercept

14. Encryption

15. Queuing

Pocket

RIBとFIB、CEF

CiscoのRouterやMultilayer Switchで使用されるRouting and Forwardingアーキテクチャは、Control PlaneとData Planeで集中管理的に動作するキャッシュベースのシステムである。

Control PlaneはRouting Tableを構築するためのResourceや技術を受け持つ。Data Planeは実機上での入力Portから出力Portへの実際のデータの移動における部分を受け持つ。

これら2つのPlaneが分離され、集中管理されることにより、Scalabilityの向上や、可用性の向上につながる。

Routing及びForwarding taskの分離のため、Routing Information Base(RIB)とForwarding Information Base(FIB)の仕組みが構築された。

Control PlaneはRIB上からBest Routeを選択して、そのBest RouteをFIB上に配置する。
RIBはSoftware上で動作し、FIBはより高速なHardware上で動作する。

これらのRouting and ForwardingのアーキテクチャをCisco Express Forwarding(CEF)と呼ぶ。

Pocket

Administrative Distance値

Routerが複数のSourceから経路を学習すると、Administrative Distance(AD)値を利用して、Routing TableにinstallするRouteを確定する。
デフォルトのAD値は以下のとおりである。

Source : AD値
Connected: 0
Static Route:1
EIGRP Summary Route: 5
eBGP: 20
Internal EIGRP: 90
OSPF: 110
RIP: 120
External EIGRP: 170
iBGP: 200
Unknown: 255

 

AD値を利用して、Floating Static Routeという考え方を採用することもできる。
通常、Static RouteのAD値は1である。
たとえば、EIGRPを採用しているネットワーク内で、Static RouteのAD値を200に設定したとする。

通常AD値が1であるStatic Routeの経路がRouting Tableから選択される。Static RouteのAD値が200である場合、採用されるのはAD値90のEIGRP Routeである。

AD値200のStatic RouteはEIGRPのRouteがRouting Tableから消えた場合のみ使用されるということになる。

Pocket

Routingの意思決定

RouterはTrafficの宛先を見てBest Routeを決定する。
Best Routeは以下の順序で決定される。

 

1.有効なnext-hopアドレス
Routing Updateを受信した場合、Routerは最初にnext hopのIPアドレスを確認し、そのRouting Updateに含まれる宛先が到達可能かどうかについて確認をする。

 

2.Metric
Routerは特定のProtocolで保持している複数経路のMetricを確認する。

たとえば、OSPFが複数の経路を保持していた場合、Routerは最もよいMetric値の経路をRouting Tableにinstallする。

 

3.Administrative Distance

複数のRouting ProtocolがRouter上で動作していて、それぞれのProtocolが有効なnext hopをもった経路を広報している場合、RouterはAdministrative Distance値を確認する。

最も低いAdministrative Distance値をもったRouteがRouting Tableにinstallされる。

 

4.Prefix

RouterはRouteのPrefix長を確認する。RouterがDestinationアドレスをRouting Table上で探す場合、常にLongest MatchでPrefixを探すことになる。

たとえば、Routing Tableが10.0.0.0/8と10.2.0.0/16と10.2.1.0/24の経路を保持していた場合、Longest Match Prefixが選択される。このPrefix長はAdministrative Distance値に勝る。

つまり、EIGRPから学習した/24のprefixは/16のstatic routeよりも優先的に選択されるということである。

Pocket

Redistribution

ネットワーク上では、コンバージェンスの時間、アプリケーション特有のプロトコル要件、マルチベンダ共存環境の構築など、複数のルーティング・プロトコルが必要となる事態は避けられない。

複数のルーティングプロトコルが共存しなければならない環境では、異なるルーティングプロトコル間でのルートのRedistribution(再配送)が必要となる。

Redistributionを考える上で重要なポイントは、再配送されたルートが新しいルーティングプロトコルに入った際のseed metricである。

 

seed metricは通常、originateのinterfaceで生成される。
たとえば、EIGRPはmetricを設定するために、interfaceの帯域と遅延値を使用する。

主なルーティングプロトコルでは、再配布のためのデフォルトseed metricを保持する。
Infinityはseed metricが必ず設定されている必要があることを意味しており、設定されなければそのルートは使用されないということになる。

 

RIPへのRedistribution

redistributeコマンドか、default-metricコマンドを使用し、デフォルトメトリックを設定する必要がある。

redistribute protocol [ process-id] [match route-type]
[metric metric-value] [route-map map-tag]

matchキーワードはOSPFをRedistributionするときにルートタイプを設定できる(internal, external1, external2)。
route-mapキーワードはRedistributionされたルートをコントロールするルートマップを指定することができる。

 

OSPFへのRedistribution

デフォルトのseed metricは20。
Redistributionルートのデフォルトメトリックタイプはexternal type2。

– external type 1
宛先へのtotal path costをベースにmetricが計算される。

– external type 2
OSPFネットワーク内のpath costに関わらず、再配布するルータからのcostのみをmetricに反映する。

redistribute protocol [process-id] [metric metric-value] [metric-type type-value] [route-map map-tag][subnets]

サブネットはデフォルトでRedistributeされない。
サブネットをRedistributionしたいときは、subnetsキーワードを使用する。tag値ではルートを判別するためのtagを設定できる。

 

Redistribute Into EIGRP

EIGRPにRedistributionする場合もデフォルトseed metricを設定する必要がある。

redistribute protocol [process-id] [match {internal | external1 | external2}] [metric metric-value] [route-map map-tag]

Pocket

Routing Protocolについて

Routing Protocolには大きく2つある。
Distance VectorとLink Stateである。
そのほかにもHybrid型、Path Vector型がある。

 

・Distance Vector
例:RIPv1、RIPv2、IGRP
– 直接接続されているneighborと、全Routing Tableの定期的な交換を行う
– Distance値を使用して、最善のrouteを比較する
– Hop Countに制限がある

 

・Link State
例:OSPF、IS-IS
– ネットワーク内の全ノードに、ローカル接続情報を送信する
– 同一のプロトコルを話すネイバールータと隣接関係を持ち、local link情報を送信する
– 全ノードに情報を流すが、ルータは自身のlink stateの一部の情報のみを送信する
– それぞれのルータは受信した情報からネットワークの完全な全体像を保持する

 

・Hybrid
例:EIGRP
– distance vectorとlink-stateRouting Protocolの両方の要素を持つ

 

・Path Vector Protocols
例:BGP
– distance vectorプロトコルの集合体;BGPはpath vectorか、あるいはすべてのASのリストを使用する

 

・Split Horizon

一部のRouting Protocolはルーティングループを避けるためにsplit horizonを使用する。
split horizonは、ルーティング情報を受信したinterfaceからは、そのルーティング情報を出さないというものである。
Hub and Spokeのフレームリレートポロジで疎通がとれない場合、まずsplit horizonによる問題を考慮してみるのが定石。

 

・Summarization

長いマスク長(たとえば/24)の複数のルートを短いマスク長(たとえば/16)の一つのルートで集約することである。
例:192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24(集約前)
192.168.0.0/16(集約後)

ルート集約はルーティングテーブルのサイズを小さくし、ルーティングの機能をより効果的し、アップデートの数を少なくする利点がある。
EIGRPなどは、自動的にクラスフルに集約を行う場合がある。
Config上のNo auto-summaryは反射的に確認し、有無を把握しておくべきである。

Pocket