ラボで役立つ TIPS 集

提供:hkatou_Lab
ナビゲーションに移動 検索に移動

Cisco IOS コマンド

configure replace

指定したテキストファイルの内容へ、running-config を全入れ替え (リストア) するコマンド。

通常ターミナルからペーストや copy *.txt running-config で実施した場合、マージとなるため、削除を個別対処する手間がありますが、入れ替えは自動で不要なコンフィグを削除してくれるため、非常に楽な状況が存在します。


copy running-config flash:YYMMDD_hostname.cfg などとしてバックアップしておき、切り戻したくなったら、configure replace flash:YYMMDD_hostname.cfg を実行します。


テキストファイルを Windows で作成するのは、文字コードと改行コードが異なるため、避けたほうが良いです。

編集するなら、copy running-config ftp://<PC_IP> で Windows にコピーし、文字コードと改行コードを変更しないように実施、下記戻します。


Nexus の NX-OS でも使用可能です。

interface range

複数のインターフェースを設定できます。

default *

設定をデフォルト値に戻します。no で消せない時などに便利です。

default interface range

複数のインターフェースの設定をデフォルト値に戻します。

EVE-NG

Chrome で node をクリックしたときに teraterm を起動させたい

EVE-NG Client Pack 2.0 をインストールした直後は、telnet クライアントとして putty が動作します。

以下のレジストリへ書き換えることで、teraterm に変更できます。

Win10 / Win11 @ teraterm 4.x

win10_putty_to_teraterm.reg のファイル名で、以下をテキスト ファイルとして保存、実行する。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Putty.telnet\shell\open\command]
@="\"C:\\Program Files (x86)\\teraterm\\ttermpro.exe\" /T=1 /nossh %1"

teraterm のフォルダが teraterm5 の場合がありますので、その場合は書き換えて使用してください。

外部の機器で冗長切り替えすると、IPv6 が疎通不可

Bridge Interface で Multicast Snooping が動作しているために、発生している可能性があります。

Cloud Interface で外部の機器と接続する際、Ubuntu の Bridge pnet_x では Multicast Snooping が動作しています。

外部機器で IPv6 GW の冗長切替を行い MAC が変更になった場合、外部機器が送信する IPv6 NS 新しい MAC + 既存と同じ

v6 アドレスのパケットがフィルタされてしまい、冗長切替後も通信断が継続する場合があります。

外部機器では Neighbor Advertisement を受信できず、ipv6 neighbor エントリが Incomplete になってしまいます。


この動作を回避するには、EVE-NG で以下のコマンドを入力します。

# echo 0 > /sys/devices/virtual/net/<pnet[0-9]>/bridge/multicast_snooping

pnet[0--9] は、EVE-NG のトポロジで接続した interface 名に変更して実行してください。

interface は、brctl show である程度確認ができるため、Cloud Network に接続する前後で

brctl を取得して pnet の番号を確認すると良いでしょう。

pnet の確認方法
root@eve-ng:~# brctl show
bridge name     bridge id               STP enabled     interfaces
pnet0           8000.000c29853941       no              eth0
                                                        vunl1_2_0
                                                        vunl1_9_0

pnet0 が Bridge , eth0 が物理 NIC で、EVE-NG の Topology で Cloud Interface に接続すると、

vunl が増えます。

インターネット接続と管理セグメントを両立する方法

telnet 用の管理セグメントを構築して DHCP で IP とゲートウェイを配布すると、インターネットに接続ができなくなるケースがあります。

この場合、管理セグメントには別 NIC にスタティックルートを設定することで、デフォルト ゲートウェイはインターネットに向けることが可能です。

                         Static         Defeaut
                         Route          Gateway
Management                <<<           >>>
192.168.0.0/24  NW   --------------  PC ---- Mobile ---- The
              devices .1      DHCP           Router      Internet
                     10.10.253.0/24                      0.0.0.0/0

# Management 側の DHCP は、デフォルトルートの配布なし

Windows PC 手動スタティック ルート設定例

PC を 10.10.253.0/24 のセグメントに接続して、

192.168.0.0/24 宛のスタティックルートを、

ネクストホップ 10.10.253.1 とする設定例です。

手動で Windows PC にスタティック ルートを設定する場合、管理者権限のコマンド プロンプトで以下を設定します。

route add 192.168.0.0 mask 255.255.255.0 10.10.253.1

Cisco IOS の DHCP サーバ設定例

telnet する PC の台数が多い場合、コマンド プロンプトで設定する手間が大きいです。

