ページ概要
RHEL/CentOSのネットワークについて、基本的な操作・確認手法についてまとめます。
ネットワークの構造
Redhat系のOSでは、ネットワークは"NetworkManager.service"により管理されており、
以下の要素により構成されている。
要素 | 説明 |
---|---|
Device | NIC。 物理的なネットワークハードウェア。 |
Connection | 対象デバイスに適応するネットワーク設定。いわゆるプロファイル。 Deviceと関連付けすることで使用する。 |
Interface | DeviceとConnectionが紐づけられた、論理的なネットワーク実体。 OSやアプリケーションはInterfaceを使用してネットワーク通信を行う。 |
▼1つのインタフェースのイメージ図
App/OSがネットワークを使う際に見る
↓
┌-- Interface -------------------------┐
| |
| 「Device」 ←-関連付け-- 「Connection」 |
| |
└--------------------------------------┘
※Conenctionの設定ファイルについて、下記に存在するがファイルの直接編集は非推奨!
nmcli/nmtuiにて操作すること。
/etc/NetworkManager/system-connections/インタフェース名.nmconnectio
確認コマンド
Device確認
- Device一覧
# nmcli device DEVICE TYPE STATE CONNECTION br0 bridge 接続済み br0 lo loopback 接続済み (外部) lo enp6s0 ethernet 接続済み enp6s0 wlp5s0 wifi 利用不可 --
- 個別Deviceの詳細
# nmcli device show enp6s0 GENERAL.DEVICE: enp6s0 ※デバイス名 GENERAL.TYPE: ethernet ※インタフェースタイプ GENERAL.HWADDR: xx:xx:xx:xx:xx:xx ※MACアドレス GENERAL.MTU: 1500 ※MTU GENERAL.STATE: 100 (接続済み) ※状態 GENERAL.CONNECTION: enp6s0 ※紐づいたConnection GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 WIRED-PROPERTIES.CARRIER: オン ※信号の状態 IP4.GATEWAY: -- IP6.GATEWAY:
Connection確認
- Connection一覧
- Name:connection名
- UUID:コネクションのUUID
- TYPE:インタフェースの種類
- DEVICE:関連付けられたDevice
# nmcli connection NAME UUID TYPE DEVICE br0 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx bridge br0 lo xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx loopback lo virbr0 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx bridge virbr0 vnet0 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx tun vnet0 enp6s0 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet enp6s0
- 個別Connectionの詳細
# nmcli connection show br0 (結果一部抽出) connection.id: br0 connection.uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx connection.stable-id: -- connection.type: bridge connection.interface-name: br0 connection.autoconnect: はい ipv4.method: manual ipv4.dns: 8.8.8.8 ipv4.addresses: 192.168.0.1/24 ipv4.gateway: 192.168.0.254 ipv4.routes: -- ipv6.method: disabled
Interfaceの確認
- ip addr
- インタフェース名
- フラグ
- MTU
- MACアドレス
- IPアドレス
- ブロードキャストIP
# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute br0 valid_lft forever preferred_lft forever
-
ip link show
- インタフェース一覧
- MACアドレス
- 状態(UP/Down)
- MTU
- フラグ
# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP mode DEFAULT group default qlen 1000 link/ether 18:c0:4d:92:3e:3e brd ff:ff:ff:ff:ff:ff 3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 18:c0:4d:92:3e:3e brd ff:ff:ff:ff:ff:ff
ルーティングの確認
# ip route default via 192.168.10.1 dev br0 proto static metric 425 192.168.10.0/24 dev br0 proto kernel scope link src 192.168.10.10 metric 425
DNSの確認
- nmcli
# nmcli con show br0 | grep dns ipv4.dns: 8.8.8.8 ipv4.dns-search: hoge.local,fuga.local
- ローカルの設定ファイル
# cat /etc/resolv.conf # Generated by NetworkManager search hoge.local fuga.local nameserver 8.8.8.8
- hostsの確認
# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
設定コマンド
設定変更はInterfaceの再起動により反映される
TUIによる設定
- コンソールの起動
# nmtui
コマンドによる設定
IP設定
- IP変更
# nmcli con mod 対象IF ipv4.addresses 変更後のIP/prefix
- IP追加(セカンダリIP)
# nmcli con mod 対象IF +ipv4.addresses 追加IP/prefix
- IP削除
# nmcli con mod 対象IF -ipv4.addresses 削除対象IP/prefix
DNS設定
- DNS変更
# nmcli con mod 対象IF ipv4.dns DNSサーバのIP
- DNS追加(2台目以降)
# nmcli con mod 対象IF +ipv4.dns DNSサーバのIP
- DNS削除
# nmcli con mod 対象IF -ipv4.dns DNSサーバのIP
経路設定
- デフォルトゲートウェイ変更
# mcli con mod 対象IF ipv4.gateway ゲートウェイIP
- ルーティング追加
# nmcli con mod 対象IF +ipv4.routes "宛先IP/prefix ゲートウェイIP"
- ルーティング削除
# nmcli con mod 対象IF -ipv4.routes "宛先IP/prefix ゲートウェイIP"
- 即時適用の揮発設定(IF再起動したら消えるため注意!)
- 追加 ※"dev IFデバイス"指定は、明示しなければ自動で設定される
# ip route add 宛先IP/prefix via ゲートウェイIP dev IFデバイス
- 削除
# ip route del 宛先IP/prefix
- 追加 ※"dev IFデバイス"指定は、明示しなければ自動で設定される
自動接続
- 有効化
# nmcli con mod 対象IF connection.autoconnect yes
- 無効化
# nmcli con mod 対象IF connection.autoconnect no
インタフェースのUP/Down
- 対象IFのUP/再起動 ※すでに起動状態なら再起動される
# nmcli connection up 対象IF
- 対象IFのDown
# nmcli connection down 対象IF