勉強がてら、自宅ネットワークのルーティング設定をダイナミックルーティングに変更しましたので備忘録として記載しておきます。
小規模なネットワークなのでダイナミックルーティングは全く不要と思います。単なる物好きというやつです。
ルーティングプロトコルにはOSPFを利用しました。
10数年前にはRIP=小規模、OSPF=大規模向けと定義されていたかと思いますが、現在では基本OSPFを利用、というトレンドなんですね。ルータの処理能力が向上したからでしょうか。
構成
図解しないと理解不能になってしまうので、記載しておきます。
当方では2拠点がヤマハのルータでVPN接続されており、各々の拠点にDMZ/LANの2セグメントが存在しています。
そして拠点②にはこちらの記事にて解説したOpenVPNコンテナが稼働しています。モバイル端末からの接続を想定しtunモードになっているので、クライアント格納用のセグメントが別途存在しています。
つまり、RTX1200/RTX1100とOpenVPNコンテナの3台が協調動作し、合計5セグメントのルーティングを構成することになります。
ヤマハRTX設定
上記などを参照しつつ、簡単に設定できました
- 拠点①側 (RTX1200)
ospf use on ospf router id 192.168.B.1 ospf area backbone ip lan1 ospf area backbone ip lan2 ospf area backbone tunnel select 1 ip tunnel ospf area backbone cost=10
- 拠点②側 (RTX1100)
ospf use on ospf router id 192.168.Y.1 ospf area backbone ip lan1 ospf area backbone ip lan2 ospf area backbone tunnel select 1 ip tunnel ospf area backbone cost=10
コスト値を指定しないと、tunnelインタフェーズデフォルトの1562(64kbps)が指定されてしまいますので明示的にコスト値を付けるようにしました。
なお全ポートをOSPFエリアにする必要はないのですが、どうやらRTXではConnectインタフェースをアドバタイズすることができない?らしく、エリアに含めることにしました。
設定変更が終わったら ospf configure refresh の実行を忘れずに。
OpenVPNサーバ(コンテナ)設定追加
OSPFが喋れるように、OpenVPNコンテナにquaggaをインストールします。
# yum install quagga
/etc/quagga以下にzebra.confとospfd.confを設置します。
ospfd.confの内容は以下のような感じ。
hostname openvpn password (パスワード) log stdout ! ! ! interface eth0 ! interface lo ! interface tun0 ! router ospf ospf router-id 192.168.X.4 network 192.168.X.0/24 area 0.0.0.0 network 192.168.Z.0/24 area 0.0.0.1 area 0.0.0.1 range 192.168.Z.2/32 substitute 192.168.Z.0/24 ! line vty !
通常であれば上記リンク先の記事のように
# redistribute connected
としてConnectインタフェースをアドバタイズすれば良いのですが、OpenVPNのtun0はちょっと特殊で32bitネットマスクのNICが接続されているため、そのままではうまくいきません。
[root@openvpn quagga]# ifconfig tun0 tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 192.168.Z.1 netmask 255.255.255.255 destination 192.168.Z.2 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX packets 1064 bytes 74850 (73.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10485 bytes 978528 (955.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
以下の記事を参考にアドバタイズ情報を24bitで代替することに成功しました。
最後にサービス起動、自動起動を有効化し終了です。
# systemctl enable zebra # systemctl enable ospfd # systemctl start zebra # systemctl start ospfd
動作確認
ヤマハルータ側の確認結果
- 拠点①側 (RTX1200)
# show status ospf neighbor Neighbor ID Pri State Dead Time Address Interface 192.168.Y.1 0 FULL/ - 00:00:31 192.168.Y.1 TUNNEL[1] # show ip route 宛先ネットワーク ゲートウェイ インタフェース 種別 付加情報 default - PP[01] static 192.168.A.0/24 192.168.A.1 LAN2 implicit 192.168.X.0/24 192.168.Y.1 TUNNEL[1] OSPF cost=11 192.168.B.0/24 192.168.B.1 LAN1 implicit 192.168.Y.0/24 192.168.Y.1 TUNNEL[1] OSPF cost=11 192.168.Z.0/24 192.168.Y.1 TUNNEL[1] OSPF cost=21
- 拠点②側 (RTX1100)
# show status ospf neighbor Neighbor ID Pri State Dead Time Address Interface 192.168.X.4 1 FULL/DR 00:00:37 192.168.X.4 LAN1 192.168.B.1 0 FULL/ - 00:00:38 192.168.B.1 TUNNEL[1] # show ip route 宛先ネットワーク ゲートウェイ インタフェース 種別 付加情報 default ***.***.***.*** LAN3 static 192.168.A.0/24 192.168.B.1 TUNNEL[1] OSPF cost=11 192.168.X.0/24 192.168.X.1 LAN1 implicit 192.168.B.0/24 192.168.B.1 TUNNEL[1] OSPF cost=11 192.168.Y.0/24 192.168.Y.1 LAN2 implicit 192.168.Z.0/24 192.168.X.4 LAN1 OSPF cost=11
無事動作しました。
コメント