WireShark

ExcelVBAのメリット・デメリット

ExcelVBAのメリットとデメリットを紹介したいと思います。

隙間プログラマーなので主にPythonとの比較となっています。

 

メリット

WindowsOSであれば開発環境と実行環境が整っている

WindowsPCが一般的になっているので実質どこでも使えます。

Pythonを使うまでは気にしていませんでしたが重要でした。

Pythonでツールを作ってexe化すればPythonが入ってなくても使えますが、エラーの際にデバッグができません。自分のPCだけで使うのであれば全く問題ありませんが、ツールを他の人に提供してそこでエラーが起きた際は調査ができません。

 

Excelの操作性が抜群に良い

当たり前ですが。

入力値のチェックをしてエラーとなった場合でも開いているシート上ですぐ修正することができます。

Pythonの場合だと値を修正する為に毎回テキストを開いて保存して閉じる必要があります。

デメリット

WindowsOS以外では使えない

ExcelなのでWindowsOS以外だと基本使えません。

PythonだとLinux系OSは標準搭載なのですぐ使えます。ここは逆ですね。

 

古くからある言語なので柔軟性が低い。と思っています。

コーディングしていてもPythonの方が融通が効く事が多いです。

VBAだと、「あれ?なんでここエラーなの?値入らないぞ。if文かますか・・」となります。

 

結局は環境とやりたい事に合わせて使う

VBAから入ったら何でもVBAで作る派でしたが、他の言語を触るとやっていることはほとんど同じなので環境によって2、3個扱えるようになっておけば不自由ないと思います。

が、WindowsならとりあえずVBAでOK!

 

Wireshark TCP Dup ACKの意味と原因

Wiresharkに表示されるTCP Dup ACKの原因と対処法を紹介します。

 

原因

経路上でパケットドロップが発生しています。

 

意味(マーキングされる条件)

3WAYハンドシェイク後で応答ACKパケット番号が同じものが2回出たらマーキングされます。

応答ACKなのでLENは0のみです。

キャプチャデータの見方

TCP Dup ACKを出した側のキャプチャを見ていきます。

