CentOS 7のネットワーク設定/管理 ipコマンド

/ Linux/Unix / Comment[0]

vmwareにcentos7をインストールしてネットワークインターフェイス設定をブリッジにしてホストOSのネットワーク設定をしようとしてvi /etc/network/interfacesと設定ファイルを開こうとしたら空っぽ
それどころか/etc/networkディレクトリが存在しない。とりあえずifconfigで設定しようとしたらifconfig自体無い!なんてこった!

ググッて見るとどうやらnet-toolsが標準ではなくなりiproute2に置き換わったそうな。
というかだいぶ前からiprouteはあったんですが、ずるずるとnet-toolsを使い続けていた状態だったようです。

net-toolsが無くなるとすると以下のコマンドが使えなくなります。

  • plipconfig
  • ifconfig
  • mii-tool
  • ipmaddr
  • slattach
  • rarp
  • route
  • iptunnel
  • nameif
  • arp

いつもネットワークの設定といったらifconfigとrouteでやってたしMACアドレスを見るのにもarpを使っていたので結構痛いです。
まあ標準ではなくなっただけでリポジトリにはちゃんとあるので下記コマンドでインストールすれば以前のように使えます。

# yum install net-tools

しかし、標準ではなくなるということは時代の変化というやつなわけで自分の脳みそもアップデートしないといけないわけですよ。
近い将来iprouteに置き換わっていくようなのでipコマンドの使い方を覚えておきましょう。

ipコマンドによるネットワーク設定

構文: ip [OPTION] OBJECT { COMMAND }

OBJECT
link , addr , addrlabel , route , rule , neigh , ntable , tunnel , tuntap , maddr , mroute , mrule , monitor , xfrm , netns , l2tp , tcp_metrics
OPTION
-V[ersion] , -s[tatistics] , -r[esolve] , -f[amily] , inet , inet6 , ipx , dnet , link , -o[neline]

デバイス一覧を表示
# ip link

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:27:0e:05:12:7f brd ff:ff:ff:ff:ff:ff
3: eth1:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:22:cf:6b:64:f2 brd ff:ff:ff:ff:ff:ff

デバイスのIPアドレスを確認

全て
# ip addr

eth1だけ
# ip addr show dev eth1

3: eth1:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:22:cf:6b:64:f2 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.1/8 brd 10.255.255.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 2001:c90:88c3:42f:c8a7:63c2:3866:ed90/64 scope global temporary dynamic
:

IPアドレスをイーサネットデバイスに割り当て
# ip addr add 10.0.1.2/8 dev eth0
# ip addr add 10.0.1.3/8 dev eth0
# ip addr add 10.0.1.4/8 dev eth0

確認
# ip addr show dev eth0

2: eth0:  mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:27:0e:05:12:7f brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.0.1.3/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.0.1.4/32 scope global eth0
       valid_lft forever preferred_lft forever

IPアドレスの割り当てを解除
# ip addr del 10.0.1.3/8 dev eth0
# ip addr del 10.0.1.3/8 dev eth0

# ip addr show dev eth0

2: eth0:  mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:27:0e:05:12:7f brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/32 scope global eth0
       valid_lft forever preferred_lft forever

結構詰んだデフォルトゲートウェイの設定
# ip route add default via 10.255.0.1 dev eth0

確認
# ip route show

default via 10.255.0.1 dev eth0  metric 100
10.0.0.0/8 dev eth1  proto kernel  scope link  src 10.0.1.1

再起動後もネットワーク設定を維持

ipコマンドでの設定はifconfigと同じく一時的なものです。そのため再起動した時点でネットワーク設定がリセットされてしまいます。
恒久的にネットワーク設定を維持したい場合は/etc/sysconfig/network-scripts/ifcfg-デバイス名に設定を記述します。

設定例
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR=08:00:27:9D:F4:7B
TYPE=Ethernet
BOOTPROTO=static
BROADCAST=10.255.255.255
IPADDR=10.0.0.2
NETMASK=255.0.0.0
NETWORK=10.0.0.0
GATEWAY=10.0.1.254
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=926e1dbf-94df-4268-a593-6505a5d92ba8
ONBOOT=yes

ss - iproute版netstat

オプションはnetstatとほぼ変わりません。
-a 全てのソケットを表示
-l LISTENしてるソケットを表示
-s サマリを表示
-n 名前解決しない -t TCPのみ表示 -u UDPのみ表示

$ ss

State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port
ESTAB      0      0                10.0.1.1:ssh               10.0.0.1:32486
ESTAB      0      0                10.0.1.1:microsoft-ds           10.0.0.1:1079

TCPのコネクション一覧(名前解決しない)
$ ss -nt

State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
ESTAB      0      0                  10.0.1.1:22                10.0.0.1:32486
ESTAB      0      0                  10.0.1.1:445               10.0.0.1:1079

LISTENしてるポート一覧(名前解決しない)
$ ss -nl

State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     0      128                      :::22                      :::*
LISTEN     0      128                       *:22                       *:*
LISTEN     0      128               127.0.0.1:631                      *:*
LISTEN     0      128                     ::1:631                     :::*
LISTEN     0      100                      :::25                      :::*
LISTEN     0      100                       *:25                       *:*
LISTEN     0      50                        *:445                      *:*
LISTEN     0      128               127.0.0.1:6502                     *:*
LISTEN     0      50                127.0.0.1:3306                     *:*
LISTEN     0      50                       :::6666                    :::*
LISTEN     0      100                      :::587                     :::*
LISTEN     0      100                       *:587                      *:*
LISTEN     0      50                        *:139                      *:*
LISTEN     0      128                      :::80                      :::*
LISTEN     0      100                      :::465                     :::*
LISTEN     0      100                       *:465                      *:*

サマリを表示
$ ss -s

Total: 245 (kernel 0)
TCP:   19 (estab 2, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*         0         -         -
RAW       0         0         0
UDP       11        8         3
TCP       18        11        7
INET      29        19        10
FRAG      0         0         0

ip neigh - iproute版arp

$ ip neigh

fe80::207:7dff:fe80:96c6 dev eth1 lladdr 00:07:7d:80:96:c6 router STALE
10.0.0.1 dev eth1 lladdr bc:5f:f4:49:6d:35 DELAY
10.0.0.10 dev eth1 lladdr 08:00:27:9d:f4:7b STALE
10.255.0.1 dev eth1 lladdr 00:0b:a2:e6:bb:65 STALE

参考: http://docs.oracle.com/cd/E39368_01/e48214/ch11s07.html

関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可