NW管理
    ip
    ifconfig
    route
    netstat
    arp
 NW調査
    ss
    ping
    traceroute
    nc
    nmap
    tcpdump
    tcpslice

 ネットワーク管理
         nmcli     nmtui

 ipコマンド  (ネットワークコマンド対応)
 ・ipコマンドで変更した設定は、システムやネットワークを再起動した際に元に戻る。
 ・書式
ip [オプション] [オブジェクト] [コマンド] [引数]
 ・オプション
       -s     情報を詳しく表示
       -o     出力を1行にする。
       -r     アドレスの代わりにDNS名を表示
 ・オブジェクト
       address     デバイスのIPアドレス
       link     ネットワークデバイス
       neighbor     ARPテーブル
 ・コマンド
       add     設定を追加
       change     設定を変更
       del     設定を削除
       show     情報を表示
 ・ip新旧コマンド (旧、新)
       (net-tools)     (iproute2)
ifconfig     ip a (ip addr)
    ip link
    ip -s (ip -stats)
route     ip r (route)
netstat     ss
    ip route (for netstat-r)
    ip -s link (for netstat -i)
    ip maddr (for netstat-g)
arp     ip n(neighbor)

 netstat
 ・ネットワーク状態表示
  カーネル内のネットワーク関連データの構造を調べることができる。
 ・オプション
-e  表項目表示
-g  IPv4 IPv6 マルチキャストグループメンバシップ表示
-i  --interfaces インターフェース情報表示
-l  --listening ポート監視情報表示
-m  --masquerade マスカレード接続情報表示
-n  IPアドレス、ポート番号などの数値を名前解決しない
-p  --programs 接続しているプログラム情報表示
-r  --route ルーティング情報表示
-s  --statistics SNMP類似統計情報表示
-t  TCP/IP表示
-u  UDP表示
-v  省略情報表示
 ・$ netstat -r  (ルーティング情報)
カーネルIP経路テーブル
受信先サイト ゲートウェイ ネットマスク フラグ MSS Window irtt インターフェース
xx.xxx.xxx.0 * 255.255.255.xxx U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default xx.xxx.xxx.1 0.0.0.0 UG 0 0 0 eth0
  フラグ
  U  使用可能
  G  このGWを経由して先へ行く
  H  ホストに対する経路
  S  静的に作成した経路
 ・$ netstat  (アクティブなソケットを表示)
INETドメインソケット
Proto  プロトコル
Recv-Q  受信キュウのサイズ(残量)
Send-Q  送信キュウのサイズ(残量)
Local Adress  ローカルアドレスとポート
Foreign  リモートアドレスとポート
State  状態
ESTABLISHED
LISTEN
SYN_SENT
SYN_RECV
SYN_RECVD
FIN_WAIT1
FINWAIT_1
FIN_WAIT2
FINWAIT_2
CLOSEWAIT
LAST_ACK
TIME_WAIT
CLOSEING
CLOSED
UNKNOWN
UNIXドメインソケット

 route(Linux)
 ・IPパケットをルーティングするためのルーティングテーブルの内容表示と設定
 ・ヘルプ
route -h
 ・オプション
-n  DNSを逆引きしない

 arp
 ・ARPテーブルに追加
 ・arpコマンドを診断ツールとして利用

 ネットワーク調査

 ss  (ネットワーク接続の情報を表示)
 ・ネットワーク接続の情報(接続が確立しているか、接続待ちなのかなど)を表示
 ・書式
ss [オプション]
$ ss -at
 ・オプション
       -a     接続が確立の通信(ESTAB)も、接続待ちの通信(LISTEN)も表示する。
       -t     TCP接続のみ表示する。
       -u     UDP接続のみ表示する。
       -n     ポート番号をプロトコル名に変換しない。
 ・表示されるデータの意味
       (項目)     (意味)
State     LISTEN:接続を待っている。
    ESTAB :接続が確立している。
    UNCONN:接続されていない。
Recv-Q     LISTEN:TCPコネクション未確立通信の数
    ESTAB:受信データで、プログラムに渡されていないデータ(byte)
Send-Q     LISTEN:受け入れ可能な最大TCPコネクション未確立通信の数
    ESTAB:送信データで、ACKが返ってきていないデータ(byte)
Local Address:port     ローカルのIPアドレスとポート
Peer Address:Port     通信相手のIPアドレスとポート

 ping  (指定したホストへの疎通確認)
 ・ICMPの特性を利用してパケットの Round-Trip Time (往復遅延時間)を測定
 ・ECHO_REQUEST内の時間はECHO_REPRYにコピーされる、
  ラウンドトリップ時間は、ECHO_REPRY到着時間との差分
 ・ネットワーク接続の情報(接続が確立しているか、接続待ちなのかなど)を表示
 ・書式
ping [オプション] ホスト
$ ss -at
 ・オプション
       -c 回数     パケットの送信回数を指定する。(デフォルトは無制限)
       -i 秒数     タイムアウトになる秒数を指定する。(デフォルトは1秒)
 ・ttl
Time To Liveの略、パケットの生存期間を表す。
ネットワーク機器を通過する毎1ずつ減少、0になるとそのパケットは破棄
(送信元が元々セットしたttl値から、経由した数を減じた数)

 traceroute  (指定したホストへの経路を表示)
 ・経由するルータのIPアドレスを表示
途中のNWサービスプロバイダ
プロバイダの外とのつながり方
 ・途中のルータまでの往復遅延時間を測定する。
 ・ネットワークで障害が発生した際に、障害の位置を特定できる。
 ・書式
