概要

FVRF(Front door VRF)の理解を深めるために、FVRFを利用しないネットワーク構成について考えます。ポイントツーポイントGREトンネルでオーバーレイネットワークを構築します。VRFを利用しない場合に生じうる問題点を考えます。

関連記事

FVRFの概要について、以下の記事で解説しています。

[FVRFの仕組み] FVRF(Front door VRF)とは
https://www.n-study.com/advanced-iprouting/front-door-vrf-overview
FVRF(Front door VRF)とは、オーバーレイネットワークとアンダーレイネットワークをVRFで論理的に分割することです。FVRFの考え方について解説します。

GREトンネルインタフェースについて、以下の記事で解説しています。

FVRFを利用しないGREオーバーレイネットワークの問題点

GREトンネルインタフェースを利用すると、オーバーレイネットワークとして、ポイントツーポイントネットワークを構築できます。IPで通信可能なルータ間を、見かけ上、直接接続とみなすことができます。

こうしたGREオーバーレイネットワークで、VRFを利用せずにデフォルトのルーティングプロセスだけ利用していると、オーバーレイネットワークのルート情報とアンダーレイネットワークのルート情報が混在します。

図 オーバーレイネットワークとアンダーレイネットワークのルートが混在
図 オーバーレイネットワークとアンダーレイネットワークのルートが混在

すなわち、オーバーレイネットワークとアンダーレイネットワークのルーティングがお互い関連してしまうことになります。ルーティングの設定を少し間違えると、オーバーレイネットワークが壊れてしまうことがあります。オーバーレイネットワークを正しく機能させるためには、ルートフィルタなどの追加の制御が必要です。

また、オーバーレイネットワークとアンダーレイネットワークのアドレス範囲の重複ができません。オーバーレイネットワークを複数構築するときにも、アドレス範囲の重複ができません。

以降では、FVRFを利用していないポイントツーポイントGREオーバーレイネットワークの問題点を具体的なネットワーク構成で解説します。

FVRFを利用しないGREオーバーレイネットワークの例

ネットワーク構成

次のネットワーク構成を考えます。

図 ネットワーク構成
図 ネットワーク構成

R11-R12間でポイントツーポイントGREトンネルのオーバーレイネットワークを構築します。

また、オーバーレイネットワークとアンダーレイネットワークのアドレス範囲は、重複しないようにしています。オーバーレイネットワークは、172.16.x.xおよび172.17.x.x、172.18.x.xといったクラスBのプライベートアドレスでアドレッシングしています。そして、アンダーレイネットワークは、10.x.x.xのクラスAのプライベートアドレスでアドレッシングしています。

オーバーレイネットワークとアンダーレイネットワークを分離するために、利用するルーティングプロトコルを分けています。オーバーレイネットワークではEIGRPを利用し、アンダーレイネットワークではOSPFを利用します。EIGRPとOSPFの再配送は行いません。

アドレス範囲ルーティングプロトコル
オーバーレイネットワーク172.16.0.0/16 172.17.0.0/16 172.18.0.0/16EIGRP
アンダーレイネットワーク10.0.0.0/8OSPF
図 ルーティングプロトコル
図 ルーティングプロトコル

各機器の設定抜粋

各機器の関連する設定コマンドの抜粋です。重要なのは、R11/R21です。

R11 設定抜粋(Click)

hostname R11
!
interface Loopback0
 ip address 10.0.0.11 255.255.255.255
!
interface Tunnel0
 ip address 172.16.0.11 255.255.255.0
 tunnel source Loopback0
 tunnel destination 10.0.0.21
!
interface Ethernet0/0
 ip address 10.0.11.11 255.255.255.0
!
interface Ethernet0/1
 ip address 172.17.0.11 255.255.255.0
!
router eigrp 1
 network 172.16.0.0
 network 172.17.0.0
 eigrp router-id 11.11.11.11
!
router ospf 1
 router-id 11.11.11.11
 network 10.0.0.11 0.0.0.0 area 0
 network 10.0.11.11 0.0.0.0 area 0

