Cisco IOS システム管理 – IOSメニューの設定

スポンサーリンク

IOS Menuとは以下のようなメニュー形式の操作画面を提供する機能です。
このような画面を設ける事で、IOSの知識がない人向けの管理画面を作成したり権限を制限したりする事ができます。

Menu for NOC users


    1.         Display Routing Table

    2.         Display Running Config

    3.         Ping R2

    4.         Traceroute R2

    5.         Escape to Shell

    6.         Disconnect

 choose your selection:

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Router(config)# menu <menu_name> text <label> <text>
Router(config)# menu <menu_name> command <label> <command>
Router(config)# menu <menu_name> title <title>
Router(config)# menu <menu_name> prompt <prompt>
Router(config)# menu <menu_name> clear-screen
Router(config)# menu <menu_name> default <label>
Router(config)# menu <menu_name> single-space
Router(config)# menu <menu_name> status-line
Router(config)# menu <menu_name> options <label> login
Router(config)# menu <menu_name> options <label> pause

構成図

以下の環境で動作確認を行います。

         e0/0    e0/1
 +--------+.1    .2+--------+
 |   R1   +--------+   R2   |
 +--------+        +--------+
        192.168.12.0/24

 R1 Loopback0     R2 Loopback0
 10.1.1.1/32      10.2.2.2/32
 [R1]
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0
!
line vty 0 4
 login local

 [R2]
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/1
 ip address 192.168.12.2 255.255.255.0

設定全文は下記ファイルです。ルーティングなどの詳細設定は下記を参照ください。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router eigrp 10
 network 0.0.0.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login local
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/0
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/1
 ip address 192.168.12.2 255.255.255.0
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router eigrp 10
 network 0.0.0.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

仕様説明

基本設定

以下のコマンドでメニューIOSメニューを作成する事ができます。<command>にmenu-exitを指定すると、IOS menuを離脱し通常のpromptoに戻る操作が可能になります。なお、exitまたはmenu-exitができるメニューを作成しないと、IOS menuから離脱できなくなるので注意が必要です。

Router(config)# menu <menu_name> text <label> <text>
Router(config)# menu <menu_name> command <label> <command>

IOS menuは”menu <menu_name>”というコマンドを実行する事で、IOS menuモードに入ることができます。userやvty lineに対してauto commandを設定すると、ログインした瞬間にIOS menuが表示されるようになります。

Router(config)# username <user> autocommand menu <menu_name>

Router(config)# line vty <num>
Router(config-line)# autocommand menu <menu_name>

privilege

デフォルトの状態で、telnetログインしたユーザのprivilegeは”1″である事に注意して下さい。つまり、”show run”などのコマンドはデフォルトの状態ではIOS Menuで使用する事ができません。以下のコマンドでユーザのprivilegeを上げる事で”show run”などの特権コマンドも使用する事ができます。

Router(config)# username <user> privilege <level>

表示設定

以下のコマンドでIOS menuに関する表示などを変更することができます。

コマンド 説明
menu <menu_name> title <title> IOS menuのタイトルを表示します。
menu <menu_name> prompt <prompt> IOS menuのプロンプトを表示します。
menu <menu_name> clear-screen IOS menuを表示する前にコンソールをクリアします。
menu <menu_name> default <label> ラベルを選択しなかった場合にデフォルトで実行される処理を定義します。
menu <menu_name> single-space 各メニュー間の改行を2つから1つに減らします
menu <menu_name> status-line ログインユーザのline番号を表示します。
menu <menu_name> options <label> login コマンド実行前にログイン認証を求めます。
menu <menu_name> options <label> pause コマンド実行前に一度メニューを表示します。

EEM 連携

IOS Menuは1つのコマンドしか指定する事ができませんが、EEMのevent noneを使用する事で複数のコマンドをIOS Menu経由で実行する事ができます。例えば、”en”, “conf t”, “int s0/0/0”, “shutdown”などのメンテナンス作業もEEMを使用すれば可能となります。以下のようなコマンドを用いて、メンテナンス作業を定義します。

Router(config)# event manager applet <app_name>
Router(config-applet)# event none

定義したメンテナンス作業をIOS Menuから実行できるようにします。

Router(config)# menu <menu_name> text <label> <text>
Router(config)# menu <menu_name> command <label> event manager run <app_name>

基本設定

設定投入

R1に以下のような設定を投入します。

 [R1]
