前回は、仮想ルータである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#