検証環境
- Nexus 9000v
- NXOS: version 9.3(10)
特定ネイバーから受信した EIGRP ルートの AD 値を変更する
ネットワーク内において EIGRP を使用している環境において、特定ネイバーから受信したルートを優先/非優先としたい場合があります。
同一の宛先へのルートが複数ある場合、ルートの AD 値によって優先されるルートが決まりますが、特定のルートの AD 値を変更することで優先されるルートを変更することができます。
以下では、EIGRP において特定ネイバーからのルートの AD 値を変更する方法について記載します。
検証構成

上の構成で Nexus01 側にて Nexus02 から EIGRP で受信したルートの AD 値を 255
にするよう設定してみます。
ベースとなる基本設定
Nexus01 と Nexus02 の基本的な設定として以下が設定されているものとします。
Nexus01 側
route-map Direct_to_EIGRP permit 10
set metric 1000000 100 255 255 1500
interface Vlan75
no shutdown
ip address 192.168.75.200/24
interface Vlan200
no shutdown
ip address 192.168.200.200/24
ip router eigrp 100
interface Ethernet1/1
switchport access vlan 200
interface Ethernet1/2
switchport access vlan 75
interface loopback0
ip address 10.1.1.1/32
router eigrp 100
router-id 10.1.1.1
redistribute direct route-map Direct_to_EIGRP
Nexus02 側
route-map Direct_to_EIGRP permit 10
set metric 1000000 100 255 255 1500
interface Vlan179
no shutdown
ip address 192.168.179.201/24
interface Vlan200
no shutdown
ip address 192.168.200.201/24
ip router eigrp 100
interface Ethernet1/1
switchport access vlan 200
interface Ethernet1/2
switchport access vlan 179
interface loopback0
ip address 10.1.1.2/32
router eigrp 100
router-id 10.1.1.2
redistribute direct route-map Direct_to_EIGRP
この状態でのルート情報
上記基本設定のみ行っている状態ではそれぞれの機器でのルーティングテーブルは以下のようになっています。
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], 00:20:54, local
*via 10.1.1.1, Lo0, [0/0], 00:20:54, direct
10.1.1.2/32, ubest/mbest: 1/0
*via 192.168.200.201, Vlan200, [170/28416], 00:21:06, eigrp-100, external
192.168.75.0/24, ubest/mbest: 1/0, attached
*via 192.168.75.200, Vlan75, [0/0], 00:27:50, direct
192.168.75.200/32, ubest/mbest: 1/0, attached
*via 192.168.75.200, Vlan75, [0/0], 00:27:50, local
192.168.179.0/24, ubest/mbest: 1/0
*via 192.168.200.201, Vlan200, [170/28416], 00:21:06, eigrp-100, external
192.168.200.0/24, ubest/mbest: 1/0, attached
*via 192.168.200.200, Vlan200, [0/0], 01:26:49, direct
192.168.200.200/32, ubest/mbest: 1/0, attached
*via 192.168.200.200, Vlan200, [0/0], 01:26:49, local
Nexus02# 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: 1/0
*via 192.168.200.200, Vlan200, [170/28416], 00:21:06, eigrp-100, external
10.1.1.2/32, ubest/mbest: 2/0, attached
*via 10.1.1.2, Lo0, [0/0], 00:21:49, local
*via 10.1.1.2, Lo0, [0/0], 00:21:49, direct
192.168.75.0/24, ubest/mbest: 1/0
*via 192.168.200.200, Vlan200, [170/28416], 00:21:19, eigrp-100, external
192.168.179.0/24, ubest/mbest: 1/0, attached
*via 192.168.179.201, Vlan179, [0/0], 00:27:11, direct
192.168.179.201/32, ubest/mbest: 1/0, attached
*via 192.168.179.201, Vlan179, [0/0], 00:27:11, local
192.168.200.0/24, ubest/mbest: 1/0, attached
*via 192.168.200.201, Vlan200, [0/0], 01:26:13, direct
192.168.200.201/32, ubest/mbest: 1/0, attached
*via 192.168.200.201, Vlan200, [0/0], 01:26:13, local
上記の通り EIGRP で受信したルートの AD 値は EIGRP External の AD 値である 170
となっています。
AD 値を変える設定方法
以下では上記の設定をベースとして、Nexus01 側で、Nexus02 から EIGRP で受信したルートの AD 値を 255
にするよう設定してみます。
必要な設定は以下です。
- プレフィックスリストの設定
- ルートマップの設定
- EIGRP プロセスでのテーブルマップの設定
プレフィックスリストの設定
設定の中でプレフィックスリストを使用するため、まずはプレフィックスリストを設定します。このプレフィックスリストでは、AD 値を変更したいルートの配信元となるルータ(今回の例では Nexus02)の IP アドレス(Nexus01 側で show ip eigrp neighbors で表示されるアドレス ※ルータ ID ではない)を指定します。
ip prefix-list <プレフィックスリスト名> [seq <num>] permit <アドレス/マスク長>
- seq を指定しない場合は 5 刻みの値が自動で入ります
ip prefix-list Nexus02 seq 5 permit 192.168.200.201/32
ルートマップの設定
ルートマップでは、AD 値を変更する対象のルート(今回の例では Nexus02 から受信したルート)に設定したい AD 値を指定します。
route-map <ルートマップ名> permit <シーケンス番号>
match ip route-source prefix-list <プレフィックスリスト名>
set distance <AD 値>
route-map Nexus02ad255 permit 10
match ip route-source prefix-list Nexus02
set distance 255
EIGRP プロセスでのテーブルマップの設定
最後に EIGRP プロセスに対して、上で作成したルートマップをテーブルマップとして設定します。
router eigrp <プロセス ID>
table-map <ルートマップ名>
router eigrp 100
table-map Nexus02ad255
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], 00:55:18, local
*via 10.1.1.1, Lo0, [0/0], 00:55:18, direct
10.1.1.2/32, ubest/mbest: 1/0
*via 192.168.200.201, Vlan200, [255/28416], 00:13:53, eigrp-100, external '←★注目★'
192.168.75.0/24, ubest/mbest: 1/0, attached
*via 192.168.75.200, Vlan75, [0/0], 01:02:14, direct
192.168.75.200/32, ubest/mbest: 1/0, attached
*via 192.168.75.200, Vlan75, [0/0], 01:02:14, local
192.168.179.0/24, ubest/mbest: 1/0
*via 192.168.200.201, Vlan200, [255/28416], 00:13:53, eigrp-100, external '←★注目★'
192.168.200.0/24, ubest/mbest: 1/0, attached
*via 192.168.200.200, Vlan200, [0/0], 00:24:15, direct
192.168.200.200/32, ubest/mbest: 1/0, attached
*via 192.168.200.200, Vlan200, [0/0], 00:24:15, local
上記の通り、Nexus02 から EIGRP で受信したルートの AD 値 が 255
になっていることが分かります。
留意点
上で説明した方法では、prefix-list で指定した IP アドレスの EIGRP ネイバーから受信するルートすべてを対象として AD 値が変更されます。
例えば、以下のような構成で、 Nexus01 で IP アドレス 10.10.1.2 (Nexus03) のネイバーから受信するルートの AD 値を変更する設定をした場合を考えます。

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