Cisco IOS XRのロールバック

画像の代替






画像の代替






IOS XRを実行しているシスコ機器の設定を変更する必要に遭遇したことのある人なら誰でも、通常のIOSとは異なり、IOS-XRは設定を適用するためにコミットする必要があることを知っています。 しかし、どのように設定をコミットするかは、人生で少なくとも一度はIOS XRを感じている人なら誰でも知っていると思います。 しかし、設定をロールバックする方法は? JunOSでは、すべてが簡単で理解しやすく、IOS XRについては言えません。 一定の時間まで、私はこれを知りませんでしたが、夜のうちの1つは、これを行う方法、構成をロールバックし、事故を起こさない方法を学ぶために5分しかありませんでした。 英語でTsiskaのマニュアル以外はネットワーク上で見つけられなかったので、このトピックに関する小さな教育プログラムを書くことにしました。誰かが役に立つかもしれません。



さあ行こう...



注:この記事は初心者のエンジニアを対象としていますが、IOS XRを直接理解しているエンジニアにも役立ちます。 sayingにもあるように、生きて学びましょう。


はじめに-はじめに-慣れていない人(IOS XR)にIOS XRに設定を適用するプロセスを簡単に説明します。 たとえば、構成に記述子を追加するとします。



RP/0/0/CPU0:RZN-PE4(config)#interface gigabitEthernet 0/0/0/5 description "link to RZN-CE4-SW5" RP/0/0/CPU0:RZN-PE4(config)#show Sun Dec 11 17:11:11.950 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/5 description "link to RZN-CE4-SW5" ! end
      
      





通常のIOSでは、すべてがシンプルです-彼らは設定に何かを追加しました-変更はすぐに適用されました。 iOS XRでは、コミットするまで変更は適用されません。



 RP/0/0/CPU0:RZN-PE4(config)#do sh run int gi0/0/0/5 description Sun Dec 11 17:12:09.346 UTC % No such configuration item(s)
      
      





コミットする:



 RP/0/0/CPU0:RZN-PE4(config)#commit comment add desc int ge0/0/0/5 Sun Dec 11 17:12:43.443 UTC
      
      





これですべてが整い、設定の変更が適用されました。



 RP/0/0/CPU0:RZN-PE4(config)#do sh run int gi0/0/0/5 description Sun Dec 11 17:12:48.353 UTC interface GigabitEthernet0/0/0/5 description "link to RZN-CE4-SW5" ! end
      
      





上記の結論からわかるように、コミットについてコメントしました。 これは、ロールバックする構成を探すときに非常に役立ちます。



では、ロールバック自体に直接行きましょう。 構成をロールバックするには、次のコマンドを使用できます。



 RP/0/0/CPU0:RZN-PE4#rollback configuration ? last Rollback last <n> commits made to Rollback up to (and including) a specific commit to-exclude Rollback up to (and excluding) a specific commit 1000000037 Commit ID 1000000036 Commit ID 1000000035 Commit ID 1000000034 Commit ID 1000000033 Commit ID 1000000032 Commit ID 1000000031 Commit ID 1000000030 Commit ID 1000000029 Commit ID 1000000028 Commit ID 1000000027 Commit ID 1000000026 Commit ID 1000000025 Commit ID 1000000024 Commit ID 1000000023 Commit ID 1000000022 Commit ID 1000000021 Commit ID 1000000020 Commit ID 1000000019 Commit ID 1000000018 Commit ID
      
      





ご覧のとおり、ルーターはコミットIDを大量にダンプしました。 コミットのリストが0から始まり、コミット0が現在の構成であるジュニパーとは異なり、IOS XRでは、コミットIDはコミットごとに増分され、現在のコミットは提示されたリストから最大のIDを持つものです。 この場合、1000000037が現在の構成です。 JunOSと比較すると、これはID 0のコミットです。



コミットを1つだけロールバックする必要がある場合、つまりID 1000000036の構成にロールバックする必要がある場合は、すべてが簡単です。これを行うことができます。



 RP/0/0/CPU0:RZN-PE4#rollback configuration last 1
      
      





