2021-02-09 02:23 PM 2021-02-19 10:20 AM 更新
初版: 2021年2月9日
IOS XR7 は、Cisco 8000 シリーズルータや、NCS540 シリーズルータの一部のモデルに搭載されている新しい IOS-XR オペレーティングシステムです。従来の IOS-XR 32 bit (cXR) や IOS-XR 64 bit (eXR) とはアーキテクチャが異なります。
本ドキュメントでは、XR7 について記載しています。
IOS-XR は当初 32 bit QNX オペレーティングシステムとしてリリースされ、その後 IOS-XR 6.x からは 64 bit Linux オペレーティングシステムである IOX-XR 64 bit (eXR) がリリースされています。IOS-XR 7.x のリリースに伴い、新たなアーキテクチャである XR7 (LNT) が登場しました。
IOS-XR の進化の歴史と背景については、こちらを参照して下さい。
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
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 では、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 では、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 network stack は、通常の Linux アプリケーションによるパケット送受信の際に使用されます。 XR7 では、Linux network stack が XR network stack を参照できるように、以下の 2 種類の経路をカーネルにプログラムします。
[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: XR7 で動作する NCS540 シリーズルータについて
XR7 では、全ての IOS-XR コンポーネントが基本的に RPM となり、Optional RPM と 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 における IOS-XR のインストールは、従来の cXR/eXR と大きく異なります。
XR7 のインストールは下記のドキュメントをご参照下さい。
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします