2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【CentOS】NW確認・変更コマンド【RHEL】

Last updated at Posted at 2020-07-17

せんとくん

20180516182359.jpg
やら赤帽少年のネットワーク関連の設定・確認方法です。

バージョン7からNetworkManagerの利用が推奨されているようですが、7以前のようにファイル編集でも設定はできます。

■HOSTNAME確認・設定

hostnamectl

でカーネルやらOS情報やらまとめて見れます。

出力例
[root@host01 /]# hostnamectl
Static hostname: host01
Icon name: computer-vm
Chassis: vm
Machine ID: 07346a5e12704a78a073eb9f111d5765
Boot ID: 848c64cbc5d942d2a7064fbf42540590
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64

hostname ホスト名

でホスト名を変更できますが、再起動すると元に戻ります。
設定ファイルとしては/etc/hostnameがあるのですが、ここが反映されません。
恒久的に変更する場合は、

hostnamectl set-hostname --static ホスト名

で設定。これで/etc/hostnameにも反映されます。
また、

/etc/sysconfig/network
HOSTNAME=ホスト名

と記載しても反映されます。クラウドでのオーダーなんかだとデフォでこのファイルに記載されている場合があります。
まあどっちゃでもいいでしょう。

■IP設定(NetworkManager使用)

設定はnmcliコマンドか、GUI設定ツールのnmtuiを使う方法があります。

・nmcliコマンド

systemctl start NetworkManager

でサービス起動。

systemctl start NetworkManager

でネットワークの確認。

出力例
[root@host01 ~]# nmcli
ens160: 接続済み to ens160
"VMware VMXNET3 Ethernet Controller"
ethernet (vmxnet3), 00:50:56:8D:FF:13, hw, mtu 1500
ip4 デフォルト
inet4 192.168.1.100/24
inet6 fe80::250:56ff:fe8d:ff13/64

lo: 管理無し
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

既知のデバイスに関する情報を取得するには、"nmcli device show" を使用します。
アクティブな接続プロファイルの概要を取得するには、"nmcli connection show" を使用します。

使用方法の詳細情報については、nmcli(1) と nmcli-examples(5) の man ページを参照してください。

ご丁寧にオプションの説明書いてくれてる。。

nmcli device show
nmcli connection show

でネットワークデバイスの確認ができます。

nmcli c modify eth0 ipv4.addresses 192.168.1.100/24

でeth0のIP設定。

nmcli c modify eth0 ipv4.gateway 192.168.1.1

でデフォゲ設定。

nmcli c modify eth0 ipv4.dns 192.168.1.10

でDNSの設定。

nmcli connection reload

で設定を反映。
ここでの設定は/etc/sysconfig/network-scripts/ifcfg-eth0に記述されます。

・nmtui

次は、nmtuiでの設定です。

TUIで接続の編集やホスト名変更が可能です。
設定項目みながらポチポチできます。
20180516182549.jpg
こんな感じ。



■IP設定(ファイル編集)

「NetworkManagerなんか必要ねぇんだよ!」て人もいると思うので、従来の方法も載せときます。

ip a

でアドレスなどの確認。インストールすればifconfigも使えますが、慣れればこっちの方が楽です。

/etc/sysconfig/network-scripts/ifcfg-eth0
を編集して設定。eth0は該当するデバイス名です。
NICが追加されるとそのデバイスの名前をつけた設定ファイルを作成しないといけません。そこは面倒ですね。
よくわからんパラメータが沢山ありますが、基本的に以下のパラメータがあれば大丈夫かなと。 

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes           #OS起動時に有効化
TYPE=Ethernet
BOOTPROTO=none       #直接IPを指定
IPADDR=192.168.1.100
PREFIX=24
NM_CONTROLLED=NO     #NetworkManagerを使用しない

IPv6使わない場合は項目ごと消しちゃって大丈夫です。
PREFIXの箇所は、
NETMASK=255.255.255.0
のように記述することもできます。


また、IPエイリアスを設定したい場合は
IPADDR1=192.168.1.111
PREFIX1=24
のように追記することで設定できます。

デフォルトゲートウェイの設定は
GATEWAY=192.168.1.1
DEFROUTE=yes
と追記することで設定はできるのですが、NICが複数あったりする場合は以下のファイル1つに記述しておく方がいいです。

/etc/sysconfig/network
GATEWAY=192.168.1.1

ファイル編集後、サービス再起動。
systemctl restart network

■Bonding設定

複数NICを使ってLAGのインターフェースを組む場合です。チーミングだのbondingだのLAGだの名称を統一してくれ(小声)

・bondingモジュールのインストール

[root@host01 ~]# modprobe --first-time bonding

・bondingの種類