最後に、ID 1000000036の構成にロールバックします。



ただし、複数のコミットを行った場合、または作業中に特定の構成にロールバックする必要がある場合。 ここにいる方法は? これを行うには、誰がコミットを行い、いつ必要なものを見つけるかを見てください:



 RP/0/0/CPU0:RZN-PE4#sh configuration commit list 10 Sun Dec 11 17:17:39.113 UTC SNo. Label/ID User Line Client Time Stamp ~~~~ ~~~~~~~~ ~~~~ ~~~~ ~~~~~~ ~~~~~~~~~~ 1 1000000037 bormoglot con0_0_CPU0 CLI Sun Dec 11 17:12:43 2016 2 1000000036 bormoglot con0_0_CPU0 CLI Sun Dec 11 16:55:22 2016 3 1000000035 bormoglot con0_0_CPU0 CLI Sun Dec 11 16:55:07 2016 4 1000000034 bormoglot con0_0_CPU0 CLI Sun Dec 11 16:54:56 2016 5 1000000033 bormoglot con0_0_CPU0 Rollback Sun Dec 11 16:34:08 2016 6 1000000032 bormoglot con0_0_CPU0 CLI Sun Dec 11 16:23:18 2016 7 1000000031 bormoglot con0_0_CPU0 Rollback Sun Dec 11 15:48:11 2016 8 1000000030 bormoglot con0_0_CPU0 CLI Sun Dec 11 15:43:43 2016 9 1000000029 bormoglot con0_0_CPU0 CLI Sun Dec 11 15:32:44 2016 10 1000000028 bormoglot con0_0_CPU0 CLI Sun Dec 11 09:26:59 2016
      
      





注:数値10は、出力するコミットの数を意味します。そうしないと、Tsiskaはすべてのコミットをダンプします。これは冗長な情報になります(だれが知っていても、一度に40-50コミットした可能性は低いです)。 JunOSとは異なり、iOS XRは最後の100件のコミットを保存します。


しかし、私の場合、上記の結論は正しいコミットを見つけるのに実際には役立ちませんでした。 コミットしただけでなく、何時に戻る必要があるのか​​を把握することはまだ不可能です。 そしてここにコミットへのコメントが役立ちます:



 RP/0/0/CPU0:RZN-PE4#sh configuration commit list 5 detail Sun Dec 11 17:20:19.682 UTC 1) CommitId: 1000000037 Label: NONE UserId: bormoglotx Line: con0_0_CPU0 Client: CLI Time: Sun Dec 11 17:12:43 2016 Comment: add desc int ge0/0/0/5 2) CommitId: 1000000036 Label: NONE UserId: bormoglotx Line: con0_0_CPU0 Client: CLI Time: Sun Dec 11 16:55:22 2016 Comment: "descr gi0/0/0/4" 3) CommitId: 1000000035 Label: NONE UserId: bormoglotx Line: con0_0_CPU0 Client: CLI Time: Sun Dec 11 16:55:07 2016 Comment: "descr gi0/0/0/3" 4) CommitId: 1000000034 Label: NONE UserId: bormoglotx Line: con0_0_CPU0 Client: CLI Time: Sun Dec 11 16:54:56 2016 Comment: "descr gi0/0/0/2" 5) CommitId: 1000000033 Label: NONE UserId: bormoglotx Line: con0_0_CPU0 Client: Rollback Time: Sun Dec 11 16:34:08 2016 Comment: no evi2
      
      





簡単になりました。コミットに関するコメントが表示され、各コミットに追加した内容を大まかに理解できます。 ただし、コメントが常に構成のすべての変更を反映するとは限りません。 そして、それがあなたによって書かれていない場合、記述された説明の下に何が隠れているかはまったく明確ではありません。 設定で何が正確に変更されたかを理解するには、次のコマンドを使用する必要があります。



 RP/0/0/CPU0:RZN-PE4#show configuration commit changes 1000000037 Sun Dec 11 17:22:05.485 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/5 description "link to RZN-CE4-SW5" ! end
      
      





