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

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

VMware Player上のCisco IOS XRvでiBGPの設定

前回は、仮想ルータであるCisco IOS XRvをVMware Playerに導入。

通信キャリアのバックボーンネットワークにて導入実績があるCisco IOS XR搭載のコアルータ。
機能が限定されているXRv版ではあるものの、仮想環境でもコアルータを動作させる事が出来るという事で、今回はCisco IOS XRvを2台立ち上げてiBGPでピアを張らせてみた。

Cisco IOS XRvをVMware Playerに導入した際のメモは、下記リンク際を参照。
http://d.hatena.ne.jp/debslink/20150524/1432457008


今回の構成 (クリックすると拡大表示)

動作環境
·DELL INSPIRON 1545改
·Windows7 Home Edition (64bit版) 4GB RAM / Intel Core2Duo P9700 2.8GHz
·VMware Player 7.1.0 (英語版)
·IOS XRv: iosxrv-k9-demo-5.3.1.ova

PCの設定:
ローカルエリア接続 192.168.1.12 (Netmask 255.255.255.0)
VMnet1: 192.168.10.1 (Netmask 255.255.255.0 DefaultGWなし)


上記リンク先の手順でVMware Playerに導入した際、自分の環境では、GigabitEthernet Interfaceと管理用Interface(Mgmt-Eth)共に1個づつしか作成されなかった。
2つだけでは足りない為、以下の方法でInterfaceを追加した。


1. 上記リンク先の項目6と同じウインドウ内にて、Network Adapterを追加する。

VMware Playerを立ち上げ、対象となる仮想マシンを選択し"Edit virtual machine setting"をクリック。
Addボタンをクリックし、Network Adapterを選択しNextをクリック。
"Network Adapter Type"ウインドウ内にて"Host-only"を選択しFinishをクリック。

AddボタンクリックからHost-only選択とFinishボタンをクリックまでの流れを、必要とするInterfaceの数だけ繰り返し、作成する。
Virtual Machine Settingsウインドウ内にて作成した分のNetwork Adapterが追加されて表示されている事を確認。

2. このままでは、IOS XRvは後から作成した分のInterface(Network Adapter)を認識しない。
.vmxファイルの編集が必要となる。
VMware Playerを再度立ち上げる前に、.vmxファイルをNote Padなどテキストエディタで開く。
Windows7の場合は、マイドキュメント\Virtual Machines\[仮想マシン名]のフォルダ内にある。

追加作成したNetwork Adapterには以下の1行の記載が無い。

ethernet*.virtualDev = "e1000"
(* はethernet番号)

例えば、Network Adapterを3個追加作成した際は、以下のとおりに各ethernetアダプタ毎に追記する。

ethernet2.present = "TRUE"
ethernet2.virtualDev = "e1000"      <----- 追記
ethernet2.connectionType = "hostonly"
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet2.addressType = "generated"
ethernet3.present = "TRUE"
ethernet3.virtualDev = "e1000"      <----- 追記
ethernet3.connectionType = "hostonly"
ethernet3.wakeOnPcktRcv = "FALSE"
ethernet3.addressType = "generated"
ethernet4.present = "TRUE"
ethernet4.virtualDev = "e1000"      <----- 追記
ethernet4.connectionType = "hostonly"
ethernet4.wakeOnPcktRcv = "FALSE"
ethernet4.addressType = "generated"

追記完了後、.vmxファイルを上書保存しテキストエディタを閉じる。

3. 今回は、IOS XRvがもう1台必要となる。
iosxrv-k9-demo-5.3.1.ovaファイルを右クリックから"Open with VMware Player"を選択。
VMware Playerが起動しインストールが始まる。

仮想マシン名の入力後、ImportをクリックしVMware Playerへのデプロイ開始。
GRUBの画面で"IOS XRv"を選択し、Enterキーを叩く。
2台目の場合は、Enterキーを叩いた段階でVMware Playerを一旦落とす。(SuspendではなくPower Off)

1台目の.vmxファイルを2台目に上書きコピー。
.vmxファイル内の"displayname"、"ide0:0.fileName"、"extendedConfigFile"などの記載内容を2台目に合わせて修正する。
例えば、1台目の仮想マシン名がmtkBBVR98、2台目の仮想マシン名がmtkBBVR99の場合、displayname = "mtkBBVR98"になっているところをdisplayname = "mtkBBVR99"に修正する。
.vmxファイルの修正後、2台目はまだ立ち上げない。

4. この段階では、両機器共にVMware Playerの設定はSerial Portからログイン(実態は127.0.0.1のTelnetログイン)する内容になっている。
両機器共にMgmt-Ethインターフェースに設定されたIPアドレスでSSHログインが出来るよう、IOS XRv上で設定する。

以下は、SSHログインの為の最低限の設定。1台目だけ立ち上げた状態で実施。この段階では2台目はPower Offの状態のまま。

RP/0/0/CPU0:mtkBBVR98#conf t
RP/0/0/CPU0:mtkBBVR98(config)#interface MgmtEth0/0/CPU0/0
RP/0/0/CPU0:mtkBBVR98(config-if)#ipv4 address 192.168.1.15/24
RP/0/0/CPU0:mtkBBVR98(config-if)#no shutdown
RP/0/0/CPU0:mtkBBVR98(config-if)#exit

RP/0/0/CPU0:mtkBBVR98(config)#ssh server v2
RP/0/0/CPU0:mtkBBVR98(config)#line default
RP/0/0/CPU0:mtkBBVR98(config-line)#exec-timeout 20 0
RP/0/0/CPU0:mtkBBVR98(config-line)#transport input telnet ssh
RP/0/0/CPU0:mtkBBVR98(config-line)#transport output telnet ssh
RP/0/0/CPU0:mtkBBVR98(config-line)#exit