一応種類をまとめておきます。

mode=0 : balance-rr
⇒ラウンドロビンによる負荷分散。bondingを組んでいるすべてのインタフェースで受信。

mode=1 : active-backup
⇒active/backupの方式。activeポートが使用できなくなると、backupポートがactiveポートになる。

mode=2 : balance-xor
⇒送信元/宛先情報を元に負荷分散。情報はxmit_hash_policyによって設定。bondingを行っているすべてのインタフェースで受信。

mode=3 : broadcast
⇒すべてのインタフェースから同じパケットを送信。bondingを行っているすべてのインタフェースで受信。

mode=4 : 802.3ad
⇒LACP(Link Aggregation Control Protocol:リンクアグリゲーションの接続を確立させるプロトコル)を使用。情報はxmit_hash_policyによって設定可能。送信元/宛先情報を元に負荷分散を行い、受信はLACPでネゴシエーションが取れたインタフェースで行う。

mode=5 : balance-tlb
⇒スレーブインタフェースの負荷によって負荷分散され、送信。bondingを行っているすべてのインタフェースで受信。

mode=6 : balance-alb
⇒スレーブインタフェースの負荷によって負荷分散され、送信。受信は負荷に応じて変更。

・設定・確認

全体確認↓

[root@host01 ~]# ls /proc/net/bonding/
bond0  bond1  bond2

IFの確認。eth0と1でActive/Standby(mode1)でeth0をprimaryにしてbond0を組む場合。↓