このコマンドは、指定されたコミットの構成に正確に追加または削除されたものを表示します。

注:コミットIDに加えて、詳細な出力に示されるコミット番号も順番にあります。



  1) CommitId: 1000000037 Label: NONE UserId: bormoglotx Line: con0_0_CPU0 Client: CLI Time: Sun Dec 11 17:12:43 2016 Comment: add desc int ge0/0/0/5
      
      





1はコミットの番号で、1000000037はそのIDです。 たとえば、構成の変更を確認するか、コミット番号でロールバックできます。



 RP/0/0/CPU0:RZN-PE4#show configuration commit changes last 1 Sun Dec 11 17:24:19.616 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/5 description "link to RZN-CE4-SW5" ! end
      
      





最後に、目的のコミットの数を指定します(この数はコミットの数に等しくなります)。 IDとは異なり、コミット番号は常に変化しています(コミット番号は、コミットの実行ごとに増加することは明らかだと思います)


しかし、このチームの特徴は、指定されたコミットで適用された変更を正確に示していることです。 たとえば、1000000036コミットが行われたときの構成の変更を見てみましょう。



 RP/0/0/CPU0:RZN-PE4# RP/0/0/CPU0:RZN-PE4#show configuration commit changes 1000000036 Sun Dec 11 17:25:21.772 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/4 description "link to RZN-CE4-SW4" ! end
      
      





本質的に、この結論は、以前のコミット1000000035と比較してコミット1000000036で何が変更されたかを示しています。つまり、JunOSの世界では、このコマンドの類似はshow system rollback 2 compare 3です (最初の数字は表示される構成、2番目の数字は構成、比較に使用されます)。 次のコマンドはまったく同じように機能しますが、いわば「鐘楼から」という情報を表示します。



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes 1000000036 Sun Dec 11 17:27:34.912 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/4 no description "link to RZN-CE4-SW4" ! end
      
      





コマンドは、このコミットへのロールバックを行うとキャンセルされることを示していますが、指定されたコミット内の変更のみを表示し、構成全体は表示しません。 たとえば、5つのコミットを行い、5つのコミットすべてにロールバックします。 このコマンドは、5回のコミットまでロールバックすると、結果として生じない変更を表示し、その後、すべての中間コミットを考慮せずに、指定したコミットID内で元に戻す変更のみを表示します。 ただし、ロールバックを適用した結果は、指定されたコミットだけでなく、すべての中間変更もキャンセルされます。つまり、現在の構成とコマンドで指定されたコミットが実行された時点の構成との比較を確認する必要があります。 つまり、JunOSの世界から再び類推すると、 show system rollback 5 compare 0コマンドの出力が必要です。 これを行うには、show configuration commit changesコマンドを使用しますが、 toまたはto-excludeキーワードを使用します。



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes ? last Changes for rolling back last <n> commits to Changes up to (and including) a specific commit to-exclude Changes up to (and excluding) a specific commit
      
      





注:to-excludeキーワードは、すべてのバージョンではなく、5番目のIOS XRブランチに登場しました。 いずれにせよ、バージョン5.1.3にはそのようなコマンドはありませんが、5.3.3にはすでにあります。


toキーワードを使用すると、コマンドは、コマンドで指定されたコミットおよびすべての中間構成変更を含む、バックバックの適用の結果として構成に加えられるすべての変更を表示します。 それがどのように機能するか見てみましょう



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes to 1000000035 Sun Dec 11 17:32:21.933 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 no description "link to RZN-CE4-SW3" ! interface GigabitEthernet0/0/0/4 no description "link to RZN-CE4-SW4" ! interface GigabitEthernet0/0/0/5 no description "link to RZN-CE4-SW5" ! end
      
      





