17
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IOS XR CLI 入門

17
Last updated at Posted at 2025-12-09

免責事項

こちらは Cisco Systems Japan Advent Calendar 2025 の一環で参加しているブログになります。
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。

はじめに

急に IOS XR を扱なければいけない!という状況になるということ、ネットワークを触ったことがあるみなさんなら経験があるかと思います。

そんなとき、意外と IOS (IOS XE) と違うことが多く、嫌になってしまう人もいるかも知れません。

そこで、簡単な触り方と、便利なコツについてまとめておければと思います。

※ IOS XR は ASR 9000, NCS 540/560/5500, Cisco 8000 シリーズなどのキャリアグレードルータで使用されている OS です。

commit するモデルである (2 stage config model)

IOS XR の最大の特徴は、 2 stage config model だと言っても過言ではないと思います。
IOS (XE) では、configure モードで running-configuration を直接編集し、適宜 startup-configuration に保存します。
一方 IOS XR では、configure モードで running-configuration を編集せず、target-configuration を編集し、 commit コマンドによって設定を running-configuration に反映します。
commit の時点で初めて打ったコンフィグが有効となり稼働し、かつ保存されます。 startup-configuration はありません。

RP/0/RP0/CPU0:R1#conf            
Tue Dec  9 08:50:11.644 JST
RP/0/RP0/CPU0:R1(config)#router isis 1
RP/0/RP0/CPU0:R1(config-isis)#is-type level-2-only
RP/0/RP0/CPU0:R1(config-isis)#show run router isis
Tue Dec  9 08:50:31.603 JST
% No such configuration item(s)    <<< running-config にはまだ反映されない

RP/0/RP0/CPU0:R1(config-isis)#commit
Tue Dec  9 08:52:16.478 JST
RP/0/RP0/CPU0:R1(config-isis)#end
RP/0/RP0/CPU0:R1#show run router isis
Tue Dec  9 08:52:25.324 JST
router isis 1   <<< commit 後に反映される
 is-type level-2-only
!

target-config の内容を表示したいときには show configuration を使用します。
show commit changes diff コマンドを使用すると、 diff 形式で変更が表示されます。

RP/0/RP0/CPU0:R1(config)#router isis 1 is-type level-2-only 
RP/0/RP0/CPU0:R1(config)#show conf   <<< target-config を表示
Mon Dec  8 23:54:32.748 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
router isis 1
 is-type level-2-only
!
end

RP/0/RP0/CPU0:R1(config)#show commit changes diff 
Mon Dec  8 23:54:40.233 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
+  router isis 1
+   is-type level-2-only
   !
end

target-config を間違えたとき

設定を間違えたときなど、 target-config から設定を消したい!というときには、 clear コマンドを使います。
単に clear と入力するとすべての target-config が clear され、 clear hogehoge の形式で入力すると特定のコンフィグのみをクリアできます。

RP/0/RP0/CPU0:R1(config-isis)#show conf
Tue Dec  9 00:04:59.922 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
router isis 1
 is-type level-2-only
 hello-padding sometimes
!
end

RP/0/RP0/CPU0:R1(config-isis)#clear hello-padding sometimes   <<< 一部削除
RP/0/RP0/CPU0:R1(config-isis)#show conf
Tue Dec  9 00:05:11.942 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
router isis 1
 is-type level-2-only
!
end

RP/0/RP0/CPU0:R1(config-isis)#clear   <<< すべて削除
RP/0/RP0/CPU0:R1(config)#show conf
Tue Dec  9 00:05:15.346 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
end

IOS (XE) では設定を間違えた!と思ったら no コマンドで対処すると思いますが、target-config から削除するときに no を使用すると、
no コマンドをコミットしてしまい、意図せず設定を消してしまうことがあるので、注意が必要です。

RP/0/RP0/CPU0:R1#show run router ospf
Tue Dec  9 00:08:35.218 UTC
router ospf 65000
 router-id 1.1.1.1
!

RP/0/RP0/CPU0:R1#conf
Tue Dec  9 00:08:48.075 UTC
RP/0/RP0/CPU0:R1(config)#router ospf 65000
RP/0/RP0/CPU0:R1(config-ospf)#router-id 192.0.2.123

RP/0/RP0/CPU0:R1(config-ospf)#show conf          
RP/0/RP0/CPU0:R1(config)#
Tue Dec  9 00:09:36.616 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
router ospf 65000
 router-id 192.0.2.123   <<< 間違えた!とします
!
end

RP/0/RP0/CPU0:R1(config)#router ospf 65000
RP/0/RP0/CPU0:R1(config-ospf)#no router-id 192.0.2.123   <<< no で削除
RP/0/RP0/CPU0:R1(config-ospf)#default-information originate always   <<< 意図した設定例
RP/0/RP0/CPU0:R1(config-ospf)#show conf
Tue Dec  9 00:10:37.411 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
router ospf 65000
 no router-id
 default-information originate always
!
end

RP/0/RP0/CPU0:R1(config-ospf)#
Uncommitted changes found, commit them before exiting(yes/no/cancel)? [cancel]:y
RP/0/RP0/CPU0:R1#show run router ospf
Tue Dec  9 00:11:14.116 UTC
router ospf 65000
 default-information originate always   <<< router-id を消してしまう
!

rollback 機能

commit するモデルであることの大きなメリットとして rollback 機能があり、非常に便利です。
例えば、先程の例のコンフィグを元に戻すと以下のようになります。

RP/0/RP0/CPU0:R1#show run router isis         
Mon Dec  8 23:56:26.343 UTC
router isis 1
 is-type level-2-only
!

RP/0/RP0/CPU0:R1#rollback configuration last 1
Mon Dec  8 23:56:30.559 UTC

