キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
告知

JTAC-Mid-Career-Recruitment-2021.3

 MayCL_topbanner.JPG

 

XR7: IOS XR7 について

345
閲覧回数
0
いいね!
0
コメント

初版: 2021年2月9日

 

 

概要

IOS XR7 は、Cisco 8000 シリーズルータや、NCS540 シリーズルータの一部のモデルに搭載されている新しい IOS-XR オペレーティングシステムです。従来の IOS-XR 32 bit (cXR) や IOS-XR 64 bit (eXR) とはアーキテクチャが異なります。
本ドキュメントでは、XR7 について記載しています。

 

IOS-XR の歴史

IOS-XR は当初 32 bit QNX オペレーティングシステムとしてリリースされ、その後 IOS-XR 6.x からは 64 bit Linux オペレーティングシステムである IOX-XR 64 bit (eXR) がリリースされています。IOS-XR 7.x のリリースに伴い、新たなアーキテクチャである XR7 (LNT) が登場しました。

XR_journey.png


IOS-XR の進化の歴史と背景については、こちらを参照して下さい。

 

XR7 アーキテクチャ

XR7_arch.png

eXR では、Linux Kernel 上で XR および Sysadmin (Calvados) が動作します。
ルータとしての一般的な機能 (インタフェース管理、ルーティングプロトコルなど) に関わるプロセスは XR 上で動作し、ユーザ管理などの機能は Sysadmin が担います。XR と Sysadmin はそれぞれ独立しているため、それぞれの CLI モードの切り替えや、XR と Sysadmin 間でのファイル移動が必要となります。なお、上図では LXC と記載がありますが、eXR の仮想化には LXC と KVM が存在します。eXR の詳細については以下をご参照下さい。
IOS-XR 64-bit (eXR) の概要と基本アーキテクチャ紹介

一方 XR7 では、IOS-XR の各プロセスは Host (Linux Kernel 4.8.28, WRL9) のネイティブプロセスとして動作します

RP/0/RP0/CPU0:XR7#show processes | inc ipv4
Mon Feb  8 06:20:03.253 UTC
JID TID Stack pri state NAME rt_pri 197 5042 0K 20 Sleeping ipv4_arm 0 197 5087 0K 20 Sleeping ipv4_arm 0 197 5136 0K 20 Sleeping ipv4_arm 0 314 5062 0K 20 Sleeping ipv4_acl_mgr_ma 0 314 5498 0K 20 Sleeping ipv4_acl_mgr 0 242 5068 0K 20 Sleeping ipv4_mfwd_partn 0 242 5461 0K 20 Sleeping ipv4_mfwd_partn 0 242 5586 0K 20 Sleeping ipv4_mfwd_partn 0 ---snip---
1136 6362 0K 20 Sleeping ipv4_rib 0
RP/0/RP0/CPU0:XR7#bash Mon Feb 8 06:20:37.017 UTC [XR7:~]$ps x | grep ipv4 5042 ? Sl 0:00 ipv4_arm 5062 ? Sl 0:00 ipv4_acl_mgr 5068 ? Sl 0:01 ipv4_mfwd_partner 5090 ? Sl 0:00 ipv4_io 5097 ? Sl 0:00 ipv4_ma
---snip---
6362 ? Sl 0:00 ipv4_rib

また、eXR において Sysadmin が扱っていた各種管理機能は XR に移行され、Sysadmin は廃止されています
XR7 で admin コマンドを実行すると、以下のように警告が表示されます。
RP/0/RP0/CPU0:XR7#admin
Mon Feb  8 05:55:26.269 UTC
WARNING: Admin mode has been deprecated. Please consult the Command Line Interface Guide.

eXR において admin モードで実行していた、"show environment" のような show コマンドや、"hw-module location all reload" のような exec コマンドは XR CLI に移行され、LXC 分離に伴うモード切り替えを意識することなく、IOS-XR ルータの操作が可能となりました。このように、XR7 の設計思想の特徴の 1 つとして、シンプルな操作性が挙げられます。

 

XR7 におけるインターフェース

XR7 では、RP および LC が検出したすべてのインタフェースを Active RP のカーネルにプログラムします。つまり、IOS-XR のインタフェースを Linux 上で管理することが可能となります。デフォルトでは、 IOS-XR の全てのインタフェースは IOS-XR の CLI を介して管理され、インタフェースに関する属性(IP アドレス、MTU、up/down の状態など) は XR のインタフェース設定から継承されます。
一方、Linux management interface は Linux によって管理され、一般的な Linux コマンドである iproute2 utility や ifconfig などを使用して管理します。これにより、一般的な Linux サーバの自動化ツールを使用して IOS-XR のインタフェースを管理することが可能となります。

RP/0/RP0/CPU0:XR7#show ipv4 interface brief
Mon Feb  8 07:00:44.086 UTC

