メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

Cisco IOS XRvをESXiに乗せてみる その3

前回は、Cisco IOS XRvにStatic Routeを設定し外部ネットワークへの通信を確保した。
(前回のメモ: http://d.hatena.ne.jp/debslink/20150810/1439135650 )

ESXiに乗っかったCisco IOS XRv外部との間の通信確保で必要なルーティング設定は、設定内容が3行で完結する事と経路情報処理の際のCisco IOS XR(ESXi)への負担が少ない事を考えると、Default Routeの1本で充分だ。
そうは言うものの折角の仮想ルータ。Static Routeだけではつまらない。
Dynamic Routingで外部との間の通信を確保してみようという事で、今回はEIGRPを設定してみた。


以下は自分の動作環境。
・DELL LATITUDE E6400
・CPU: Intel Core2 Duo P9700 2.8GHz
・OS: Windows7 Home Premium SP1 32bit版
・RAM: 2GB, HDD(SSD): 64GB
・NIC: Intel 82567LM
・ESXi: version 5.0 (VMware Playerに既に導入済み)
・vSphere Client: version 5.0


Cisco IOS XRvやESXi、外部ネットワークとの接続状況に関しては以下の画像を参照。
今回は外部との接続の為のインターフェースは、GigabitEthernet0/0/0/0を使用。
(クリックすると拡大表示します)

1. 早速、EIGRPの設定を投入。
ESXi配下にEIGRPを喋る機器は存在しない為、stub設定を入れている。
EIGRP Hello Intervalは3秒、Hold Timerは9秒と明示的に設定。
9秒間にHelloを1発も受信出来なかった場合は、EIGRPのDiffusing Computationによりネイバのメトリック値を最大値で扱い、ネイバに対し到達不能として認識する。

RP/0/0/CPU0:mtkVMAC99#conf t
RP/0/0/CPU0:mtkVMAC99(config)#router eigrp 1
RP/0/0/CPU0:mtkVMAC99(config-eigrp)#address-family ipv4
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af)#stub
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af)#router-id 192.168.255.1
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af)#log-neighbor-changes
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af)#
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af)#interface GigabitEthernet 0/0/0/0
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af-if)#hello-interval 3
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af-if)#hold-time 9
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af-if)#exit
RP/0/0/CPU0:mtkVMAC99(config-eigrp-af)#exit
RP/0/0/CPU0:mtkVMAC99(config-eigrp)#exit

2. 設定投入後は、commitコマンドを打ち設定内容を反映させる。

RP/0/0/CPU0:mtkVMAC99(config)#commit
RP/0/0/CPU0:mtkVMAC99(config)#exit
RP/0/0/CPU0:mtkVMAC99#

3. log-neighbor-changesコマンドを投入してあるにも関わらず、EIGRP neighbor upのログが出力されない事はさておき...
show eigrp neighborsコマンドを打ち、EIGRPネイバ関係が確立されている事を確認。

RP/0/0/CPU0:mtkVMAC99#show eigrp neighbors

IPv4-EIGRP Neighbors for AS(1) VRF default

H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.1.1             Gi0/0/0/0        11 00:38:14   66    396  0  25
RP/0/0/CPU0:mtkVMAC99#

4. Routing Tableを確認。
mtkBBSW99から外部ネットワーク192.168.128.0/24と172.16.128.0/24を学習している事が分かる。

RP/0/0/CPU0:mtkVMAC99#show route
Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
       U - per-user static route, o - ODR, L - local, G  - DAGR, l - LISP
       A - access/subscriber, a - Application route
       M - mobile route, r - RPL, (!) - FRR Backup path

Gateway of last resort is not set

D    172.16.128.0/24 [90/2616320] via 192.168.1.1, 00:35:45, GigabitEthernet0/0/0/0
C    192.168.1.0/24 is directly connected, 01:40:44, GigabitEthernet0/0/0/0
L    192.168.1.16/32 is directly connected, 01:40:44, GigabitEthernet0/0/0/0
D    192.168.128.0/24 [90/2616320] via 192.168.1.1, 00:35:45, GigabitEthernet0/0/0/0
L    192.168.255.1/32 is directly connected, 12:28:52, Loopback0
D    192.168.255.100/32 [90/2616320] via 192.168.1.1, 00:35:45, GigabitEthernet0/0/0/0
RP/0/0/CPU0:mtkVMAC99#

5. ここで、外部ネットワークは192.168.128.0/24と192.168.255.100/32のみ受信するという内容の、Prefix ListとRouting Policyを設定。
Prefix List、Route Policy共に任意の文字列。
自分の環境では、Prefix Listは"PREFIX-FILTER"、Route Policyは"ROUTE-POLICY"とした。
PREFIX-FILTERで受信したい経路を定義し、ROUTE-POLICYで許可する...という内容。
PREFIX-FILTERで拒否したい経路を定義しROUTR-POLICYで破棄を明示、という内容も可能だ。

RP/0/0/CPU0:mtkVMAC99#conf t
RP/0/0/CPU0:mtkVMAC99(config)#
RP/0/0/CPU0:mtkVMAC99(config)#prefix-set PREFIX-FILTER
RP/0/0/CPU0:mtkVMAC99(config-pfx)#192.168.128.0/24, 192.168.255.100/32
RP/0/0/CPU0:mtkVMAC99(config-pfx)#end-set
RP/0/0/CPU0:mtkVMAC99(config)#
RP/0/0/CPU0:mtkVMAC99(config)#route-policy ROUTE-POLICY
RP/0/0/CPU0:mtkVMAC99(config-rpl)#if destination in PREFIX-FILTER then
RP/0/0/CPU0:mtkVMAC99(config-rpl-if)#pass
RP/0/0/CPU0:mtkVMAC99(config-rpl-if)#else
RP/0/0/CPU0:mtkVMAC99(config-rpl-else)#drop
RP/0/0/CPU0:mtkVMAC99(config-rpl-else)#endif
RP/0/0/CPU0:mtkVMAC99(config-rpl)#end-policy
RP/0/0/CPU0:mtkVMAC99(config)#

6. 設定後はcommitコマンドを打ち、設定内容をシステムに反映させる。

RP/0/0/CPU0:mtkVMAC99(config)#commit
RP/0/0/CPU0:mtkVMAC99(config)#exit
RP/0/0/CPU0:mtkVMAC99#

7. 再度、Cisco IOS XRv側でルーティングテーブルを確認。
Prefix Listで定義されていない172.16.128.0/24がルーティングテーブルに載っていない事が分かる。

RP/0/0/CPU0:mtkVMAC99#show route
Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
       U - per-user static route, o - ODR, L - local, G  - DAGR, l - LISP
       A - access/subscriber, a - Application route
       M - mobile route, r - RPL, (!) - FRR Backup path

Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, 01:45:23, GigabitEthernet0/0/0/0
L    192.168.1.16/32 is directly connected, 01:45:23, GigabitEthernet0/0/0/0
D    192.168.128.0/24 [90/2616320] via 192.168.1.1, 00:45:25, GigabitEthernet0/0/0/0
L    192.168.255.1/32 is directly connected, 12:33:31, Loopback0
D    192.168.255.100/32 [90/2616320] via 192.168.1.1, 00:45:25, GigabitEthernet0/0/0/0
RP/0/0/CPU0:mtkVMAC99#