コンフィグレーション

コマンドインタフェースによるコンフィグ作成方法を説明します。

このタスクについて

設定操作の方法ほか、本装置のコンフィグの扱いとライフサイクルについて習得できます。

始める前に

コンフィグのライフサイクルについて

本装置の動作内容を定義するコンフィグは、システム内で役割の異なる複数の場所に保持します。各コンフィグはそれぞれ併記するコマンドで参照できます。
startup-config
内部ストレージに保存されるコンフィグです。起動時にrunning-configに反映されます。また、保存操作によりrunning-configから書き込まれます。
参照コマンド:show config flashrom
running-config
メインメモリに保持し各機能の動作を定めるコンフィグです。起動時にstartup-configから反映されます。また、動作中に編集されたcandidate-configから反映されます。
参照コマンド:show config [running]
candidate-config
メインメモリに保持し、running-configへ反映する候補となるコンフィグです。起動時にstartup-configから反映されます。また、コンフィグ編集操作の対象となり、編集後のエラーチェックにパスするとrunning-configに反映します。
参照コマンド:show config candidate
ヒント:
各コンフィグの書式は同一ですが、running-configは反映時に正規化されるためキーの並びやインデント量が他と異なる場合があります。

編集と反映

コンフィグ変更操作の基本的な手順を説明します。

このタスクについて

ここではターミナル設定(シェルのオプション機能)の変更を例として、コンフィグ変更に関するコマンドを一通り説明します。

始める前に

シェルにログインした状態で操作してください。

