OSPF Sham Linkの概要

Sham Linkとは、MPLS-VPNバックボーンで構成する仮想的なOSPFリンクです。Sham Linkによって、PEルータ間をある特定のエリアのポイントツーポイントリンクで接続しているようにみなすことができます。Sham LinkによりMPLS-VPNバックボーンをまたがって、同一のOSPFエリアを構成することが可能です。

図 Sham Linkの概要
図 Sham Linkの概要

OSPF Sham Linkが必要な構成

Sham Linkが必要となる構成の例として、次のネットワーク構成を考えます。

図 Sham Linkが必要なネットワーク構成
図 Sham Linkが必要なネットワーク構成

このネットワーク構成は、サイト1とサイト2をMPLS-VPNで接続しています。そして、MPLS-VPNの障害に備えてCE1-CE2間を直接接続しています。このようなネットワーク構成で、通常はMPLS-VPN経由でサイト間の通信を行うものとします。しかし、ルーティングプロトコルとしてOSPFを利用して、サイト1、サイト2を同一のOSPFエリアとする場合、Sham Linkの設定がないとサイト間の通信はCE1-CE2間を経由して行われることになります。

以降で、サイト1、サイト2は同一のエリア0に含まれるものとして、具体的にSham Linkの設定がない場合のサイト間のルーティングについて考えます。ポイントは次の2点です。

  • OSPFとMP-BGPでの最適ルートの決定
  • OSPFエリア内ルートとエリア間ルートでの最適ルートの決定

この2点によって、Sham Linkの設定がないとサイト間の通信はCE1-CE2間を経由して行われてしまいます。

ルートのアドバタイズ(Sham Linkなし)

PEルータ間でSham Linkの設定をしていない場合のエリア構成は、次の図のようになります。

図 エリア構成(Sham Linkなし)
図 エリア構成(Sham Linkなし)

MPLS-VPNバックボーンは、スーパーバックボーンとしてOSPFエリア0のように振る舞いますが、エリア0ではありません。そのため、上の図のようなエリア構成となります。ここで、サイト2の172.16.2.0/24のネットワークに注目して、このルートがどのようにアドバタイズされるかを考えます。

サイト2の172.16.2.0/24はOSPFのルートとして、CE2からCE1とPE2へアドバタイズされます。

実際にはLSAとして送信しますが、分かりやすくするためにネットワークアドレス/サブネットマスクの形で表記します。

PE2はVRFのOSPFのルート 172.16.2.0/24をVPNv4ルートとしてPE1へアドバタイズします。また、CE1を経由してPE1へアドバタイズされます。

図 ルートのアドバタイズ
図 ルートのアドバタイズ

PE2からPE1へアドバタイズするVPNv4ルートのRDは省略しています。

この図のように、PE1にはOSPFのルートとして172.16.2.0/24を学習しています。そして、MP-BGPで172.16.2.0/24を学習しています。PE1では同じルートをVRFのOSPFとMP-BGPの両方で学習しているので、アドミニストレイティブディスタンスによってどちらを優先するかを決定します。OSPFのAD 110です。また、MP-BGPは同じASなのでAD 200です。つまり、PE1ではVRFのOSPFで学習したルートが優先されます。すると、PE1からCE1には172.16.2.0/24のルートをアドバタイズすることがなくなります。

図 PE1での172.16.2.0/24に対する最適ルート
図 PE1での172.16.2.0/24に対する最適ルート

PE1でのルーティングテーブルは、次のように172.16.2.0/24のルートとしてCE1から学習したルートが登録されています。

PE1 show ip route vrf VPN

PE1#sh ip route vrf VPN

Routing Table: VPN
~省略~

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 3 subnets
O       172.16.12.0 [110/11] via 10.1.1.2, 00:00:43, FastEthernet1/0
O       172.16.1.0 [110/2] via 10.1.1.2, 00:00:43, FastEthernet1/0
O       172.16.2.0 [110/12] via 10.1.1.2, 00:00:43, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
O       10.2.2.0 [110/12] via 10.1.1.2, 00:00:43, FastEthernet1/0
C       10.1.1.0 is directly connected, FastEthernet1/0

CE1は172.16.2.0/24をCE2からしか学習しません。その結果、172.16.2.0/24あてのパケットはMPLS-VPN経由ではなく、直接CE2へルーティングします。

図 CE1から172.16.2.0/24への転送経路
図 CE1から172.16.2.0/24への転送経路

CE1のルーティングテーブルと172.16.2.2へのトレースルートは次のようになっています。

CE1 show ip route/trace 172.16.2.2

CE1#sh ip route
~省略~

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 3 subnets
C       172.16.12.0 is directly connected, FastEthernet0/0
C       172.16.1.0 is directly connected, Loopback0
O       172.16.2.0 [110/11] via 172.16.12.2, 00:04:00, FastEthernet0/0
     10.0.0.0/24 is subnetted, 2 subnets