図のNo 1120で192.168.50.217のPCが応答ACKを出した際に[TCP Dup ACK 1115#1]となっています。

[TCP Dup ACK 1115#1]はキャプチャした内容からWiresharkが判断してマーキングした内容です。

 

Wireshark TCP Dup ACK

TCP Dup ACK

192.168.50.217のPCがデータパケットを受け取り、172.67.170.128のサーバへ応答のACKを返しています。

その後ACKを返したのにもかかわらず同じデータが送られてきたので

応答のACKを返しています。ここでTCP Dup ACKとなっています。

 

ここから考えられる事は1回目に出したACKがサーバまで届かなかったので、サーバは再送タイマで同じデータを再送したということになります。

 

対処法

PCからサーバ間の経路上で輻輳していないか確認して解消させる事です。

輻輳するポイントとしては帯域が狭くなりやすいスイッチのアップリンクやWAN回線の出口です。

インターネット上のサーバとの通信で発生している場合は調査できません。

 

switchport

switchportはインタフェースをレイヤー2として使うため、インタフェースをL3モードからL2モードに変えるコマンドです。

 

設定

vlan100,200を作成

 

Switch> enable

Switch# configer terminal

Switch(config)# vlan 100

Switch(config-vlan)# exit

Switch(config)# vlan 200

Switch(config-vlan)# exit

 

 

interface gigabitethernet 1/0/1をL3モードからL2モードへ変えてvlan100を割り当て

 

Switch(config)# interface gigabitethernet 1/0/1

Switch(config-if)# switchport

Switch(config-if)# switchport mode access

Switch(config-if)# switchport access vlan 100

Switch(config-if)# no shutdown

Switch(config-if)# exit

 

 

interface gigabitethernet 1/0/2をL3モードからL2モードへ変えてvlan100,200を割り当て

 

Switch(config)# interface gigabitethernet 1/0/2

Switch(config-if)# switchport

Switch(config-if)# switchport mode trunk

Switch(config-if)# switchport trunk allwed vlan 100,200

Switch(config-if)# no shutdown

Switch(config-if)# end

Switch# copy running-config startup-config 

 

削除

  • no switchport

 

状態確認

  • show interfaces gigabitethernet 1/0/1 switchport
  • show interfaces gigabitethernet 1/0/1 trunk

 

 

注意点

 

 

 

 

関連コマンド

  • switchport nonegotiate
  • switchport voice vlan
  • switchport port-security
  • switchport mode private-vlan
  • switchport priority extend
  • switchport trunk
  • switchport block
  • switchport mode
  • switchport access vlan

channel-group

channel-groupは帯域増強や冗長化を行うため、物理ポートを論理ポートに集約するコマンドです。

設定

物理ポートgigabitethernet 1/0/1と2/0/1をPo1へ集約します。

Switch> enable

Switch# configure terminal

Switch(config)# interface gigabitethernet 1/0/1

Switch(config-if)# switchport

Switch(config-if)# switchport mode access

Switch(config-if)# channel-group 1 mode on

Switch(config-if)# no shutdown

Switch(config-if)# exit

Switch(config)# interface gigabitethernet 2/0/1

Switch(config-if)# switchport

Switch(config-if)# switchport mode access

Switch(config-if)# channel-group 1 mode on

Switch(config-if)# no shutdown

Switch(config-if)# end

Switch# copy running-config startup-config

 

mode設定部分は接続によって使い分けます。

スニファーなどと接続

  • channel-group 1 mode auto
  • channel-group 1 mode disable

 

PAgPの使用できるCisco装置と接続

  • channel-group 1 mode auto non-silent
  • channel-group 1 mode disable non-silent

 

CiscoまたはCisco以外の装置と接続

  • channel-group 1 mode active
  • channel-group 1 mode passive

状態確認

  • show etherchannel summary
  • show etherchannel detail
  • show etherchannel 1 detail
  • show etherchannel load-balance

注意点

channel-groupの数は上限が決まっていてCatalyst2960は6となっている。

集約できるインタフェースの数も上限がありCatalyst2960だと8となっている。

関連コマンド

  • port-channel load-balance
  • lacp system-priority
  • lacp port-priority
  • interface port-channel

 

ネットワークでも使うLinuxコマンド

操作系

su -

rootユーザに変更する。毎回使う

cd

ディレクトリを変更(一つ戻るときはcd ../)

rm

ファイル削除(削除確認不要な場合はrm -f fw.log)

rm fw.log

cp -p

ファイルコピー

cp -p fw.log fw.log.20210309

mkdir

ディレクトリ作成

mkdir ASALOG

touch

ファイル作成

touch fw.log

mv

ファイル移動

mv fw.log ./old/

chown

所有者グループ変更

chown root:root fw.log

chmod

権限変更

chmod 775 fw.log

scp

リモートでファイルコピー

scp fw.log root@192.168.1.100:/tmp

tar -cvf

圧縮する(解凍はtar -xvf fw.log.tar)

tar -cvf fw.log.tar /ASALOG

shutdown -h now

シャットダウンする

shutdown -r now

再起動する

表示系

pwd

パスを表示

cat

ファイルの内容を表示

grep

表示内容から特定の文字で絞り込む

cat fw.log | grep 192.168.1.100

wc -l

データの行数を表示する

cat fw.log | grep 192.168.1.100 | wc -l

diff

二つのファイルを比較する

diff fw.log fw.log.20210309

df -h

ストレージ使用量を表示

ifconfig

IPアドレスの設定を表示

iptables -L

FW情報を表示

crontab -l

定期実行ジョブを表示

ps -ef

プロセス実行状況を表示

uname -a

OS情報を表示

vi系

vi

ファイル編集

vi fw.log

a

入力モードに変更

ESC

コマンドモードに変更

HJKLキー

左、上、下、右

Dキー2回

1行削除

ctrl+g

最後の行へ移動

:1

1行目へ移動(好きな行へ移動できる)

set number

左に行番号を表示する

xキー

1文字削除

/abc

abcの文字を検索して移動

:wq

保存して閉じる

:q!

保存せず閉じる

【Catalyst】neighbor X.X.X.X Down

%BGP-5-ADJCHANGE:sent to neighbor X.X.X.X Down BGP Notification sent

動的ルーティングのネイバーがダウンしたらどうするか

show logging

まずはログを確認します。

インタフェースダウンがあった場合はケーブル抜けや接続先装置の停止が考えられます。

%LINK-3-UPDOWN:interface gigabitethernet X/X ,changed state to down

数分後にアップが出ていたら接続先装置が再起動した線が濃厚です。

%LINK-3-UPDOWN:interface gigabitethernet X/X ,changed state to up

 

BGPのログが数分後にアップしていたらネイバー装置が再起動したと考えていいですが、

アップまでの時間が短すぎたりする場合は経路上で輻輳が起こっている可能性が考えられます。 

%BGP-5-ADJCHANGE:neighbor X.X.X.X Up

show interface gigabitethernet X/X

ダウンしたインタフェースの状態を確認します。

gigabitethernet is down,line protocol is down(???)

???にはいずれかの状態が表示されます。

connected 接続できている

notconnect ケーブルが刺さっていない

disabled shutdownコマンドにより閉鎖されている

errdisable ループなどインタフェースに設定したエラー検知機能により閉鎖されている

show ip bgp neighbors

接続できているか確認します。

stateがEstablishedであればOKです。

それ以外の場合はルートのやり取りを行なっていない状態なので問題があります。

BGP neighbor is X.X.X.X〜

 BGP version〜

 BGP state = Established

show ip route

ルーティングテーブルを確認します。

viaの後にネイバーのIP(X.X.X.X)があればルーティングできています。

B 192.168.0.0/24 [20/100] via X.X.X.X,0w0d

無い場合はバックアップの可能性があるので次のコマンドも試します。

show ip bgp neighbors X.X.X.X routes

BGPでのルートの受け取り確認をします。

Next HopにネイバーのIP(X.X.X.X)があれば受信できています。

このコマンドで表示されているがshow ip routeに表示されない場合はおそらく他のネイバーから同じルートを受け取っていてそちらの方がMetricが高い可能性があります。

Network              Next Hop   Metric     LocPrf      Weight         Path

192.168.0.0/24   X.X.X.X          200                                 0      60000

 

【Catalyst】コマンドリファレンスやデータシートの場所

よく使うCatalystスイッチのコマンドリファレンスやデータシートのURLをまとめました。

Catalystの他Nexusも入れてます。

 

 

CiscoNexus 9500

コマンドリファレンス-設定変更(英語)

コマンドリファレンス-参照(英語)

データシート

本体の絵

Catalyst 9300

コマンドリファレンス

データシート

本体の絵

Catalyst 3850

コマンドリファレンス

データシート

本体の絵

 

Catalyst 9200

コマンドリファレンス

データシート 

本体の絵

 

Catalyst 2960X

コマンドリファレンス(英語)

データシート

本体の絵

 

Catalyst 2960

コマンドリファレンス

データシート

本体の絵