AND OR  

ネットワーク関連のメモ
本ページはOpsTipsに書かれている重複した古い情報も含まれています、注意。

  • 環境
    Linux(Ubuntu/CentOS) x86_64
    Windows10 Pro 64bits

tcpdump

tcpdump - ネットワークのトラフィックをダンプする
tcpdump [ -adeflnNOpqRStvxX ] [ -c count ] [ -F file ]
        [ -i interface ] [ -m module ] [ -r file ]
        [ -s snaplen ] [ -T type ] [ -w file ]
        [ expression ]

ネットワークインターフェースを通過するパケットを監視し、expression(評価式)にマッチしたパケットの概要を表示する。

  • オプション
    -A全てのパケットをASCII表示
    -c 数値指定した数のパケットを受信したら終了
    -Dtcpdump(8)でキャプチャできるネットワークインタフェース一覧を表示
    -e全てのパケットのリンクレベルヘッダを表示
    -F ファイル名評価式の入力に使用するファイルを指定
    -i インタフェース指定したネットワークインタフェースのパケットを監視
    -lバッファを標準出力にも出力
    -nアドレス、ポート番号の名前解決を行わない
    -Nホスト名のドメイン部分を表示しない
    -r ファイル名パケットを-wオプションで作成したrawファイルから読み込む
    -STCPシーケンス番号を相対値ではなく絶対値で表示
    -tダンプ表示に時間を表示しない
    -w ファイル名パケット解析を指定したファイルにrawで出力
    -x出力を16進数で表示
    -X出力を16進数とASCIIで表示
    expression与えられない場合はネットワークインターフェースを通る全てのパケットを出力
    • expression
      typehost/net/portを指定、デフォルトはhost
      dirsrc/dst/src or dst/src and dstを指定、デフォルトはsrc or dst
      protoip/ip6/arp/icmp/tcp/udpを指定
## 192.168.2.98:80にアクセスするパケットヘッダを16進数とASCIIで出力
$ tcpdump -i eth0 -X dst host 192.168.2.98 and dst port 80

Deprecated Linux networking commands

ネットワーク関連のdeprecate対象のコマンドとその代替コマンドについて。
参考: Deprecated Linux networking commands and their replacements
ifconfig や netstat など普段からよく利用しているものも含まれているので注意しておこう。基本的に ip コマンドひとつで置き換えできそう。

NFS (Network File System)

以下、CentOS 6でのNFSv4サーバ構築手順を整理する。

  • NFS関連パッケージのインストール (共通)
    $ sudo yum install nfs-utils.x86_64 
    依存パッケージとして rpcbind なども一緒にインストールされる。
  • rpcbind, nfsサービスの起動 (サーバ)
    $ sudo service rpcbind start
    Starting rpcbind:                                          [  OK  ]
    $ sudo service nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
  • rpcbind, nfsサービスの自動起動設定 (サーバ)
    $ sudo chkconfig rpcbind on
    $ sudo chkconfig nfs on
  • 公開ディレクトリの設定 (サーバ)
    /etc/exports に公開するディレクトリやマウントを許可するIPなどを記述する。
    /mnt/data 192.0.1.0/24(rw)
  • 設定を反映し、公開状態の確認 (サーバ)
    $ sudo exportfs -ra
    $ sudo exportfs -v
    /mnt/data       192.0.1.0/24(rw,wdelay,root_squash,no_subtree_check)
  • rpcbindサービスの起動 (クライアント)
    $ sudo service rpcbind
    Starting rpcbind:                                          [  OK  ]
  • 公開ディレクトリをNFSマウント (クライアント)
    $ sudo mount -t nfs4 192.0.1.13:/mnt/data /mnt/data
  • マウント状態を確認 (クライアント)
    $ mount -t nfs4
    192.0.1.13:/mnt/data on /mnt/data type nfs4 (rw,addr=192.0.1.13)

RHEL 6.x系以前で利用していた portmap は削除され、6.x系では rpcbind に集約されている。NFSv4はファイアウォールを通過してインターネット上で動作するため(TCPが必須となる)、実は rpcbind サービスは不要。iptablesが有効な場合はTCPポート 2049を開放しておくのを忘れないように。

無線LAN

Linuxコマンド

  • 環境
    Ubuntu 14.04 LTS (kernel: 3.13.0-24-generic)
    BUFFALO WLI-UC-GNM (無線LANアダプタ)

最近のLinuxは無線LAN環境を比較的簡単に構築できる。まずはLANの無線子機を接続してOSから認識されるか確認。

lsusblsusb is a utility for displaying information about USB buses in the system and the devices connected to them.
iwconfigconfigure a wireless network interface
iwlistGet more detailed wireless information from a wireless interface
wpa_supplicantWi-Fi Protected Access client and IEEE 802.1X supplicant
$ lsusb
Bus 002 Device 003: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]

iwconfig コマンドは無線LANインタフェースの状態を表示、設定する。引数を与えない場合はネットワークインタフェースの無線情報を表示する。

$ iwconfig
eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

iwlist コマンドでアクセスポイントの検知を行うには scan サブコマンドを指定する。

$ iwlist scan
eth0      Interface doesn't support scanning.

lo        Interface doesn't support scanning.

wlan0     Scan completed :
         Cell 01 - Address: 00:1D:73:EF:E2:4C
                   Channel:10
                   Frequency:2.457 GHz (Channel 10)
                   Quality=61/70  Signal level=-49 dBm
                   Encryption key:on
                   ESSID:"PISCES"
                   Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                   Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                             36 Mb/s; 48 Mb/s; 54 Mb/s
                   Mode:Master
                   Extra:tsf=0000012dd9943df5
                   Extra: Last beacon: 31424ms ago
                   IE: Unknown: 0006504953434553
                   IE: Unknown: 010482848B96
                   IE: Unknown: 03010A
                   IE: Unknown: 2A0100
                   IE: Unknown: 2F0100
                   IE: IEEE 802.11i/WPA2 Version 1
                       Group Cipher : TKIP
                       Pairwise Ciphers (1) : TKIP
                       Authentication Suites (1) : PSK
                   IE: Unknown: 32080C1218243048606C
                   ... 省略

ここではGUIから指定のアクセスポイントに接続したが、wpa_supplicant コマンドを利用した接続方法も後で試す。

ASUS RT-AC86U

ASUS製のWi-Fiルーター RT-AC86U
802.11ac(NitroQAM)接続で最大2,167Mbps、MU-MIMO対応

 500x750

SSH

ASUSルーターにはSSH接続可能。WebUIの[管理] > [システム]から設定する。接続元を同一LANに限定してパスワードログインも無効に、公開鍵認証でのみアクセスするようにした。

 600x279

ASUSルーターのSSHサーバはDropbearが使われている。Dropbear v2016.74ではEd25519等の新しめのアルゴリズムは使えないので、RSA 4096bits公開鍵を上記画像のように登録した。

IPv6

2019/06現在、RT-AC86Uは公式ではv6プラス(MAP-E)には対応していない。v6プラスを開通するとPPPoE接続を停止するプロバイダ(例: GMOとくとくBB)もあるらしいので注意。

ファームウェア

ASUSルーターにはAsuswrt-Merlinというカスタムファームウェアがあるらしい。ちょっと興味あるので調べてみて良さそうなら使ってみよう。ちなみにASUSルーターはLinuxベースのOSとなっている。正式名称はあるのだろうか。

ルーター

YAMAHA RTX830

たぶんいろいろ整理することがありそうなので別ページに分ける。