R21 設定抜粋(Click)

hostname R21
!
interface Loopback0
 ip address 10.0.0.21 255.255.255.255
!
interface Tunnel0
 ip address 172.16.0.21 255.255.255.0
 tunnel source Loopback0
 tunnel destination 10.0.0.11
!
interface Ethernet0/0
 ip address 10.0.21.21 255.255.255.0
!
interface Ethernet0/1
 ip address 172.18.0.21 255.255.255.0
!
router eigrp 1
 network 172.16.0.0
 network 172.18.0.0
 eigrp router-id 21.21.21.21
!
router ospf 1
 router-id 21.21.21.21
 network 10.0.0.21 0.0.0.0 area 0
 network 10.0.21.21 0.0.0.0 area 0

R12 設定抜粋(Click)

hostname R12
!
interface Loopback0
 ip address 172.17.12.12 255.255.255.0
 ip ospf network point-to-point
!
interface Ethernet0/0
 ip address 172.17.0.12 255.255.255.0
!
router eigrp 1
 network 172.17.0.0
 eigrp router-id 12.12.12.12

R22 設定抜粋(Click)

hostname R22
!
interface Loopback0
 ip address 172.18.22.22 255.255.255.0
 ip ospf network point-to-point
!
interface Ethernet0/0
 ip address 172.18.0.22 255.255.255.0
!
router eigrp 1
 network 172.18.0.0
 eigrp router-id 22.22.22.22

UL1 設定抜粋(Click)

hostname UL1
!
interface Ethernet0/0
 ip address 10.0.11.1 255.255.255.0
!
interface Ethernet0/1
 ip address 10.0.0.1 255.255.255.0
!
router ospf 1
 router-id 1.1.1.1
 network 10.0.0.0 0.255.255.255 area 0

UL2 設定抜粋(Click)

hostname UL2
!
interface Ethernet0/0
 ip address 10.0.21.2 255.255.255.0
!
interface Ethernet0/1
 ip address 10.0.0.2 255.255.255.0
!
router ospf 1
 router-id 2.2.2.2
 network 10.0.0.0 0.255.255.255 area 0

オーバーレイネットワークとアンダーレイネットワークのルート情報が混在

先に述べているように、VRFを利用していないとオーバーレイネットワークとアンダーレイネットワークのルート情報が混在します。R11のルーティングテーブルを見ると、次のような内容になっています。

R11 ルーティングテーブル

R11#show ip route | exclude L
~省略~

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
O        10.0.0.0/24 [110/20] via 10.0.11.1, 00:00:17, Ethernet0/0
C        10.0.0.11/32 is directly connected, Loopback0
O        10.0.0.21/32 [110/31] via 10.0.11.1, 00:00:07, Ethernet0/0
C        10.0.11.0/24 is directly connected, Ethernet0/0
O        10.0.21.0/24 [110/30] via 10.0.11.1, 00:00:17, Ethernet0/0
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.0.0/24 is directly connected, Tunnel0
      172.17.0.0/16 is variably subnetted, 3 subnets, 2 masks
C        172.17.0.0/24 is directly connected, Ethernet0/1
D        172.17.12.0/24 [90/409600] via 172.17.0.12, 00:01:02, Ethernet0/1
      172.18.0.0/24 is subnetted, 2 subnets
D        172.18.0.0 [90/26905600] via 172.16.0.21, 00:00:07, Tunnel0
D        172.18.22.0 [90/27033600] via 172.16.0.21, 00:00:07, Tunnel0
図 R11 ルーティングテーブル
図 R11 ルーティングテーブル

R11のルーティングテーブルには、アンダーレイネットワークの10.x.x.xのルート情報とオーバーレイネットワーク経由で通信する「172.16.x.x」「172.17.x.x」「172.18.x.x」のルート情報が混在してしまっています。R21も同様です。

なお、オーバーレイネットワークとアンダーレイネットワークのルーティングプロトコルを分けています。そして、再配送していません。そのため、R11/R21以外のルータはオーバーレイネットワークのルート情報とアンダーレイネットワークのルート情報は混在しません。R12のルーティングテーブルは以下のような内容です。

