作業環境
- Nexus 9000v
- NXOS: version 9.3(10)
検証構成

上の構成で Nexus01 にて OSPF で受信した Nexus02 をソースとするルートの AD 値を 200
にするよう設定してみます。
ベースとなる基本設定
Nexus01 と Nexus02 の基本的な設定として以下が設定されているものとします。
Nexus01 側
route-map Direct_to_OSPF permit 10
set metric 100
set metric-type type-1
interface Vlan10
no shutdown
ip address 192.168.75.111/24
ip router ospf 10 area 0.0.0.0
interface Vlan20
no shutdown
ip address 172.16.20.1/24
interface Ethernet1/1
switchport access vlan 10
interface Ethernet1/2
switchport access vlan 20
interface loopback0
ip address 10.1.1.1/32
router ospf 10
router-id 10.1.1.1
redistribute direct route-map Direct_to_OSPF
Nexus02 側
route-map Direct_to_OSPF permit 10
set metric 100
set metric-type type-1
interface Vlan10
no shutdown
ip address 192.168.75.112/24
ip router ospf 10 area 0.0.0.0
interface Vlan30
no shutdown
ip address 172.16.30.1/24
interface Ethernet1/1
switchport access vlan 10
interface Ethernet1/2
switchport access vlan 30
interface loopback0
ip address 10.1.1.2/32
router ospf 10
router-id 10.1.1.2
redistribute direct route-map Direct_to_OSPF
AD 値を変える設定方法
以下では上記の設定をベースとして、Nexus01 側で、OSPF で受信した Nexus02 をソースとするルートルートの AD 値を 200
にするよう設定してみます。
必要な設定は以下です。
- プレフィックスリストの設定
- ルートマップの設定
- OSPF プロセスでのテーブルマップの設定
プレフィックスリストの設定
設定の中でプレフィックスリストを使用するため、まずはプレフィックスリストを設定します。このプレフィックスリストでは、AD 値を変更するルートのソースとなるルータ(今回の例では Nexus02)の IP アドレス(ルータ ID)を指定します。
ip prefix-list <プレフィックスリスト名> permit <アドレス/マスク長>
ip prefix-list Nexus02 permit 10.1.1.2/32
ルートマップの設定
ルートマップでは、AD 値を変更する対象のルート(今回の例では Nexus02 をソースとするルート)に設定したい AD 値を指定します。
route-map <ルートマップ名> permit <シーケンス番号>
match ip route-source prefix-list <プレフィックスリスト名>
set distance <AD 値>
route-map Nexus02ad200 permit 10
match ip route-source prefix-list Nexus02
set distance 200
OSPF プロセスでのテーブルマップの設定
最後に OSPF プロセスに対して、上で作成したルートマップをテーブルマップとして設定します。
router ospf <プロセス ID>
table-map <ルートマップ名>
router ospf 10
table-map Nexus02ad200
AD 値の確認
Nexus01 のルーティングテーブルを確認してみます。
Nexus01# show ip route
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
10.1.1.1/32, ubest/mbest: 2/0, attached
*via 10.1.1.1, Lo0, [0/0], 01:08:15, local
*via 10.1.1.1, Lo0, [0/0], 01:08:15, direct
10.1.1.2/32, ubest/mbest: 1/0
*via 192.168.75.112, Vlan10, [200/140], 00:56:17, ospf-10, type-1 '←★注目★'
172.16.20.0/24, ubest/mbest: 1/0, attached
*via 172.16.20.1, Vlan20, [0/0], 01:09:44, direct
172.16.20.1/32, ubest/mbest: 1/0, attached
*via 172.16.20.1, Vlan20, [0/0], 01:09:44, local
172.16.30.0/24, ubest/mbest: 1/0
*via 192.168.75.112, Vlan10, [200/140], 00:56:17, ospf-10, type-1 '←★注目★'
192.168.75.0/24, ubest/mbest: 1/0, attached
*via 192.168.75.111, Vlan10, [0/0], 01:10:26, direct
192.168.75.111/32, ubest/mbest: 1/0, attached
*via 192.168.75.111, Vlan10, [0/0], 01:10:26, local
上記の通り、OSPF で受信した Nexus02 をソースとするルートの AD 値 が 200
になっていることが分かります。
show ip ospf route
でも distance が 200 になっていることが分かります。
Nexus01# show ip ospf route
OSPF Process ID 10 VRF default, Routing Table
(D) denotes route is directly attached (R) denotes route is in RIB
(L) denotes route label is in ULIB (NHR) denotes next-hop is in RIB
10.1.1.2/32 (type-1)(R) area 0.0.0.0
via 192.168.75.112/Vlan10 , cost 140 distance 200 (NHR)
172.16.30.0/24 (type-1)(R) area 0.0.0.0
via 192.168.75.112/Vlan10 , cost 140 distance 200 (NHR)
192.168.75.0/24 (intra)(D) area 0.0.0.0
via 192.168.75.111/Vlan10* , cost 40 distance 110 (NHR)
留意点
上で説明した方法では、prefix-list で指定したルータ ID のルータが生成元となっているルートを対象として AD 値が変更されます。
例えば、以下のような構成で、上記の設定例と同様に Nexus01 で Router ID 10.1.1.2 (Nexus02) をソースとするルートの AD 値を変更する設定をした場合を考えます。

Nexus01 が Nexus03 から OSPF で受信するルートは以下の 3 つがあります。
- 10.1.1.2/32 (Nexus02 で生成されたルート)
- 192.168.179.0/24 (Nexus02 で生成されたルート)
- 10.1.1.3/32 (Nexus03 で生成されたルート)
このうち、Nexus01 で AD 値が変更されるルートは Nexus02 で生成されたルート(10.1.1.2/32、192.168.179.0/24)のみとなり、Nexus03 で生成されたルート(10.1.1.3/32)の AD 値は変更されません。
EIGRP においても今回説明した方法と似たような方法で特定ルートの AD 値を変更することができますが、EIGRP と OSPF とでは動作仕様が異なるため注意してください。