つまり、このロールバックを適用すると、コミット1000000035で適用された変更を含むすべての変更がキャンセルされます。実際、1000000035コミットを適用する前の構成、つまりコミットID 1000000034の構成にロールバックします。コミットで行われた10,000,00035の構成変更:



 RP/0/0/CPU0:RZN-PE4#show configuration commit changes 1000000035 Sun Dec 11 17:34:23.184 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 description "link to RZN-CE4-SW3" ! end
      
      





このコミットでは、GigabitEthernet0 / 0/0/3インターフェイスに記述子が追加されました。 show configuration rollback changes to 1000000035コマンドの出力は、この説明が削除され、1000000034コミットで追加された構成にロールバックすることを示しています。はい、これはJunOSコミットとは少し異なります。 JunOSでは、指定した構成にジャンプしますが、IOS XRでは、指定したコマンドを使用すると、指定したコミットが適用される前の構成にジャンプし、コマンドで指定したコミットへの変更をキャンセルします。 5.3.Xより前のバージョンでは、このようなコマンドのみが存在することに注意してください。



to-excludeキーワードを指定してコマンドを使用すると、コマンドはJunOSのロールバックのように見えます-指定されたコミットで適用された構成にロールバックします。



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes to-exclude 1000000035 Sun Dec 11 17:37:17.183 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/4 no description "link to RZN-CE4-SW4" ! interface GigabitEthernet0/0/0/5 no description "link to RZN-CE4-SW5" ! end
      
      





toキーワードを使用してコマンドを解析するときに表示された出力と比較すると、違いがわかります。1000000035コミットの実行時に行われた変更はキャンセルされません。 個人的には、この方法を好みますが、前に書いたように、このコマンドはバージョン5.3.xからのみ利用可能です。



注: show configuration commit changesコマンドは、現在の構成から指定されたコミットに対して行われたすべての変更を表示することもできます(すべての中間的な構成変更を考慮に入れて)。 これを行うには、sinceキーワードを使用してコミットIDまたは最後のキーワードを指定し、コミットのシリアル番号を指定します。



 RP/0/0/CPU0:RZN-PE4#sh configuration commit changes 1000000035 Sun Dec 11 18:01:33.533 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 description "link to RZN-CE4-SW3" ! end
      
      





 RP/0/0/CPU0:RZN-PE4#sh configuration commit changes since 1000000035 Sun Dec 11 18:01:38.212 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 description "link to RZN-CE4-SW3" ! interface GigabitEthernet0/0/0/4 description "link to RZN-CE4-SW4" ! interface GigabitEthernet0/0/0/5 description "link to RZN-CE4-SW5" ! end
      
      





ただし、このコマンドは、指定されたコミットから現在のコミットまでの構成に追加されたすべてを表示することを忘れないでください。これらの変更はすべてロールバックでロールバックします。


JunOSの後、最初のロールバックオプションを理解するのは少し難しいです。 しかし、先に進みます。



JunOSとは異なり、Ciscoはロールバック時に設定をロードするだけでなく、管理者に問い合わせることなく、すぐに設定を適用します。 これは非常に大きな違いです。特に、JunOSが構成をロードし、必要に応じて構成を編集、確認、コミットできるようになった後は、非常に大きな違いです。 しかし、すべてがそれほど悪いわけではありません。IOSXRは、自動コミットなしで設定を読み込む方法も知っていますが、それについては後で詳しく説明します。



上記のコマンドに加えて、ロールバック中に構成の変更内容を別の方法で確認できます。これは、JunOSファンにアピールします。 上記のコマンドを使用する必要がありますが、 diffキーワードを使用します。 構成の変更を通常の形式で出力する例を次に示します。



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes to 1000000025 Sun Dec 11 17:42:44.450 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/1 shutdown ! interface GigabitEthernet0/0/0/1.777 l2transport ! interface GigabitEthernet0/0/0/2 no description "link to RZN-CE4-SW2" ! interface GigabitEthernet0/0/0/3 no description "link to RZN-CE4-SW3" ! interface GigabitEthernet0/0/0/4 no description "link to RZN-CE4-SW4" ! interface GigabitEthernet0/0/0/5 no description "link to RZN-CE4-SW5" ! no interface BVI777 interface BVI777 ipv4 address 10.0.0.254 255.255.255.0 no mac-address 200.0.4777 mac-address 200.0.4777 ! router bgp 6262 vrf VRF_EVPN no address-family ipv4 unicast ! ! evpn ! end
      
      