手順

  1. 設定状況を確認する
    設定変更にあたり、現在のターミナル設定の状況を確認します。
    show config terminalコマンドを実行します。
    # show config terminal 
    terminal.login-timer: 300
    #
    • ログインタイマー(無操作時の自動ログアウトタイマー)のみ設定されていることがわかります。
    • これは工場出荷時コンフィグに含まれる設定内容です。
  2. 目的の設定内容を確認する
    ここではシェルのページング機能の無効化を設定します。ページングのコンフィグパラメータの構文は次の通りです。
    terminal.pager : [ enable | disable ]
    • 詳細:terminal
    • ページング機能の設定は工場出荷時のコンフィグに含まれていませんが、無設定時のデフォルト値により有効化されています。
    ページング機能を無効化するdisableを設定するには、次のコンフィグを追加する必要があることがわかります。
    terminal.pager : disable
  3. コンフィグを追加する
    コンフィグを追加するにはsetコマンドを使用します。
    setに続けてコンフィグパラメータを入力しますが、キー内の"."および、キーとバリューを区切る":"は空白に置き換えて入力します。
    # set terminal pager disable 
    terminal.pager: disable
    # 
    • 入力を受け付けると追加されたコンフィグがキー&バリュー形式で表示されます。
  4. 設定が反映されたことを確認する
    show config terminalコマンドを実行します。
    # show config terminal 
    terminal.login-timer: 300
    terminal.pager:       disable
    # 
    • 追加されたページングの無効化が確認できます。さらにshow logコマンドなどを実行し、ページングによる一時停止が働かないことを確認してください。
  5. 設定済みのコンフィグを変更する
    ここでは、先に無効化したシェルのページング機能を改めて有効化します。加えて、ログインタイマーのタイムアウト時間を変更します。ログインタイマーのコンフィグパラメータの構文は次の通りです。
    terminal.login-timer : <Time> (1-999999)
    ページングの有効化と、ログインタイマーを1800秒に変更するには、次のようなコンフィグに変更する必要があることがわかります。
    terminal.pager : enable
    terminal.login-timer : 1800
    設定追加時と同様にsetコマンドを使用しますが、同一機能内で構文の近しいコンフィグパラメータは次のようにワンライナー(1行)で入力できます。
    # set terminal pager enable login-timer 1800 
    terminal.pager: enable
    terminal.login-timer: 1800
    # 
    • 入力を受け付けると変更されたコンフィグがキー&バリュー形式で表示されます。
    ヒント:
    ワンライナーは、機能エントリ単位で構文に共通性がある部分を省略する形で連続入力可能にする機能です。複数行のコンフィグをワンライナーで入力する例を紹介します。
    目的のコンフィグ
    dhcp.server.0.expire:       24
    dhcp.server.0.interface:    ge1
    dhcp.server.0.pool.address: 192.168.0.2/24
    dhcp.server.0.pool.count:   253
    dhcp.server.service:        enable
    入力1
    同一のインデックス番号(機能の設定単位)のコンフィグパラメータをワンライナーで入力できます。
    # set dhcp server 0 expire 24 interface ge1 pool address 192.168.0.2/24 count 253 
    dhcp.server.0.expire: 24
    dhcp.server.0.interface: ge1
    dhcp.server.0.pool.address: 192.168.0.2/24
    dhcp.server.0.pool.count: 253
    構文の短い("."区切りが少ないか同じ)パラメータを先に入力する必要がある点に注意してください。構文の長いパラメータを先に入力すると、より短いパラメータは入力候補から除外されます。
    # set dhcp server 0 expire 24 <?>
        (Enter)                   gateway                   ntp                       wins-node
        dns                       ignore-unknown-request    pool                      wins-server
        domain                    interface                 static                    wpad
    # set dhcp server 0 pool count 253 <?>
        (Enter)    address
    入力2
    インデックス番号が有るコンフィグと無いコンフィグとはワンライナーで入力できないため、個別に設定します。
    # set dhcp server service enable 
    dhcp.server.service: enable
  6. コンフィグを削除する
    不要なコンフィグを削除するにはdeleteコマンドを使用します。ここではターミナルの設定を削除します。
    deleteに続けて、削除したいコンフィグパラメータのキー部分(":"より左)を入力します。
    # delete terminal login-timer 
    - terminal.login-timer
    # delete terminal pager
    - terminal.pager
    # 
    • deleteはワンライナーで入力できません。
    showコマンドで参照すると削除されたことが確認できます。
    # show config terminal 
    # 
  7. コンフィグを内蔵スクリーンエディタで直接編集する
    エディタを起動するにはeditコマンドを入力します。エディタの画面ではキー&バリュー形式のコンフィグを直接編集できます。
    注:
    エディタの操作には"vi"エディタの知識が必要です。
    edit
    • 実行するとエディタが起動します。
    エディタの操作方法が不明にもかかわらず起動した場合や、変更を保存せずに終了するにはEsc:q!Enterの順にキーボード入力してください。
    ...
    filter.ipv6.101.action: block
    filter.ipv6.101.destination.address: self
    filter.ipv6.101.destination.port: 22
    :q!
    nothing changed.
    Enter "commit" to apply changes.
    # 
    変更を保存して終了するにはEsc:wqEnterの順にキーボード入力してください。
    ...
    sshd.password-authentication: enable
    sshd.service: enable
    :qw
    /tmp/draft.cfg: 54 lines, 1736 characters.
    Enter "commit" to apply changes.
    # 
  8. 直接編集したコンフィグを動作に反映する
    editコマンドで編集した内容をrunning-configに反映するにはcommitコマンドを使用します。実行するとcandidate-configの内容をエラーチェックし、パスするとrunning-configに反映されます。setコマンドでの設定時は随時チェックと反映が行われますが、editコマンドによる編集後はcommitコマンドを実行する必要があります。
    commitコマンドを実行し、エラーがない場合はコマンドプロンプトのみ表示されます。
    # commit 
    #
    エラーを検出した場合はエラー箇所が示されます。
    # commit 
    
    Error(s) in config:
    terminal.pager: must be "enable" or "disable"
    # 
    # show config candidate terminal 
    terminal.pager: off
    # 
    • 編集したコンフィグはcandidate-configに保存されrunning-configに未反映であるため、確認するにはshow config caididateコマンドを使用します。
    • この例では"enable" or "disable"でなければならないところ、offと記述されているためエラーが示されています。
  9. 設定を保存する
    save-to flashromコマンドを実行すると、メインメモリに保持しているrunning-configの内容が内蔵ストレージのstartup-configに上書きされます。
    注:
    未保存のままシステムを再起動すると、設定変更した内容は失われます。
    # save-to flashrom 
    Running configuration is saved to "flashrom".
    #