このようなケースでは、DHCP サーバで自動配布すると便利で、IOS の場合は以下で可能です。

ip dhcp pool Management
 network 10.10.253.0 255.255.255.0
 option 121 hex 18C0.A800.0A0A.FD01

DHCP オプションを hex の 16 進数で設定するのが面倒なため、Windows であれば関数電卓で 16 -> 10 進数へ変換すると良いです。

なお、option 121 ip で指定しても、動作しません。

hex の割当は以下のようになっているため、検証環境に応じてアレンジして使用できます。

hex 18C0.A800.0A0A.FD01 の詳細

プレフィックス長

  • 18 : /24

宛先プレフィックス

  • C0 : 192 第一オクテット
  • A8 : 168 第二オクテット
  • 00 : 0 第三オクテット
    • プレフィックス長を /16 とした場合、この 00 は省略する必要があります

ネクストホップ

  • 0A : 10 第一オクテット
  • 0A : 10 第二オクテット
  • FD : 253 第三オクテット
  • 01 : 1 第四オクテット

ログの保存フォルダを大量に作成したい

1) 複数のフォルダ作成コマンドをテキストファイルで作成しておく

mkdir 01a-N9K#1_PS1_remove
mkdir 01b-N9K#1_PS1_insert
mkdir 02a-N9K#1_PS2_remove
mkdir 02b-N9K#1_PS2_insert

2) フォルダ作成コマンドをエディタでコピーして、量産する

mkdir 01a-N9K#1_PS1_remove
mkdir 01b-N9K#1_PS1_insert
mkdir 02a-N9K#1_PS2_remove
mkdir 02b-N9K#1_PS2_insert

mkdir 03a-N9K#2_PS1_remove
mkdir 03b-N9K#2_PS1_insert
mkdir 04a-N9K#2_PS2_remove
mkdir 04b-N9K#2_PS2_insert

3)エクスプローラで作成したいフォルダのアドレス欄を右クリックしてクリップボードへコピー

4) Windows のコマンドプロンプトにペーストし、作成したいフォルダへ移動

cd <Folder>

cd スペースキーを打った後にマウスで右クリックして移動先フォルダをペースト

5) 2) のフォルダ作成コマンドをペーストし、一気にフォルダを作成

↓ 作成した結果

>dir
 Volume in drive C has no label.
 Volume Serial Number is xxxx-xxxx

 Directory of C:\***

07/27/2023  04:44 PM    <DIR>          .
07/27/2023  04:44 PM    <DIR>          ..
07/27/2023  04:28 PM    <DIR>          01a-N9K#1_PS1_remove
07/27/2023  04:32 PM    <DIR>          01b-N9K#1_PS1_insert
07/27/2023  04:39 PM    <DIR>          02a-N9K#1_PS2_remove
07/27/2023  04:42 PM    <DIR>          02b-N9K#1_PS2_insert
07/27/2023  04:51 PM    <DIR>          03a-N9K#2_PS1_remove
07/27/2023  04:44 PM    <DIR>          03b-N9K#2_PS1_insert
07/27/2023  04:44 PM    <DIR>          04a-N9K#2_PS2_remove
07/27/2023  04:44 PM    <DIR>          04b-N9K#2_PS2_insert
               0 File(s)              0 bytes
              10 Dir(s)  74,957,721,600 bytes free

検証メンバーが多い場合は予め作成・配布しておくとベター。

Windows でコマンド プロンプトの出力結果をファイルに保存したい

Windows のコマンド プロンプトも、ファイルシステムへのリダイレクトが使用できます。

C:\freesoft\SnmpWalk>snmpwalk -r:192.168.0.1 -v:2c -c:public > "C:\log\07_BGP01_SNMP_polling.txt"

表示された結果をコピペ -> テキスト エディタで保存する手間が減ります。

みだれうち ping

tclsh を使用することで、IOS から複数の宛先 IP や複数の送信元 IP から ping を一気に行うことができます。

複数の宛先へ ping

tclsh
foreach address {
 10.0.0.1
 10.0.0.2
 10.0.0.3
 10.0.0.4
 10.0.0.5
}  { ping $address }
tclquit

複数の送信元 IP から特定の宛先へ ping

tclsh
foreach address {
 10.0.0.1
 10.0.0.2
 10.0.0.3
 10.0.0.4
 10.0.0.5
} { ping 8.8.8.8 source $address }
tclquit

複数の送信元 Loopback IP から特定の宛先へ ping

Loopback インターフェースを大量に作成 + vrf にわけて、いろいろな IP を送信元にして打つとかなり便利です。