Loading Rollback Changes.
Loaded Rollback Changes in 1 sec 
Committing.
3 items committed in 1 sec (2)items/sec
Updating.
Updated Commit database in 1 sec 
Configuration successfully rolled back 1 commits.
RP/0/RP0/CPU0:R1#show run router isis         
Mon Dec  8 23:56:36.126 UTC
% No such configuration item(s)

コミットの一覧を確認したり、特定のコミットの中身をみたり、特定のコミットからの変更をすべて表示したり、特定のコミットまで/だけを rollback したりといったことが可能です。

小ネタ

1行コンフィグ

これまでにも使っていますが、 XR ではサブモード、サブサブモード…の階層に入ってから打つ必要のあるコンフィグも、親の階層につづけることで配下の設定も 1行で書くことも可能です。

P/0/RP0/CPU0:R1(config)#int gi0/0/0/0 ipv4 address 192.0.2.123/24    <<< running-config では 2行分
RP/0/RP0/CPU0:R1(config)#show conf
Tue Dec  9 00:15:14.611 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
interface GigabitEthernet0/0/0/0
 ipv4 address 192.0.2.123 255.255.255.0
!
end

RP/0/RP0/CPU0:R1(config)#segment-routing traffic-eng policy test candidate-paths preference 100 dynamic metric type latency   <<< 長い例
RP/0/RP0/CPU0:R1(config)#show conf
Tue Dec  9 00:17:20.781 UTC
Building configuration...
!! IOS XR Configuration 7.9.2
interface GigabitEthernet0/0/0/0
 ipv4 address 192.0.2.123 255.255.255.0
!
segment-routing
 traffic-eng
  policy test
   candidate-paths
    preference 100
     dynamic
      metric
       type latency
      !
     !
    !
   !
  !
 !
!
end

※ ちなみにですが、 IPv4 address 設定時に /24 などの CIDR 表記が使えるのも地味に便利です。

show run 等でもサブモード(、サブサブモード…)まで指定することで必要な部分のみを表示させることもできます。

RP/0/RP0/CPU0:R1#show run router ospf 65000 area 0 int gi0/0/0/0
Tue Dec  9 00:22:10.596 UTC
router ospf 65000
 area 0
  interface GigabitEthernet0/0/0/0
   cost 10
  !
 !
!

root コマンド

XR ではコンフィグ構造上サブモード、サブサブモードと階層が深いことが多いです。
そこから Global コンフィグモードに戻るためにはその回数分 exit を打つ…必要はなく、 root コマンドで一発で戻れます。

RP/0/RP0/CPU0:R1(config)#segment-routing   
RP/0/RP0/CPU0:R1(config-sr)#traffic-eng 
RP/0/RP0/CPU0:R1(config-sr-te)#policy test
RP/0/RP0/CPU0:R1(config-sr-te-policy)#candidate-paths 
RP/0/RP0/CPU0:R1(config-sr-te-policy-path)#preference 100
RP/0/RP0/CPU0:R1(config-sr-te-policy-path-pref)#dynamic 
RP/0/RP0/CPU0:R1(config-sr-te-pp-info)#metric 
RP/0/RP0/CPU0:R1(config-sr-te-path-metric)#type latency   <<< 8階層目!
RP/0/RP0/CPU0:R1(config-sr-te-path-metric)#root
RP/0/RP0/CPU0:R1(config)#    <<< Global コンフィグに一発で復帰!

パイプと utility コマンド

XR では | のうしろに utility というコマンドがあり、 Linux な種々のコマンドを使用できます。
egrephead, tail, wc などをおなじみのコマンドを使うことができます。

RP/0/RP0/CPU0:R1#show run | utility ?
  cut      Cut out selected fields of each line of a file
  egrep    Extended regular expression grep
  fgrep    Fixed string expression grep
  head     Show set of lines/characters from the top of a file
  less     Fixed string pattern matching
  more     Paging Utility More
  no-more  Disable Paging Utility More
  script   Launch a script for post processing
  sort     Sort, merge, or sequence-check text files
  tail     Copy the last part of files
  uniq     Report or filter out repeated lines in a file
  wc       Counting lines/words/characters of a file
  which    Locate a program file
  xargs    Construct argument list(s) and invoke a program

こちらに関してはこういった記事もありますので、適宜見ていただけると便利かと思います。

IOS XR: show command で使える pipe の様々な活用方法
https://community.cisco.com/t5/-/-/ta-p/5312646

ショートカットキー

ショートカットキーを使うことで、慣れてくると素早く操作することができます。
Ctrl + Z はシスコなものかと思いますが、基本は UNIX シェルと同様らしいです。

Ctrl + A: 行頭へ
Ctrl + E: 行末へ
Ctrl + W: 1単語分削除
Ctrl + K: カーソルから後ろ全部消える
Ctrl + delete: 現在の入力行をすべてクリア
Ctrl + Z: config モードで end と入力するのと同じ効果

Esc, B (同時押しではない): 1単語戻る
Esc, F (同時押しではない): 1単語進む

Ctrl + P: ↑
Ctrl + N: ↓
Ctrl + D: delete
Ctrl + H: back space

玄人な人はこういったキーを使いこなしている印象がありますので、これらを使いこなすと玄人に見せつけることができます(おそらく)。

結びに

CLI 操作に着目してまとめてみましたが、実際のコンフィグ構造等も思ったよりも IOS (XE) と異なることがあります。
実際触ることがありましたら、これらを参考にバリバリコンフィグを触ってみていただけたらと思います。
(XR に慣れると IOS (XE) をさわれない体になっちゃうかも)
XR を触る際の一助となることがありましたら嬉しく思います。

17
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?