差分

ナビゲーションに移動 検索に移動
38行目: 38行目:  
=== 実機や仮想環境で挙動を確認 ===
 
=== 実機や仮想環境で挙動を確認 ===
 
考えたとおりには動きません。設定したとおりに動きます。
 
考えたとおりには動きません。設定したとおりに動きます。
 +
 +
設定差分確認は、動作を確認したことになりません。
 +
 +
Cisco であれば show コマンドで設定した機能が動作しているか確認します。
    
=== 置換は慎重に、でも多用 ===
 
=== 置換は慎重に、でも多用 ===
44行目: 48行目:  
* コンフィグを投入することによる機器の動作を知らない
 
* コンフィグを投入することによる機器の動作を知らない
   −
* わかっていないことがわかっていない  
+
* '''わかっていないことがわかっていない'''
    
* 何が正しいコンフィグか判断できない = 異常があっても気づけない
 
* 何が正しいコンフィグか判断できない = 異常があっても気づけない
55行目: 59行目:  
* 差分確認をインターフェースの 1/0/x と 2/0/x で取るなど
 
* 差分確認をインターフェースの 1/0/x と 2/0/x で取るなど
   −
=== 相談相手は 3 つしかありません 以下の順で相談すると信頼性が高いコンフィグに ===
+
=== 相談相手は 3 つしかありません 以下の順で相談すると信頼性が高いコンフィグにできます ===
    
* ドキュメント ('''特にコンフィギュレーションガイド''')
 
* ドキュメント ('''特にコンフィギュレーションガイド''')
 
* 実機・仮想環境
 
* 実機・仮想環境
 
* 人
 
* 人
 +
要件次第ですが、コンフィグは厳密に作成できるものです。
 +
 +
人の曖昧な回答よりも、実機で動くか確認したほうが良いケースが多いです。
    
=== 確認は機械自身にさせましょう ===
 
=== 確認は機械自身にさせましょう ===
68行目: 75行目:     
人に聞くのは、「方向性に迷った時」など、曖昧さが含まれる疑問があるときに効果が大きいです。
 
人に聞くのは、「方向性に迷った時」など、曖昧さが含まれる疑問があるときに効果が大きいです。
 +
 +
* 刺激的な言い方をすると、「機械でカンニングし放題」
    
=== コンフィギュレーションガイドに聞く ===
 
=== コンフィギュレーションガイドに聞く ===
124行目: 133行目:     
== コンフィグ変更の例 ==
 
== コンフィグ変更の例 ==
昨今 Ansible で出てくる、冪等性 (= 何度やっても同じ結果になる) を確保できる投入コンフィグを作成するのがおすすめです。
+
昨今 Ansible で出てくる、冪等性 (= 何度やっても同じ結果になる) を確保できる投入コンフィグを作成するのを推奨します。
    
既存のコンフィグを把握していないと、正しいかどうかわからない投入コンフィグは、レビュー時のコストがかなり高くなってしまいます。
 
既存のコンフィグを把握していないと、正しいかどうかわからない投入コンフィグは、レビュー時のコストがかなり高くなってしまいます。
333行目: 342行目:     
* show crypto key <key_name> rsa で確認
 
* show crypto key <key_name> rsa で確認
* 実際に SSH 接続できるか、確認したほうが良い
+
* show running-config に出ないため、実際に SSH 接続できるか、確認したほうが良い
    
== 有効にするために reload が必要な設定 ==
 
== 有効にするために reload が必要な設定 ==
399行目: 408行目:  
== バッドプラクティス例 ==
 
== バッドプラクティス例 ==
   −
=== 作業品質が低いエンジニアの例 ===
+
=== 作業品質が低いコンフィグの例 ===
レビュアーとして他人のコンフィグをレビューする場合、show running-config と投入コンフィグで差分が多く出るコンフィグを作成する人には、気をつけたほうが良いでしょう。
+
レビュアーとして他人のコンフィグをレビューする場合、show running-config と投入コンフィグで差分が多く出るコンフィグには、気をつけたほうが良いでしょう。
    
* 大文字と小文字が異なる、スペースの数が不適切
 
* 大文字と小文字が異なる、スペースの数が不適切
406行目: 415行目:  
*** 誤 : Gigabit , Ethernet の頭が小文字になっている
 