R12 ルーティングテーブル

R12#show ip route | exclude L
~省略~

Gateway of last resort is not set

      172.16.0.0/24 is subnetted, 1 subnets
D        172.16.0.0 [90/26905600] via 172.17.0.11, 00:11:23, Ethernet0/0
      172.17.0.0/16 is variably subnetted, 4 subnets, 2 masks
C        172.17.0.0/24 is directly connected, Ethernet0/0
      172.18.0.0/24 is subnetted, 2 subnets
D        172.18.0.0 [90/26931200] via 172.17.0.11, 00:11:22, Ethernet0/0
D        172.18.22.0 [90/27059200] via 172.17.0.11, 00:11:22, Ethernet0/0

オーバーレイネットワークを壊す

ルーティングプロトコルを分けることで、オーバーレイネットワークとアンダーレイネットワークを分離しているわけです。ただ、ルーティングプロトコルのちょっとした設定ミスで簡単にオーバーレイネットワークが壊れます。

具体的には、tunnel destinationとして設定しているR11/R21のLoopback0をオーバーレイネットワークのEIGRPでアドバタイズすると、オーバーレイネットワーク(GREトンネル)が壊れます。R11のLoopback0(10.0.0.11)をEIGRPでアドバタイズしてみます。なお、R11のLo0(10.0.0.11)は、R21からアンダーレイネットワーク上を転送するときの宛先IPアドレスです。

R11 Lo0をEIGRPでアドバタイズ(GREトンネルを壊す)

router eigrp 1
 network 10.0.0.11 0.0.0.0

これだけでR11-R21間のGREトンネルが壊れます。R21側で、定期的にTunnel0がup/downを繰り返してフラッピングしているログが出てきます。

R21 Tunnel0のフラッピング

R21#
*Aug 29 01:51:09.218: %TUN-5-RECURDOWN: Tunnel0 temporarily disabled due to recursive routing
*Aug 29 01:51:09.218: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
*Aug 29 01:51:09.218: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.0.11 (Tunnel0) is down: interface down
R21#
*Aug 29 01:52:09.257: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
*Aug 29 01:52:10.212: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.0.11 (Tunnel0) is up: new adjacency
R21#
*Aug 29 01:52:10.535: %ADJ-5-PARENT: Midchain parent maintenance for IP midchain out of Tunnel0 - looped chain attempting to stack
R21#

R11のLo0でEIGRPを有効にしてしまうと、Tunnel0からEIGRPルート10.0.0.11/32をアドバタイズします。R21は、OSPFルートの10.0.0.11/32とEIGRPルートの10.0.0.11/32を受信します。EIGRPのアドミニストレイティブディスタンスが小さいので、EIGRPルートが優先されます。すると、R21はTunnel0を確立するために必要なルート情報をTunnel0で学習することになります。その結果、Tunnel0が壊れてしまいます。

図 オーバーレイネットワーク(GREトンネル)が壊れる
図 オーバーレイネットワーク(GREトンネル)が壊れる

こんなふうにGREトンネルが壊れてしまわないように、オーバーレイネットワークとアンダーレイネットワークのルーティングプロトコルを分けていたのです。でも、ちょっとした設定ミスでGREトンネルのオーバーレイネットワークは壊れてしまいます。ルーティングプロトコルをわけるだけでなく、さらにルートフィルタも行っていると防止できます。

でも、

「1つのルーティングプロセスの中でいろんな制御をしなくても、VRFで分けてしまえばOKです!」

ということがFVRFのポイントです。

まとめ

ポイント

  • GREオーバーレイネットワークで、VRFを利用せずにデフォルトのルーティングプロセスだけ利用していると、オーバーレイネットワークのルート情報とアンダーレイネットワークのルート情報が混在します。
  • オーバーレイネットワークが設定ミスなどで壊れてしまわないように、さまざまなルーティングの制御が必要です。

IPルーティング応用