/proc/net/bonding/bond0
[root@host01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 10000
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 68:05:ca:e0:b4:1e
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 68:05:ca:e0:b4:1f
Slave queue ID: 0
[root@host01 ~]#

IFの確認。eth0と1でmode4でbond0を組む場合。

/proc/net/bonding/bond0
[root@host01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: b4:96:91:c1:XX:XX
Active Aggregator Info:
        Aggregator ID: 9
        Number of ports: 2
        Actor Key: 21
        Partner Key: 32769
        Partner Mac Address: 00:23:04:ee:XX:XX

Slave Interface: eth0
MII Status: up
Speed: 25000 Mbps
Duplex: full
Link Failure Count: 88
Permanent HW addr: b4:96:91:c1:XX:XX
Slave queue ID: 0
Aggregator ID: 9
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 2
details actor lacp pdu:
    system priority: 65535
    system mac address: b4:96:91:c1:XX:XX
    port key: 21
    port priority: 255
    port number: 1
    port state: 63
details partner lacp pdu:
    system priority: 8192
    system mac address: 00:23:04:ee:XX:XX
    oper key: 32769
    port priority: 32768
    port number: 257
    port state: 63

Slave Interface: eth1
MII Status: up
Speed: 25000 Mbps
Duplex: full
Link Failure Count: 5
Permanent HW addr: b4:96:91:c1:XX:XX
Slave queue ID: 0
Aggregator ID: 9
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: b4:96:91:c1:XX:XX
    port key: 21
    port priority: 255
    port number: 2
    port state: 63
details partner lacp pdu:
    system priority: 8192
    system mac address: 00:23:04:ee:XX:XX
    oper key: 32769
    port priority: 32768
    port number: 16641
    port state: 63
[root@host01 ~]#

設定はコンフィグファイルで行います.(一応nmcliを推奨のようですが...)
スレーブはファイル名とDEVICEの値以外は両方同じ設定。↓

/etc/sysconfig/network-scripts/ifcfg-eth0,eth1
DEVICE=eth0(1)
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
BONDING_OPTS="mode=1 miimon=100 primary=eth0 updelay=10000"

mode4なら、BONDING_OPTS="mode=4 lacp_rate=1"
ちなみにVLANを設定したい場合は、/etc/sysconfig/networkVLAN=yesを追記してVLANを有効化した上で、
ifcfg-XXXファイル名に.VLAN番号をつけて作成。(このファイルにVLAN=yesを入れてもよい。)↓

/etc/sysconfig/network-scripts/ifcfg-bond0.1111
DEVICE=bond0.1111
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
IPADDR=10.11.0.2
PREFIX=24
IPV6INIT=no
VLAN=yes

■Bridge設定

仮想ブリッジ ⇒ ホストLinux上に仮想的なL2スイッチを構成する機能
ホストLinuxの物理NICを仮想ブリッジに接続し、L2スイッチを経由してVMを外部ネットワークに接続します。VMには、外部ネットワークと同じサブネットのIPアドレスをアサインする必要があります。通信フローとしては、
VMの仮想NIC ⇒ ホストLinux側のTAPデバイス ⇒ 仮想ブリッジ ⇒ ホストの物理NIC ⇒ 外部NW
同じ仮想ブリッジに接続されたVM同士は、仮想ブリッジを経由して通信することが可能です。

確認↓

[root@host01 ~]$ brctl show
bridge name     bridge id               STP enabled     interfaces
br2222          8000.b026286cdb90       no              bond0.2222
                                                        vnet0
br3333          8000.20040ffaf61c       no              eth2
                                                        vnet1
virbr0          8000.525400e0da30       yes             virbr0-nic

設定はコンフィグファイルで行う.(一応nmcliを推奨のようだが...)
ホストサーバにもアドレスを振る場合はここ。↓

/etc/sysconfig/network-scripts/ifcfg-br2222
DEVICE=br2222
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.11.10.200
PREFIX=24

物理NICと仮想ブリッジを接続する。
bondingの場合、ブリッジファイルをここで指定↓

/etc/sysconfig/network-scripts/ifcfg-bond0.2222
DEVICE=bond0.2222
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
IPV6INIT=no
BRIDGE=br2222

bondingでない場合はifcfg-ethXの物理IFのファイルでBRIDGE=brXXXXを指定すればよい。

■静的経路の追加

route add -net 192.168.99.0/24 gw 192.168.0.254 eth0

route add -net IPアドレス/サブネット gw 宛先ルータアドレス 発信するデバイス名
で一時的に追加できます。またip routeコマンドでも設定できますが、これらは再起動すると消えます。


恒久的に追加する場合は

/etc/sysconfig/network-scripts/route-eth0
192.168.9.0/24 via 192.168.0.254 dev eth0

と記述。 
ファイルで既に指定しているので、dev eth0は省略できます。

ip route

でルーティングテーブル確認。

■パケットキャプチャ

tcpdumpが入っていればパケットのキャプチャを取得できます。

tcpdump -i eth1 port 53 -nn -s 0 -tttt

eth1インターフェースを通過するポート53のトラフィックをキャプチャし、その内容をタイムスタンプ付きで表示

■DNS設定

ifcfgファイルに記述することもできますが、/etc/resolv.confに記述するのが一般的です。

/etc/resolv.conf
nameserver 10.70.71.107
nameserver 10.70.71.108

で設定。

nslookup

で確認。コマンドがない場合は、yumなどでbind-utilsをインストールするか、
dig,hostコマンドでも名前解決を調べられます。

dig -b 192.168.0.1 @10.0.0.1 www.google.co.jp +tries=1

192.168.0.1を送信元として、DNSのクエリを10.0.0.1のDNSサーバーに送信し、www.google.co.jpドメインのIPアドレスを取得しようとする。
+tries=1のオプションでDNSサーバーへのクエリ再試行の回数を1回のみの試行でドメインのIPアドレスを取得します。

アドレスだけ返して欲しい場合は以下

dig +short @参照先DNSサーバIP XXX.com

■CONNECTION状態

必須級。

netstat -nplt

-n: IPアドレスとポート番号を数値形式で表示。DNSの逆引きなどは行われず、IPアドレスとポート番号をそのまま表示。
-p: 各接続やソケットに紐付いているプログラム名(プロセス名)を表示。ポート番号とプロトコルの組み合わせをプロセスにマッピングするために使用。
-l: リスニング(Listen)状態のソケットや接続を表示。つまりローカルマシンが他のマシンからの接続を受け入れるために待機しているポート。
-t: TCP接続を表示
-u: UDP接続を表示


後継としてssコマンドもある。
ss -antp

-a:LISTEN,NOLISTEN両方の情報を表示。-lでListenのみ
-n:アドレスやポートを数値で表示
-t:TCP接続を表示
-p:プロセス名を表示

■HTTPS通信確認

openssl s_client -connect xxxx.com:443

openssl s_client: OpenSSLコマンドでSSL/TLSクライアントを起動
-connect xxxx.com:443: 接続先のホスト名とポート番号を指定

このコマンドを実行すると、指定されたホストとポート上のサーバーに対してSSL/TLS接続が試みられる。
接続が成功すると、サーバーの証明書情報や使用されるSSL/TLSバージョンなどの詳細な情報が表示される。

ちなみに証明書ファイルの内容を表示したい場合は以下

openssl x509 -in xxxx.crt -text -noout

■cURL確認

curl "http://xxxx.com/zzz"

-L:リダイレクトがあればリダイレクト先の情報を取得
-s:進捗状況を非表示。-sSとすることが多い
-S:エラーは表示。-sSとすることが多い
-v:詳細ログを出力
-I:HTTPレスポンスヘッダを取得
-k:SSL接続で証明書エラーをスキップ
-O:ダウンロード

curl ifconfig.me

使用しているグローバルアドレスを確認できる便利コマンド

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?