*** 誤 : Gigabit , Ethernet の頭が小文字になっている
 
*** 誤 : net と 1/ の間にスペースがある
 
*** 誤 : net と 1/ の間にスペースがある
 +
** 手打ちしている可能性大
 
* インデントされたスペースの数が異なる
 
* インデントされたスペースの数が異なる
** Winmerge で差分を取ったときに差が大量に出てしまう
+
** Winmerge で差分を取ったときに差分が大量に出てしまう
 
* show running-config と投入順番が異なる
 
* show running-config と投入順番が異なる
 
** ACL 定義後に PACL を設定するなど、あえてやる場合もあります
 
** ACL 定義後に PACL を設定するなど、あえてやる場合もあります
421行目: 431行目:     
* 「Google で調べた情報を設定しました」「他の案件のコンフィグからコピペしました」 -> 設定した人の責任になり、めちゃくちゃ怒られます
 
* 「Google で調べた情報を設定しました」「他の案件のコンフィグからコピペしました」 -> 設定した人の責任になり、めちゃくちゃ怒られます
* 「コンフィギュレーションガイドの通りに設定しましたが、S/W 不具合でトラフィックが失われました」 -> S/W 不具合 (=Cisco) の責任
+
* 「コンフィギュレーションガイドの通りに設定しましたが、S/W 不具合でトラフィックが失われました」 -> S/W 不具合 (=Cisco) の責任 or 検証していない NIer の責任
    
Google の検索結果はあくまで参考に、コンフィギュレーション ガイドを尊重します。
 
Google の検索結果はあくまで参考に、コンフィギュレーション ガイドを尊重します。
577行目: 587行目:  
Winmerge で差分比較を行い、コンフィグの妥当性を確認、有識者を交えてレビューを行います。
 
Winmerge で差分比較を行い、コンフィグの妥当性を確認、有識者を交えてレビューを行います。
   −
医者で言う症例カンファレンスですね。
+
医療で言う症例カンファレンスに該当します。
    
=== 実績のある、類似案件のコンフィグと比較 ===
 
=== 実績のある、類似案件のコンフィグと比較 ===
594行目: 604行目:  
</syntaxhighlight>机上作成時のクオリティをアップさせます。
 
</syntaxhighlight>机上作成時のクオリティをアップさせます。
   −
L2SW のコンフィグを多数作成する場合、jinja2 テンプレートから .csv のパラメータシートを読み込んでコンフィグを生成させる、などの方法を用いると生成もレビューも楽できて良いです。
+
L2SW のコンフィグを多数作成する場合、jinja2 テンプレートから .csv のパラメータシートを読み込んでコンフィグを生成させる、などの方法を用いると生成もレビューも楽をできて良いです。
    
=== Stack / VSS で 1 号機と 2 号機のポートを比較 ===
 
=== Stack / VSS で 1 号機と 2 号機のポートを比較 ===
653行目: 663行目:  
ラボの機器で provision して投入コンフィグを作成、実機が届いたら投入することで、事前に実機で答え合わせした上で、投入コンフィグを作成できます。
 
ラボの機器で provision して投入コンフィグを作成、実機が届いたら投入することで、事前に実機で答え合わせした上で、投入コンフィグを作成できます。
   −
例えば Catalyst 3850 は以下の SKU のコンフィグを作成可能です。<syntaxhighlight lang="diff">
+
例えば Catalyst 3850 + IOS-XE 16.12.x は以下の SKU のコンフィグを作成可能です。<syntaxhighlight lang="diff">
 
switch(config)#switch 3 pro
 
switch(config)#switch 3 pro
 
switch(config)#switch 3 provision ?
 
switch(config)#switch 3 provision ?
770行目: 780行目:  
ip access-list extended <名前> など、任意の文字列を使用できる箇所で、見間違える文字を使用してしまうケースです。
 
ip access-list extended <名前> など、任意の文字列を使用できる箇所で、見間違える文字を使用してしまうケースです。
   −
設計書でルール化して、どちらか片方しか使わなくするなどの対応を取ります
+
設計書でルール化して、どちらか片方しか使わなくするなどの対応を取ります。
    
=== show run | in <name> で、名前が正しく定義・適用されているか確認します ===
 
=== show run | in <name> で、名前が正しく定義・適用されているか確認します ===

案内メニュー