Contents
コマンド系
ip
CentOS7から導入された、ネットワーク関連全般のコマンド。
ルーティング
ブラックホールルーティング
特定の宛先へのルーティングを行わずに破棄する
- 例
ip route add blackhole X.X.X.X/32 ip route # 上記blackhole設定が入っていること
ping X.X.X.X # 到達しないこと
ip route del X.X.X.X/32 ip route
ss
TCP/UDPのコネクション情報を表示するコマンド。
ifconfig
CentOS6系まで使用されていたネットワークインタフェースに関するコマンド。
CentOS7からは使用できない。
- NICの設定を確認する
ifconfig
arp
CentOS6系まで使用されていたARPテーブルに関するコマンド。
CentOS7からは使用できない。
ping
ICMPによる疎通確認を行うコマンド
tracepath
トレースルートを行う。
ランダムなポート番号のUDPを使用し、ICMPやTCPは使用できない。
mtr
tracepathと同じであるが、結果を表示し続け、経路が変化するとその変化をわかりやすく表示する。
標準ではインストールされていないツールである。
- インストール
yum install mtr -y
traceroute
tracepathと同じであり、トレースルートを行う。
標準ではインストールされていないツールである。
- インストール
yum install traceroute -y
tcpdump
CUIのパケットキャプチャソフト。
実行時はrootユーザで実行する必要がある。その他のユーザでは、起動はするが、直ちに終了する。
ポート制限
- 両方
tcpdump port 80
- 送信
tcpdump dst port 80
- 受信
tcpdump src port 80
- 複数種類
tcpdump src port 80 or src port 443
IP / ホスト名指定
下記ではIPアドレスの代わりにホスト名を指定することもできる。
- 両方
tcpdump host 192.168.1.1
- 送信
tcpdump dst host 192.168.1.1
- 受信
tcpdump src host 192.168.1.1
- レンジ指定
tcpdump net 192.168.1.0 mask 255.255.255.0
その他のオプション
- -X
パケットの中身も表示する
デフォルトではヘッダしか表示しない - -n -nn
アドレス、ポートの逆引きをしない - -p
プロミスキャスモードにしない - -c
受信するパケット数を指定する。
指定した数に達すると、終了する。
netstat
CentOS6系まで使用されていたネットワークステータスに関するコマンド。
CentOS7からは使用できない。
nc
route
CentOS6系まで使用されていたルーティングに関するコマンド。
CentOS7からは使用できない。
iwconfig
nmcli
ネットワーク全般の管理コマンド。
サブコマンドは省略可能。
例えば、「nmcli connection modify」は「nmcli c mod」とできる。※modifyのほか、monitorがあるので、modまでしか省略できない。
使用方法を確認する
helpサブコマンドで、可能なコマンド、コマンドの意味を表示できる。
- 例
nmcli help nmcli connection help nmcli device help
NICのステータスを確認する
nmcli device show
NICの設定内容を確認する
nmcli connection show <NIC名>
ルーティングの追加
nmcli connection modify <NIC名> [+|-]ipv4.routes "<ネットワークアドレス>/<プレフィックス長> <ネクストホップ>"ゲートウェイの場合はこちら
nmcli connection modify <NIC名> [+|-]ipv4.gateway "<ゲートウェイ>"オプション”+”を使用すると、現状の設定に追加できる。
オプション”-“を使用すると、現状の設定から削除できる。
オプション”+”、”-“を使用しないと、現状の設定がすべて置き換わる。
DNSサーバの設定
nmcli connection modify <NIC名> ipv4.dns "<IPアドレス>[ <IPアドレス>...]"
- 設定確認
nmcli device show <NIC名>
IPアドレスの変更
nmcli connection modify <NIC名> [+|-]ipv4.address <IPアドレス>/<プレフィックス長>オプション”+”を使用すると、現状の設定に追加できる。
オプション”-“を使用すると、現状の設定から削除できる。
オプション”+”、”-“を使用しないと、現状の設定がすべて置き換わる。
- 設定確認
ip address
ファイル系
/etc/hostname
ホスト名を記載する。
ファイルに書き込んでもコンソールには直ちには反映されず、次回ログイン時に反映される。
- 書式
<ホスト名>[.<ドメインパート>]
/etc/hosts
IPアドレスと名前の対応を記述できる。
この名前を用いてPINGなどを行えば、IPアドレスに変換される。
hostコマンドなどのDNS解決コマンドでは、名前からIPアドレスは取得できない。
- 書式
<IPアドレス> <名前>
例えば、
192.168.0.1 abcと記述すれば、abcという名前で、192.168.0.1にアクセス可能。
/etc/networks
ネットワークアドレスと名前の対応を記述できる。
routeコマンドのようなネットワークアドレスを表示させる際に名前で表示できる。
ネットワークアドレスで表示させたい場合は削除してしまえばよい。
- 書式
<名前> <ネットワークアドレス>
CIDR形式のサブネット長の記載は不要。
- 例
default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0
/etc/nsswitch.conf
名前解決をする際にhostsファイルやDNSなど、どの順序で解決を試みるか優先順位を設定する。
/etc/resolv.conf
使用するDNSサーバのアドレスを記述できる。
CentOS7からはファイルに直接書き込んでもネットワークの再起動で削除される。
NIC設定ファイルに記載する必要がある。
- 書式
- DNSサーバ
nameserver <IPアドレス>
- DNSサフィックス
search <ドメイン名>
- DNSサーバ
/etc/sysconfig/network
ホスト名やゲートウェイのアドレスなどを記述できる。
任意の項目のみ記述すればよい。
- 書式
- ネットワークを使用するかどうか
NETWORKING=yes/no
- 自ホスト名
HOSTNAME=<ホスト名(FQDN)>
- 自ホストのドメイン名
DOMAINNAME=<ドメイン名>
- ゲートウェイのアドレス(インタフェースの設定スクリプトに個別に記述できるので、通常は不要。)
GATEWAY=<IPアドレス>
- ゲートウェイに接続するNIC
GATEWAYDEV=<NIC名>
- ネットワークを使用するかどうか
/etc/sysconfig/network-scripts/
ネットワーク関連の設定を行う各種ファイルが格納されているディレクトリ
/etc/sysconfig/network-scripts/route-<インタフェース名>
ルーティングの設定を行う。
ファイルのインタフェース名はルーティング後にパケットを送出するインタフェースを指定する。
- 書式
<ネットワークアドレス>/<プレフィックス長> via <nexthop IPアドレス> [<転送先NIC>]
<転送先NIC>は現在ルーティングを実行しているNICとは別のNICからパケットを送出する際に設定する。
ただし、省略してもネクストホップと通信するのに適したNICがルーティングテーブルから自動で選出される為、あえて設定する意義は薄い。
/etc/iproute2/rt_tables
複数のルーティングテーブルを定義する際の設定ファイル。
ルーティングテーブルを複数作成し、ポリシーごとに切り替えて使うことができる。
通常は本設定ファイルに記載の”main”テーブルが使用される。
/etc/network/interfaces
/etc/sysctl.conf
カーネルパラメータを設定する
IPv6の無効化
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
ボンディング
ステータス確認
cat /proc/net/bonding/bond0出力例
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: eno1 (primary_reselect always) Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 ARP Polling Interval (ms): 1000 ARP IP target/s (n.n.n.n form): 10.X.X.X Slave Interface: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 2 Permanent HW addr: XX:XX:XX:XX:XX:XX Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: XX:XX:XX:XX:XX:XX Slave queue ID: 0
設定
/etc/sysconfig/network-scripts/ifcfg-bond0設定例
DEVICE=bond0 TYPE=Bond BONDING_MASTER=yes BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bond0 UUID=XXX ONBOOT=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes RES_OPTIONS="timeout:1 attempts:1" BONDING_OPTS="arp_validate=3 mode=active-backup arp_interval=1000 primary=eno1 arp_ip_target=10.10.150.251" IPADDR=10.X.X.X PREFIX=24 GATEWAY=10.X.X.X
ifcfg-eth0
TYPE=Ethernet NAME=eth0 UUID=XXX DEVICE=eth0 ONBOOT=yes MASTER=bond0 SLAVE=yes ifcfg-eth1
TYPE=Ethernet NAME=eth1 UUID=XXX DEVICE=eth1 ONBOOT=yes MASTER=bond1 SLAVE=yes