O       10.2.2.0 [110/11] via 172.16.12.2, 00:04:00, FastEthernet0/0
C       10.1.1.0 is directly connected, FastEthernet1/0
CE1#traceroute 172.16.2.2 source 172.16.1.1

Type escape sequence to abort.
Tracing the route to 172.16.2.2

  1 172.16.12.2 36 msec 48 msec *

同じことは、サイト1の172.16.1.0/24についても言えます。つまり、サイト間の通信はすべて本来バックアップ用途として考えているCE1-CE2間のリンクを通じて行われることになってしまいます。

ルートのアドバタイズ(Sham Linkなし/AD変更)

PE1でMP-BGPとOSPFのADの比較によって、PE1からは172.16.2.0/24のルートはCE1へ送信されなくなっています。そこで、PE1でADを調整してPE1からCE1へ172.16.2.0/24のルートをアドバタイズできるようにします。PE1で次のように設定してOSPFのAD値を201とし、MP-BGPのルートが優先されるようにします。

PE1

router ospf 100 vrf VPN
 distance 201

図 PE1で172.16.2.0/24に対する最適ルート(AD変更)
図 PE1で172.16.2.0/24に対する最適ルート(AD変更)

すると、PE1でVRFのルーティングテーブルは次のようになります。

PE1 show ip route vrf VPN

PE1#sh ip route vrf VPN

Routing Table: VPN
~省略~

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 3 subnets
B       172.16.12.0 [200/11] via 2.2.2.2, 00:01:00
O       172.16.1.0 [201/2] via 10.1.1.2, 00:00:40, FastEthernet1/0
B       172.16.2.0 [200/2] via 2.2.2.2, 00:01:00
     10.0.0.0/24 is subnetted, 2 subnets
B       10.2.2.0 [200/0] via 2.2.2.2, 00:01:00
C       10.1.1.0 is directly connected, FastEthernet1/0

PE1で172.16.2.0/24のルートとしてMP-BGPが優先されるようになれば、OSPFへ再配送されてPE1からCE1へ172.16.2.0/24のルートがアドバタイズされます。ただし、PE1からCE1へアドバタイズされる172.16.2.0/24はエリア間ルート(LSAタイプ3)です。CE1ルータは、172.16.2.0/24のルートをPE1とCE2から受信します。CE1ルータはメトリックに関係なく、必ずCE2から受信した172.16.2.0/24のルートを優先します。OSPFではエリア間ルートよりもエリア内ルートを優先するからです。

図 CE1での172.16.2.0/24に対する最適ルート
図 CE1での172.16.2.0/24に対する最適ルート

PE1でADを調整することで、PE1からCE1へ172.16.2.0/24へルートをアドバタイズするようにしても、サイト間の通信経路は変わりません。CE1はサイト2のネットワークへIPパケットをルーティングするときには、直接CE2へ転送します。

図 CE1から172.16.2.0/24への転送経路
図 CE1から172.16.2.0/24への転送経路

CE1のルーティングテーブルと172.16.2.2へのトレースルートは次のようになっています。

CE1 show ip route/trace 172.16.2.2

CE1#show ip route
~省略~

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 3 subnets
C       172.16.12.0 is directly connected, FastEthernet0/0
C       172.16.1.0 is directly connected, Loopback0
O       172.16.2.0 [110/11] via 172.16.12.2, 00:15:03, FastEthernet0/0
     10.0.0.0/24 is subnetted, 2 subnets
O       10.2.2.0 [110/11] via 172.16.12.2, 00:15:03, FastEthernet0/0
C       10.1.1.0 is directly connected, FastEthernet1/0
CE1#traceroute 172.16.2.2 source 172.16.1.1

Type escape sequence to abort.
Tracing the route to 172.16.2.2

  1 172.16.12.2 32 msec 32 msec *

以上のように、Sham Linkの設定がないと、サイト間の通信はCE1-CE2間を経由することがわかります。

Sham Linkのエリア構成

PE1-PE2間でエリア0のSham Linkを構成することで、PE1-PE2間はポイントツーポイントのエリア0のリンクとみなされます。そのときのエリア構成を図にすると、次のようになります。

図 エリア構成(Sham Linkあり)
図 エリア構成(Sham Linkあり)


このとき、先ほどまでと同様にCE1でサイト2の172.16.2.0/24のルートについて考えます。CE1はサイト2の172.16.2.0/24のルートをCE2から受信します。また、PE1からも受信します。全体が単一のエリアなので両方ともエリア内ルートです。そのため、最適ルートはメトリックの比較によって決まります。Sham Linkのコストは設定によって決定できますが、デフォルトは1です。コストを考えると、CE1では172.16.2.0/24のルートとしてPE1から受信したものを最適と判断します。

図 ルートのアドバタイズ(Sham Link設定時)
図 ルートのアドバタイズ(Sham Link設定時)

こうしてSham Linkによって、MPLS-VPNバックボーンを経由して単一エリアにすることでサイト間の通信はMPLS経由で行うようになります。