ラボで役立つ TIPS 集
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