Cisco IOS CLIプロンプト-構成しているインターフェイスを確認する方法はありますか?


7

シスコよりもジュニパーとエクストリームの世界に慣れています。私は大丈夫ですが、いくつかの基本的なcliの問題が発生し、ついに私は十分にイライラしました。

8.3+を実行しているCisco ASA 5505/5510または15.2を実行しているCisco 2901ルータの内部。

現在のインターフェイスの構成、または現在のサブメニューがわかるように、IOSプロンプトを設定する方法はありますか?たとえば、「interface vlan 1」と入力すると、(config-if)に変わりますが、誤って何かを変更しないように、その時点でどのインターフェイスサブメニューが表示されているかを確認できると便利です。誤って「interface vlan 2」と入力したかのように、間違ったインターフェース。(config-if / vlan1)のようなものがいいでしょう。

それとも私は単に間違った視点からそれを見ていて、プロンプト構文規則がそのままである正当な理由がありますか?

回答:


7

私の知る限り、答えはNOです。この貴重な機能がどのようにして長年IOSから脱出してきたのか、それを発見することを決して望んでいなかったのです。;-)

自分が思っているインターフェイスを構成していることを確実に確認したい場合は、次の方法を使用します。コメント(!)が表示されています。このテクニックはネットの獣医にとっては長続きするものですが、時には両方である偏執的な群衆に完全に適合します。

conf t
do sh run int g1/1
! Look over int config and note description
int g1/1
 desc GiveMeThisInterfaceOrGiveMeDeath
 do sh run int g1/1
 !Confirm the int you think you're inside configuring is the one intended
 <config-if commands here>

2

IOSスイッチ/ルーターには、現在のサブ構成モードを表示するコマンドはありません。

NX-OSにはwhereコマンドがあります。


2

シスコよりもジュニパーとエクストリームの世界に慣れています。私は大丈夫ですが、いくつかの基本的なcliの問題が発生し、ついに私は十分にイライラしました。

8.3+を実行しているCisco ASA 5505/5510または15.2を実行しているCisco 2901ルータの内部。

技術的にはIOS 15.2では、答えは「はい、設定しているインターフェイスを知ることができます」ですが、私のソリューションには確かに不愉快なkludge-fixが含まれています。

EEMバージョン3.2 を使用して、最後に設定したインターフェイス名を出力する方法を示します。私はこの解決策が完璧であるとは思わないが、それは仕事を成し遂げる。

DEN-EDGE-02#sh ver | i IOS
Cisco IOS Software, 2800 Software (C2800NM-ADVENTERPRISEK9-M), Version 15.1(4)M7, RELEASE 
SOFTWARE (fc2)
DEN-EDGE-02#
DEN-EDGE-02#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
DEN-EDGE-02(config)#username cisco password cisco
DEN-EDGE-02(config)#
DEN-EDGE-02(config)#interface Fa0/0
Last interface configured was: FastEthernet0/0

DEN-EDGE-02(config-if)#no ip proxy-arp
Last interface configured was: FastEthernet0/0

DEN-EDGE-02(config-if)#interface lo0
Last interface configured was: Loopback0

DEN-EDGE-02(config-if)#ip address 1.1.1.1 255.255.255.255
Last interface configured was: Loopback0

DEN-EDGE-02(config-if)#exit
Last interface configured was: Loopback0

DEN-EDGE-02(config)#
DEN-EDGE-02(config)#username cisco password cisco
Last interface configured was: Loopback0

DEN-EDGE-02(config)#end
DEN-EDGE-02#
DEN-EDGE-02#sh ver | i IOS
Cisco IOS Software, 2800 Software (C2800NM-ADVENTERPRISEK9-M), Version 15.1(4)M7, RELEASE 
SOFTWARE (fc2)
DEN-EDGE-02#

この時点で、私の答えは概念実証コードに近づいていますが、いくつかの注意点があります...

  • インターフェイスのロギングは、インターフェイスコンフィギュレーションサブモードを終了した後でも発生します。したがって、Cisco IOS設定モードのままである限り、最近設定したインターフェイスが通知されます。EEMポリシーは、設定モードを終了した後に自身を沈黙させますendcntl-z、この時点ではexit via をキャッチしません。
  • EEMは、スクリプトの状態変数を格納するようにルーターを構成します(つまり$_user_intf、および$_config_mode)。これは%SYS-5-CONFIG_I、スクリプトが状態を変更するたびにsyslogメッセージを受け取ることを意味します(コンソールにいる場合、これは非常に迷惑です)。技術的には、ESMポリシーを接着してEEM Syslogメッセージを無音にすることができますが、それによってこの問題を解決するために行っている作業が増えるだけです...

最後に構成されたインターフェースを印刷するための構成を下に見つけてください... Ivan Pepelnjakのブログについて、Ivan Pepelnjakの功績を認める必要があります_exit_status


! Reset to defaults...
no event manager applet IntfCliLog
no event manager environment _user_intf
no event manager environment _config_mode
!
event manager environment _user_intf _None_
event manager environment _config_mode 1
event manager applet IntfCliLog
 event cli pattern ".*" sync yes
 action 010 set match "_None_"
 action 020 regexp "^(configure t)" $_cli_msg match
 action 030 comment !! Set _config_mode upon entering config mode
 action 040 if $match ne "_None_"
 action 050 cli command "enable"
 action 060 cli command "configure t"
 action 070 cli command "event manager environment _config_mode 1"
 action 080 cli command "end"
 action 090 end
 action 100 set match "_None_"
 action 110 regexp "^(end)" $_cli_msg match
 action 120 comment !! clear variables upon exit from config mode
 action 130 if $match ne "_None_"
 action 140 cli command "enable"
 action 150 cli command "configure t"
 action 160 cli command "event manager environment _config_mode 0"
 action 170 cli command "event manager environment _user_intf _None_"
 action 180 cli command "end"
 action 190 end
 action 200 comment !! Parse any "interface" commands
 action 210 set intfName "_None_"
 action 220 regexp "^interface *(.*)" $_cli_msg match intfName
 action 230 if $intfName ne "_None_"
 action 240 cli command "enable"
 action 250 cli command "configure t"
 action 260 cli command "event manager environment _user_intf $intfName"
 action 270 cli command "end"
 action 280 end
 action 290 comment !! Log the last interface configured
 action 300 if $_config_mode eq 1
 action 340 if $_user_intf ne "_None_"
 action 350 puts "Last interface configured was: $_user_intf"
 action 360 end
 action 370 end
 action 380 comment !! Set _exit_status 1 to run commands with "event cli ... sync yes"
 action 390 set _exit_status 1
 action 400 exit

0

いいえ。ただし、インターフェース名を再度入力するだけで、期待したインターフェースに入るようにすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.