調べもの4/8
★bitbucketとは:githubの類似サービス。プロジェクト管理に重きを置いている。
★パケットキャプチャの概要
wireshark とSPANつかいかた
http://www.infraexpert.com/study/span.htm
http://www.infraexpert.com/info/wiresharkindex.html
・アナライザPCをつなぐポートはそれ専用にする必要がある。
アナライザPCにIPアドレスは別に振らなくてもよい。
・wiresharkには表示ディスプレイに選択構文をぶっこむ仕様。
キャプチャしたパケットの解析にはTCP/IPの知識要(当然か。)
ローカルSPAN (fe0で送受信するパケットを
同じSWのfe24に繋いだアナライザPCでキャプチャ)
SW(config)#monitor session 1 source interface fe0
SW(config)#monitor session 1 destination interface fe24
※ source interfaceの部分は、source VLAN idでもよい。
この場合vlanで送受信したパケットを飛ばす。
※ sourceの末尾には、{both |rx|tx}を指定できる。
デフォはboth。要はそのポートでの送信/受信トラフィック
どれをモニタしますか、ということ。
※※ 受信側の末尾には、encapsulation replicateを付けることもできる。
デフォルトでは無付加で、宛先ポートに飛ばされるパケットはタグなしとして扱う。
encapsulation replicateを付けると、タグ付きパケットは宛先ポートでタグ付きとして扱える。
リモートSPAN(RSPAN:トランクで繋いだ異なるSWのifにキャプチャ用パケを飛ばす)
省略。上記リンクを見て。
注意点:SPANの設定はシンプルでありながら、実に多くの仕様があります。以下は個人的に特筆すべき仕様。
特筆すべきISOのローカルSPANセッションとRSPANセッションの仕様
・ 同じSPANのセッションにモニター対象ポートの「送信元ポート」と「送信元VLAN」を混在させられない。
・ 1つのSPANセッションに複数の宛先ポートを設定できるが、指定できる最大の宛先ポートは「 64 」個。
・ Catalystスイッチは最大2つの送信元セッション( ローカルSPANとRSPANの送信元セッションの2つ )
をサポートする。従って、同じスイッチ内でローカルSPANの実行とRSPANの実行が1つずつ可能である。
・ SPANでキャプチャされる受信トラフィックは、スイッチが変更または処理を行う前のパケット
・ SPANでキャプチャされる送信トラフィックは、スイッチが変更または処理を行った後のパケット
※alaxala L3SWを使う場合はこれ。
https://www.alaxala.com/jp/techinfo/archive/manual/AX2400S/HTML/11_7/CFGUIDE2/0445.HTM
※D-linkを使う場合は
Monitoring>Mirror>Port Mirror settingsからGUIで設定可能。
https://dlink-jp.com/wp-content/uploads/files/DGS-3120_MAN_R06_A2_B1-v3.00.pdf これなど参考に。
※高速ポートから低速ポートへパケット飛ばすのは不可能なので注意。
★ファイルにスクリプトを記載し、CentOs起動時に実行する方法
https://eng-entrance.com/linux_startup
ここに動作原理の概要がまとまっている。
systemd(CentOS7)かsysVinit(以前)かで起動プロセスが違うので
必要なコマンドも違ってくる。
Systemd系なら細かいコマンドはこっちを見るとよい
https://qiita.com/tkato/items/6a227e7c2c2bde19521c
http://tire-retire.blogspot.jp/2014/12/centos7rclocal.html
要はこういうこと。
プログラムの自動起動には/etc/systemd/system/ ディレクトリに(なんか).service
というファイル(ユニットファイル)が必要なので入れる。
(なんか).service
[Unit]
Description = 説明文(好きに入れて良い)
After=local-fs.target
ConditionPathExists=自動起動するプログラムが配置されているディレクトリ(/opt/パッケージ名/bin)
[Service]
ExecStart=自動起動するプログラムへのフルパス(/opt/パッケージ名/bin/YYYY.sh)
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
------------
※ほんとうは自動起動するプログラムをwrapperシェルで包んで2重化した方がよいとか書いてるけど
今回は飛ばしてみる。
------------
ユニットファイルと
自動起動するプログラムとその格納ディレクトリは、chmod chownでroot権限をつけておく。
$ sudo chown root:root /etc/systemd/system/nanka.service
$ sudo chmod 644 /etc/systemd/system/nankasys.service
$ sudo mkdir -p /opt/なんか/bin
$ sudo chmod 755 /opt/なんか/bin
$ sudo cp 自動起動.sh /opt/なんか/bin
$ sudo chown root:root /opt/なんか/bin/自動起動.sh
$ sudo chmod 755 /opt/なんか/bin/自動起動.sh
んで、上記のあとsystemctlにserviceを追加したことを教えてあげる。
$ sudo systemctl daemon-reload
systemctlがserviceを認識してるか確認。
$ sudo systemctl status なんか.service
自動起動するように設定
$ sudo systemctl enable なんか.service
(参考)SysVinit系の場合
-https://qiita.com/bonkeenu/items/721cf9ea633edfd1c532
インスタンスの起動時、自動起動させたいシェルスクリプトの実行権限はrootで良い?
YES ⇒ /etc/rc.localに実行シェルを
NO ⇒ crontabの@rebootを使用する。
@reboot /bin/sh /home/ec2-user/bin/shell.sh
この一行を追加するだけ!!
http://nort-wmli.blogspot.jp/2016/02/cron-osreboot-shellsh.html
-https://qiita.com/hnishi/items/6a5b8b67d807f8dfe44e
これも/etc/rc.localを使っている。
★openv switchの導入方法と挙動
★ネームスペースに分割した仮想クライアントの挙動
→多分 ip netns execでiperf鯖 iperf蔵で
分けて実行する事は出来るのでは。