RP/0/0/CPU0:mtkBBVR98(config)#router static address-family ipv4 unicast 
RP/0/0/CPU0:mtkBBVR98(config-static-afi)#192.168.1.0/24 MgmtEth0/0/CPU0/0 192.168.1.1
RP/0/0/CPU0:mtkBBVR98(config-static-afi)#exit
RP/0/0/CPU0:mtkBBVR98(config-static)#exit
RP/0/0/CPU0:mtkBBVR98(config)#

commitコマンドを打ち設定内容を保存後、SSHのキー長を1024bitに設定。

RP/0/0/CPU0:mtkBBVR98(config)#commit
RP/0/0/CPU0:mtkBBVR98(config)#exit
RP/0/0/CPU0:mtkBBVR98#crypto key generate rsa
  Choose the size of the key modulus in the range of 512 to 4096 for 
your General Purpose Keypair. 
Choosing a key modulus greater than 512 may take a few minutes.

How many bits in the modulus [1024]:1024を入力

2台目の設定時は、1台目をSuspendもしくはPower OffでVMware Playerを落とした状態にする。
上記と同じ内容の設定を、2台目にも投入する。
IPアドレスは上の構成図を参照。


5. 次はいよいよ、BGPの設定。
この段階では片方を落とた状態にする必要は無くなり、両機器共にPower Onの状態でOK。Tera TermからSSHで両機器へのログインが可能となっている。

まずは1台目(mtkBBVR98)にて、各InterfaceにIPアドレスを設定。

RP/0/0/CPU0:mtkBBVR98#conf t
RP/0/0/CPU0:mtkBBVR98(config)#interface Loopback0
RP/0/0/CPU0:mtkBBVR98(config-if)#ipv4 address 192.168.255.1/32
RP/0/0/CPU0:mtkBBVR98(config-if)#exit
RP/0/0/CPU0:mtkBBVR98(config)#interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:mtkBBVR98(config-if)#ipv4 address 192.168.10.5/24
RP/0/0/CPU0:mtkBBVR98(config-if)#no shutdown
RP/0/0/CPU0:mtkBBVR98(config-if)#exit
RP/0/0/CPU0:mtkBBVR98(config)#interface GigabitEthernet0/0/0/1
RP/0/0/CPU0:mtkBBVR98(config-if)#ipv4 address 192.168.100.1/30
RP/0/0/CPU0:mtkBBVR98(config-if)#no shutdown
RP/0/0/CPU0:mtkBBVR98(config-if)#exit
RP/0/0/CPU0:mtkBBVR98(config)#

疎通確保の為のEIGRP設定の設定。

RP/0/0/CPU0:mtkBBVR98(config)#router eigrp 1
RP/0/0/CPU0:mtkBBVR98(config-eigrp)#address-family ipv4
RP/0/0/CPU0:mtkBBVR98(config-eigrp-af)#interface loopback 0
RP/0/0/CPU0:mtkBBVR98(config-eigrp-af-if)#exit
RP/0/0/CPU0:mtkBBVR98(config-eigrp-af)#interface gigabitEthernet 0/0/0/1
RP/0/0/CPU0:mtkBBVR98(config-eigrp-af-if)#exit
RP/0/0/CPU0:mtkBBVR98(config-eigrp-af)#exit
RP/0/0/CPU0:mtkBBVR98(config-eigrp)#exit
RP/0/0/CPU0:mtkBBVR98(config)#

そしてBGP(iBGP)の設定。最後にcommitコマンドで設定内容を保存する。

RP/0/0/CPU0:mtkBBVR98(config)#router bgp 65000.
RP/0/0/CPU0:mtkBBVR98(config-bgp)#address-family ipv4 unicast
RP/0/0/CPU0:mtkBBVR98(config-bgp-af)#network 192.168.100.1/32
RP/0/0/CPU0:mtkBBVR98(config-bgp-af)#exit
RP/0/0/CPU0:mtkBBVR98(config-bgp)#neighbor 192.168.255.2
RP/0/0/CPU0:mtkBBVR98(config-bgp-nbr)#update-source loopback 0
RP/0/0/CPU0:mtkBBVR98(config-bgp-nbr)#address-family ipv4 unicast
RP/0/0/CPU0:mtkBBVR98(config-bgp-nbr-af)#next-hop-self
RP/0/0/CPU0:mtkBBVR98(config-bgp-nbr-af)#exit
RP/0/0/CPU0:mtkBBVR98(config-bgp-nbr)#exit
RP/0/0/CPU0:mtkBBVR98(config-bgp)#exit
RP/0/0/CPU0:mtkBBVR98(config)#commit

2台目(mtkBBVR99)にも上記と同じ設定を投入する。
IPアドレスは上の構成図を参照。
1台目にてterminal monitorコマンドを打った状態で、2台目にてcommitコマンドを打つと、EIGRPのネイバ関係確立とBGPのピア関係確立の際のログがTera Term上に逐次出力される。

6. 2台目の設定完了後に以下のコマンドを実行すると、1台目(mtkBBVR98)と2台目(mtkBBVR99)との間でBGPピア関係が確立出来ている事が確認出来る。

RP/0/0/CPU0:mtkBBVR98#show bgp ipv4 unicast
Fri May 29 12:03:48.425 JST
BGP router identifier 192.168.255.1, local AS number 65000
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 6
BGP main routing table version 6
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network               Next Hop            Metric LocPrf  Weight Path
*> 192.168.255.1/32  0.0.0.0      0             32768  i
*>i192.168.255.2/32  192.168.255.2   0   100          0    i

Processed 2 prefixes, 2 paths
RP/0/0/CPU0:mtkBBVR98#