ただし、 diffキーワードを使用します。 以下の出力は、追加されたものと構成から削除されたものを示すため、読みやすいと思います。



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes to 1000000025 diff Sun Dec 11 17:42:50.580 UTC Building configuration... !! IOS XR Configuration 5.3.3 # interface GigabitEthernet0/0/0/1 + shutdown + ! # interface GigabitEthernet0/0/0/1.777 l2transport # ! - interface GigabitEthernet0/0/0/2 - description "link to RZN-CE4-SW2" - ! - interface GigabitEthernet0/0/0/3 - description "link to RZN-CE4-SW3" - ! - interface GigabitEthernet0/0/0/4 - description "link to RZN-CE4-SW4" - ! - interface GigabitEthernet0/0/0/5 - description "link to RZN-CE4-SW5" - ! - interface BVI777 + interface BVI777 - vrf VRF_EVPN - ipv4 address 10.0.0.254 255.255.255.0 + ipv4 address 10.0.0.254 255.255.255.0 - mac-address 200.0.4777 + mac-address 200.0.4777 + ! # router bgp 6262 # vrf VRF_EVPN - address-family ipv4 unicast - label mode per-vrf - redistribute connected - redistribute static - ! - ! - ! # evpn # ! end
      
      





確かに、構成の変更はやや奇妙に表示されます。たとえば、次の行は役に立ちません。



 - ipv4 address 10.0.0.254 255.255.255.0 + ipv4 address 10.0.0.254 255.255.255.0 - mac-address 200.0.4777 + mac-address 200.0.4777
      
      





なぜこれが行われるのかは私には明らかではありません。 しかし、あなたはそれに耐えなければなりません。



次に、別の非常に便利な機能を見てみましょう。これは、自動コミットせずに構成をロードしています。 これは、構成モードから既に行われています。 ここでは、すべてのアクションは上記で説明したものと同じであり、同じルールが適用(除外および除外)されますが、構成は自動的にコミットされません。 例を考えてみましょう:



ロールバックを行うと、構成のこの部分が削除されます。



 RP/0/0/CPU0:RZN-PE4#show configuration rollback changes to 1000000035 Sun Dec 11 17:50:53.187 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 no description "link to RZN-CE4-SW3" ! interface GigabitEthernet0/0/0/4 no description "link to RZN-CE4-SW4" ! interface GigabitEthernet0/0/0/5 no description "link to RZN-CE4-SW5" ! end
      
      





設定モードに入り、変更をロードします。



 RP/0/0/CPU0:RZN-PE4(config)#load rollback changes to 1000000035 Building configuration... Loading. 254 bytes parsed in 1 sec (249)bytes/sec
      
      





注:出力はキーワードtoを示しているため、指定したコミットに適用された変更だけでなく、すべての中間コミットもダウンロードされます。 コマンドにto: load rollback changes 1000000035がない場合、このコミットで行われた変更のみがロードされ、to-excludeキーワードを使用すると、1000000035コミット自体に適用された変更を含まず、1000000035コミットの前にすべての変更がダウンロードされます。


単純なロールバックでは、構成が自動的にコミットされ、3つのインターフェイスの説明が削除されます。 私たちの場合、すべての説明は次のとおりです。



 RP/0/0/CPU0:RZN-PE4(config)#do show int description | i 0/0/0/[3-5] Sun Dec 11 17:49:31.632 UTC Gi0/0/0/3 admin-down admin-down "link to RZN-CE4-SW3" Gi0/0/0/4 admin-down admin-down "link to RZN-CE4-SW4" Gi0/0/0/5 admin-down admin-down "link to RZN-CE4-SW5"
      
      