例えば上位側の機器のスタティック ルートの設定が正しいか、一度に確認できます。

上位側でスタティックルートが間違っていた場合、ping が失敗する Loopback 関連の設定を見直すことが可能です。

configure terminal
!
vlan 10
vlan 11
vlan 12
vlan 13
vlan 14
!
! 上位側機器と /30 サブネットで P2P スタティックルーティング用 SVI を作成
interface Vlan10
 ip vrf forwarding Lo0
 ip address 10.10.0.2 255.255.255.252
 no shutdown
!
interface Vlan11
 ip vrf forwarding Lo1
 ip address 10.10.1.2 255.255.255.252
 no shutdown
!
interface Vlan12
 ip vrf forwarding Lo2
 ip address 10.10.2.2 255.255.255.252
 no shutdown
!
interface Vlan13
 ip vrf forwarding Lo3
 ip address 10.10.3.2 255.255.255.252
 no shutdown
!
interface Vlan14
 ip vrf forwarding Lo4
 ip address 10.10.4.2 255.255.255.252
 no shutdown
!
! 各 SVI 用デフォルトルートを作成
ip route vrf Lo0 0.0.0.0 0.0.0.0 10.10.0.1
ip route vrf Lo1 0.0.0.0 0.0.0.0 10.10.1.1
ip route vrf Lo2 0.0.0.0 0.0.0.0 10.10.2.1
ip route vrf Lo3 0.0.0.0 0.0.0.0 10.10.3.1
ip route vrf Lo4 0.0.0.0 0.0.0.0 10.10.4.1
!
! Loopback ごとに vrf を作成
ip vrf Lo0
ip vrf Lo1
ip vrf Lo2
ip vrf Lo3
ip vrf Lo4
!
! ルーティング確認用に Loopback アドレスを設定
interface Loopback0
 ip vrf forwarding Lo0
 ip address 10.0.0.1 255.255.255.255
!
interface Loopback1
 ip vrf forwarding Lo1
 ip address 10.0.1.1 255.255.255.255
!
interface Loopback2
 ip vrf forwarding Lo2
 ip address 10.0.2.1 255.255.255.255
!
interface Loopback3
 ip vrf forwarding Lo3
 ip address 10.0.3.1 255.255.255.255
!
interface Loopback4
 ip vrf forwarding Lo4
 ip address 10.0.4.1 255.255.255.255
!
end

tclsh
foreach loopback {
 Lo0
 Lo1
 Lo2
 Lo3
 Lo4
} { ping 8.8.8.8 source $loopback }
tclquit

ファシリティ

1000 Base-SX にシングルモード ファイバを誤って使用した場合

1000 Base-SX はマルチモードで動作する規格です。誤ってシングルモード ファイバを使用した場合、

  • リンクアップはする
  • ping が疎通したりしなかったりする
    • Rcv-Err がカウントされ、フレームがドロップされたりされなかったりする

という動作となり、割とたちが悪い動作となります。

光ファイバーケーブルは、色で種類が決まっている

SMF : 黄色

MMF OM1/OM2 : オレンジ

MMF OM3/OM4 : 水色

MMF OM5 : 黄緑

参考

OM1、OM2、OM3、OM4、OM5、OS1/OS2の違い・用途・規格と光コネクタの研磨方法について解説

スイッチ間のメタルケーブルの速度を固定にしたら、リンクダウンして復旧しません

同一機器間であってもストレート ケーブルを使用できる Auto MDIX は、オートネゴシエーションが必要で、固定では動作しません。

ストレート ケーブルを使用していると思いますが、スイッチ間では使用せず、クロスケーブルを使うのがベストプラクティスです。

トラブル発生時に固定設定へ変更できなくなるリスクがあるため、スイッチ間はクロスケーブルを使用してください。


商用ネットワークでやってしまうと、多くのケースで大量の配線があるため、次のリプレースまでは修正できないでしょう。

サードパーティ トランシーバを使用したい

設定を追加することで使用可能になる場合があります。

サードパーティ トランシーバ を参照してください。

テンプレートコンフィグ

管理系など共通で入れておくと便利な、テンプレートコンフィグです。

ホスト名や各 IP アドレス部分を適宜書き換えて使用します。

IOSvL2 用

enable

