ネットワークの構成
ネットワーク関連の管理方法には大きく 2 種類の方法がある。
- CLI: ifconfig, ip
- GUI: NetworkManager
ネットワークインタフェースの管理
1 つのインタフェースがカーネル内の 1 つの net_device 構造体によって管理されている。 net_device 構造体には瀬設定情報やインタフェースの状態を示すフラグや統計情報が保持される。 統計情報は擬似ファイルシステムである /proc/net/dev
に配置される。
ifconfig コマンド
ネットワークインタフェースの設定と表示をする。
表示: ifconfig [-V] [-a] [-s] [インタフェース名]
設定: ifconfig インタフェース名 オプション
- -a: 停止しているインタフェース名を含め、全てのインタフェースを表示する
- -s: 短縮系で表示する
- -V: ifconfig コマンドのバージョンを表示する
- up: インタフェースを開始する
- down: インタフェースのを停止する
インタフェースのフラグ
主なフラグ | 説明 |
---|---|
UP | インタフェースが開始している |
LOOP | ループバックインタフェースである |
BROADCAST | ブロードキャストアドレスが有効である |
RUNNING | データリンクのリソースが確保されている |
MULTICAST | マルチキャストを受信する |
ip コマンド
ネットワークインタフェースやルーティングなどの設定と表示をする。
インタフェース情報の表示
データリンク情報の表示: ip link show
IP 情報の表示: ip addr show
NetworkManager
GUI によって設定し、NetworkManager デーモンが監視管理する。
起動: chkconfig NetworkManager on
停止: chkconfig NetworkManager off
仮想インタフェース
物理インタフェース名の後ろに :
をつけて数字やアルファベットによる識別子をつける。 仮想インタフェースの統計情報は物理インタフェースに集約される。
インタフェースにつけられる IP アドレスの情報は net_device 構造体からリンクされる in_ifaddr 構造体に格納される。 1 つの in_ifaddr 構造体には 1 つの IP アドレスが格納され、仮想インタフェースが設定されている場合は複数の in_ifaddt 構造体が順番にリンクされる。
ifconfig 物理インタフェース名:別名 [IP アドレス]
ip addr add [IP アドレス/プレフィックス] dev 物理インタフェース名
ip addr add [IP アドレス/プレフィックス] dev 物理インタフェース名 label 別名
IPv6 アドレス
IPv6 アドレスの設定方法。
ip -6 addr add [IPv6 アドレス/プレフィックス] dev 物理インタフェース
IPv6 では ARP の代わりに NDP (Neighbor Discovery Protocol) を使用する。 マルチキャストで近隣要請 (Nieghbor Solicitation) パケットを送信することにより IP アドレスを持つホストが MAC アドレスを近隣広告 (Neighbor Advertisement) パケットで返すことで解決する。 NDP キャッシュは一定時間メモリに保持される。
無線 LAN インタフェース
コマンド | 説明 |
---|---|
iwc | 無線 LAN インタフェースの詳細な設定と表示 |
iwconfig | ifconfig に似たフォーマットで無線 LAN インタフェースの設定と表示 |
iwlist | アクセスポイントのリストなど、無線 LAN インタフェースの詳細情報の表示 |
iwpriv | 無線 LAN インタフェースの動作パラメータの設定 |
iwgetid | 無線 LAN インタフェースの ID 情報の表示 |
無線 LAN インタフェースの設定と表示をする。 無線 LAN インタフェースは net_device 構造体に加えて無線 LAN 特有の wireless_dev 構造体などによって管理される。 無線 LAN 特有の統計情報は /proc/net/wireless
に配置される。
接続品質
アクセスポイントごとの無線 LAN 接続品質を表示できる。
iwlist インタフェース名 scanning
iwconfig インタフェース名
接続品質は次のフォーマットで表示される。
Link Quality=[現品質]/[最大品質] Signal level=[受信信号レベル] dBm
iw コマンド
Wi-Fi インタフェースの管理コマンドをする。
インタフェースの転送速度や帯域幅などの情報を表示する。
iw dev
iw dev インタフェース名
転送速度や信号レベルなどの詳細情報を表示する。 1 台目のインタフェースが phy0、2 台目のインタフェースが phy1 となっていく。
iw phy
iw phy phy[インデックス番号]
arp コマンド
ARP キャッシュの表示、エントリーの追加と削除を行う。
arp [オプション]
- -n: 全てのエントリーをIP アドレスで表示する
- -a [ホスト名|IP アドレス]: 指定したホスト名あるいは IP アドレスのエントリーを表示する
- -d ホスト名|IP アドレス: 指定したホスト名あるいは IP アドレスのエントリーを削除する (要 root 権限)
- -f [ファイル名]: 指定したファイル (指定無しの場合は
/etc/ethers
) から IP アドレスと MAC アドレスのマッピングを読み込んでエントリーを作成する (要 root 権限) - -s ホスト名|IP アドレス MAC アドレス: IP アドレスと MAC アドレスのマッピングを指定してエントリを追加する (要 root 権限)
ARP キャッシュ
ARP キャッシュの表示と管理コマンドの基本フォーマット。
ip n
ip neigh
ip neighbor
ARP キャッシュの表示
ip neigh show
ip neigh list
IPv6 の NDP キャッシュの表示
ip -6 neigh show
ping コマンド
ICMP パケットをホストに送信し、その応答を調べることでホスト間の接続性をテストする。
ping [オプション] 送信先ホスト
- -c count: 送信するパケット個数を指定 (デフォルトはパケットを送信し続ける)
- -i interval: 送信間隔を秒単位で指定 (デフォルトは 1 秒)
カーネル変数 net.ipv4.icmp_echo_ignore_broadcasts
の値が 0 だと ICMP echo reply を返さない。 デフォルトでは 1 に設定されている。
arping コマンド
ARP リクエストを送信する。
arping [オプション] IP アドレス
- -b: ブロードキャストだけを送信する
- -c count: 指定した個数のパケットを送信して終了する
- -D: Duplicate Address Detection (DAD) モード。IP アドレスの重複を検知する
- -I interface: ARP リクエストを送信するインタフェースを指定する
tcpdump コマンド
ネットワークトラフィックを標準出力にダンプする。
tcpdump [オプション]
- -c count: count で指定したパケットを受信したら終了する
- -e: データリンク層のプロトコルヘッダーの情報を表示する
- -i interface: 指定したネットワークインタフェースをモニターする
- -l: 標準出力をバッファリングする
- -n: アドレスを変換せずに数値で表示する
- -nn: アドレスやポート番号を変換せずに数値で表示する
- expression: モニターするパケットをフィルタリングする
- プロトコル: ether, ip, arp, tcp, udp, icmp
- 送信先/元ホスト: ホスト名
netstat コマンド
擬似ファイルシステム /proc/net/tcp
、/proc/net/udp
、/proc/net/unix
を参照して表示する。
ss コマンド
NETLINK ソケットを利用して TCP/UDP、UNIX ソケットの状態を表示する。 NETLINK ソケットを利用して直接カーネルからソケット情報を取得するので、netstat よりも高速に動作する。 -r
オプションを除いて netstat コマンドとほとんど同じオプションが使える。
nmap コマンド
ネットワーク上ホストのオープンしているポートを調べて状態を表示するポートスキャナー。
nmap [オプション] [ホスト名|IP アドレス]
- -sT: TCP ポートのスキャン (デフォルト)
- -sU: UDP ポートのスキャン (要 root 権限)
- -p port_ranges: 調べるポート範囲の指定 (例: -p22, -p 1-65535, -p 53,123)
- -O: OS 検出を行う
- -T <0 – 5>: タイミングテンプレートの指定
telnet コマンド
ホストとポート番号を指定してリクエストを送る。
telnet ホスト ポート番号
nc コマンド
ホストとポート番号を指定してリクエストを送る。 スクリプトを読み込んでのテストが可能。
nc ホスト ポート番号
ACL
TCP Wrapper の設定ファイルにアクセスを許可または拒否する各サービスを記述する。
- 許可:
/etc/hosts.allow
- 拒否:
/etc/hosts.deny
デーモンリスト:クライアントリスト
- デーモンリスト: サービスを提供するデーモン名を 1 つ、あるいは複数のデーモン名を空白文字で区切って指定
- クライアントリスト: クライアントのアドレスパターンを 1 つ、あるいは複数のアドレスパターンを空白文字で区切って指定
アドレスパターン
指定方法 | 説明 | 例 |
---|---|---|
ホスト名 | ホスト名を指定 | examplehost.mylab.com |
ドメイン名 | . で始まる文字列を指定 | .mylab.com |
ホストアドレス | IP アドレスを指定 | 172.16.0.1 |
ネットワークアドレス | IP アドレスのネットワーク部分 . で終わるフォームで指定 | 172.16. |
ネットワークアドレス | ネットワーク/マスクを n.n.n.n/m.m.m.m のフォームで指定 | 172.16.0.0/255.255.0.0 |
ワイルドカード | すべてを対象とする。デーモンリストでも使用可能 | ALL |
アクセス制御の判断順位
/etc/hosts.allow
に記述されたホストを許可する/etc/hosts.deny
に記述されたホストを拒否する- どちらにも記述されていないホストを許可する
TCP Wrapper
- inetd + tcpd: inetd 経由で起動されるサーバーに対するアクセス制御だけ可能
- xinetd + libwrap: xinetd 経由で起動されるサーバーだけでなく、libwrap をリンクしたサーバーで利用可能
route コマンド
ルートテーブルの管理を行うコマンド。
- -n: ルートテーブルの表示
ルーティングテーブルの表示
ip route
ip route show
ip route list
ルートエントリーの追加
route add {-net|-host} 宛先 [netmask ネットマスク] gw ゲートウェイアドレス [インターフェイス]
ルートエントリーの削除
route del {-net|-host} 宛先 [netmask ネットマスク] gw ゲートウェイアドレス [インターフェイス]
デフォルトルートエントリーの追加
route add {-net|-host} default gw ゲートウェイアドレス [インターフェイス]
ルーティングテーブルのフィールド
- Destination: 宛先ネットワークまたは宛先ホスト
- Gateway: ゲートウェイルーター、なしの場合は 0.0.0.0/0
- Genmask: 宛先ネットワークのネットマスク
- Flags: U=経路は有効、H=宛先はホスト、G=ゲートウェイを通過、!=経路を拒否
- Metric: 宛先までの距離 (小さいものを優先する)
- Ref: 経路の参照数
- Use: 経路の参照回数
- Iface: 経路で使用するインターフェイス
traceroute コマンド
パケットを送信し、宛先への到達性を確認する。 応答はいずれも ICMP エラーパケットとして返答される。
traceroute [オプション] 送信先ホスト
- -l: ICMP ECHO パケットを送信 (デフォルトは UDP)
- -f TTL 初期値: TTL の初期値 (デフォルトは 1)
DNS
/etc/nsswitch.conf
ファイルのhosts:
エントリにdns
を含める。/etc/resolv.conf
ファイルに問い合わせる DNS サーバーの IP アドレスを指定する。
cifsiostat コマンド
CIFS マウントしたファイルシステムに関する統計情報を表示する。
cifsiostat [オプション] [実行間隔 [回数]]
sfsstat コマンド
NFS サーバーおよび NFS クライアントの統計情報を表示する。
nfsstat [オプション]
nfsiostat コマンド
NFS マウントしたファイルシステムに対する read と write に関する統計情報を表示する。
nfsiostat [オプション] [実行間隔 [回数]]
コメント