しかし、構成を見ると、変更がアップロードされているが、適用されていないことがわかります-変​​更できます(ただし、構成の一部が削除されるため、これはそれほど簡単ではありません-ご覧のように、説明の代わりにno descriptionコマンドが指定されています):



 RP/0/0/CPU0:RZN-PE4(config)#show Sun Dec 11 17:49:33.962 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 no description ! interface GigabitEthernet0/0/0/4 no description ! interface GigabitEthernet0/0/0/5 no description ! end
      
      





コミットについて気が変わった場合、最も簡単な方法は次のコマンドを使用することです。



 RP/0/0/CPU0:RZN-PE4(config)#abort RP/0/0/CPU0:RZN-PE4#
      
      





設定モードを終了するだけで、コミットされていない変更はすべて削除されます。 endまたはexitを入力すると、コミットされていない設定をどうするかを尋ねられます。



 RP/0/0/CPU0:RZN-PE-4(config)#end Uncommitted changes found, commit them before exiting(yes/no/cancel)? [cancel]:n RP/0/0/CPU0:RZN-PE-4#
      
      





 RP/0/0/CPU0:RZN-PE-4(config)#exit Uncommitted changes found, commit them before exiting(yes/no/cancel)? [cancel]:n RP/0/0/CPU0:RZN-PE-4#
      
      





非常に便利な機能の1つは、ラベルをコミットまたはロールバックに追加することです。



 RP/0/0/CPU0:RZN-PE-4#rollback configuration to 1000000003 label bormoglotx RP/0/0/CPU0:RZN-PE-4#show configuration commit list Sun Dec 11 18:42:50.333 UTC SNo. Label/ID User Line Client Time Stamp ~~~~ ~~~~~~~~ ~~~~ ~~~~ ~~~~~~ ~~~~~~~~~~ 1 bormoglotx bormoglot con0_0_CPU0 Rollback Sun Dec 11 18:42:40 2016 2 1000000004 bormoglot con0_0_CPU0 Rollback Sun Dec 11 18:33:34 2016 3 1000000003 bormoglot con0_0_CPU0 CLI Sun Dec 11 18:31:38 2016 4 1000000002 bormoglot con0_0_CPU0 CLI Sun Dec 11 18:31:25 2016 5 1000000001 bormoglot con0_0_CPU0 CLI Sun Dec 11 18:30:57 2016
      
      





これで、IDの代わりに、何を書くかが示されます。

注:ID自体は引き続き割り当てられ、詳細出力またはコミットIDの選択時に示されます。



 RP/0/0/CPU0:RZN-PE-4#show configuration rollback changes ? bormoglotx 1000000005 bormoglotx-1 1000000006
      
      





私の意見では便利です。 2つの同一のラベルを指定することはできません。このエラーが発生します。



 RP/0/0/CPU0:RZN-PE-4#rollback configuration to 1000000004 label bormoglotx Sun Dec 11 18:47:24.214 UTC Loading Rollback Changes. Loaded Rollback Changes in 1 sec Committing. Rollback operation failed due to - 'CfgMgr' detected the 'warning' condition 'The specified label already exists in commit database.' Running configuration has not been modified.
      
      





別の有用なコマンドはcommit show-errorで 、これはすぐにエラーを示します(JunOSと同様)。 たとえば、エラーが発生するコミット:



 RP/0/0/CPU0:RZN-PE-4(config)#commit Sun Dec 11 18:58:40.048 UTC % Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. Please issue 'show configuration failed [inheritance]' from this session to view the errors
      
      





次に、configの問題を確認するために、 show configuration failedコマンドを指定する必要があります 。 ただし、 commitコマンドshow-errorをすぐに発行できます。Tsiskeが構成を気に入らない場合は、エラー表示がすぐにコンソールにドロップアウトします。



 RP/0/0/CPU0:RZN-PE-4(config)#commit show-error Sun Dec 11 18:59:44.254 UTC % Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. !! SEMANTIC ERRORS: This configuration was rejected by !! the system due to semantic errors. The individual !! errors with each failed configuration command can be !! found below. interface BVI777 vrf VRF-TEST !!% 'RSI' detected the 'fatal' condition 'The interface's numbered and unnumbered IPv4/IPv6 addresses must be removed prior to changing or deleting the VRF' ! end RP/0/0/CPU0:RZN-PE-4(config)#
      
      