menu NOC text 1. Display Routing Table
menu NOC command 1. show ip route
menu NOC text 2. Display Running Config
menu NOC command 2. show run
menu NOC text 3. Ping R2
menu NOC command 3. ping 10.2.2.2
menu NOC text 4. Traceroute R2
menu NOC command 4. traceroute 10.2.2.2
menu NOC text 5. Escape to Shell
menu NOC command 5. menu-exit
menu NOC text 6. Disconnect
menu NOC command 6. exit
!
username NOC secret NOC
username NOC autocommand menu NOC

動作確認

R2からR1に接続し、IOS menuが表示される事を確認します。なお、”show run”は権限不足により実行できないようでした。

 [R2]
R2>telnet 192.168.12.1
Trying 192.168.12.1 ... Open


User Access Verification

Username: NOC
Password:

    1.         Display Routing Table

    2.         Display Running Config

    3.         Ping R2

    4.         Traceroute R2

    5.         Escape to Shell

    6.         Disconnect


Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.12.0/24 is directly connected, Ethernet0/0
     10.0.0.0/32 is subnetted, 2 subnets
D       10.2.2.2 [90/409600] via 192.168.12.2, 00:27:48, Ethernet0/0
C       10.1.1.1 is directly connected, Loopback0

    1.         Display Routing Table

    2.         Display Running Config

    3.         Ping R2

    4.         Traceroute R2

    5.         Escape to Shell

    6.         Disconnect


Menu "NOC" has invalid command "show run"
show run
      ^
% Invalid input detected at '^' marker.

privilege

設定投入

R1に以下コマンドを投入し、IOS Menuで”show run”が使えるようにします。

 [R1]
username NOC privilege 15

動作確認

IOS Menuでshow runが使用可能な事を確認します。

 [R2]
R2#telnet 10.1.1.1
Trying 10.1.1.1 ... Open


User Access Verification

Username: NOC
Password:

    1.         Display Routing Table

    2.         Display Running Config

    3.         Ping R2

    4.         Traceroute R2

    5.         Escape to Shell

    6.         Disconnect


Building configuration...

Current configuration : 1304 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker

 <omitted>

表示設定

動作確認

R1に以下のような設定を投入します。

 [R1]
menu NON status-line
menu NOC title #
Menu for NOC users
#
menu NOC prompt # Choose your selection: #
menu NOC clear-screen
menu NOC default 1.
menu NOC single-space

IOS menuの表示が変わった事を確認します。

 [R2]
R2>telnet 192.168.12.1
Trying 192.168.12.1 ... Open


User Access Verification

Username: NOC
Password:


Menu for NOC users

    1.         Display Routing Table
    2.         Display Running Config
    3.         Ping R2
    4.         Traceroute R2
    5.         Escape to Shell
    6.         Disconnect

 Choose your selection:

EEM 連携

設定投入

IOS Menu経由で、R1 lo0がメンテナンスできるようなEEMを作成します。

 [R1]
event manager applet APP_SHUT
 event none
 action 10 cli command "en"
 action 20 cli command "conf t"
 action 30 cli command "int lo0"
 action 40 cli command "shut"
!
event manager applet APP_NO_SHUT
 event none
 action 10 cli command "en"
 action 20 cli command "conf t"
 action 30 cli command "int lo0"
 action 40 cli command "no shut"
!
menu NOC text 7. shutdown lo0
menu NOC command 7. event manager run APP_SHUT
menu NOC text 8. no shutdown lo0
menu NOC command 8. event manager run APP_NO_SHUT

動作確認

IOS Menuを用いて R1 lo0をshutdownさせます。

 [R2]
R2#telnet 192.168.12.1
Trying 192.168.12.1 ... Open


User Access Verification

Username: NOC
Password:

Menu for NOC users

    1.         Display Routing Table
    2.         Display Running Config
    3.         Ping R2
    4.         Traceroute R2
    5.         Escape to Shell
    6.         Disconnect
    7.         shutdown lo0
    8.         no shutdown lo0

 Choose your selection:

 >omitted<

IOS Menuによる操作後、想定通りR1 lo0がshutdownされている事を確認します。

 [R1]
R1#show ip interface brief Loopback 0
Interface                  IP-Address      OK? Method Status                Protocol
Loopback0                  10.1.1.1        YES NVRAM  administratively down down
R1#
タイトルとURLをコピーしました