traceroute [オプション] ホスト
$ traceroute -n www.google.com
 ・オプション
       -n     DNSを逆引きしない。(Windowsは「-d」)
-m 件数     調査する経路の最大数を指定する。(デフォルトは30件)
-w 秒数     タイムアウトになる秒数を指定する。(デフォルトは5秒)
-f     TTL初期値指定
-g     経由ルータ指定
-i     インターフェース指定
-l     ICMPを使用
-q     回数指定
-r     経路情報無視
 ・tracerouteコマンドの動作
1回目はTTLが1でパケットを送信、1つ目のルータを通過した時点でTTLが0
2回目はTTLが2でパケットを送信、同様にして2個目のルータのIPアドレスを知る。
以下、同様

 nc  (ネットワークのデータを読み書き)
 ・ネットワークのデータを読み込んだり、ネットワークにデータを書き込んだりする。
簡易的なサーバとして使用できる。
 ・ncコマンドのインストール
# yum install nmap-ncat
 ・書式
nc [オプション] [ホスト] [ポート番号]
$ traceroute -n www.google.com
 ・オプション
       -C     改行コードにCRLFを使用する。
-l     リッスンモードで接続を待つ。簡易的なサーバとして動作する。
-k     リッスンモードで複数の接続を受け付ける。
-vz     読み書きせず接続状態を表示する。
 ・コネクトモード  (HTTPサーバに対しては、Webブラウザのように振舞うことができる。)
接続待ちのサービスに接続する。
$ nc xxxx.com 80     (HTTPサーバの80番ポートに接続)
GET / HTTP/1.1      (送信するデータ(HTTPのGETコマンド)を手入力)
                 (再度Enter)
HTTP/1.1 200 OK     (HTTPレスポンスデータ)
・・・(省略)・・・        ( ↓HTMLデータ)
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"
・・・(省略)・・・
                 (Ctrl+Cで終了)
接続状態を表示する、実行例
$ nc -vz xxxx.com 80
 ・リッスンモード  (簡易的なWebサーバとして使用できる。)
HTTPレスポンスデータを作成する。
ファイアウォールを停止
# systemctl stop firewalld.service
-lオプションを指定して待ち受け状態にする。
HTTPレスポンスデータを標準入力に指定する。
nc -kl 8080 < /home/userx/hello.html
動作を確認する。
Webブラウザで「192.168.xx.xx:8080」へアクセス
Ctrl+Cを押してncコマンドを終了
 ・クライアント、サーバーの相互通信
サーバーはポート番号100番で待ち受け
# nc -l 100
クライアントから、サーバーIPアドレスとポート番号を指定し、接続し、文字列を送信
$ nc 192.168.xx.xx 100 (送信する文字列を入力)
Hello
サーバにも送信した文字列が表示される。
サーバから送信した文字列もクライアントに表示される。
# nc -l 100
Hello             (受信した文字列が表示される)
Hello, again         (さらに送信する文字列を入力)

 nmap  (ポートスキャンして開いているポートを検出)
 ・ポートスキャナ
 ・ネットワーク調査などを行うためのツール
C言語、connect() 関数でコネクション確立を確認
 ・nmapコマンドのインストール
# yum install nmap
 ・書式
nmap [オプション] ホスト
$ nmap 192.168.xx.xxx
 ・オプション
       -sT     TCPポートをスキャン(デフォルト)
-sU     UDPポートをスキャン
-sF     FINスキャン
-sN     TCP Nullスキャン
-sX     TCPクリスマスツリースキャン(X-masスキャン)
-p ポートの範囲     指定されたポートの範囲をスキャンする。(1-1023のように指定)
デコイオプション     偽の複数のホストからの通信らしいパケットを織り交ぜる
-O     OSを検出する。
 ・攻撃準備とみなされる可能性あり

 tcpdump  (ネットワークに流れるデータをキャプチャし内容を表示)
 ・書式
tcpdump [オプション] [フィルター]
# tcpdump -ni enp0s3 port http
 ・オプション
       -i インタフェース     キャプチャするインターフェースを指定
-n     アドレスを名前変換しない(強制的に変換「-a」)
-w     生データをそのままファイルに書き込む
-c     指定した個数のパケットを受信したら終了
-nn     ポート番号をプロトコル名に変換
-p     自分宛のパケットのみキャプチャ
-s     キャプチャするサイズを指定、0は全て
-r     -w で保存したファイルを開く
-X     16進とASCII文字で表示する
-A     ASCII文字で表示する
-G     ファイル書き込みを指定時間間隔でrotateする。
    -w のファイル名に時間フォーマットを指定
-W     -Gでのrotateの回数を制御する、-Wの回数に達すると終了
 ・フィルター
       port プロトコル名又は、ポート番号     指定したプロトコル名又は、ポート番号で絞り込む。
host ホスト名又は、IPアドレス     指定したホスト名又は、IPアドレスで絞り込む。
src 送信元     指定した送信元で絞り込む。
dst     指定した送信先で絞り込む。
 ・Wireshark (LinuxやWindowsなどで動作するGUI操作のパケットキャプチャツール)
Windows に Wiresharkを(言いなりで)インストール
ダンプしたファイルをダウンロードする。
そのファイルを立ち上げた Wireshark にドラッグ・アンド・ドロップする。

 tcpslice
 ・「tcpdump」で作成したファイルをマージや分割などをできる