Interface                      IP-Address      Status          Protocol Vrf-Name
FourHundredGigE0/0/0/0         192.168.1.1     Up              Up       default
FourHundredGigE0/0/0/1         unassigned      Shutdown        Down     default
FourHundredGigE0/0/0/2         unassigned      Shutdown        Down     default
FourHundredGigE0/0/0/3         unassigned      Shutdown        Down     default
---snip---
RP/0/RP0/CPU0:XR7# RP/0/RP0/CPU0:XR7#bash Mon Feb 8 07:01:25.909 UTC [XR7:~]$ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:fd:01:f6:3a brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever 3: to_xr: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500 link/none 5: FH0_0_0_0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000 link/ether 78:33:e4:84:d8:00 brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 scope global FH0_0_0_0 valid_lft forever preferred_lft forever 6: FH0_0_0_23: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 78:33:e4:84:d8:b8 brd ff:ff:ff:ff:ff:ff 7: FH0_0_0_22: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 78:33:e4:84:d8:b0 brd ff:ff:ff:ff:ff:ff
---snip---

 

XR7 における VRF

XR7 では、IOS-XR で設定された VRF は カーネルに自動的に同期されます。カーネル上では、これらの VRF は netns (Network Namespace) として表示されます。

RP/0/RP0/CPU0:XR7#show vrf all
Mon Feb  8 07:06:04.459 UTC
VRF                  RD                  RT                         AFI   SAFI
MGMT                 not set
test                 not set
RP/0/RP0/CPU0:XR7#
RP/0/RP0/CPU0:XR7#bash
Mon Feb  8 07:06:09.272 UTC
[XR7:~]$ip netns list
vrf-test
vrf-MGMT
vrf-default
global-vrf
default
xrnns



Linux カーネルの経路情報

カーネルの一部である Linux network stack は、通常の Linux アプリケーションによるパケット送受信の際に使用されます。 XR7 では、Linux network stack が XR network stack を参照できるように、以下の 2 種類の経路をカーネルにプログラムします。

  • default route
    • カーネル上の default route として、IOS-XR の RIB/FIB 宛の経路がプログラムされます。
  • local/connected route
    • 自身が持つ I/F で設定されたサブネットに関する経路情報
[XR7:~]$route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     2048   0        0 to_xr
172.17.0.0      *               255.255.0.0     U     0      0        0 docker0
192.168.1.0     *               255.255.255.0   U     0      0        0 FH0_0_0_0

 

XR7 で動作する機器

  • Cisco 8000 シリーズルータ
  • NCS540 シリーズルータの一部モデル

詳細は以下のドキュメントをご参照下さい。
XR7: XR7 で動作する NCS540 シリーズルータについて

IOS XR RPM

XR7 では、全ての IOS-XR コンポーネントが基本的に RPM となり、Optional RPM と Mandatory RPM に分類されます。

  • Optional RPM
    • BGP や ISIS などのコンポーネント
    • デバイスをリロードすることなく削除やアップグレードが可能
  • Mandatory RPM
    • システムから削除することができないコンポーネント
    • 個別のアップグレードは可能だが、システムのリロードを伴う場合がある

これらの RPM では、IOS XR のリリースごとのセマンティックバージョンが使用され、新機能やバグ修正は RPM 形式で提供されます。この結果、XR7 では SMU が不要となり、バグの修正はシステムにインストールされている RPM をアップグレードすることで対応します。

RP/0/RP0/CPU0:XR7#show install active summary
Mon Feb  8 07:39:38.440 UTC
Active Packages:    XR: 166    All: 1183
Label:              7.0.12
Software Hash:      ef03cb2381d2e0a5c974f8fa59795ed8

Optional Packages                                                        Version
---------------------------------------------------- ---------------------------
xr-8000-mcast                                                     7.0.12v1.0.0-1
xr-8000-netflow                                                   7.0.12v1.0.0-1
xr-bgp                                                            7.0.12v1.0.0-1
xr-ipsla                                                          7.0.12v1.0.0-1
xr-is-is                                                          7.0.12v1.0.0-1
xr-lldp                                                           7.0.12v1.0.0-1
xr-mcast                                                          7.0.12v1.0.0-1
xr-mpls-oam                                                       7.0.12v1.0.0-1
xr-netflow                                                        7.0.12v1.0.0-1
---snip---
RP/0/RP0/CPU0:XR7# RP/0/RP0/CPU0:XR7#bash Mon Feb 8 07:39:44.793 UTC [XR7:~]$rpm -qa | grep xr-bgp xr-bgputil-7dee261fe41a15d8-7.0.12v1.0.0-1.x86_64 xr-bgputil-c1d82c6c34a39c33-7.0.12v1.0.0-1.x86_64 xr-bgp-c1d82c6c34a39c33-7.0.12v1.0.0-1.x86_64 xr-bgputil-7.0.12v1.0.0-1.x86_64 xr-bgp-7dee261fe41a15d8-7.0.12v1.0.0-1.x86_64 xr-bgputil-8201-7.0.12v1.0.0-1.x86_64 xr-bgp-8201-7.0.12v1.0.0-1.x86_64 xr-bgp-7.0.12v1.0.0-1.x86_64

 

XR7 のインストール

XR7 における IOS-XR のインストールは、従来の cXR/eXR と大きく異なります。
XR7 のインストールは下記のドキュメントをご参照下さい。

XR7: インストール概要

 

参考情報