ネットワーク関連のメモ
本ページは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 数値 指定した数のパケットを受信したら終了 -D tcpdump(8)でキャプチャできるネットワークインタフェース一覧を表示 -e 全てのパケットのリンクレベルヘッダを表示 -F ファイル名 評価式の入力に使用するファイルを指定 -i インタフェース 指定したネットワークインタフェースのパケットを監視 -l バッファを標準出力にも出力 -n アドレス、ポート番号の名前解決を行わない -N ホスト名のドメイン部分を表示しない -r ファイル名 パケットを-wオプションで作成したrawファイルから読み込む -S TCPシーケンス番号を相対値ではなく絶対値で表示 -t ダンプ表示に時間を表示しない -w ファイル名 パケット解析を指定したファイルにrawで出力 -x 出力を16進数で表示 -X 出力を16進数とASCIIで表示 expression 与えられない場合はネットワークインターフェースを通る全てのパケットを出力 - expression
type host/net/portを指定、デフォルトはhost dir src/dst/src or dst/src and dstを指定、デフォルトはsrc or dst proto ip/ip6/arp/icmp/tcp/udpを指定
- expression
## 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から認識されるか確認。
lsusb | lsusb is a utility for displaying information about USB buses in the system and the devices connected to them. |
iwconfig | configure a wireless network interface |
iwlist | Get more detailed wireless information from a wireless interface |
wpa_supplicant | Wi-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対応
SSH
ASUSルーターにはSSH接続可能。WebUIの[管理] > [システム]から設定する。接続元を同一LANに限定してパスワードログインも無効に、公開鍵認証でのみアクセスするようにした。
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
たぶんいろいろ整理することがありそうなので別ページに分ける。