出力には、エラーのある設定の一部がすぐに表示されます。



また、コミットコミットのベストエフォート機能に注意を払いたいと思いました。 このコミットワードは、コミット時に真であるすべての行に適用され、無効な行は無視されます。 おそらく誰かがこの機能を必要とするでしょう。 個人的に、私はそれを使ったことがない。



必要に応じて、コミットシート全体をクリアできます(たとえば、機器を新しいノードとして交換または再利用する場合)。 これを行うには、次のコマンドを使用します。



 RP/0/0/CPU0:RZN-PE-4#clear configuration commits oldest 43 Sun Dec 11 18:26:58.078 UTC Deleting 43 rollback points '1000000001' to '1000000043' 48 KB of disk space will be freed. Continue with deletion?[confirm] RP/0/0/CPU0:RZN-PE-4#show configuration commit list Sun Dec 11 18:27:18.977 UTC The commit database is empty.
      
      





確かに、すべてのコミットに関する情報は保存されますが、別の場所に保存されます:



 RP/0/0/CPU0:RZN-PE-4#show configuration history Sun Dec 11 22:15:04.042 UTC Sno. Event Info Time Stamp ~~~~ ~~~~~ ~~~~ ~~~~~~~~~~ 1 startup configuration applied Sun Dec 11 07:00:27 2016 2 commit id 1000000001 Sun Dec 11 07:01:28 2016 3 commit id 1000000002 Sun Dec 11 07:07:19 2016 4 commit id 1000000003 Sun Dec 11 07:17:26 2016
      
      





ただし、この出力に示されているIDは、リセットすると番号付けが再び開始されるため、方向付けできません。たとえば、43の後、再び1になります。



 RP/0/0/CPU0:RZN-PE-4#show configuration history | b ^52 Sun Dec 11 22:16:57.924 UTC 52 commit id 1000000043 Sun Dec 11 18:24:28 2016 53 commit id 1000000001 Sun Dec 11 18:28:53 2016 54 commit id 1000000001 Sun Dec 11 18:30:57 2016
      
      





さて、 コミットが確認されたような重要かつ有用なチームを忘れないでください。人生を大幅に簡素化し、多くの神経を節約できます。 彼女を代表するのは意味がないと思う。



結論として、私はかつて踏んだレーキについて説明したいと思いました。 rollbackコマンドに注意する必要があります。1000000020へロールバック構成ではなく、 ロールバック構成1000000020を指定すると、現在の構成の変更は、指定したコミットIDで行われた変更に制限されます。 これを例で示します。



私は3つのコミットを連続して行い、それぞれに説明的なものを1つ追加します。 最初のコミット:



 RP/0/0/CPU0:RZN-PE-4(config)#interface gigabitEthernet 0/0/0/3 description 111111 RP/0/0/CPU0:RZN-PE-4(config)#commit comment add 11111 Tue Dec 13 08:21:15.328 UTC RP/0/0/CPU0:RZN-PE-4(config)#
      
      





2番目のコミット:



 RP/0/0/CPU0:RZN-PE-4(config)#interface gigabitEthernet 0/0/0/4 description 22222 RP/0/0/CPU0:RZN-PE-4(config)#commit comment add 22222 Tue Dec 13 08:21:33.627 UTC RP/0/0/CPU0:RZN-PE-4(config)#
      
      





3番目のコミット:



 RP/0/0/CPU0:RZN-PE-4(config)#interface gigabitEthernet 0/0/0/5 description 33333 RP/0/0/CPU0:RZN-PE-4(config)#commit comment add 33333 Tue Dec 13 08:21:54.856 UTC RP/0/0/CPU0:RZN-PE-4(config)#
      
      





