ox0xo infosec tutorial

ダイナミックルーティング(OSPF)

2018-08-21

ダイナミックルーティング(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

Content