RIPの設定 - Catalyst
CatalystでRIPを設定するコマンドの使い方について説明したページです。RIPの動作や意味については「RIP」をご参照下さい。
RIPv1の基本設定
以下の図を例に設定を説明します。
スイッチAでは172.16.3.0のサブネット、スイッチBでは172.16.1.0のサブネットの経路がRIPで受信出来るようにスイッチA、BでRIPの設定を行います。
最初にスイッチAの設定ですが、RIPの設定をする前にVLANにアドレスを設定したり、インターフェースにVLANを割り当てたり、ルーティングを有効にする必要があります。
Switch# configure terminal Switch(config)# interface vlan 10 Switch(config-if)# ip address 172.16.1.1 255.255.255.0 Switch(config-if)# no shutdown Switch(config-if)# exit Switch(config)# interface vlan 20 Switch(config-if)# ip address 172.16.2.1 255.255.255.0 Switch(config-if)# no shutdown Switch(config-if)# exit Switch(config)# interface gigabitethernet1/0/1 Switch(config-if)# switchport Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10 Switch(config-if)# no shutdown Switch(config-if)# exit Switch(config)# interface gigabitethernet1/0/2 Switch(config-if)# switchport Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 20 Switch(config-if)# no shutdown Switch(config-if)# exit Switch(config)# ip routing
上記は「スタティックルーティングの設定」で示した通り、VLAN間でルーティング出来るようにする設定です。
スイッチAのRIPv1の設定は以下の通りです。
Switch(config)# router rip Switch(config-rouer)# network 172.16.0.0 Switch(config-rouer)# exit
network 172.16.0.0の部分はRIPを使うネットワークを指定します。例えば192.168.1.0のネットワークも使う場合は別途network 192.168.1.0を指定します。指定は複数可能です。
スイッチBでも設定は同様です。
ルーティングテーブルの確認
ルーティングテーブルはshow ip routeコマンドで確認出来ます。
Switch# show ip route
Codes:L - local, 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 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, H -NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
172.16.0.0 is variably subnetted, 3 subnets, 2 masks
C 172.16.1.0/24 is directly connected, Vlan10
L 172.16.1.1/32 is directly connected, Vlan10
C 172.16.2.0/24 is directly connected, Vlan20
L 172.16.2.1/32 is directly connected, Vlan20
R 172.16.3.0/24 [120/1] via 192.168.2.2, 00:00:20 Vlan20
上記で赤字部分のRがRIPで受信した経路を示しています。RIPを設定した後は、このRの経路が表示されている事を確認します。
因みに、Cは自身が接続されているサブネット、Lは自身に設定されたIPアドレスを示します。
ルーティングテーブルに表示されない場合、原因は様々ですが、フィルタリングによりRIPが遮断されている可能性もあります。大丈夫と思っても一旦フィルタリングを外してみると反映される事も多いと思います。
RIPv2の基本設定
RIPv1の図と同じネットワークでスイッチA〜B間をRIPv2にする場合、スイッチAの設定は以下の通りです。
Switch# configure terminal
Switch(config)# interface vlan 10
Switch(config-if)# ip address 172.16.1.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface vlan 20
Switch(config-if)# ip address 172.16.2.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# switchport
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface gigabitethernet1/0/2
Switch(config-if)# switchport
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# ip routing
Switch(config)# router rip
Switch(config)# version 2
Switch(config-rouer)# network 172.16.0.0
Switch(config-rouer)# exit
RIPv1と殆ど同じですが、versionコマンドが追加されています。デフォルトではRIPv1を送受信し、RIPv2は受信だけします。このため、RIPv1では設定は不要でRIPv2を使う時だけversionコマンドで指定します。
RIPv1の時もRIPv2を受信したくない場合はversion 1と指定出来ます。
又、以下のようにVLANインターフェースに対しても設定出来ます。
Switch(config)# interface vlan 10 Switch(config-if)# ip rip send version 2 Switch(config-if)# ip rip receive version 2 Switch(config-if)# exit
上記のように設定すると、VLAN10はRIPv2で送受信し、他のVLANはRIPv1を使います。
ホップ数の設定
以下の図のようにスイッチAからスイッチDに至る経路が2通りあり、スイッチBの経路を優先したい場合を例にホップ数を追加する設定を示します。
インターフェースやVLAN、RIPの設定はこれまでと同じです。スイッチAではホップ数を追加するために以下の設定を追加します。
Switch(config)# access-list 1 permit 172.16.1.0 0.0.0.255 Switch(config)# router rip Switch(config-router)# offset-list 1 in 1 vlan20 Switch(config-rouer)# exit
access-listコマンドの後に指定した1はアクセスリストの番号を示すため、1〜99で好きな番号を指定します。permitの後の172.16.1.0はホップ数を追加するサブネット番号、0.0.0.255はワイルドカードといってサブネットマスクのビットを反転させたものです。
offset-listに続く1はアクセスリストの番号を示すため、access-listコマンドで指定した番号と合わせる必要があります。1の後のinはRIP受信時にホップ数を追加する事を示し、inの後の番号は追加するホップ数を示しています。最後のvlan20は指定したインターフェースから受信した場合にホップ数を追加するよう設定しています。
RIPでは受信時にホップ数を1追加してルーティングテーブルに反映させますが、上記設定で更に1追加する事になります。つまり、VLAN20で受信したRIPでサブネット172.16.1.0/24はホップ数が2となり、スイッチCの経路はホップ数が多いためスイッチBの経路が優先されます。
スイッチDでも同様の設定をすればスイッチA〜D間は行きも帰りもスイッチBの経路が優先されます。
又、スイッチAではなくスイッチCで設定する方法もあります。設定方法は以下の通りで、インターフェースやVLAN、RIPの初期設定は同様に省略します。
Switch(config)# access-list 1 permit any Switch(config)# router rip Switch(config-router)# offset-list 1 out 1 Switch(config-rouer)# exit
今度はaccess-listでanyを設定しています。これは全てのサブネットに適用される事を示しています。又、offset-listでoutが指定されています。これはRIPで送信する際にホップ数を1追加して送信する事を意味しています。又、今回はインターフェースを指定していないので全てのインターフェースに対して適用されます。このため、スイッチA、D共にスイッチCからホップ数が追加されたRIPを受信し、スイッチC側の経路がスイッチBより遠いと判断します。
経路情報をフィルタリングする設定
例えば以下の図でスイッチBからスイッチAには172.16.4.0の経路を教えたくないとします。
この場合はフィルタリングでスイッチBからのRIPで172.16.4.0を流さないように出来ます。設定はスイッチBで以下を追加します。
Switch(config)# access-list 1 deny 172.16.4.0 0.0.0.255 Switch(config)# access-list 1 permit any Switch(config)# router rip Switch(config-router)# distribute-list 1 out vlan10 Switch(config-rouer)# exit
アクセスリストでは172.16.4.0のサブネットを不許可にし、それ以外をanyで許可しています。
このアクセスリストをdistribute-listの後の数字1で指定し、VLAN10のRIPの送信時に適用する設定をしています。
つまり、172.16.4.0/24はスイッチBからVLAN10に流さないという設定になるため、スイッチAではスイッチBから172.16.3.0だけ経路を受信します。
この設定ではスイッチBに172.16.5.0のサブネットが追加された時、スイッチAはRIPで172.16.5.0の経路を知る事が出来ます。
他の設定方法として上の例とは逆に172.16.3.0だけ流れるようにするにはスイッチBで以下を追加します。
Switch(config)# access-list 1 permit 172.16.3.0 0.0.0.255 Switch(config)# router rip Switch(config-router)# distribute-list 1 out vlan10 Switch(config-rouer)# exit
この設定ではスイッチBに172.16.5.0のサブネットが追加された時、スイッチAにRIPで172.16.5.0の経路を送信しません。
又、スイッチBはルーティングテーブルを簡単にしたいため、スイッチAからの経路はデフォルトルートだけ反映させたい場合は以下の設定をスイッチBに追加します。
Switch(config)# access-list 1 permit 0.0.0.0
Switch(config)# router rip
Switch(config-router)# distribute-list 1 in vlan10
Switch(config-rouer)# exit
上記でスイッチBはvlan10から受信したRIPでは0.0.0.0というデフォルトルートだけルーティングテーブルに反映するようになります。
スタティックルートやOSPFの経路を再配布する設定
以下の図のようにスイッチBで172.16.1.0/24への経路をスタティックルートで設定しているとします。
スイッチAとの間ではRIPでやりとりしているため、このスタティックルートもRIPで配信したい場合はスイッチBで以下の設定を追加します。
Switch(config)# ip route 172.16.1.0 255.255.255.0 172.16.2.1 Switch(config)# router rip Switch(config-router)# redistribute static metric 1 Switch(config-rouer)# exit
緑の文字はスタティックルートの設定です。宛先172.16.1.0のネットワークのゲートウェイを172.16.2.1と設定しています。
赤字の部分がスタティックルートを再配布する設定で、上記ではスタティックルート172.16.1.0をホップ数1でRIPの送信を行う設定をしています。metricの後の数字を変える事でホップ数を変更出来ます。
デフォルトルートも同様にスタティックルートで設定していれば再配布可能です。
スタティックルートをRIPに再配布する場合はスプリットホライズンに注意して下さい。詳細はトラブル対応の「サブネット追加で通信不可」をご参照下さい。
又、OSPFの経路をRIPで再配布するためには以下のように設定します。
Switch(config)# router ospf 1 Switch(config-router)# network 172.16.0.0 0.0.255.255 area 0.0.0.0 Switch(config-rouer)# exit Switch(config)# router rip Switch(config-router)# redistribute ospf 1 metric 1 Switch(config-rouer)# exit
緑の文字はOSPFの設定です。赤字がOSPFをRIPに再配布する設定で、スタティックルートの時と殆ど同じです。redistribute ospfの後の1はプロセス番号で、router ospfの後の番号と合わせる必要があります。
又、OSPFで受信した経路をRIPで流す際にフィルタリングしたい場合は以下のように設定します。
Switch(config)# access-list 1 permit 172.16.3.0 0.0.0.255 Switch(config)# route-map ospf-to-rip deny 10 Switch(config-route-map)# match ip address 1 Switch(config-route-map)# exit Switch(config)# route-map ospf-to-rip permit 20 Switch(config-route-map)# exit Switch(config)# router rip Switch(config-router)# redistribute ospf 1 metric 1 route-map ospf-to-rip Switch(config-rouer)# exit
上記の設定でOSPFで受信した内、172.16.3.0/24の経路を除きRIPで送信するようになります。
留意点としてはaccess-listでpermitになっていてroute-mapでdenyになっている点です。access-listでは172.16.3.0/24をpermitして限定し、route-mapではそれを拒否する事でその経路を除く設定になっています。
これはスタティックルートに対しても設定可能で以下のようになります。
Switch(config)# access-list 2 permit 172.16.4.0 0.0.0.255 Switch(config)# route-map static-to-rip deny 10 Switch(config-route-map)# match ip address 2 Switch(config-route-map)# exit Switch(config)# route-map static permit 20 Switch(config-route-map)# exit Switch(config)# router rip Switch(config-router)# redistribute static metric 1 route-map static-to-rip Switch(config-rouer)# exit
上記の設定でスタティックルートからの再配布は172.16.4.0/24を除き再配送されます。
デフォルトルートを常に送信
ルーティングテーブルにデフォルトルートがあればRIPで送信しますが、デフォルトルートがない場合でも送信したい場合があります。
例えば以下の図のようにスイッチBのデフォルトルートはスタティックルーティングやOSPF等でスイッチAに向いており、スイッチCへはスイッチBから再配送によりRIPでデフォルトルートだけを送信しているとします。
この場合、スイッチCからスイッチDへの通信でもデフォルトルートを使っていて、スイッチAがダウンするとスイッチBのデフォルトルートがルーティングテーブルからなくなり、スイッチCのデフォルトルートも消えてしまう可能性があります。スイッチCのデフォルトルートが消えるとスイッチDとの間で通信不可になってしまいますが、これを防ぐ為にスイッチBからスイッチCに常にデフォルトルートを配信する事が出来ます。
スイッチBの設定は以下の通りで、インターフェースやVLAN、RIPの初期設定は同様に省略します。
Switch(config)# router rip Switch(config-router)# default-information originate Switch(config-rouer)# exit
この設定でスイッチAがダウンしてスイッチBのデフォルトルートがルーティングテーブルからなくなっても、スイッチBからスイッチCに対してデフォルトルートが送信されます。
RIPを送信しないインターフェースの設定
RIPを送信したくないインターフェースがある場合は以下のコマンドを追加します。
Switch(config)# router rip Switch(config-router)# passive-interface vlan10 Switch(config-rouer)# exit
上記はvlan10にRIPを流さない設定ですがRIPの受信は行います。受信も止めたい場合はdistribute-listを使う必要がありますが、OSPFでやりとりするインターフェース等、RIPが不要なインターフェースに対してフィルタリングの設定をする事なく簡単にRIPを事実上停止出来ます。
アドレスの集約をしない設定
以下の図のようにサブネットが分断されたネットワークがあるとします。172.18.1.0/24と172.18.2.0/24はクラスBの172.18.0.0という同じネットワークアドレスで間に172.17.0.0のネットワークが挟まっています。
このためRIPではルート集約されてしまい、スイッチBからもスイッチCからも172.18.0.0というネットワークアドレスがRIPで流れます。スイッチAのルーティングテーブルで172.18.0.0という経路に対するゲートウェイは1つだけ反映されるため、スイッチAからは172.18.1.0か172.18.2.0のどちらかのサブネットしか通信出来ません。
RIPv1ではこれを防げませんが、RIPv2では以下の設定を追加する事でアドレスの集約をしないように出来ます。
Switch(config)# router rip Switch(config-router)# no auto-summary Switch(config-rouer)# exit
上記の設定により、スイッチBからは172.18.1.0/24、スイッチCからは172.18.2.0/24というサブネットでRIPが送信され、スイッチAのルーティングテーブルで2つのサブネットに対する経路が反映されます。
RIP設定時の考慮点
RIPを動作させるだけであれば、最初に示した基本設定を行い、RIPv2を使う時はバージョンを設定すれば動作します。
ある程度の規模になると、コアスイッチを2台でアクティブ、スタンバイにするためホップ数の変更が必要であったり、OSPFやスタティックルーティングと併用している場合もあり、上記で説明したオプション設定のどれか、又は複数が必要になります。
- 応用編「RIP」