configure terminal
!
service timestamp debug datetime show-timezone year
service timestamp log datetime show-timezone year
!
logging buffered 1024000
logging rate-limit console 5 except errors
!
clock timezone JST 9 0
!
hostname SW1
!
ip routing
!
ip vrf MGMT
!
vtp mode transparent
!
port-channel load-balance src-dst-ip
!
spanning-tree mode rapid-pvst
!
interface GigabitEthernet0/0
 no switchport
 ip vrf forwarding MGMT
 ip address 10.0.0.1 255.255.255.0
 no shutdown
!
ip route vrf MGMT 0.0.0.0 0.0.0.0 10.0.0.254
!
snmp-server community public ro
snmp-server host 10.0.0.250 vrf MGMT public
logging trap debugging
logging host 10.0.0.250 vrf MGMT
!
line vty 0 4
 exec-timeout 600 0
 no login
 exec prompt timestamp
 no password
 logging synchronous
 privilege level 15
 transport input telnet ssh
!
ntp server vrf MGMT 10.0.0.254
!
end

IOS-XE Cat9000V 用

enable

configure terminal
!
service timestamp debug datetime show-timezone year
service timestamp log datetime show-timezone year
!
logging buffered 1024000
logging rate-limit console 5 except errors
!
clock timezone JST 9 0
!
hostname SW1
!
ip routing
!
vrf definition Mgmt-vrf
!
vtp mode transparent
!
! port-channel load-balance src-dst-ip
!
spanning-tree mode rapid-pvst
!
interface GigabitEthernet0/0
 vrf forwarding Mgmt-vrf
 ip address 10.0.0.1 255.255.255.0
 no shutdown
!
ip route vrf Mgmt-vrf 0.0.0.0 0.0.0.0 10.0.0.254
!
snmp-server community public ro
snmp-server host 10.0.0.250 vrf Mgmt-vrf public
logging trap debugging
logging host 10.0.0.250 vrf Mgmt-vrf
!
line vty 0 4
 exec-timeout 600 0
 no login
 exec prompt timestamp
 no password
 logging synchronous
 privilege level 15
 transport input telnet ssh
!
ntp server vrf Mgmt-vrf 10.0.0.254
!
end

NX-OS 用

configure terminal
!
feature telnet
!
hostname Spine01
!
username admin password admin
!
int mgmt 0
 ip address 10.0.0.11/24
 no shut
!
vrf context management
 ip route 0.0.0.0/0 mgmt 0 10.0.0.254
!
clock timezone JST 9 0
ntp server 10.11.252.254 use-vrf management
!
logging server 10.0.0.254 use-vrf management
logging source-interface mgmt 0
!
snmp-server host 10.0.0.254 use-vrf management
snmp-server source-interface traps mgmt 0
snmp-server source-interface informs mgmt 0
snmp-server community public ro
!
line console
 exec-timeout 600
!
line vty
 exec-timeout 600
!
boot nxos bootflash:nxos64-cs.10.3.4a.M.bin
!
end

copy running-config startup-config

Arista EOS 用

admin

enable

configure terminal
!
hostname eos-edge02
!
username admin secret admin
!
vrf instance management
!
interface Management1
 ip address 10.0.0.11/24
 no shutdown
!
ip route vrf management 0.0.0.0/0 Management1 10.0.0.254
!
clock timezone Asia/Tokyo
ntp server vrf management 10.0.0.254
!
logging vrf management host 10.0.0.254
logging vrf management source-interface Management 1
!
snmp-server host 10.0.0.254 vrf management traps
snmp-server local-interface Management 1
snmp-server community public ro
!
management console
 idle-timeout 600
!
management telnet
 idle-timeout 600
!
end

write memory

Juniper vMX 用

delete chassis auto-image-upgrade
delete interfaces fxp0.0 family inet dhcp
delete interfaces fxp0.0 family inet6
delete protocols router-advertisement interface fxp0.0

set system host-name <hostname>
set system management-instance
set system services telnet
set interfaces fxp0 unit 0 family inet address <Management_IP>
set routing-instances mgmt_junos routing-options static route 0.0.0.0/0 next-hop <dgw-next-hop>

set system login user <username> class super-user authentication plain-text-password
set system root-authentication plain-text-password

Juniper vJunos-EVO

delete chassis auto-image-upgrade
delete interfaces re0:mgmt-0 family inet dhcp
delete interfaces re0:mgmt-0 family inet6

set system host-name <hostname>
set system management-instance
set system services telnet
set interfaces re0:mgmt-0 unit 0 family inet address <Management_IP>
set routing-instances mgmt_junos routing-options static route 0.0.0.0/0 next-hop <dgw-next-hop>

set system login user <username> class super-user authentication plain-text-password
set system root-authentication plain-text-password