ダイナミックルーティング(OSPF)
前置き
ルータ数台の小規模なネットワークならばスタティックルーティングでも対応できます。 しかしルータの台数が10台20台と増えたら?
全てのルータの経路情報を手動で管理し続けるのは現実的ではありません。 ルータ同士で自動的に経路情報を交換し合ってネットワーク全体を健全に保ってくれる仕組みが必要です。 RIP、OSPF、BGPといったダイナミックルーティングならそれが可能です。
OSPFの概要
OSPFでは各ルータが隣接するネットワーク情報を交換し合います。 全てのルータの隣接ネットワーク情報が共有されたらネットワークの全体像が分かります。
経路がループしている場合は回線にコストを設定することで優先経路を指示することが出来ます。 これによって通常回線と非常回線による冗長構成をとることが可能になります。
OSPFにはエリアという概念があります。 ルータの台数が100台超の規模になると経路情報の交換によってネットワークの帯域が圧迫されます。 詳細な経路情報の共有は同一エリア内のみで行い、エリア外には大雑把な経路情報を共有することでこの問題を抑制できます。
エリア0はバックボーンとして機能します。 各エリアは経路情報を伝達できるように必ずエリア0への経路を確保する約束になっています。 小規模なOSPFならすべてエリア0で構成することも可能です。
Quaggaの初期設定
OSPFの演習のために仮想ルータ「Quagga」を利用します。 使い始めるための最低限の設定は以下の通りです。
Quaggaの仮想コンソール「vtysh」の設定
# cat >> /etc/quagga/vtysh.conf << END
> service integrated-vtysh-config
> END
Quaggaの動作に必要な設定ファイル作成
# cat >> /etc/quagga/zebra.conf << END
> hostname router
> password zebra
> enable password zebra
> END
Quaggaでospfとbgpを動作させるのに必要な設定ファイル作成
# cp /etc/quagga/zebra.conf /etc/quagga/bgpd.conf
# cp /etc/quagga/zebra.conf /etc/quagga/ospfd.conf
# chown quagga:quagga /etc/quagga/bgpd.conf
# chown quagga:quagga /etc/quagga/ospfd.conf
Quaggaの起動&自動起動を有効化
# systemctl start bgpd ospfd zebra
# systemctl enable bgpd ospfd zebra
Quaggaの基本操作
QuaggaはLinuxのサービスとして動作します。 サービスが再起動するたびに設定が初期化されます。
Quaggaの仮想コンソール「vtysh」を起動する
# vtysh
Quaggaのコンフィグ(後述)を読み込んで設定を再現する
# vtysh -b /etc/quagga/Quagga.conf
Quaggaを再起動する(設定初期化)
# systemctl restart zebra ospfd bgpd
Quaggaのコンフィグ関連操作
vtyshにログインしてから行う操作です。
現在のコンフィグを全て表示する
# show run
現在のコンフィグを保存する
# write
OSPFルーティング基礎設定
vtyshにログインしてから行う操作です。
設定モードに移行する
# config terminal
OSPF設定モードに移行する
(configure)# router ospf
OSPFルータIDを設定する
(configure-router)# ospf router-id 10.10.10.1
隣接するネットワークとエリアを定義する
(configure-router)# network 172.16.0.0/24 area 0
(configure-router)# network 172.16.1.0/24 area 0
隣接するネットワーク情報を他のルータに伝える
(configure-router)# redistribute connected
※必要に応じて
BGPから受け取った経路情報を他のルータに伝える
(configure-router)# redistribute bgp
ひとつ前のモードに戻る
(configure-router)# exit
ネットワークインタフェースの設定モードに移行する
(configure)# interface enp0s8
ネットワークインタフェースのコストを設定する
(config-if)# ospf cost 10
ログイン直後のモードに戻る
(config-if)# end
コンフィグを保存する
# write
Quaggaを終了する
# exit