コミットのIDを確認します。



 RP/0/0/CPU0:RZN-PE-4#show configuration commit list 5 Tue Dec 13 08:22:04.915 UTC SNo. Label/ID User Line Client Time Stamp ~~~~ ~~~~~~~~ ~~~~ ~~~~ ~~~~~~ ~~~~~~~~~~ 1 1000000022 bormoglot con0_0_CPU0 CLI Tue Dec 13 08:21:54 2016 2 1000000021 bormoglot con0_0_CPU0 CLI Tue Dec 13 08:21:33 2016 3 1000000020 bormoglot con0_0_CPU0 CLI Tue Dec 13 08:21:15 2016 4 1000000019 bormoglot con0_0_CPU0 Rollback Tue Dec 13 08:20:20 2016 5 1000000018 bormoglot con0_0_CPU0 CLI Tue Dec 13 08:16:26 2016
      
      





では、コミットにどのような変更が加えられたのかを見てみましょう(これらは本当にコミットです)。



最初のロールバック:



 RP/0/0/CPU0:RZN-PE-4#show configuration rollback changes 1000000022 Tue Dec 13 08:22:23.474 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/5 no description 33333 ! end
      
      





2番目のロールバック:



 RP/0/0/CPU0:RZN-PE-4#show configuration rollback changes 1000000021 Tue Dec 13 08:22:27.184 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/4 no description 22222 ! end
      
      





3番目のロールバック:



 RP/0/0/CPU0:RZN-PE-4#show configuration rollback changes 1000000020 Tue Dec 13 08:22:30.373 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 no description 111111 ! end
      
      





すべての変更をロールバックし、コミット1000000019であった構成に戻る必要があるとします。ロールバックで何が変わるかを見てみましょう。



 RP/0/0/CPU0:RZN-PE-4#show configuration rollback changes to 1000000020 Tue Dec 13 08:22:34.553 UTC Building configuration... !! IOS XR Configuration 5.3.3 interface GigabitEthernet0/0/0/3 no description 111111 ! interface GigabitEthernet0/0/0/4 no description 22222 ! interface GigabitEthernet0/0/0/5 no description 33333 ! end
      
      





そして今、ロールバックを行い、toキーワードをスキップすることでミスを犯します:



 RP/0/0/CPU0:RZN-PE-4#rollback configuration 1000000020 Tue Dec 13 08:22:49.342 UTC Loading Rollback Changes. Loaded Rollback Changes in 1 sec Committing. 2 items committed in 1 sec (1)items/sec Updating. Updated Commit database in 1 sec Configuration successfully rolled back commit '1000000020'.
      
      





構成はロールバックされ、すべてがうまくいくようです。しかし、結果は期待したものではありません。構成を確認します。



 RP/0/0/CPU0:RZN-PE-4#show running-config Tue Dec 13 08:22:56.432 UTC Building configuration... !! IOS XR Configuration 5.3.3 !! Last configuration change at Tue Dec 13 08:22:50 2016 by bormoglotx ! hostname RZN-PE-4 interface MgmtEth0/0/CPU0/0 shutdown ! interface GigabitEthernet0/0/0/0 description link to core ! interface GigabitEthernet0/0/0/1 description link to SW1 ! interface GigabitEthernet0/0/0/2 shutdown ! interface GigabitEthernet0/0/0/3 shutdown ! interface GigabitEthernet0/0/0/4 description 22222 shutdown ! interface GigabitEthernet0/0/0/5 description 33333 shutdown ! #      
      
      





1000000020をコミットすることでハングしたインターフェイスinterface GigabitEthernet0 / 0/0/3から記述子を削除しただけですが、コミット1000000021および1000000022で行われた変更はキャンセルされませんでした。そのため、構成をロールバックするとき、複数のコミットにスキップまたは除外しないでください。



上記が誰かに役立つことを願っています。ご清聴ありがとうございました。



All Articles