Menu Close
ネットワークの設定および管理
Red Hat Enterprise Linux 9 におけるネットワークの設定と管理に関するガイド
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社の CTO、Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバックの提供
ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。
特定の部分についての簡単なコメントをお寄せいただく場合は、以下をご確認ください。
- ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
- マウスカーソルで、コメントを追加する部分を強調表示します。
- そのテキストの下に表示される Add Feedback ポップアップをクリックします。
- 表示される手順に従ってください。
Bugzilla を介してフィードバックを送信するには、新しいチケットを作成します。
- Bugzilla の Web サイトに移動します。
- Component で Documentation を選択します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
- Submit Bug をクリックします。
第1章 一貫性のあるネットワークインターフェースデバイスの命名
Red Hat Enterprise Linux は、ネットワークインターフェース用に一貫した予測可能なデバイスの命名方法を提供します。このような機能により、ネットワークインターフェースの検出と区別が容易になります。
カーネルは、固定接頭辞と、カーネルがネットワークデバイスを初期化する際に増加する数を連結させて、ネットワークインターフェースに名前を割り当てます。たとえば、eth0
は、システムの起動時にプローブされる最初のデバイスを表します。ただし、この名前がシャーシのラベルに対応しているとは限りません。複数のネットワークアダプターを使用する最新のサーバープラットフォームでは、このインターフェースの非決定論的および反直感的な命名が行われています。これは、システムボードに組み込まれたネットワークアダプターと、アドインアダプターの両方に影響します。
Red Hat Enterprise Linux では、udev
デバイスマネージャーがさまざまな命名規則に対応しています。デフォルトでは、udev
は、ファームウェア、トポロジー、場所の情報に基づいて固定名を割り当てます。これには、次の利点があります。
- デバイス名は完全に予測可能です。
- ハードウェアを追加または削除しても、再列挙が行われないため、デバイス名は固定されたままになります。
- 不具合のあるハードウェアをシームレスに交換できます。
1.1. ネットワークインターフェースのデバイス命名階層
一貫したデバイスの命名が有効 (Red Hat Enterprise Linux のデフォルト) になると、udev
デバイスマネージャーは以下のスキームに基づいてデバイス名を生成します。
Scheme | 説明 | 例 |
---|---|---|
1 |
デバイス名には、ファームウェアまたは BIOS が提供するオンボードデバイスのインデックス番号が含まれます。この情報が利用できない、または該当しない場合は、 |
|
2 |
デバイス名には、ファームウェアまたは BIOS が提供する PCI Express (PCIe) ホットプラグインスロットのインデックス番号が含まれます。この情報が利用できない、または該当しない場合は、 |
|
3 |
デバイス名には、ハードウェアのコネクターの物理的な場所が含まれます。この情報が利用できない、または該当しない場合は、 |
|
4 | デバイス名には MAC アドレスが含まれます。Red Hat Enterprise Linux では、デフォルトではこのスキームが使用されません。管理者は、必要に応じて使用できます。 |
|
5 |
従来の、予測できないカーネル命名スキーム。 |
|
Red Hat Enterprise Linux では、デフォルトでは、/usr/lib/systemd/network/99-default.link
ファイルの NamePolicy
設定に基づいてデバイス名が選択されます。NamePolicy
の値の順序は重要です。Red Hat Enterprise Linux では、そのファイルで指定され、udev
が生成した最初のデバイス名が使用されます。
udev
ルールを手動で設定し、カーネルデバイス名を変更すると、このルールが優先されます。
1.2. ネットワークデバイスの名前変更の仕組み
デフォルトでは、Red Hat Enterprise Linux では一貫したデバイス命名が有効になっています。udev
デバイスマネージャーは、デバイスの名前を変更するさまざまなルールを処理します。以下の一覧では、udev
がルールを処理する順番と、ルールを実行するアクションを説明します。
-
/usr/lib/udev/rules.d/60-net.rules
ファイルは、/lib/udev/rename_device
ヘルパーユーティリティーが、/etc/sysconfig/network-scripts/ifcfg-*
ファイルのHWADDR
パラメーターを検索することを定義します。変数に設定した値がインターフェースの MAC アドレスに一致すると、ヘルパーユーティリティーは、インターフェースの名前を、ファイルのDEVICE
パラメーターに設定した名前に変更します。このファイルは、initscripts
パッケージをインストールした後にのみ存在します。 -
/usr/lib/udev/rules.d/71-biosdevname.rules
ファイルは、biosdevname
ユーティリティーが直前の手順で名前が変更されていない場合に、命名ポリシーに従ってインターフェースの名前を変更することを定義します。 -
/usr/lib/udev/rules.d/75-net-description.rules
ファイルは、udev
がネットワークインターフェースデバイスを検査し、udev
の内部変数のプロパティーが次の手順で処理されることを定義します。このプロパティーの一部は未定義である可能性があることに注意してください。 /usr/lib/udev/rules.d/80-net-setup-link.rules
ファイルはnet_setup_link
udev
のビルトインを呼び出し、ポリシーを適用します。以下は、/usr/lib/systemd/network/99-default.link
ファイルに保存されているデフォルトポリシーです。[Link] NamePolicy=kernel database onboard slot path MACAddressPolicy=persistent
このポリシーでは、カーネルが永続名を使用すると、
udev
がインターフェースの名前を変更します。カーネルが永続名を使用しないと、udev
はインターフェースを、udev
のハードウェアデータベースが提供する名前に変更します。このデータベースが利用できない場合、Red Hat Enterprise Linux は上記のメカニズムにフォールバックします。別の方法では、メディアアクセス制御 (MAC) アドレスベースのインターフェース名に対して、このファイルの
NamePolicy
パラメーターをmac
に設定します。/usr/lib/udev/rules.d/80-net-setup-link.rules
ファイルは、udev
が、以下の順番でudev
内のパラメーターに基づいてインターフェースの名前を変更することを定義します。-
ID_NET_NAME_ONBOARD
-
ID_NET_NAME_SLOT
-
ID_NET_NAME_PATH
あるパラメーターが設定されていないと、
udev
は次のパラメーターを使用します。パラメーターが設定されていないと、インターフェースの名前が変更されません。-
手順 3 および 4 では、ネットワークインターフェースのデバイス命名階層 で説明されている命名スキーム 1 から 4 を実装します。
関連情報
- Customizing the prefix of Ethernet interfaces
-
NamePolicy
パラメーターの詳細は、man ページのsystemd.link(5)
を参照してください。
1.3. x86_64 プラットフォームで説明されている予想可能なネットワークインターフェースのデバイス名
一貫性のあるネットワークデバイス名機能が有効になると、udev
デバイスマネージャーは異なる基準に基づいてデバイスの名前を作成します。本セクションでは、Red Hat Enterprise Linux を x86_64 プラットフォームにインストールする場合の命名スキームを説明します。
インターフェース名は、インターフェースの種類に基づいて 2 文字の接頭辞で始まります。
-
イーサネットの場合は
en
-
ワイヤレス LAN (WLAN) の場合は
wl
-
WWAN (Wireless Wide Area Network) の場合は
ww
さらに、udev
デバイスマネージャーが適用するスキーマに基づいて、上記の接頭辞のいずれかに、次のいずれかが追加されます。
-
o<on-board_index_number>
s<hot_plug_slot_index_number>[f<function>][d<device_id>]
すべての多機能 PCI デバイスには、関数
0
デバイスを含め、デバイス名に[f<function>]
番号がある点に注意してください。-
x<MAC_address>
[P<domain_number>]p<bus>s<slot>[f<function>][d<device_id>]
[P<domain_number>]
の部分は、PCI の地理的な場所を定義します。この部分は、ドメイン番号が0
でない場合にのみ設定されます。[P<domain_number>]p<bus>s<slot>[f<function>][u<usb_port>][…][c<config>][i<interface>]
USB デバイスの場合は、ハブのポート番号の完全なチェーンで構成されます。名前が最大 (15 文字) より長い場合、この名前はエクスポートされません。チェーンに複数の USB デバイスがある場合、
udev
は USB 設定記述子 (c1
) および USB インターフェース記述子 (i0
) のデフォルト値を表示しません。
1.4. System z プラットフォームで予測可能なネットワークインターフェースデバイス名
一貫性のあるネットワークデバイス名機能が有効になると、System z プラットフォームの udev
デバイスマネージャーにより、バス ID に基づいてデバイス名が作成されます。バス ID は、s390 チャンネルサブシステム内のデバイスを識別します。
CCW (Channel Command Word) デバイスの場合、バス ID は、先頭に 0.n
接頭辞が付いたデバイス番号です。ここで n
は、サブチャンネルのセット ID です。
イーサネットインターフェースの名前は enccw0.0.1234
などになります。SLIP (Serial Line Internet Protocol) の CTC (Channel-to-Channel) ネットワークデバイスの名前は、slccw0.0.1234
などになります。
znetconf -c
コマンドまたは lscss -a
コマンドを使用して、利用可能なネットワークデバイスとそのバス ID を表示します。
1.5. インストール時の一貫性のあるインターフェースデバイスの命名の無効化
本セクションは、インストール時に、一貫性のあるインターフェースデバイスの命名を無効にする方法を説明します。
Red Hat では、一貫したデバイス命名を無効にしないことを推奨しており、複数のネットワークインターフェースを持つホストではこの機能をサポートしていません。一貫性のあるデバイスの命名を無効にすると、さまざまな問題が発生する可能性があります。たとえば、別のネットワークインターフェースカードをシステムに追加する場合は、eth0
などのカーネルデバイス名の割り当てが修正されなくなります。したがって、システムの再起動後に、カーネルに別の名前を付けることができます。
手順
- Red Hat Enterprise Linux 9 インストールメディアを起動します。
-
ブートマネージャーで
Install Red Hat Enterprise Linux 9
を選択し、Tab キーを押してエントリーを編集します。 net.ifnames=0
パラメーターをカーネルコマンドラインに追加します。vmlinuz... net.ifnames=0
- Enter を押してインストールを開始します。
1.6. インストール済みのシステムでの一貫したインターフェイスデバイスの命名を無効にする
本セクションでは、インストール済みの RHEL システムで、一貫したインターフェースデバイスの命名を無効にする方法を説明します。
Red Hat では、一貫したデバイス命名を無効にしないことを推奨しており、複数のネットワークインターフェースを持つホストではこの機能をサポートしていません。一貫したデバイス命名を無効にすると、さまざまな種類の問題が発生する可能性があります。たとえば、別のネットワークインターフェースカードをシステムに追加する場合は、eth0
などのカーネルデバイス名の割り当てが修正されなくなります。したがって、システムの再起動後に、カーネルに別の名前を付けることができます。
前提条件
- システムが、一貫性のあるインターフェースデバイスの命名を使用している (デフォルト)。
手順
/etc/default/grub
ファイルを編集し、net.ifnames=0
パラメーターをGRUB_CMDLINE_LINUX
変数に追加します。GRUB_CMDLINE_LINUX="... net.ifnames=0"
grub.cfg
ファイルを再構築します。システムで UEFI ブートモードを使用している場合は、次のコマンドを実行します。
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
システムでレガシーブートモードを使用している場合は、次のコマンドを実行します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
現在のプロファイル名と、関連付けられているデバイス名を表示します。
# nmcli -f NAME,DEVICE,FILENAME connection show NAME DEVICE FILENAME System enp1s0 enp1s0 /etc/sysconfig/network-scripts/ifcfg-enp1s0 System enp7s0 enp7s0 /etc/NetworkManager/system-connections/enp7s0.nmconnection
どのプロファイル名および設定ファイルが各デバイスに関連付けられているかに注意してください。
すべてのコネクションプロファイルから
HWADDR
パラメーターを削除します。# sed -i '/^HWADDR=/d' /etc/sysconfig/network-scripts/ifcfg-enp1s0 /etc/NetworkManager/system-connections/enp7s0.nmconnection
イーサネットデバイスに関連付けられている MAC アドレスを表示します。
# ip link show ... 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:53:00:c5:98:1c brd ff:ff:ff:ff:ff:ff 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:53:00:b6:87:c6 brd ff:ff:ff:ff:ff:ff
ホストを再起動します。
# reboot
再起動したら、イーサネットデバイスを表示し、MAC アドレスに基づいて新しいインターフェース名を識別します。
# ip link show ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:53:00:b6:87:c6 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:53:00:c5:98:1c brd ff:ff:ff:ff:ff:ff
現在の出力を、以前の出力と比較する場合は、以下を行います。
-
インターフェース
enp7s0
(MAC アドレス00:53:00:b6:87:c6
) の名前がeth0
になりました。 -
インターフェース
enp1s0
(MAC アドレス00:53:00:c5:98:1c
) の名前がeth1
になりました。
-
インターフェース
設定ファイルの名前を変更します。
# mv /etc/NetworkManager/system-connections/enp7s0.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection # mv /etc/sysconfig/network-scripts/ifcfg-enp1s0 /etc/sysconfig/network-scripts/ifcfg-eth1
NetworkManager の再読み込み:
# nmcli connection reload
設定ファイルにプロファイル名が設定されていない場合、NetworkManager はデフォルト値を使用します。接続の名前を変更して再読み込みした後に、現在のプロファイル名を確認するには、次のコマンドを実行します。
# nmcli -f NAME,DEVICE,FILENAME connection show NAME FILENAME System enp7s0 /etc/NetworkManager/system-connections/eth0.nmconnection System enp1s0 /etc/sysconfig/network-scripts/ifcfg-eth1
次の手順でプロファイル名を使用する必要があります。
NetworkManager の接続プロファイルの名前を変更し、各プロファイルのインターフェース名を更新します。
# nmcli connection modify "System enp7s0" connection.id eth0 connection.interface-name eth0 # nmcli connection modify "System enp1s0" connection.id eth1 connection.interface-name eth1
NetworkManager 接続を再アクティブ化します。
# nmcli connection up eth0 # nmcli connection up eth1
1.7. Customizing the prefix of Ethernet interfaces
Red Hat Enterprise Linux のインストール時に、イーサネットインターフェース名の接頭辞をカスタマイズできます。
Red Hat は、デプロイ済みシステムで prefixdevname
ユーティリティーを使用した接頭辞のカスタマイズをサポートしていません。
RHEL のインストール後、udev
サービスは、イーサネットデバイスに <prefix>.<index>
という名前を付けます。たとえば、接頭辞 net
を選択すると、RHEL はイーサネットインターフェースの名前を net0
、net1
などに設定します。
前提条件
設定する接頭辞は、以下の要件を満たします。
- ASCII 文字で構成される。
- 英数字の文字列である。
- 16 文字より短い。
-
eth
、eno
、ens
、およびem
など、ネットワークインターフェースの命名に使用される他の周知の接頭辞と競合しない。
手順
- Red Hat Enterprise Linux インストールメディアを起動します。
ブートマネージャーで以下を実行します。
-
Install Red Hat Enterprise Linux <version>
のエントリーを選択し、Tab を押してエントリーを編集します。 -
net.ifnames.prefix=<prefix>
をカーネルオプションに追加します。 - Enter を押して、インストーラーを起動します。
-
- Red Hat Enterprise Linux をインストールします。
検証
インストール後、イーサネットインターフェースを表示します。
# ip link show ... 2: net0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:53:00:c5:98:1c brd ff:ff:ff:ff:ff:ff 3: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:53:00:c2:39:9e brd ff:ff:ff:ff:ff:ff ...
1.8. udev ルールを使用したユーザー定義のネットワークインターフェイス名の割り当て
udev
デバイスマネージャーは、インターフェイス名をカスタマイズするための一連のルールをサポートしています。
手順
すべてのネットワークインターフェイスとその MAC アドレスを表示します。
# ip link list enp6s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:58 brd ff:ff:ff:ff:ff:ff enp6s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:5a brd ff:ff:ff:ff:ff:ff enp4s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:90:fa:6a:7d:90 brd ff:ff:ff:ff:ff:ff
次のコンテンツでファイル
/etc/udev/rules.d/70-custom-ifnames.rules
を作成します。SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="b4:96:91:14:ae:58",ATTR{type}=="1",NAME="provider0" SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="b4:96:91:14:ae:5a",ATTR{type}=="1",NAME="provider1" SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:90:fa:6a:7d:90",ATTR{type}=="1",NAME="dmz"
これらのルールはネットワークインターフェイスの MAC アドレスと一致し、NAME プロパティーで指定された名前に変更します。これらの例では、ATTR{type} パラメーター値 1 は、インターフェイスがイーサネットタイプであることを定義しています。
検証
システムを再起動します。
# reboot
各 MAC アドレスのインターフェイス名が、ルールファイルの
NAME
パラメーターで設定した値と一致することを確認します。# ip link show provider0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:58 brd ff:ff:ff:ff:ff:ff altname enp6s0f0 provider1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:5a brd ff:ff:ff:ff:ff:ff altname enp6s0f1 dmz: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:90:fa:6a:7d:90 brd ff:ff:ff:ff:ff:ff altname enp4s0f0
関連情報
-
udev(7)
man ページ -
udevadm(8)
man page -
/usr/src/kernels/<kernel_version>/include/uapi/linux/if_arp.h
は、kernel-doc
パッケージによって提供されます
1.9. systemd リンクファイルを使用したユーザー定義のネットワークインターフェイス名の割り当て
ネットワークインターフェイスの名前を provider0
に変更して、命名スキームを作成します。
手順
すべてのインターフェイス名とその MAC アドレスを表示します。
# ip link show enp6s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:58 brd ff:ff:ff:ff:ff:ff enp6s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:5a brd ff:ff:ff:ff:ff:ff enp4s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:90:fa:6a:7d:90 brd ff:ff:ff:ff:ff:ff
MAC アドレス b4:96:91:14:ae:58 のインターフェイスに provider0 の名前を付けるには、次のコンテンツの /etc/systemd/network/70-custom-ifnames.link ファイルを作成します。
[Match] MACAddress=b4:96:91:14:ae:58 [Link] Name=provider0
このリンクファイルは MAC アドレスと一致し、ネットワークインターフェイスの名前を
Name
パラメーターで設定された名前に変更します。
検証
システムを再起動します。
# reboot
リンクファイルで指定した MAC アドレスを持つデバイスが
provider0
に割り当てられていることを確認します。# ip link show provider0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether b4:96:91:14:ae:58 brd ff:ff:ff:ff:ff:ff
関連情報
-
systemd.link(5)
man page
1.10. 関連情報
-
udev
デバイスマネージャーの詳細は、man ページのudev(7)
を参照してください。
第2章 NetworkManager の使用
デフォルトでは、RHEL は NetworkManager を使用して、ネットワーク設定と接続を管理します。
2.1. NetworkManager を使用する利点
NetworkManager を使用する主な利点は、次の通りです。
- ネットワーク設定と状態にクエリーと制御を可能にする、D-Bus を介した API を提供します。この方法では、複数のアプリケーションでネットワークを確認して設定し、ネットワークステータスを同期して最新にすることができます。たとえば、Web ブラウザー経由でサーバーを監視して設定する RHEL Web コンソールは、NetworkManager の D-BUS インターフェースを使用して、ネットワークの設定および Gnome GUI ツール、nmcli ツール、および nm-connection-editor ツールを使用します。このツールのいずれかに対する変更はすべて、残りのツールにより検出されます。
- ネットワーク管理が容易になります。NetworkManager は、ネットワーク接続を確実に機能させます。NetworkManager は、システムにネットワーク設定がなく、ネットワークデバイスがあることを検出すると、一時的な接続を作成して接続を提供します。
- ユーザーの接続設定が容易になります。NetworkManager は、GUI、nmtui、nmcli などのさまざまなツールにより管理機能を提供します。
- 柔軟な設定に対応します。たとえば、WiFi インターフェースを設定すると、NetworkManager は使用可能な WiFi ネットワークをスキャンして表示します。インターフェースを選択すると、NetworkManager が、再起動プロセス後の自動接続を提供するのに必要な資格情報を表示します。NetworkManager では、ネットワークエイリアス、IP アドレス、静的ルート、DNS 情報、VPN 接続のほかに、接続固有のパラメーターを多数設定できます。設定オプションは、必要に応じて修正できます。
- 再起動プロセス後もデバイスの状態を維持し、再起動中に管理モードに設定されているインターフェースを引き継ぎます。
- 明示的に管理対象外として設定されていませんが、ユーザーまたは他のネットワークサービスによって手動で制御されているデバイスを処理します。
2.2. NetworkManager 接続の管理に使用できるユーティリティーおよびアプリケーションの概要
以下のユーティリティーおよびアプリケーションを使用して、NetworkManager 接続を管理できます。
-
nmcli
:接続を管理するコマンドラインユーティリティー。 -
nmtui
:パスワードベースのテキストユーザーインターフェース (TUI)。このアプリケーションを使用するには、NetworkManager-tui
パッケージをインストールします。 -
nm-connection-editor
:NetworkManager 関連のタスクのグラフィカルユーザーインターフェース (GUI)。このアプリケーションを起動するには、GNOME セッションの端末にnm-connection-editor
と入力します。 -
control-center
:デスクトップユーザー用に GNOME シェルによって提供される GUI。このアプリケーションはnm-connection-editor
よりも対応している機能が少ないことに注意してください。 -
GNOME シェルの
network connection icon
:このアイコンは、ネットワーク接続の状態を表し、使用している接続の種類を視覚的に表示します。
第3章 特定のデバイスを無視するように NetworkManager の設定
デフォルトでは、NetworkManager は lo
(loopback) デバイス以外のすべてのデバイスを管理します。ただし、特定のデバイスを unmanaged
に設定すると、NetworkManager がこのデバイスを無視するように設定できます。この設定では、スクリプトなどを使用して、このデバイスを手動で管理できます。
3.1. NetworkManager でデバイスを管理対象外として永続的に設定
インターフェース名、MAC アドレス、デバイスタイプなど、複数の基準に基づいてデバイスを 管理対象外
として設定できます。この手順では、NetworkManager で、enp1s0
インターフェースを 管理対象外
として永続的に設定する方法を説明します。
ネットワークデバイスを一時的に unmanaged
として設定する場合は、Temporarily configuring a device as unmanaged in NetworkManager を参照してください。
手順
オプション:デバイスの一覧を表示して、
unmanaged
に設定するデバイスを特定します。# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ...
以下の内容で
/etc/NetworkManager/conf.d/99-unmanaged-devices.conf
ファイルを作成します。[keyfile] unmanaged-devices=interface-name:enp1s0
複数のデバイスを管理対象外に設定するには、
unmanaged-devices
パラメーターのエントリーをセミコロンで区切ります。[keyfile] unmanaged-devices=interface-name:interface_1;interface-name:interface_2;...
NetworkManager
サービスを再読み込みします。# systemctl reload NetworkManager
検証手順
デバイスの一覧を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...
enp1s0
デバイスの横にある管理対象外
状態は、NetworkManager がこのデバイスを管理していないことを示しています。
関連情報
-
NetworkManager.conf(5)
の man ページのDevice List Format
セクション
3.2. NetworkManager でデバイスを管理対象外として一時的に設定
インターフェース名、MAC アドレス、デバイスタイプなど、複数の基準に基づいてデバイスを 管理対象外
として設定できます。この手順では、NetworkManager で、enp1s0
インターフェースを unmanaged
として一時的に設定する方法を説明します。
この方法は、たとえば、テスト目的で使用します。ネットワークデバイスを unmanaged
に応じて永続的に設定するには、Permanently configuring a device as unmanaged in NetworkManager を参照してください。
手順
オプション:デバイスの一覧を表示して、
unmanaged
に設定するデバイスを特定します。# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ...
enp1s0
デバイスをunmanaged
の状態に設定します。# nmcli device set enp1s0 managed no
検証手順
デバイスの一覧を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...
enp1s0
デバイスの横にある管理対象外
状態は、NetworkManager がこのデバイスを管理していないことを示しています。
関連情報
-
NetworkManager.conf(5)
の man ページのDevice List Format
セクション
第4章 Using nmtui to manage network connections using a text-based interface
nmtui
アプリケーションは、NetworkManager
のテキストユーザーインターフェース (TUI) です。本章では、nmtui
を使用してネットワークインターフェースを設定する方法を説明します。
nmtui アプリケーションは、すべての接続タイプに対応していません。特に、802.1X 認証を必要とする VPN 接続またはイーサネット接続を追加または変更することはできません。
4.1. nmtui ユーティリティーの起動
この手順では、NetworkManager テキストユーザーインターフェース nmtui
を起動する方法を説明します。
前提条件
-
NetworkManager-tui
パッケージがインストールされている。
手順
nmtui
を起動するには、次のコマンドを実行します。# nmtui
以下に移動します。
- カーソルを使用するか Tab を押して次に進むか、Shift+Tab を押して前に戻ります。
- Enter を押してオプションを選択します。
- Space バーを使用して、チェックボックスのステータスを切り替えます。
4.2. nmtui を使用した接続プロファイルの追加
nmtui
アプリケーションで、NetworkManager へのテキストユーザーインターフェースが含まれます。この手順では、新しい接続プロファイルを追加する方法を説明します。
前提条件
-
NetworkManager-tui
パッケージがインストールされている。
手順
NetworkManager のテキストユーザーインターフェースユーティリティーを起動します。
# nmtui
-
接続の編集
メニューエントリーを選択し、Enter を押します。 - Add ボタンを選択し、Enter を押します。
-
Ethernet
を選択し、Enter を押します。 フィールドにコネクションの詳細を入力します。
- OK をクリックして変更を保存します。
-
Back
を選択してメインメニューに戻ります。 -
Activate a connection
を選択し、Enter を押します。 - 新しい接続エントリーを選択し、Enter を押して接続をアクティベートします。
- Back を選択してメインメニューに戻ります。
-
Quit
を選択します。
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected Example-Connection
接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp1s0 ...
ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」 を参照してください。
関連情報
- 基本的なネットワーク設定のテスト
-
nmtui(1)
man ページ
4.3. nmtui で編集済み接続への変更の適用
nmtui
で接続を修正したら、接続を再度アクティブにする必要があります。nmtui
で接続を再有効にすると、一時的に接続が非アクティブになることに注意してください。
前提条件
- 接続プロファイルで自動接続設定が有効になっていません。
手順
メインメニューで、
Activate a connection
メニューエントリーを選択します。- 修正した接続を選択します。
右側で
Deactivate
ボタンを選択し、Enter を押します。- 接続を再度選択します。
右側で
Activate
ボタンを選択し、Enter を押します。
第5章 nmcli の使用
本セクションでは、nmcli
ユーティリティーに関する一般的な情報を説明します。
5.1. nmcli における出力形式
nmcli
ユーティリティーは、nmcli
コマンドの出力を修正するさまざまなオプションに対応します。このオプションを使用すると、必要な情報のみを表示できます。これにより、スクリプトの出力の処理が容易になります。
デフォルトでは、nmcli
ユーティリティーは、出力をテーブルのような形式で表示します。
# nmcli device
DEVICE TYPE STATE CONNECTION
enp1s0 ethernet connected enp1s0
lo loopback unmanaged --
-f
オプションを使用すると、特定の列をカスタム順序で表示できます。たとえば、DEVICE
列および STATE
列のみを表示するには、次のコマンドを実行します。
# nmcli -f DEVICE,STATE device
DEVICE STATE
enp1s0 connected
lo unmanaged
-t
オプションを指定すると、出力の個別のフィールドをコロンで区切って表示できます。
# nmcli -t device
enp1s0:ethernet:connected:enp1s0
lo:loopback:unmanaged:
-f
と-t
を組み合わせて、コロン区切り形式で特定のフィールドのみを表示すると、スクリプトで出力を処理する場合に便利です。
# nmcli -f DEVICE,STATE -t device
enp1s0:connected
lo:unmanaged
5.2. nmcli でタブ補完の使用
ホストに bash-completion
パッケージがインストールされている場合は、nmcli
ユーティリティーがタブ補完に対応します。これにより、オプション名を自動補完し、可能なオプションおよび値を特定できます。
たとえば、nmcli con
と入力して Tab を押すと、シェルが自動的に nmcli connection
に対してコマンドを完了します。
補完では、入力したオプションまたは値が一意である必要があります。一意でない場合は、nmcli
がすべての可能性を表示します。たとえば、nmcli connection d
と入力して Tab を押すと、コマンドが、可能なオプションとして delete
および down
を表示します。
タブ補完を使用して、接続プロファイルに設定できるプロパティーをすべて表示することもできます。たとえば、nmcli connection modify connection_name
と入力して Tab を押すと、利用可能なプロパティーの完全リストが表示されます。
5.3. nmcli でよく使用されるコマンド
頻繁に使用する nmcli
コマンドの概要を以下に示します。
リスト接続プロファイルを表示するには、次のコマンドを実行します。
# nmcli connection show NAME UUID TYPE DEVICE enp1s0 45224a39-606f-4bf7-b3dc-d088236c15ee ethernet enp1s0
特定の接続プロファイルの設定を表示するには、次のコマンドを実行します。
# nmcli connection show connection_name connection.id: enp1s0 connection.uuid: 45224a39-606f-4bf7-b3dc-d088236c15ee connection.stable-id: -- connection.type: 802-3-ethernet ...
接続のプロパティーを変更するには、次のコマンドを実行します。
# nmcli connection modify connection_name property value
複数の
プロパティー 値
の組み合わせをコマンドに渡すと、1 つのコマンドを使用して複数のプロパティーを変更できます。ネットワークデバイスの一覧、その状態、およびデバイスを使用する接続プロファイルを表示するには、次のコマンドを実行します。
# nmcli device DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected enp1s0 enp8s0 ethernet disconnected -- enp7s0 ethernet unmanaged -- ...
接続を有効にするには、次のコマンドを実行します。
# nmcli connection up connection_name
接続を無効にするには、次のコマンドを実行します。
# nmcli connection down connection_name
第6章 イーサネット接続の設定
本セクションでは、静的および動的の IP アドレスでイーサネット接続を構成するさまざまな方法を説明します。
6.1. nmcli を使用した静的イーサネット接続の設定
この手順では、nmcli
ユーティリティーを使用して、以下の設定でイーサネット接続を追加する方法を説明します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
手順
Ethernet 接続の NetworkManager 接続プロファイルを新たに追加します。
# nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet
以下の手順は、作成した
Example-Connection
接続プロファイルを変更します。IPv4 アドレスを設定します。
# nmcli connection modify Example-Connection ipv4.addresses 192.0.2.1/24
IPv6 アドレスを設定します。
# nmcli connection modify Example-Connection ipv6.addresses 2001:db8:1::1/64
IPv4 および IPv6 接続メソッドを
manual
に設定します。# nmcli connection modify Example-Connection ipv4.method manual # nmcli connection modify Example-Connection ipv6.method manual
IPv4 および IPv6 のデフォルトゲートウェイを設定します。
# nmcli connection modify Example-Connection ipv4.gateway 192.0.2.254 # nmcli connection modify Example-Connection ipv6.gateway 2001:db8:1::fffe
IPv4 および IPv6 DNS サーバーアドレスを設定します。
# nmcli connection modify Example-Connection ipv4.dns "192.0.2.200" # nmcli connection modify Example-Connection ipv6.dns "2001:db8:1::ffbb"
複数の DNS サーバーを設定するには、空白で区切って引用符で囲みます。
IPv4 および IPv6 接続の DNS 検索ドメインを設定します。
# nmcli connection modify Example-Connection ipv4.dns-search example.com # nmcli connection modify Example-Connection ipv6.dns-search example.com
接続プロファイルをアクティベートします。
# nmcli connection up Example-Connection Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8:1::2
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 198.162.3.1
IPv6 の場合:
# ping 2001:db8:2::1
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
IPv4 の場合:
# ping 192.0.2.254
IPv6 の場合:
# ping 2001:db8:1::fff3
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
トラブルシューティングの手順
接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。
- ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。
- リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。
- ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。
- ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「 NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
関連情報
-
nm-settings(5)
、nmcli
およびnmcli(1)
の man ページ - 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定
6.2. nmcli インタラクティブエディターを使用した静的イーサネット接続の設定
この手順では、nmcli
対話モードを使用して、以下の設定でイーサネット接続を追加する方法を説明します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
手順
イーサネット接続に新しい NetworkManager 接続プロファイルを追加して、対話モードを開始するには、次のコマンドを実行します。
# nmcli connection edit type ethernet con-name Example-Connection
ネットワークインターフェースを設定します。
nmcli>
set connection.interface-name enp7s0
IPv4 アドレスを設定します。
nmcli>
set ipv4.addresses 192.0.2.1/24
IPv6 アドレスを設定します。
nmcli>
set ipv6.addresses 2001:db8:1::1/64
IPv4 および IPv6 接続メソッドを
manual
に設定します。nmcli>
set ipv4.method manual
nmcli>set ipv6.method manual
IPv4 および IPv6 のデフォルトゲートウェイを設定します。
nmcli>
set ipv4.gateway 192.0.2.254
nmcli>set ipv6.gateway 2001:db8:1::fffe
IPv4 および IPv6 DNS サーバーアドレスを設定します。
nmcli>
set ipv4.dns 192.0.2.200
nmcli>set ipv6.dns 2001:db8:1::ffbb
複数の DNS サーバーを設定するには、空白で区切って引用符で囲みます。
IPv4 および IPv6 接続の DNS 検索ドメインを設定します。
nmcli>
set ipv4.dns-search example.com
nmcli>set ipv6.dns-search example.com
接続をアクティベートして保存します。
nmcli>
save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (yes/no) [yes]yes
インタラクティブモードを終了します。
nmcli>
quit
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8:1::2
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 198.162.3.1
IPv6 の場合:
# ping 2001:db8:2::1
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
IPv4 の場合:
# ping 192.0.2.254
IPv6 の場合:
# ping 2001:db8:1::fff3
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
トラブルシューティングの手順
接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。
- ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。
- リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。
- ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。
ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「 NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
関連情報
-
man ページの
nm-settings(5)
-
man ページの
nmcli(1)
- 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定
6.3. nmstatectl を使用した静的イーサネット接続の設定
この手順では、nmstatectl
ユーティリティーを使用した以下の設定で、enp7s0
デバイスのイーサネット接続を設定する方法を説明します。
-
静的 IPv4 アドレス: サブネットマスクが
/24
の192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
nmstatectl
ユーティリティーを使用すると、設定後にその設定結果が設定ファイルと同じになります。何らかの障害が発生した場合には、nmstatectl
は自動的に変更をロールバックし、システムが不正な状態のままにならないようにします。
手順では、YAML 形式でインターフェース設定を定義します。または、JSON 形式で設定を指定することもできます。
前提条件
-
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイル (例:
~/create-ethernet-profile.yml
) を作成します。--- interfaces: - name: enp7s0 type: ethernet state: up ipv4: enabled: true address: - ip: 192.0.2.1 prefix-length: 24 dhcp: false ipv6: enabled: true address: - ip: 2001:db8:1::1 prefix-length: 64 autoconf: false dhcp: false routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.254 next-hop-interface: enp7s0 - destination: ::/0 next-hop-address: 2001:db8:1::fffe next-hop-interface: enp7s0 dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb
設定をシステムに適用します。
# nmstatectl apply ~/create-ethernet-profile.yml
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected enp7s0
接続プロファイルのすべての設定を表示します。
# nmcli connection show enp7s0 connection.id: enp7s0 connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
接続設定を YAML 形式で表示します。
# nmstatectl show enp7s0
関連情報
-
man ページの
nmstatectl(8)
-
/usr/share/doc/nmstate/examples/
6.4. インターフェース名で RHEL システムロールを使用した静的イーサネット接続の設定
この手順では、Networking の RHEL システムロールを使用し、Ansible Playbook を実行して以下の設定でenp7s0
インターフェースにイーサネット接続をリモートで追加する方法を説明します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
Ansible コントロールノードで以下の手順を実行します。
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - ホストは NetworkManager を使用してネットワークを設定している。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-static-IP.yml
ファイルを以下の内容で作成します。--- - name: Configure an Ethernet connection with static IP hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: - name: enp7s0 interface_name: enp7s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/ethernet-static-IP.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
-
ansible-playbook(1)
の man ページ
6.5. デバイスパスで RHEL システムロールを使用した静的イーサネット接続の設定
この手順では、RHEL システムロール を使用して、Ansible Playbook を実行することにより、特定のデバイスパスに一致するデバイスの静的 IP アドレスでイーサネット接続をリモートで追加する方法を説明します。
デバイスパスは、次のコマンドで識別できます。
# udevadm info /sys/class/net/<device_name> | grep ID_PATH=
この手順では、PCI ID 0000:00:0[1-3].0
式に一致するが、0000:00:02.0
には一致しないデバイスーに、次の設定を設定します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
Ansible コントロールノードで以下の手順を実行します。
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - ホストは NetworkManager を使用してネットワークを設定している。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-dynamic-IP.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with dynamic IP hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: - name: example match: path: - pci-0000:00:0[1-3].0 - &!pci-0000:00:02.0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com state: up
この例の
match
パラメーターは、Ansible が PCI ID0000:00:0[1-3].0
に一致するデバイスに再生を適用するが、0000:00:02.0
には適用しないことを定義します。使用できる特殊な修飾子およびワイルドカードの詳細は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルーのmatch
パラメーターの説明を参照してください。Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/ethernet-dynamic-IP.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-dynamic-IP.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
6.6. nmcli で動的イーサネット接続の設定
この手順では、nmcli
ユーティリティーを使用して、動的イーサネット接続を追加する方法を説明します。この設定では、NetworkManager はこの接続の IP 設定を DHCP サーバーから要求します。
前提条件
- DHCP サーバーをネットワークで使用できる。
手順
Ethernet 接続の NetworkManager 接続プロファイルを新たに追加します。
# nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet
必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が DHCP サーバーに送信するホスト名を変更します。# nmcli connection modify Example-Connection ipv4.dhcp-hostname Example ipv6.dhcp-hostname Example
必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が IPv4 DHCP サーバーに送信するクライアント ID を変更します。# nmcli connection modify Example-Connection ipv4.dhcp-client-id client-ID
IPv6 には
dhcp-client-id
パラメーターがないことに注意してください。IPv6 の識別子を作成するには、dhclient
サービスを構成します。
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8:1::2
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 198.162.3.1
IPv6 の場合:
# ping 2001:db8:2::1
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
IPv4 の場合:
# ping 192.0.2.254
IPv6 の場合:
# ping 2001:db8:1::fff3
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
関連情報
-
man ページの
dhclient(8)
-
nm-settings(5)
-
man ページの
nmcli(1)
- NetworkManager duplicates a connection after restart of NetworkManager service
6.7. nmcli インタラクティブエディターで動的イーサネット接続の設定
この手順では、nmcli
ユーティリティーのインタラクティブエディターを使用して、動的イーサネット接続を追加する方法を説明します。この設定では、NetworkManager はこの接続の IP 設定を DHCP サーバーから要求します。
前提条件
- DHCP サーバーをネットワークで使用できる。
手順
イーサネット接続に新しい NetworkManager 接続プロファイルを追加して、対話モードを開始するには、次のコマンドを実行します。
# nmcli connection edit type ethernet con-name Example-Connection
ネットワークインターフェースを設定します。
nmcli>
set connection.interface-name enp7s0
必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が DHCP サーバーに送信するホスト名を変更します。nmcli>
set ipv4.dhcp-hostname Example
nmcli>set ipv6.dhcp-hostname Example
必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が IPv4 DHCP サーバーに送信するクライアント ID を変更します。nmcli>
set ipv4.dhcp-client-id client-ID
IPv6 には
dhcp-client-id
パラメーターがないことに注意してください。IPv6 の識別子を作成するには、dhclient
サービスを構成します。接続をアクティベートして保存します。
nmcli>
save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (yes/no) [yes]yes
インタラクティブモードを終了します。
nmcli>
quit
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8:1::2
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 198.162.3.1
IPv6 の場合:
# ping 2001:db8:2::1
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
IPv4 の場合:
# ping 192.0.2.254
IPv6 の場合:
# ping 2001:db8:1::fff3
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
関連情報
-
man ページの
dhclient(8)
-
nm-settings(5)
-
man ページの
nmcli(1)
- NetworkManager duplicates a connection after restart of NetworkManager service
6.8. nmstatectl を使用した動的イーサネット接続の設定
この手順では、nmstatectl
ユーティリティーを使用して enp7s0
デバイスの動的イーサネットを追加する方法を説明します。この手順の設定により、NetworkManager は、DHCP サーバーからこの接続の IP 設定を要求します。
nmstatectl
ユーティリティーを使用すると、設定後にその設定結果が設定ファイルと同じになります。何らかの障害が発生した場合には、nmstatectl
は自動的に変更をロールバックし、システムが不正な状態のままにならないようにします。
手順では、YAML 形式でインターフェース設定を定義します。または、JSON 形式で設定を指定することもできます。
前提条件
-
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイル (例:
~/create-ethernet-profile.yml
) を作成します。--- interfaces: - name: enp7s0 type: ethernet state: up ipv4: enabled: true auto-dns: true auto-gateway: true auto-routes: true dhcp: true ipv6: enabled: true auto-dns: true auto-gateway: true auto-routes: true autoconf: true dhcp: true
設定をシステムに適用します。
# nmstatectl apply ~/create-ethernet-profile.yml
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected enp7s0
接続プロファイルのすべての設定を表示します。
# nmcli connection show enp7s0 connection.id: enp7s0_ connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
接続設定を YAML 形式で表示します。
# nmstatectl show enp7s0
関連情報
-
man ページの
nmstatectl(8)
-
/usr/share/doc/nmstate/examples/
6.9. インターフェース名で RHEL システムロールを使用した動的イーサネット接続の設定
この手順では、RHEL システムロールを使用して、Ansible Playbook を実行して enp7s0
インターフェースの動的イーサネット接続をリモートに追加する方法を説明します。この設定により、ネットワーク接続は、DHCP サーバーからこの接続の IP 設定を要求するようになりました。Ansible コントロールノードで以下の手順を実行します。
前提条件
- DHCP サーバーをネットワークで使用できる。
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - ホストは NetworkManager を使用してネットワークを設定している。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-dynamic-IP.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with dynamic IP hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: - name: enp7s0 interface_name: enp7s0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/ethernet-dynamic-IP.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-dynamic-IP.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
6.10. デバイスパスでの RHEL システムロールを使用した動的イーサネット接続の設定
この手順では、RHEL システムロール を使用して、Ansible Playbook を実行して特定のデバイスパスに一致するデバイスに、動的イーサネット接続をリモートで追加する方法を説明します。動的 IP 設定を使用すると、ネットワーク接続は、DHCP サーバーからこの接続の IP 設定を要求します。Ansible コントロールノードで以下の手順を実行します。
デバイスパスは、次のコマンドで識別できます。
# udevadm info /sys/class/net/<device_name> | grep ID_PATH=
前提条件
- DHCP サーバーをネットワークで使用できる。
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - ホストは NetworkManager を使用してネットワークを設定している。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-dynamic-IP.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with dynamic IP hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: - name: example match: path: - pci-0000:00:0[1-3].0 - &!pci-0000:00:02.0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up
この例の
match
パラメーターは、Ansible が PCI ID0000:00:0[1-3].0
に一致するデバイスに再生を適用するが、0000:00:02.0
には適用しないことを定義します。使用できる特殊な修飾子およびワイルドカードの詳細は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルーのmatch
パラメーターの説明を参照してください。Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/ethernet-dynamic-IP.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-dynamic-IP.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
6.11. control-center によるイーサネット接続の設定
イーサネット接続は、物理サーバーまたは仮想マシンで最も頻繁に使用される接続タイプになります。本セクションでは、GNOME control-center
でこの接続タイプを設定する方法を説明します。
control-center
は、nm-connection-editor
アプリケーションまたは nmcli
ユーティリティーほど多くの設定オプションに対応していないことに注意してください。
前提条件
- サーバーに、物理または仮想のイーサネットデバイスが設定されている。
- GNOME がインストールされている。
手順
-
Super キーを押して
Settings
を入力し、Enter を押します。 -
左側のナビゲーションにある
Network
を選択します。 -
Wired
エントリーの横にある + ボタンをクリックして、新規プロファイルを作成します。 -
オプション:必要に応じて、
Identity
タブで接続の名前を設定します。 IPv4
タブで、IPv4 設定を構成します。たとえば、Manual
メソッドを選択し、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。IPv6
タブで、IPv6 設定を構成します。たとえば、Manual
メソッドを選択し、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。-
追加 ボタンをクリックして接続を保存します。GNOME の
control-center
は、接続を自動的にアクティブにします。
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8:1::2
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 198.162.3.1
IPv6 の場合:
# ping 2001:db8:2::1
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
IPv4 の場合:
# ping 192.0.2.254
IPv6 の場合:
# ping 2001:db8:1::fffe
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
トラブルシューティングの手順
接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。
- ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。
- リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。
- ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。
関連情報
- 接続にデフォルトゲートウェイがない場合は、「NetworkManager の設定」を参照して、特定のプロファイルを使用してデフォルトゲートウェイが指定されないようにします。
6.12. nm-connection-editor を使用したイーサネット接続の設定
イーサネット接続は、物理サーバーまたは仮想サーバーで最も頻繁に使用される接続タイプになります。本セクションでは、nm-connection-editor
アプリケーションを使用して接続タイプを設定する方法を説明します。
前提条件
- サーバーに、物理または仮想のイーサネットデバイスが設定されている。
- GNOME がインストールされている。
手順
端末を開き、次のコマンドを入力します。
$ nm-connection-editor
- + ボタンをクリックして、新しい接続を追加します。
-
イーサネット
接続タイプを選択し、作成 をクリックします。 General
タブで、以下を行います。システムの起動時または
NetworkManager
サービスを再起動する際にこの接続を自動的に有効にするには、以下を行います。-
Connect automatically with priority
を選択します。 オプション:必要に応じて、
Connect automatically with priority
の横にある優先度の値を変更します。同じデバイスに複数の接続プロファイルが存在する場合は、NetworkManager はプロファイルを 1 つだけ有効にします。デフォルトでは、NetworkManager は、自動接続が有効になっている最後のプロファイルをアクティブにします。ただし、プロファイルに優先度の値を設定すると、NetworkManager は、最も優先度が高いプロファイルをアクティブにします。
-
-
プロファイルが、この接続プロファイルを作成したユーザーに対してのみ利用可能になる場合は、
All users may connect to this network
チェックボックスの選択を解除します。
-
Ethernet
タブで、デバイスを選択します。必要に応じて、イーサネット関連の設定をさらに選択します。 -
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。 -
IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。 - 接続を読み込みます。
-
nm-connection-editor
を閉じます。
検証手順
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8:1::2
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 198.162.3.1
IPv6 の場合:
# ping 2001:db8:2::1
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
IPv4 の場合:
# ping 192.0.2.254
IPv6 の場合:
# ping 2001:db8:1::fff3
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
関連情報
- 接続にデフォルトゲートウェイがない場合は、「NetworkManager の設定」を参照して、特定のプロファイルを使用してデフォルトゲートウェイが指定されないようにします。
6.13. NetworkManager の DHCP クライアントの変更
デフォルトでは、NetworkManager は内部 DHCP クライアントを使用します。ただし、ビルトインクライアントが提供しない機能を備えた DHCP クライアントが必要な場合は、代わりに dhclient
を使用するように NetworkManager を設定できます。
RHEL は dhcpcd
を提供しないため、NetworkManager はこのクライアントを使用できないことに注意してください。
手順
次のコンテンツで
/etc/NetworkManager/conf.d/dhcp-client.conf
ファイルを作成します。[main] dhcp=dhclient
dhcp
パラメーターをinternal
(デフォルト) またはdhclient
に設定できます。dhcp
パラメーターをdhclient
に設定した場合は、dhcp-client
パッケージをインストールします。# dnf install dhcp-client
NetworkManager を再起動します。
# systemctl restart NetworkManager
再起動すると、すべてのネットワーク接続が一時的に中断されることに注意してください。
検証
/var/log/messages
ログファイルで、次のようなエントリーを検索します。Apr 26 09:54:19 server NetworkManager[27748]: <info> [1650959659.8483] dhcp-init: Using DHCP client 'dhclient'
このログエントリーは、NetworkManager が DHCP クライアントとして
dhclient
を使用していることを確認します。
関連情報
- NetworkManager.conf(5) man page
6.14. NetworkManager 接続の DHCP 動作の設定
DHCP (Dynamic Host Configuration Protocol) クライアントは、クライアントがネットワークに接続するたびに、動的 IP アドレスと対応する設定情報を DHCP サーバーに要求します。
DHCP サーバーから IP アドレスを取得するように接続を設定すると、NetworkManager は DHCP サーバーから IP アドレスを要求します。デフォルトでは、クライアントはこのリクエストが完了するまで 45 秒待機します。dhcp クライアントは、DHCP
接続が開始する際に、DHCP
サーバーに IP アドレスを要求します。
前提条件
- DHCP を使用する接続がホストに設定されている。
手順
ipv4.dhcp-timeout
およびipv6.dhcp-timeout
プロパティーを設定します。たとえば、両方のオプションを30
秒に設定するには、次のコマンドを実行します。# nmcli connection modify connection_name ipv4.dhcp-timeout 30 ipv6.dhcp-timeout 30
パラメーターを
infinity
に設定すると、成功するまで NetworkManager が IP アドレスのリクエストおよび更新を停止しないようにします。オプション:タイムアウト前に NetworkManager が IPv4 アドレスを受信しない場合にこの動作を設定します。
# nmcli connection modify connection_name ipv4.may-fail value
ipv4.may-fail
オプションを以下のように設定します。はい
、接続の状態は IPv6 設定により異なります。- IPv6 設定が有効になり、成功すると、NetworkManager は IPv6 接続をアクティブにし、IPv4 接続のアクティブ化を試みなくなります。
- IPv6 設定が無効であるか、または設定されていないと、接続は失敗します。
いいえ
、接続は非アクティブになります。この場合は、以下のようになります。-
接続の
autoconnect
プロパティーが有効になっている場合、NetworkManager は、autoconnect-retries
プロパティーに設定された回数だけ、接続のアクティベーションを再試行します。デフォルト値は4
です。 - それでも接続が DHCP アドレスを取得できないと、自動アクティベーションは失敗します。5 分後に自動接続プロセスが再開され、DHCP サーバーから IP アドレスを取得するようになりました。
-
接続の
オプション:必要に応じて、タイムアウト前に NetworkManager が IPv6 アドレスを受信しない場合にこの動作を設定します。
# nmcli connection modify connection_name ipv6.may-fail value
関連情報
-
man ページの
nm-settings(5)
6.15. インターフェイス名による単一の接続プロファイルを使用した複数のイーサネットインターフェイスの設定
ほとんどの場合、1 つの接続プロファイルには 1 つのネットワークデバイスの設定が含まれています。ただし、接続プロファイルでインターフェイス名を設定する場合、NetworkManager はワイルドカードもサポートします。ホストが動的 IP アドレス割り当てを使用してイーサネットネットワーク間をローミングする場合、この機能を使用して、複数のイーサネットインターフェイスに使用できる単一の接続プロファイルを作成できます。
前提条件
- DHCP はネットワークで利用可能です
- ホストには複数のイーサネットアダプターがあります
- ホストに接続プロファイルが存在しません
手順
enp
で始まるすべてのインターフェイス名に適用される接続プロファイルを追加します。#
nmcli connection add con-name Example connection.multi-connect multiple match.interface-name enp* type ethernet
検証手順
単一接続プロファイルのすべての設定を表示します。
#
nmcli connection show Example
connection.id: Example ... connection.multi-connect: 3 (multiple) match.interface-name: `enp*` ...
3
は 、接続プロファイルで同時にアクティブなインターフェイスの数を示し、接続プロファイルのネットワークインターフェイスの数ではありません。接続プロファイルは、match.interface-name
パラメーターのパターンに一致するすべてのデバイスを使用するため、接続プロファイルには同じ Universally Unique Identifier (UUID) があります。接続のステータスを表示します。
#
nmcli connection show
NAME UUID TYPE DEVICE ... Example 6f22402e-c0cc-49cf-b702-eaf0cd5ea7d1 ethernet enp7s0 Example 6f22402e-c0cc-49cf-b702-eaf0cd5ea7d1 ethernet enp8s0 Example 6f22402e-c0cc-49cf-b702-eaf0cd5ea7d1 ethernet enp9s0
関連情報
-
man ページの
nmcli(1)
-
man ページの
nm-settings(5)
6.16. PCI ID を使用した複数のイーサネットインターフェイスの単一接続プロファイルの設定
PCI ID は、システムに接続されているデバイスの一意の識別子です。接続プロファイルは、PCI ID のリストに基づいてインターフェイスを照合することにより、複数のデバイスを追加します。この手順を使用して、複数のデバイス PCI ID を単一の接続プロファイルに接続できます。
前提条件
- DHCP サーバーをネットワークで使用できる。
- ホストには複数のイーサネットアダプターがあります
- システムに接続プロファイルが存在しません
手順
デバイスパスを特定します。たとえば、
enp
で始まるすべてのインターフェイスのデバイスパスを表示するには、次のように入力します。#
udevadm info /sys/class/net/enp* | grep ID_PATH=
... E: ID_PATH=pci-0000:07:00.0 E: ID_PATH=pci-0000:08:00.00000:00:0[7-8].0
式に一致するすべての PC IID に適用される接続プロファイルを追加します。#
nmcli connection add type ethernet connection.multi-connect multiple match.path "pci-0000:07:00.0 pci-0000:08:00.0" con-name Example
検証手順
接続のステータスを表示します。
#
nmcli connection show
NAME UUID TYPE DEVICE ... Example 9cee0958-512f-4203-9d3d-b57af1d88466 ethernet enp7s0 Example 9cee0958-512f-4203-9d3d-b57af1d88466 ethernet enp8s0 ...接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example
connection.id: Example ... connection.multi-connect: 3 (multiple) match.path: pci-0000:07:00.0,pci-0000:08:00.0 ...
この接続プロファイルは、match.path
パラメーターのパターンに一致する PCI ID を持つすべてのデバイスを使用するため、接続プロファイルには同じ Universally Unique Identifier (UUID) があります。
関連情報
-
man ページの
nmcli(1)
-
man ページの
nm-settings(5)
第7章 Wi-Fi 接続の管理
本セクションでは、Wi-Fi 接続を設定し、管理する方法を説明します。
7.1. ワイヤレス規制ドメインの設定
Red Hat Enterprise Linux では、crda パッケージに、特定地区のワイヤレス規制ルールをカーネルに提供する Central Regulatory Domain Agent が含まれています。これは特定の udev スクリプトで使用するもので、udev スクリプトをデバッグしない限り手動で実行しないでください。カーネルは、新しい規制ドメインの変更にあたり、udev イベントを送信することで crda を実行します。規制ドメインの変更は、Linux ワイヤレスサブシステム (IEEE-802.11) により起こります。このサブシステムでは、regulatory.bin
ファイルを使って規制データベース情報が維持されます。
setregdomain
ユーティリティーは、システムの規制ドメインを設定します。Setregdomain
は引数を取らず、通常は管理者が手動で呼び出す代わりに、udev などのシステムスクリプトを介して呼び出します。国コードの検索に失敗すると、システム管理者は、/etc/sysconfig/regdomain
ファイルで COUNTRY
環境変数を定義できます。
関連情報
-
man ページの
setregdomain(1)
-
man ページの
crda(8)
-
man ページの
regulatory.bin(5)
-
man ページの
iw(8)
7.2. nmcli による Wi-Fi 接続の設定
この手順では、nmcli を使用して Wi-fi 接続プロファイルを設定する方法を説明します。
前提条件
- nmcli ユーティリティーがインストールされている。
WiFi ラジオボタンがオンになっている (デフォルト)。
$ nmcli radio wifi on
手順
静的な
IP
設定で Wi-Fi 接続プロファイルを作成するには、次のコマンドを実行します。$ nmcli con add con-name MyCafe ifname wlan0 type wifi ssid MyCafe ip4 192.0.2.101/24 gw4 192.0.2.1
DNS サーバーを設定します。たとえば、
192.0.2.1
を DNS サーバーとして設定するには、次のコマンドを実行します。$ nmcli con modify con-name MyCafe ipv4.dns "192.0.2.1"
必要に応じて、DNS 検索ドメインを設定します。たとえば、検索ドメインを
example.com
に設定するには、次のコマンドを実行します。$ nmcli con modify con-name MyCafe ipv4.dns-search "example.com"
特定のプロパティー (例:
mtu
) を確認するには、次のコマンドを実行します。$ nmcli connection show id MyCafe | grep mtu 802-11-wireless.mtu: auto
設定のプロパティーを変更するには、次のコマンドを実行します。
$ nmcli connection modify id MyCafe wireless.mtu 1350
変更を確認するには、次のコマンドを実行します。
$ nmcli connection show id MyCafe | grep mtu 802-11-wireless.mtu: 1350
検証手順
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。以下に例を示します。
# ping 192.0.2.103
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。以下に例を示します。
# ping 198.51.16.3
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
# ping 192.0.2.1
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。# host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
関連情報
-
man ページの
nm-settings(5)
- NetworkManager duplicates a connection after restart of NetworkManager service.
7.3. control-center による Wi-Fi 接続の設定
Wi-Fi
に接続すると、現在のネットワーク接続に応じてネットワーク設定が事前に入力されます。これは、インターフェースがネットワークに接続すると、設定が自動的に検出されることを意味します。
この手順では、control-center を使用して、Wi-Fi
設定を手動で設定する方法を説明します。
手順
-
Super キーを押して
アクティビティーの概要
を表示し、Wi-Fi
と入力して Enter キーを押します。左側のメニューエントリーでは、利用可能なネットワークの一覧が表示されます。 編集する
Wi-Fi
接続名の右側にある歯車アイコンを選択すると、接続の編集ダイアログが表示されます。Details メニューウィンドウには、詳細な設定が可能となる接続の詳細が表示されます。オプション
-
Connect automatically
を選択すると、その接続が利用可能であることを NetworkManager が検出すると、NetworkManager をこの接続に自動接続します。NetworkManager が自動的に接続しないようにする場合は、チェックボックスの選択を解除します。チェックボックスの選択を解除した場合は、ネットワーク接続のアイコンメニューでその接続を手動で選択すると、その接続が接続するようになります。 -
他のユーザーにも利用可能にするには、
他のユーザーにも利用可能にする
チェックボックスを選択します。 Restrict background data usage
オプションを変更して、バックグラウンドデータの使用を制御することもできます。注記Wi-Fi
接続を削除するには、赤いForget Connection
をクリックします。
-
Identity メニューエントリーを選択して、基本的な設定オプションを表示します。
SSID
- アクセスポイント (AP) の SSID (Service Set Identifier)BSSID
- Basic Service Set Identifier (BSSID) は、インフラストラクチャー
モードで接続する特定のワイヤレスアクセスポイントの MAC アドレスです (ハードウェアアドレス とも呼ばれています)。このフィールドはデフォルトで空白になっており、BSSID
を指定せずにSSID
によりワイヤレスアクセスポイントに接続できます。BSSID を指定している場合は、システムによる特定のアクセスポイントのみへの関連付けが強制的に実行されます。アドホックネットワークが生成されるときに、BSSID
が、mac80211 サブシステムにより無作為に生成されます。NetworkManager では表示されません。MAC アドレス
- MAC アドレス により、特定のワイヤレスアダプターを特定の接続 (1 つまたは複数) に関連付けることができます。Cloned Address
- 実際のハードウェアアドレスの代わりに使用する、クローンを作成した MAC アドレス必要でない限り、空白のままにします。さらに IP アドレスを設定するには、メニューエントリーの IPv4 および IPv6 を選択します。
デフォルトでは、現在のネットワーク設定に応じて、
IPv4
とIPv6
の両方が自動設定に指定されています。つまり、ローカルの IP アドレス、DNS アドレスなどのアドレスは、インターフェースがネットワークに接続すると自動的に検出されます。DHCP サーバーがこのネットワークの IP 設定を割り当てるだけで十分ですが、IPv4
設定およびIPv6
設定に静的な構成を指定することもできます。IPv4 メニューエントリーおよび IPv6 メニューエントリーでは、以下の設定を確認できます。IPv4 Method
-
Automatic (DHCP)
- 接続しているネットワークがルーター通知 (RA) またはDHCP
サーバーを使用して動的 IP アドレスを割り当てる場合は、このオプションを選択します。割り当てた IP アドレスは、詳細 メニューエントリーで確認できます。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞169.254/16
付きのランダムなアドレスが、RFC 3927 に従って割り当てられます。 -
Manual
- IP アドレスを手動で割り当てる場合は、このオプションを選択します。 -
Disable
- この接続ではIPv4
は無効です。
-
DNS
自動
がON
で、この接続に DNS サーバーを割り当てる DHCP サーバーがない場合は、これをOFF
に切り替えて、使用する DNS サーバーの IP アドレスを入力します。IP アドレスはコンマで区切ります。Routes
Routes
セクションでは、Automatic
がON
になっている場合は、ルート通知 (RA) または使用する DHCP からのルートが使用されますが、他の静的ルートを追加することもできることに注意してください。OFF
の場合は、静的ルートだけが使用されます。-
Address
- リモートネットワーク、サブネット、またはホストのIP
アドレスを入力します。 -
Netmask
- 上に入力した IP アドレスのネットマスクまたはプレフィックス長。 -
Gateway
- 上に入力したリモートネットワーク、サブネット、またはホストにつながるゲートウェイの IP アドレス。 -
Metric
- このルートに付与する優先値であるネットワークコスト。数値が低い方が優先されます。
-
Use this connection only for resources on its network (この接続はネットワーク上のリソースのためだけに使用)
このチェックボックスを選択すると、この接続はデフォルトルートになりません。
また、
Wi-Fi
接続にIPv6
設定するには、IPv6 メニューエントリーを選択します。IPv6 Method
-
Automatic
-IPv6
ステートレスアドレス自動設定 (SLAAC) を使用して、ハードウェアのアドレスとルーター通知 (RA) に基づくステートレスの自動設定を作成するには、このオプションを選択します。 -
Automatic, DHCP only
- RA を使用せず、直接DHCPv6
に情報を要求してステートフルな設定を作成する場合は、このオプションを選択します。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞FE80::0
付きのランダムなアドレスが、RFC 4862 に従って割り当てられます。 -
Manual
- IP アドレスを手動で割り当てる場合は、このオプションを選択します。 -
Disable
- この接続ではIPv6
は無効です。
-
-
DNS
、Routes
、Use this connection only for resources on its network
フィールドが、一般的なIPv4
設定です。
Wi-Fi
接続のセキュリティー
を設定する場合は、Security メニューエントリーを選択します。警告暗号化されていない Wi-Fi ネットワークへの接続や、安全でない WEP または WPA 規格のみに対応する Wi-Fi ネットワークへの接続はしないでください。
以下の設定オプションが利用できます。
セキュリティー
-
None
- 暗号化は無効になり、ネットワーク経由でプレーンテキスト形式でデータが転送されます。 -
WEP 40/128-bit キー
- IEEE 802.11 標準からの Wired Equivalent Privacy (WEP)。共有キー (PSK) を 1 つ使用します。 -
WEP 128-bit Passphrase
- パスフレーズの MD5 ハッシュで WEP キーを引き出します。 -
動的 WEP (802.1X)
- WEP キーは動的に変更します。 -
LEAP
- Cisco Systems の Lightweight Extensible Authentication Protocol。 -
WPA & WPA2 Personal
- IEEE 802.11i 標準からの Wi-Fi Protected Access (WPA)。802.11i-2004 規格の Wi-Fi Protected Access 2 (WPA2)。個人モードは、事前共有キー (WPA-PSK) を使用します。 -
WPA & WPA2 Enterprise
- WPA および WPA 2 は、IEEE 802.1X ネットワークアクセス制御を提供するために RADIUS 認証サーバーと一緒に使用します。 -
WPA3 Personal
- WPA3 (Wi-Fi Protected Access 3) Personal は、辞書攻撃を防ぐために PSK (Pre-shared Key) の代わりに SAE (Simultaneous Authentication of Equals) を使用します。WPA3 では、Perfect Forward Secrecy (PFS) が使用されます。
-
- Password - 認証プロセスで使用するパスワードを入力します。
- 設定が完了したら、適用 ボタンをクリックして保存します。
プラス ボタンをクリックして新しい接続を追加する場合は、NetworkManager により、その接続用の新しい設定が作成され、既存の接続の編集に使用するのと同じダイアログが表示されます。このダイアログの違いは、既存の接続プロファイルに Details メニューエントリーがあることです。
7.4. nmcli による Wi-Fi ネットワークへの接続
この手順では、nmcli ユーティリティーを使用して ワイヤレス
接続に接続する方法を説明します。
前提条件
- nmcli ユーティリティーがインストールされている。
WiFi ラジオボタンがオンになっている (デフォルト)。
$ nmcli radio wifi on
手順
利用可能な Wi-Fi 接続リストを更新するには、次のコマンドを実行します。
$ nmcli device wifi rescan
利用可能な Wi-Fi アクセスポイントを表示するには、次のコマンドを実行します。
$ nmcli dev wifi list IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY ... MyCafe Infra 3 405 Mbit/s 85 ▂▄▆█ WPA1 WPA2
nmcli を使用して Wi-Fi 接続に接続するには、次のコマンドを実行します。
$ nmcli dev wifi connect SSID-Name password wireless-password
以下に例を示します。
$ nmcli dev wifi connect MyCafe password wireless-password
Wi-Fi 状態を無効にする場合は、次のコマンドを実行します。
$ nmcli radio wifi off
7.5. nmcli を使用した非表示の Wi-Fi ネットワーク接続
すべてのアクセスポイントには、アクセスポイントを特定するための SSID (Service Set Identifier) があります。ただし、アクセスポイントはその SSID をブロードキャストしないように設定されていることがあります。この場合は非表示となり、NetworkManager の利用可能なネットワーク一覧には表示されなくなります。
この手順では、nmcli ツールを使用して非表示のネットワークに接続する方法を説明します。
前提条件
- nmcli ユーティリティーがインストールされている。
-
(次のコマンドを実行し) SSID と
Wi-Fi
接続のパスワードを確認している。 WiFi ラジオボタンがオンになっている (デフォルト)。
$ nmcli radio wifi on
手順
非表示の SSID に接続します。
$ nmcli dev wifi connect SSID_Name password wireless_password hidden yes
7.6. GNOME GUI による Wi-Fi ネットワークへの接続
この手順では、ワイヤレスネットワークに接続してインターネットにアクセスする方法を説明します。
手順
- 画面右上にあるGNOME Shell ネットワーク接続アイコンメニューを開きます。
-
Wi-Fi Not Connected
を選択します。 -
Select Network
オプションをクリックします。 接続するネットワークの名前をクリックし、
Connect
をクリックします。ネットワークが表示されない場合は、ネットワークが表示されなくなります。
ネットワークがパスワードまたは暗号鍵で保護されている場合は、パスワードを入力し、
Connect
をクリックします。パスワードが分からない場合は、Wi-Fi ネットワークの管理者に連絡してください。
- 接続に成功すると、接続アイコンメニューでネットワーク名が表示され、ワイヤレスインジケーターが画面の右上隅に表示されます。
7.7. nmcli を使用した、既存の Wi-Fi 接続での 802.1X ネットワーク認証の設定
nmcli
ユーティリティーを使用して、クライアントがネットワークに対して自己認証するように設定できます。この手順では、wlp1s0
という名前の既存の NetworkManager Wi-Fi 接続プロファイルで、MSCHAPv2 (Microsoft Challenge-Handshake Authentication Protocol version 2) を使用する PEAP (Protected Extensible Authentication Protocol) 認証を設定する方法を説明します。
前提条件
- ネットワークには 802.1X ネットワーク認証が必要です。
- Wi-Fi 接続プロファイルが NetworkManager に存在し、有効な IP 設定があります。
-
クライアントがオーセンティケーターの証明書を検証する必要がある場合は、認証局 (CA) 証明書を
/etc/pki/ca-trust/source/anchors/
ディレクトリーに保存する必要があります。 -
wpa_supplicant
パッケージがインストールされている。
手順
Wi-Fi セキュリティーモードを
wpa-eap
に設定し、Extensible Authentication Protocol (EAP) をpeap
に設定し、内部認証プロトコルをmschapv2
に設定し、ユーザー名を設定します。# nmcli connection modify wlp1s0 wireless-security.key-mgmt wpa-eap 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name
1 つのコマンドで
wireless-security.key-mgmt
パラメーター、802-1x.eap
パラメーター、802-1x.phase2-auth
パラメーター、および802-1x.identity
パラメーターを設定する必要があります。必要に応じて、パスワードを設定に保存します。
# nmcli connection modify wlp1s0 802-1x.password password
重要デフォルトでは、NetworkManager は、パスワードを、
/etc/sysconfig/network-scripts/keys-connection_name
ファイルにクリアテキストで保存します。これは、root
ユーザーのみが読み取れるようにします。ただし、設定ファイルのクリアテキストパスワードはセキュリティーリスクとなる可能性があります。セキュリティーを強化するには、
802-1x.password-flags
パラメーターを0x1
に設定します。この設定では、GNOME デスクトップ環境またはnm-applet
が実行中のサーバーで、NetworkManager がこれらのサービスからパスワードを取得します。その他の場合は、NetworkManager によりパスワードの入力が求められます。クライアントがオーセンティケーターの証明書を検証する必要がある場合は、接続プロファイルの
802-1x.ca-cert
パラメーターを CA 証明書のパスに設定します。# nmcli connection modify wlp1s0 802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt
注記セキュリティー上の理由から、Red Hat はオーセンティケーターの証明書を使用して、クライアントがオーセンティケーターの ID を検証できるようにすることを推奨します。
接続プロファイルをアクティベートします。
# nmcli connection up wlp1s0
検証手順
- ネットワーク認証が必要なネットワーク上のリソースにアクセスします。
関連情報
- Wi-Fi 接続の管理
-
nm-settings(5)
の man ページの802-1x settings
セクション -
man ページの
nmcli(1)
第8章 VLAN タグの設定
本セクションでは、仮想ローカルエリアネットワーク (VLAN) を設定する方法を説明します。VLAN は、物理ネットワーク内の論理ネットワークです。VLAN インターフェースは、インターフェースを通過する際に VLAN ID でパケットをタグ付けし、返信パケットのタグを削除します。
VLAN インターフェースを、イーサネット、ボンド、チーム、ブリッジデバイスなどの別のインターフェースに作成します。このインターフェースは、親インターフェース
と呼ばれます。
8.1. nmcli コマンドによる VLAN タグ付けの設定
本セクションでは、nmcli
ユーティリティーを使用して、仮想ローカルエリアネットワーク (VLAN) のタグ付けを設定する方法を説明します。
前提条件
- 仮想 VLAN インターフェースに対する親として使用するインターフェースが VLAN タグに対応している。
ボンドインターフェースに VLAN を設定する場合は、以下のようになります。
- ボンディングのポートが起動している。
-
ボンドが、
fail_over_mac=follow
オプションで設定されていない。VLAN 仮想デバイスは、親の新規 MAC アドレスに一致する MAC アドレスを変更できません。このような場合、トラフィックは間違ったソースの MAC アドレスで送信されます。 -
ボンディングは通常、DHCP サーバーまたは IPv6 自動設定から IP アドレスを取得する必要はありません。ボンディングの作成時に
ipv4.method=disable
オプションおよびipv6.method=ignore
オプションを設定してこれを確認します。そうしないと、しばらくすると、DHCP または IPv6 の自動設定が失敗すると、インターフェースが停止する可能性があります。
- ホストが接続されているスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。
手順
ネットワークインターフェースを表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected enp1s0 bridge0 bridge connected bridge0 bond0 bond connected bond0 ...
VLAN インターフェースを作成します。たとえば、VLAN インターフェース
vlan10
を作成し、enp1s0
を親インターフェースとして使用し、VLAN ID10
のタグパケットを作成するには、次のコマンドを実行します。# nmcli connection add type vlan con-name vlan10 ifname vlan10 vlan.parent enp1s0 vlan.id 10
VLAN は、
0
から4094
の範囲内に存在する必要があります。デフォルトでは、VLAN 接続は、親インターフェースから最大伝送単位 (MTU) を継承します。必要に応じて、別の MTU 値を設定します。
# nmcli connection modify vlan10 ethernet.mtu 2000
VLAN デバイスの IP 設定を構成します。この VLAN デバイスを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
vlan10
接続に設定するには、次のコマンドを実行します。# nmcli connection modify vlan10 ipv4.addresses '192.0.2.1/24' # nmcli connection modify vlan10 ipv4.gateway '192.0.2.254' # nmcli connection modify vlan10 ipv4.dns '192.0.2.253' # nmcli connection modify vlan10 ipv4.method manual
IPv6 設定を構成します。たとえば、静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
vlan10
接続に設定するには、次のコマンドを実行します。# nmcli connection modify vlan10 ipv6.addresses '2001:db8:1::1/32' # nmcli connection modify vlan10 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify vlan10 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify vlan10 ipv6.method manual
接続をアクティベートします。
# nmcli connection up vlan10
検証手順
設定を確認します。
# ip -d addr show vlan10 4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:72:2f:6e brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute vlan10 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::8dd7:9030:6f8e:89e6/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
- Testing basic network settings.
- Configuring NetworkManager to avoid using a specific profile to provide a default gateway.
-
man ページの
nmcli-examples(7)
-
nm-settings(5)
の man ページのvlan setting
セクション
8.2. RHEL Web コンソールを使用した VLAN タグの設定
本セクションでは、RHEL Web コンソールを使用してネットワークブリッジを設定する方法を説明します。
前提条件
- 仮想 VLAN インターフェースに対する親として使用するインターフェースが VLAN タグに対応している。
ボンドインターフェースに VLAN を設定する場合は、以下のようになります。
- ボンディングのポートが起動している。
-
ボンドが、
fail_over_mac=follow
オプションで設定されていない。VLAN 仮想デバイスは、親の新規 MAC アドレスに一致する MAC アドレスを変更できません。このような場合、トラフィックは間違ったソースの MAC アドレスで送信されます。 - ボンディングは通常、DHCP サーバーまたは IPv6 自動設定から IP アドレスを取得する必要はありません。ボンディングを作成する IPv4 プロトコルおよび IPv6 プロトコルを無効にすることにより、必ずボンディングを作成します。そうしないと、しばらくすると、DHCP または IPv6 の自動設定が失敗すると、インターフェースが停止する可能性があります。
- ホストが接続されているスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。
手順
-
画面左側のナビゲーションで
Networking
タブを選択します。 -
インターフェース
セクションの VLAN の追加 をクリックします。 - 親デバイスを選択します。
- VLAN ID を入力します。
VLAN デバイスの名前を入力するか、自動生成された名前を保持します。
- 適用 をクリックします。
デフォルトでは、VLAN デバイスは動的 IP アドレスを使用します。静的 IP アドレスを設定する場合は、以下を実行します。
-
Interfaces
セクションの VLAN デバイスの名前をクリックします。 -
設定するプロトコルの横にある
編集
をクリックします。 -
アドレス
の
横にあるManual
を選択し、IP アドレス、プレフィックス、およびデフォルトゲートウェイを入力します。 -
DNS
セクションで + ボタンをクリックし、DNS サーバーの IP アドレスを入力します。この手順を繰り返して、複数の DNS サーバーを設定します。 -
DNS 検索ドメイン
セクションで、+ ボタンをクリックして検索ドメインを入力します。 インターフェースに静的ルートが必要な場合、それらを
Routes
セクションで設定します。- 適用 をクリックします。
-
検証
画面左側のナビゲーションにある
ネットワーク
タブを選択し、インターフェースに送受信トラフィックがあるかどうかを確認します。
8.3. nm-connection-editor による VLAN タグの設定
本セクションでは、nm-connection-editor
アプリケーションを使用して、仮想ローカルエリアネットワーク (VLAN) のタグ付けを設定する方法を説明します。
前提条件
- 仮想 VLAN インターフェースに対する親として使用するインターフェースが VLAN タグに対応している。
ボンドインターフェースに VLAN を設定する場合は、以下のようになります。
- ボンディングのポートが起動している。
-
ボンドが、
fail_over_mac=follow
オプションで設定されていない。VLAN 仮想デバイスは、親の新規 MAC アドレスに一致する MAC アドレスを変更できません。このような場合、トラフィックは間違ったソースの MAC アドレスで送信されます。
- ホストが接続されているスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- + ボタンをクリックして、新しい接続を追加します。
-
VLAN
接続タイプを選択し、作成 をクリックします。 VLAN
タブで、以下を行います。- 親インターフェースを選択します。
-
VLAN id を選択します。VLAN は、
0
から4094
の範囲内に存在する必要があります。 - デフォルトでは、VLAN 接続は、親インターフェースから最大伝送単位 (MTU) を継承します。必要に応じて、別の MTU 値を設定します。
必要に応じて、VLAN インターフェースの名前および VLAN 固有のオプションを設定します。
VLAN デバイスの IP 設定を構成します。この VLAN デバイスを他のデバイスのポートとして使用する場合は、この手順を省略します。
-
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。 -
IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。
-
- 保存 をクリックして VLAN 接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
設定を確認します。
# ip -d addr show vlan10 4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:d5:e0:fb brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute vlan10 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::8dd7:9030:6f8e:89e6/64 scope link noprefixroute valid_lft forever preferred_lft forever
8.4. nmstatectl を使用した VLAN タグ付けの設定
本セクションでは、nmstatectl
ユーティリティーを使用して、イーサネット接続を使用する ID 10 で VLAN を設定する方法について説明します。子デバイスの VLAN 接続には、IP、デフォルトゲートウェイ、および DNS の設定が含まれます。
環境に応じて、YAML ファイルを適宜調整します。たとえば、VLAN でブリッジやボンディングデバイスを使用する場合は、VLAN で使用するポートの base-iface
属性と type
属性を変更します。
前提条件
- 物理または仮想のイーサネットデバイスをサーバーにインストールし、VLAN でイーサネットデバイスをポートとして使用する。
-
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイル (例:
~/create-vlan.yml
) を作成します。--- interfaces: - name: vlan10 type: vlan state: up ipv4: enabled: true address: - ip: 192.0.2.1 prefix-length: 24 dhcp: false ipv6: enabled: true address: - ip: 2001:db8:1::1 prefix-length: 64 autoconf: false dhcp: false vlan: base-iface: enp1s0 id: 10 - name: enp1s0 type: ethernet state: up routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.254 next-hop-interface: vlan10 - destination: ::/0 next-hop-address: 2001:db8:1::fffe next-hop-interface: vlan10 dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb
設定をシステムに適用します。
# nmstatectl apply ~/create-vlan.yml
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION vlan10 vlan connected vlan10
接続プロファイルのすべての設定を表示します。
# nmcli connection show vlan10 connection.id: vlan10 connection.uuid: 1722970f-788e-4f81-bd7d-a86bf21c9df5 connection.stable-id: -- connection.type: vlan connection.interface-name: vlan10 ...
接続設定を YAML 形式で表示します。
# nmstatectl show vlan0
関連情報
-
man ページの
nmstatectl(8)
-
/usr/share/doc/nmstate/examples/
8.5. RHEL システムロールを使用した VLAN タギングの設定
Networking の RHEL システムロールを使用して、VLAN タグ付けを設定できます。この手順では、イーサネット接続と、このイーサネット接続の上に ID 10
の VLANを追加する方法について説明します。子デバイスの VLAN 接続には、IP、デフォルトゲートウェイ、および DNS の設定が含まれます。
環境に応じて、play を適宜調整します。以下に例を示します。
-
ボンディングなどの他の接続でポートとして VLAN を使用する場合は、
ip
属性を省略し、子 設定で IP 設定を行います。 -
VLAN でチーム、ブリッジ、またはボンディングデバイスを使用するには、
interface_name
と VLAN で使用するポートのtype
属性を調整します。
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/vlan-ethernet.yml
Playbook を以下の内容で作成します。--- - name: Configure a VLAN that uses an Ethernet connection hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: # Add an Ethernet profile for the underlying device of the VLAN - name: enp1s0 type: ethernet interface_name: enp1s0 autoconnect: yes state: up ip: dhcp4: no auto6: no # Define the VLAN profile - name: enp1s0.10 type: vlan ip: address: - "192.0.2.1/24" - "2001:db8:1::1/64" gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com vlan_id: 10 parent: enp1s0 state: up
VLAN プロファイルの
parent
属性は、enp1s0
デバイス上で動作する VLAN を設定します。Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/vlan-ethernet.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/vlan-ethernet.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
第9章 VXLAN を使用した仮想マシンの仮想レイヤー 2 ドメインの作成
仮想拡張可能な LAN (VXLAN) は、UDP プロトコルを使用して IP ネットワーク経由でレイヤー 2 トラフィックをトンネルするネットワークプロトコルです。たとえば、別のホストで実行している特定の仮想マシンは、VXLAN トンネルを介して通信できます。ホストは、世界中の異なるサブネットやデータセンターに存在できます。仮想マシンの視点からは、同じ VXLAN 内のその他の仮想マシンは、同じレイヤー 2 ドメイン内にあります。
本書は、仮想マシンには表示されない RHEL ホストに VXLAN を設定する方法を説明します。

この例では、RHEL-host-A と RHEL-host-B は、ブリッジである br0
を使用して、VXLAN 名が vxlan10
である各ホストの仮想マシンの仮想ネットワークを接続します。この設定により、VXLAN は仮想マシンには表示されなくなり、仮想マシンに特別な設定は必要ありません。その後、別の仮想マシンを同じ仮想ネットワークに接続すると、仮想マシンは自動的に同じ仮想レイヤー 2 ドメインのメンバーになります。
通常のレイヤー 2 トラフィックと同様、VXLAN のデータは暗号化されません。セキュリティー上の理由から、VPN 経由で VXLAN を使用するか、その他のタイプの暗号化接続を使用します。
9.1. VXLAN の利点
仮想拡張可能 LAN (VXLAN) の主な利点は、以下のとおりです。
- VXLAN は 24 ビット ID を使用します。そのため、最大 16,777,216 の分離されたネットワークを作成できます。たとえば、仮想 LAN (VLAN) は 4,096 の分離されたネットワークのみをサポートします。
- VXLAN は IP プロトコルを使用します。これにより、トラフィックをルーティングし、仮想的に実行するシステムを、同じレイヤー 2 ドメイン内の異なるネットワークと場所に置くことができます。
- ほとんどのトンネルプロトコルとは異なり、VXLAN はポイントツーポイントネットワークだけではありません。VXLAN は、他のエンドポイントの IP アドレスを動的に学習するか、静的に設定された転送エントリーを使用できます。
- 特定のネットワークカードは、UDP トンネル関連のオフロード機能に対応します。
関連情報
-
kernel-doc
パッケージにより提供されている/usr/share/doc/kernel-doc-<kernel_version>/Documentation/networking/vxlan.rst
9.2. ホストでのイーサネットインターフェースの設定
RHEL 仮想マシンホストをイーサネットに接続するには、ネットワーク接続プロファイルを作成し、IP 設定を構成して、プロファイルをアクティブにします。
両方の RHEL ホストでこの手順を実行し、IP アドレス設定を調整します。
前提条件
- ホストがイーサネットホストに接続されている。
手順
NetworkManager に新しいイーサネット接続プロファイルを追加します。
# nmcli connection add con-name Example ifname enp1s0 type ethernet
IPv4 を設定します。
# nmcli connection modify Example ipv4.addresses 198.51.100.2/24 ipv4.method manual ipv4.gateway 198.51.100.254 ipv4.dns 198.51.100.200 ipv4.dns-search example.com
ネットワークが DHCP を使用する場合は、この手順をスキップします。
Example
コネクションをアクティブにします。# nmcli connection up Example
検証
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected Example
リモートネットワークでホストに ping を実行して、IP 設定を確認します。
# ping RHEL-host-B.example.com
そのホストでネットワークを設定する前に、その他の仮想マシンホストに ping を実行することはできないことに注意してください。
関連情報
-
nm-settings(5)
9.3. VXLAN が接続されたネットワークブリッジの作成
仮想拡張可能な LAN (VXLAN) を仮想マシンに表示しないようにするには、ホストでブリッジを作成し、VXLAN をブリッジに割り当てます。NetworkManager を使用して、ブリッジと VXLAN の両方を作成します。仮想マシンのトラフィックアクセスポイント (TAP) デバイス (通常はホスト上の vnet*
) をブリッジに追加することはありません。libvirtd
は、仮想マシンの起動時に動的に追加します。
両方の RHEL ホストでこの手順を実行し、必要に応じて IP アドレスを調整します。
手順
ブリッジ
br0
を作成します。# nmcli connection add type bridge con-name br0 ifname br0 ipv4.method disabled ipv6.method disabled
このコマンドは、ブリッジデバイスに IPv4 アドレスおよび IPv6 アドレスを設定しません。これは、このブリッジがレイヤー 2 で機能するためです。
VXLAN インターフェースを作成し、
br0
に割り当てます。# nmcli connection add type vxlan slave-type bridge con-name br0-vxlan10 ifname vxlan10 id 10 local 198.51.100.2 remote 203.0.113.1 master br0
このコマンドは、次の設定を使用します。
-
id 10
: VXLAN 識別子を設定します。 -
local 198.51.100.2
:送信パケットの送信元 IP アドレスを設定します。 -
remote 203.0.113.1
:VXLAN デバイスフォワーディングデータベースで宛先リンク層アドレスが不明な場合に、送信パケットで使用するユニキャストまたはマルチキャストの IP アドレスを設定します。 -
master br0
: この VXLAN 接続を、br0
接続のポートとして作成するように設定します。 -
ipv4.method disabled
およびipv6.method disabled
: ブリッジで IPv4 および IPv6 を無効にします。
初期設定では、NetworkManager は
8472
を宛先ポートとして使用します。宛先ポートが異なる場合は、追加で、destination-port <port_number>
オプションをコマンドに渡します。-
br0
接続プロファイルを有効にします。# nmcli connection up br0
ローカルファイアウォールで、着信 UDP 接続用にポート
8472
を開くには、次のコマンドを実行します。# firewall-cmd --permanent --add-port=8472/udp # firewall-cmd --reload
検証
転送テーブルを表示します。
# bridge fdb show dev vxlan10 2a:53:bd:d5:b3:0a master br0 permanent 00:00:00:00:00:00 dst 203.0.113.1 self permanent ...
関連情報
-
nm-settings(5)
9.4. 既存のブリッジを使用した libvirt での仮想ネットワークの作成
仮想マシンが、接続した仮想拡張可能 LAN (VXLAN) で br0
ブリッジを使用できるようにするには、最初に、このブリッジを使用する libvirtd
サービスに仮想ネットワークを追加します。
前提条件
-
libvirt
をインストールしている。 -
libvirtd
を起動して有効にしている。 -
RHEL 上の VXLAN で
br0
デバイスーを設定している。
手順
以下の内容で
~/vxlan10-bridge.xml
を作成します。<network> <name>vxlan10-bridge</name> <forward mode="bridge" /> <bridge name="br0" /> </network>
~/vxlan10-bridge.xml
を使用して、libvirt
に新しい仮想ネットワークを作成します。# virsh net-define ~/vxlan10-bridge.xml
~/vxlan10-bridge.xml
を削除します。# rm ~/vxlan10-bridge.xml
vxlan10-bridge
仮想ネットワークを起動します。# virsh net-start vxlan10-bridge
libvirtd
の起動時に自動的に起動するようにvxlan10-bridge
仮想ネットワークを設定します。# virsh net-autostart vxlan10-bridge
検証
仮想ネットワークの一覧を表示します。
# virsh net-list Name State Autostart Persistent ---------------------------------------------------- vxlan10-bridge active yes yes ...
関連情報
-
virsh(1)
man ページ
9.5. VXLAN を使用するように仮想マシンの設定
ホストで、接続されている仮想拡張 LAN (VXLAN) でブリッジデバイスを使用するように仮想マシンを設定するには、vxlan10-bridge
仮想ネットワークを使用する新しい仮想マシンを作成するか、このネットワークを使用する既存の仮想マシンの設定を更新します。
RHEL ホストでこの手順を実行します。
前提条件
-
libvirtd
でvxlan10-bridge
仮想ネットワークを設定している。
手順
新しい仮想マシンを作成し、
vxlan10-bridge
ネットワークを使用するように設定するには、仮想マシンの作成時に、--network network:vxlan10-bridge
オプションをvirt-install
に渡します。# virt-install ... --network network:vxlan10-bridge
既存の仮想マシンのネットワーク設定を変更するには、次のコマンドを実行します。
仮想マシンのネットワークインターフェースを、
vxlan10-bridge
仮想ネットワークに接続します。# virt-xml VM_name --edit --network network=vxlan10-bridge
仮想マシンをシャットダウンして、再起動します。
# virsh shutdown VM_name # virsh start VM_name
検証
ホストの仮想マシンの仮想ネットワークインターフェースを表示します。
# virsh domiflist VM_name Interface Type Source Model MAC ------------------------------------------------------------------- vnet1 bridge vxlan10-bridge virtio 52:54:00:c5:98:1c
vxlan10-bridge
ブリッジに接続されているインターフェースを表示します。# ip link show master vxlan10-bridge 18: vxlan10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 2a:53:bd:d5:b3:0a brd ff:ff:ff:ff:ff:ff 19: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:c5:98:1c brd ff:ff:ff:ff:ff:ff
libvirtd
は、ブリッジの設定を動的に更新することに注意してください。vxlan10-bridge
ネットワークを使用する仮想マシンを起動すると、ホストの対応するvnet*
デバイスがブリッジのポートとして表示されます。アドレス解決プロトコル (ARP) 要求を使用して、仮想マシンが同じ VXLAN にあるかどうかを確認します。
- 同じ VXLAN で、2 つ以上の仮想マシンを起動します。
仮想マシンから別の仮想マシンに ARP 要求を送信します。
# arping -c 1 192.0.2.2 ARPING 192.0.2.2 from 192.0.2.1 enp1s0 Unicast reply from 192.0.2.2 [52:54:00:c5:98:1c] 1.450ms Sent 1 probe(s) (0 broadcast(s)) Received 1 response(s) (0 request(s), 0 broadcast(s))
コマンドが応答を示す場合、仮想マシンは同じレイヤー 2 ドメイン、およびこの場合は同じ VXLAN にあります。
arping
ユーティリティーを使用するには、iputils
をインストールします。
関連情報
-
virt-install(1)
man ページ -
virt-xml(1)
man ページ -
virsh(1)
man ページ -
arping(8)
man ページ
第10章 ネットワークブリッジの設定
ネットワークブリッジは、MAC アドレスのテーブルに基づいてネットワーク間のトラフィックを転送するリンク層デバイスです。ブリッジは、ネットワークトラフィックをリッスンし、どのホストが各ネットワークに接続しているかを把握して、MAC アドレステーブルを構築します。たとえば、Red Hat Enterprise Linux ホストのソフトウェアブリッジを使用して、ハードウェアブリッジまたは仮想環境をエミュレートし、仮想マシンをホストと同じネットワークに統合できます。
ブリッジには、ブリッジが接続する必要がある各ネットワークにネットワークデバイスが必要です。ブリッジを設定する場合には、ブリッジは コントローラー
と呼ばれ、ポート
を使用するデバイスです。
以下のように、さまざまなタイプのデバイスにブリッジを作成できます。
- 物理および仮想イーサネットデバイス
- ネットワークボンディング
- ネットワークチーム
- VLAN デバイス
Wi-Fi で効率的に使用するために、Wi-Fi で 3-address フレームの使用を指定する IEEE 802.11 規格により、Ad-Hoc モードまたは Infrastructure モードで稼働している Wi-Fi ネットワークにはブリッジを設定できません。
10.1. nmcli コマンドによるネットワークブリッジの設定
本セクションは、nmcli
ユーティリティーを使用してネットワークブリッジを設定する方法を説明します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスをサーバーにインストールする必要があります。
ブリッジのポートにチーム、ボンディング、または VLAN デバイスを使用するには、ブリッジの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
ブリッジインターフェースを作成します。
# nmcli connection add type bridge con-name bridge0 ifname bridge0
このコマンドにより
bridge0
という名前のブリッジが作成されます。以下を入力します。ネットワークインターフェースを表示し、ブリッジに追加するインターフェースの名前を書き留めます。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bond0 bond connected bond0 bond1 bond connected bond1 ...
この例では、以下のように設定されています。
-
enp7s0
およびenp8s0
は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。 -
bond0
およびbond1
には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
-
インターフェースをブリッジに割り当てます。
ブリッジに割り当てるインターフェースが設定されていない場合は、それらのブリッジに新しい接続プロファイルを作成します。
# nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp7s0 master bridge0 # nmcli connection add type ethernet slave-type bridge con-name bridge0-port2 ifname enp8s0 master bridge0
これらのコマンドにより、
enp7s0
およびenp8s0
のプロファイルが作成され、それらをbridge0
接続に追加します。既存の接続プロファイルをブリッジに割り当てるには、以下の接続の
master
パラメーターをbridge0
に設定します。# nmcli connection modify bond0 master bridge0 # nmcli connection modify bond1 master bridge0
これらのコマンドは、
bond0
およびbond1
という名前の既存の接続プロファイルをbridge0
接続に割り当てます。
ブリッジの IP 設定を構成します。このブリッジを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、
bridge0
接続の静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。# nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify bridge0 ipv4.gateway '192.0.2.254' # nmcli connection modify bridge0 ipv4.dns '192.0.2.253' # nmcli connection modify bridge0 ipv4.dns-search 'example.com' # nmcli connection modify bridge0 ipv4.method manual
IPv6 設定を構成します。たとえば、
bridge0
接続の静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定するには、次のコマンドを実行します。# nmcli connection modify bridge0 ipv6.addresses '2001:db8:1::1/64' # nmcli connection modify bridge0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify bridge0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify bridge0 ipv6.dns-search 'example.com' # nmcli connection modify bridge0 ipv6.method manual
オプション:ブリッジのその他のプロパティーを設定します。たとえば、
bridge0
の STP (Spanning Tree Protocol) の優先度を16384
に設定するには、次のコマンドを実行します。# nmcli connection modify bridge0 bridge.priority '16384'
デフォルトでは STP が有効になっています。
接続をアクティベートします。
# nmcli connection up bridge0
ポートが接続されており、
CONNECTION
コラムがポートの接続名を表示していることを確認します。# nmcli device DEVICE TYPE STATE CONNECTION ... enp7s0 ethernet connected bridge0-port1 enp8s0 ethernet connected bridge0-port2
接続のいずれかのポートをアクティブにすると、NetworkManager はブリッジもアクティブにしますが、他のポートはアクティブにしません。ブリッジが有効になっている場合、Red Hat Enterprise Linux がすべてのポートを自動的に有効にするように設定できます。
ブリッジ接続の
connection.autoconnect-slaves
パラメーターを有効にします。# nmcli connection modify bridge0 connection.autoconnect-slaves 1
ブリッジを再度アクティブにします。
# nmcli connection up bridge0
検証手順
ip
ユーティリティを使用して、特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。# ip link show master bridge0 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ff
bridge
ユーティリティを使用して、任意のブリッジデバイスのポートであるイーサネットデバイスの状態を表示します。# bridge link show 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100 5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100 6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100 ...
特定のイーサネットデバイスのステータスを表示するには、
bridge link show dev ethernet_device_name
コマンドを使用します。
関連情報
- 基本的なネットワーク設定のテスト
- 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定
-
man ページの
nmcli-examples(7)
-
nm-settings(5)
の man ページのbridge settings
セクション -
nm-settings(5)
の man ページのbridge-port settings
セクション -
man ページの
bridge(8)
- NetworkManager duplicates a connection after restart of NetworkManager service
- vlan 情報でブリッジを設定する方法
10.2. RHEL Web コンソールを使用したネットワークブリッジの設定
本セクションでは、RHEL Web コンソールを使用してネットワークブリッジを設定する方法を説明します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスをサーバーにインストールする必要があります。
ブリッジのポートにチーム、ボンディング、または VLAN デバイスを使用するには、ブリッジの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
-
画面左側のナビゲーションで
Networking
タブを選択します。 -
インターフェース
セクションの ブリッジの追加 をクリックします。 - 作成するブリッジデバイスの名前を入力します。
- ブリッジのポートとなるインターフェースを選択します。
オプション:ブリッジループおよびブロードキャストのルーティングを回避するために、
STP(Spanning tree protocol)
機能を有効にします。- 適用 をクリックします。
デフォルトでは、ブリッジは動的 IP アドレスを使用します。静的 IP アドレスを設定する場合は、以下を実行します。
-
インターフェース
セクションのブリッジの名前をクリックします。 -
設定するプロトコルの横にある
編集
をクリックします。 -
アドレス
の
横にあるManual
を選択し、IP アドレス、プレフィックス、およびデフォルトゲートウェイを入力します。 -
DNS
セクションで + ボタンをクリックし、DNS サーバーの IP アドレスを入力します。この手順を繰り返して、複数の DNS サーバーを設定します。 -
DNS 検索ドメイン
セクションで、+ ボタンをクリックして検索ドメインを入力します。 インターフェースに静的ルートが必要な場合、それらを
Routes
セクションで設定します。- 適用 をクリックします。
-
検証
画面左側のナビゲーションにある
ネットワーク
タブを選択し、インターフェースに送受信トラフィックがあるかどうかを確認します。
10.3. nm-connection-editor によるネットワークブリッジの設定
本セクションでは、nm-connection-editor
アプリケーションを使用してネットワークブリッジを設定する方法を説明します。
nm-connection-editor
は、新しいポートだけをブリッジに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドを使用したネットワークブリッジの設定」の説明に従って、nmcli
ユーティリティーを使用してブリッジを作成します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスをサーバーにインストールする必要があります。
- ブリッジのポートとしてチーム、ボンディング、または VLAN デバイスを使用するには、これらのデバイスがまだ設定されていないことを確認してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- + ボタンをクリックして、新しい接続を追加します。
-
接続タイプ
Bridge
を選択し、作成 をクリックします。 Bridge
タブで以下を行います。-
オプション:
Interface name
フィールドにブリッジインターフェースの名前を設定します。 追加 ボタンをクリックして、ネットワークインターフェースの新しい接続プロファイルを作成し、プロファイルをポートとしてブリッジに追加します。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
Ethernet
を選択します。 - 必要に応じて、ポートデバイスの接続名を設定します。
-
イーサネットデバイスの接続プロファイルを作成する場合は、
Ethernet
タブを開き、Device
フィールドで選択し、ポートとしてブリッジに追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。 - 保存 をクリックします。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
ブリッジに追加する各インターフェースに、直前の手順を繰り返します。
-
オプション:
- オプション:スパニングツリープロトコル (STP) オプションなどの追加のブリッジ設定を行います。
ブリッジの IP 設定を構成します。このブリッジを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。
- ブリッジ接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
ip
ユーティリティを使用して、特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。# ip link show master bridge0 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ff
bridge
ユーティリティを使用して、任意のブリッジデバイスのポートであるイーサネットデバイスの状態を表示します。# bridge link show 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100 5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100 6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100 ...
特定のイーサネットデバイスのステータスを表示するには、
bridge link show dev ethernet_device_name
コマンドを使用します。
10.4. nmstatectl を使用したネットワークブリッジの設定
本セクションでは、nmstatectl
ユーティリティーを使用して、以下の設定で Linux ネットワークブリッジ bridge0
を設定する方法を説明します。
-
ブリッジのネットワークインターフェース:
enp1s0
およびenp7s0
- Spanning Tree Protocol (STP): 有効
-
静的 IPv4 アドレス:
192.0.2.1
および/24
サブネットマスク -
静的 IPv6 アドレス:
2001: db8:1::1
および/64
サブネットマスク -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- 物理または仮想のイーサネットデバイスをサーバーにインストールし、ブリッジでイーサネットデバイスをポートとして使用する。
-
ポート
一覧でインターフェース名を設定し、対応するインターフェースを定義して、ブリッジのポートとしてチーム、ボンディング、または VLAN デバイスを使用する。 -
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイル (例:
~/create-bridge.yml
) を作成します。--- interfaces: - name: bridge0 type: linux-bridge state: up ipv4: enabled: true address: - ip: 192.0.2.1 prefix-length: 24 dhcp: false ipv6: enabled: true address: - ip: 2001:db8:1::1 prefix-length: 64 autoconf: false dhcp: false bridge: options: stp: enabled: true port: - name: enp1s0 - name: enp7s0 - name: enp1s0 type: ethernet state: up - name: enp7s0 type: ethernet state: up routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.254 next-hop-interface: bridge0 - destination: ::/0 next-hop-address: 2001:db8:1::fffe next-hop-interface: bridge0 dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb
設定をシステムに適用します。
# nmstatectl apply ~/create-bridge.yml
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION bridge0 bridge connected bridge0
接続プロファイルのすべての設定を表示します。
# nmcli connection show bridge0 connection.id: bridge0 connection.uuid: e2cc9206-75a2-4622-89cf-1252926060a9 connection.stable-id: -- connection.type: bridge connection.interface-name: bridge0 ...
接続設定を YAML 形式で表示します。
# nmstatectl show bridge0
関連情報
-
man ページの
nmstatectl(8)
-
/usr/share/doc/nmstate/examples/
- vlan 情報でブリッジを設定する方法
第11章 ネットワークチーミングの設定
本セクションでは、ネットワークチーミングの基本、ボンディングとチーミングの相違点、Red Hat Enterprise Linux にネットワークチームを設定する方法を説明します。
Red Hat Enterprise Linux 9 では、ネットワークチーミングが非推奨になりました。代わりに、ネットワークボンディングドライバーの使用を検討してください。詳細は、Configuring network bonding を参照してください。
ネットワークチームは、以下のような異なるタイプのデバイスに作成できます。
- 物理および仮想イーサネットデバイス
- ネットワークボンディング
- ネットワークブリッジ
- VLAN デバイス
11.1. ネットワークボンディングへのネットワークチーム設定の移行
Red Hat Enterprise Linux 9 では、ネットワークチーミングが非推奨になりました。以前のバージョンの RHEL からアップグレードした場合など、稼働中のネットワークチームを設定している場合は、設定を、NetworkManager が管理するネットワークボンディングに移行できます。
team2bond
ユーティリティは、ネットワークチーム設定のみをボンディングに変換します。その後、IP アドレスや DNS 設定など、ボンディングの詳細設定を手動で行う必要があります。
前提条件
-
team-team0
NetworkManager の接続プロファイルが設定され、team0
デバイスを管理している。 -
teamd
パッケージがインストールされている。
手順
オプション:
team-team0
NetworkManager 接続の IP 設定を表示します。# nmcli connection show team-team0 | egrep "^ip" ... ipv4.method: manual ipv4.dns: 192.0.2.253 ipv4.dns-search: example.com ipv4.addresses: 192.0.2.1/24 ipv4.gateway: 192.0.2.254 ... ipv6.method: manual ipv6.dns: 2001:db8:1::fffd ipv6.dns-search: example.com ipv6.addresses: 2001:db8:1::1/64 ipv6.gateway: 2001:db8:1::fffe ...
team0
デバイスの設定を JSON ファイルにエクスポートします。# teamdctl team0 config dump actual > /tmp/team0.json
ネットワークチームを削除します。たとえば、NetworkManager でチームを設定した場合は、
team-team0
接続プロファイルと、関連するポートのプロファイルを削除します。# nmcli connection delete team-team0 # nmcli connection delete team-team0-port1 # nmcli connection delete team-team0-port2
team2bond
ユーティリティーをドライランモードで実行して、チームデバイスと同様の設定でネットワークボンディングを設定するnmcli
コマンドを表示します。# team2bond --config=/tmp/team0.json --rename=bond0 nmcli con add type bond ifname bond0 bond.options "mode=active-backup,num_grat_arp=1,num_unsol_na=1,resend_igmp=1,miimon=100,miimon=100" nmcli con add type ethernet ifname enp7s0 master bond0 nmcli con add type ethernet ifname enp8s0 master bond0
最初のコマンドには 2 つの
miimon
オプションが含まれます。これは、チーム設定ファイルに 2 つのlink_watch
エントリーが含まれているためです。これはボンディングの作成には影響しないことに注意してください。サービスをチームのデバイス名にバインドし、これらのサービスの更新や破損を回避する場合は、
--rename=bond0
を省略します。この場合、team2bond
は、チームと同じインターフェース名をボンディングに使用します。-
team2bond
ユーティリティーが推奨するボンディングのオプションが正しいことを確認します。 ボンディングを作成します。推奨される
nmcli
コマンドを実行するか、--exec-cmd
オプションを指定してteam2bond
コマンドを再実行できます。# team2bond --config=/tmp/team0.json --rename=bond0 --exec-cmd Connection 'bond-bond0' (0241a531-0c72-4202-80df-73eadfc126b5) successfully added. Connection 'bond-slave-enp7s0' (38489729-b624-4606-a784-1ccf01e2f6d6) successfully added. Connection 'bond-slave-enp8s0' (de97ec06-7daa-4298-9a71-9d4c7909daa1) successfully added.
次の手順では、ボンディング接続プロファイル (
bond-bond0
) の名前が必要です。team-team0
で以前設定した IPv4 設定を、bond-bond0
接続に設定します。# nmcli connection modify bond-bond0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify bond-bond0 ipv4.gateway '192.0.2.254' # nmcli connection modify bond-bond0 ipv4.dns '192.0.2.253' # nmcli connection modify bond-bond0 ipv4.dns-search 'example.com' # nmcli connection modify bond-bond0 ipv4.method manual
team-team0
で以前設定した IPv6 設定を、bond-bond0
接続に設定します。# nmcli connection modify bond-bond0 ipv6.addresses '2001:db8:1::1/64' # nmcli connection modify bond-bond0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify bond-bond0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify bond-bond0 ipv6.dns-search 'example.com' # nmcli connection modify bond-bond0 ipv6.method manual
接続をアクティベートします。
# nmcli connection up bond-bond0
検証
bond-bond0
NetworkManager 接続の IP 設定を表示します。# nmcli connection show bond-bond0 | egrep "^ip" ... ipv4.method: manual ipv4.dns: 192.0.2.253 ipv4.dns-search: example.com ipv4.addresses: 192.0.2.1/24 ipv4.gateway: 192.0.2.254 ... ipv6.method: manual ipv6.dns: 2001:db8:1::fffd ipv6.dns-search: example.com ipv6.addresses: 2001:db8:1::1/64 ipv6.gateway: 2001:db8:1::fffe ...
ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v5.13.0-0.rc7.51.el9.x86_64 Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: enp7s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:bf:b1:a9 Slave queue ID: 0 Slave Interface: enp8s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:04:36:0f Slave queue ID: 0
この例では、両方のポートが起動しています。
ボンディングフェイルオーバーが機能することを確認するには、以下を行います。
- ホストからネットワークケーブルを一時的に削除します。コマンドラインでリンク障害イベントを適切にテストする方法がないことに注意してください。
ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0
11.2. ネットワークチーミングの理解
ネットワークチーミングとは、ネットワークインターフェースを統合または集約し、より高いスループットまたは冗長性のある論理インターフェースを提供する機能です。
ネットワークチーミングでは、カーネルドライバーを使用してパケットフローの高速処理や、他のタスク用のユーザー空間ライブラリーおよびサービスを実装します。これにより、ネットワークチーミングは、負荷分散および冗長性の要件に対して、簡単に拡張可能でスケーラブルなソリューションとなります。
特定のネットワークチーミング機能 (例: フェイルオーバーメカニズム) は、ネットワークスイッチのないダイレクトケーブル接続に対応していません。詳細は、「ボンディングは、クロスオーバーケーブルを使用したダイレクトコレクションをサポートしますか?」を参照してください。
11.3. コントローラーおよびポートインターフェースのデフォルト動作の理解
NetworkManager
サービスを使用してチームまたはボンディングのポートインターフェースを管理またはトラブルシューティングする場合は、以下のデフォルトの動作を考慮してください。
- コントローラーインターフェースを起動しても、ポートインターフェースは自動的に起動しない。
- ポートインターフェースを起動すると、コントローラーインターフェースは毎回、起動する。
- コントローラーインターフェースを停止すると、ポートインターフェースも停止する。
- ポートのないコントローラーは、静的 IP 接続を開始できる。
- コントローラーにポートがない場合は、DHCP 接続の開始時にポートを待つ。
- DHCP 接続でポートを待機中のコントローラーは、キャリアを伴うポートの追加時に完了する。
- DHCP 接続でポートを待機中のコントローラーは、キャリアを伴わないポートを追加する時に待機を継続する。
11.4. teamd サービス、ランナー、およびリンク監視の理解
チームサービス teamd
は、チームドライバーのインスタンスを制御します。このドライバーのインスタンスは、ハードウェアデバイスドライバーのインスタンスを追加して、ネットワークインターフェースのチームを形成します。チームドライバーは、ネットワークインターフェース (team0
など) をカーネルに提示します。
teamd
サービスは、チーミングのすべてのメソッドに共通のロジックを実装します。この関数は、ラウンドロビンなどの異なる負荷分散とバックアップメソッドに一意で、ランナー
と呼ばれる別のコードのユニットにより実装されます。管理者は、JSON (JavaScript Object Notation) 形式でランナーを指定します。インスタンスの作成時に、JSON コードが teamd
のインスタンスにコンパイルされます。または、NetworkManager
を使用する場合は、team.runner
パラメーターにランナーを設定でき、対応する JSON コードを NetworkManager
が自動的に作成します。
以下のランナーが利用できます。
-
broadcast
:すべてのポートでデータを送信します。 -
roundrobin
:次に、すべてのポートでデータを送信します。 -
activebackup
:1 つのポートにデータを送信します。もう 1 つのポートはバックアップとして維持されます。 -
loadbalance
:アクティブな Tx 負荷分散と Berkeley Packet Filter (BPF) ベースの Tx ポートセレクターを持つすべてのポートでデータを送信します。 -
random
:無作為に選択されたポートでデータを送信します。 -
lacp
:802.3ad リンクアグリゲーション制御プロトコル (LACP) を実装します。
teamd
サービスはリンク監視を使用して、下位デバイスの状態を監視します。さらに、以下のリンク監視が利用可能です。
-
ethtool
:libteam
ライブラリーは、ethtool
ユーティリティーを使用してリンク状態の変更を監視します。これはデフォルトのリンク監視です。 -
arp_ping
:libteam
ライブラリーは、arp_ping
ユーティリティーでアドレス解決プロトコル (ARP) を使用して、遠端のハードウェアアドレスの存在を監視します。 -
nsna_ping
:IPv6 接続では、libteam
ライブラリーが IPv6 neighbor Discovery プロトコルの Neighbor Advertisement 機能と Neighbor Solicitation 機能を使用して、近くのインターフェースの存在を監視します。
各ランナーは、lacp
を除くリンク監視を使用できます。このランナーは、ethtool
リンク監視のみを使用できます。
11.5. teamd サービスのインストール
NetworkManager
にネットワークチームを設定するには、teamd
サービスと、NetworkManager
のチームプラグインが必要です。デフォルトでは、どちらも Red Hat Enterprise Linux にインストールされます。本セクションでは、削除する場合に必要なパッケージをインストールする方法を説明します。
前提条件
- 有効な Red Hat サブスクリプションがホストに割り当てられている。
手順
teamd
パッケージおよびNetworkManager-team
パッケージをインストールします。# dnf install teamd NetworkManager-team
11.6. nmcli コマンドによるネットワークチームの設定
本セクションでは、nmcli
ユーティリティーを使用してネットワークチームを設定する方法を説明します。
Red Hat Enterprise Linux 9 では、ネットワークチーミングが非推奨になりました。代わりに、ネットワークボンディングドライバーの使用を検討してください。詳細は、Configuring network bonding を参照してください。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- チームのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされ、スイッチに接続されている必要があります。
チームのポートにボンディング、ブリッジ、または VLAN デバイスを使用するには、チームの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
チームインターフェースを作成します。
# nmcli connection add type team con-name team0 ifname team0 team.runner activebackup
このコマンドは、
activebackup
ランナーを使用するteam0
という名前のネットワークチームを作成します。必要に応じて、リンク監視を設定します。たとえば、
team0
接続プロファイルでethtool
リンク監視を設定するには、次のコマンドを実行します。# nmcli connection modify team0 team.link-watchers "name=ethtool"
リンク監視は、さまざまなパラメーターに対応します。リンク監視にパラメーターを設定するには、
name
プロパティーでスペースで区切って指定します。name プロパティーは引用符で囲む必要があることに注意してください。たとえば、ethtool
リンク監視を使用し、delay-up
パラメーターを2500
ミリ秒 (2.5 秒) で設定するには、次のコマンドを実行します。# nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2500"
複数のリンク監視および各リンク監視を、特定のパラメーターで設定するには、リンク監視をコンマで区切る必要があります。以下の例では、
delay-up
パラメーターでethtool
リンク監視を設定します。arp_ping
リンク監視は、source-host
パラメーターおよびtarget-host
パラメーターで設定します。# nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2, name=arp_ping source-host=192.0.2.1 target-host=192.0.2.2"
ネットワークインターフェースを表示し、チームに追加するインターフェースの名前を書き留めます。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bond0 bond connected bond0 bond1 bond connected bond1 ...
この例では、以下のように設定されています。
-
enp7s0
およびenp8s0
は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。いずれの接続にも割り当てられていないチームのイーサネットインターフェースのみを使用できる点に注意してください。 -
bond0
およびbond1
には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
-
ポートインターフェースをチームに割り当てます。
チームに割り当てるインターフェースが設定されていない場合は、それらの接続プロファイルを新たに作成します。
# nmcli connection add type ethernet slave-type team con-name team0-port1 ifname enp7s0 master team0 # nmcli connection add type ethernet slave-type team con-name team0-port2 ifname enp8s0 master team0
.これらのコマンドは、
enp7s0
およびenp8s0
にプロファイルを作成し、team0
接続に追加します。既存の接続プロファイルをチームに割り当てるには、以下の接続の
master
パラメーターをteam0
に設定します。# nmcli connection modify bond0 master team0 # nmcli connection modify bond1 master team0
これらのコマンドは、
bond0
およびbond1
という名前の既存の接続プロファイルをteam0
接続に割り当てます。
チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、
team0
接続の静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。# nmcli connection modify team0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify team0 ipv4.gateway '192.0.2.254' # nmcli connection modify team0 ipv4.dns '192.0.2.253' # nmcli connection modify team0 ipv4.dns-search 'example.com' # nmcli connection modify team0 ipv4.method manual
IPv6 設定を構成します。たとえば、
team0
接続の静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定するには、次のコマンドを実行します。# nmcli connection modify team0 ipv6.addresses '2001:db8:1::1/64' # nmcli connection modify team0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify team0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify team0 ipv6.dns-search 'example.com' # nmcli connection modify team0 ipv6.method manual
接続をアクティベートします。
# nmcli connection up team0
検証手順
チームのステータスを表示します。
# teamdctl team0 state setup: runner: activebackup ports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp7s0
この例では、両方のポートが起動しています。
関連情報
- 基本的なネットワーク設定のテスト
- 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定
- teamd サービス、ランナー、およびリンク監視の理解
-
man ページの
nmcli-examples(7)
-
nm-settings(5)
の man ページのteam
セクション -
man ページの
teamd.conf(5)
11.7. RHEL Web コンソールを使用したネットワークチームの設定
本セクションでは、RHEL Web コンソールを使用してネットワークチームを設定する方法を説明します。
Red Hat Enterprise Linux 9 では、ネットワークチーミングが非推奨になりました。代わりに、ネットワークボンディングドライバーの使用を検討してください。詳細は、Configuring network bonding を参照してください。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- チームのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされ、スイッチに接続されている必要があります。
チームのポートにボンディング、ブリッジ、または VLAN デバイスを使用するには、次の説明に従って事前に作成します。
手順
-
画面左側のナビゲーションで
Networking
タブを選択します。 -
Interfaces
セクションの Add team をクリックします。 - 作成するチームデバイスの名前を入力します。
- チームのポートであるインターフェースを選択します。
チームのランナーを選択します。
Load balancing
または802.3ad LACP
を選択する場合、Web コンソールには追加のフィールドBalancer
が表示されます。リンク監視を設定します。
-
Ethtool
を選択した場合は、リンクを設定してリンクダウン遅延を設定します。 -
ARP ping
またはNSNA ping
を設定する場合は、ping の間隔と ping ターゲットを設定します。
-
- 適用 をクリックします。
デフォルトでは、チームは動的 IP アドレスを使用します。静的 IP アドレスを設定する場合は、以下を実行します。
-
Interfaces
セクションのチームの名前をクリックします。 -
設定するプロトコルの横にある
編集
をクリックします。 -
アドレス
の
横にあるManual
を選択し、IP アドレス、プレフィックス、およびデフォルトゲートウェイを入力します。 -
DNS
セクションで + ボタンをクリックし、DNS サーバーの IP アドレスを入力します。この手順を繰り返して、複数の DNS サーバーを設定します。 -
DNS 検索ドメイン
セクションで、+ ボタンをクリックして検索ドメインを入力します。 インターフェースに静的ルートが必要な場合、それらを
Routes
セクションで設定します。- 適用 をクリックします。
-
検証
画面左側のナビゲーションにある
ネットワーク
タブを選択し、インターフェースに送受信トラフィックがあるかどうかを確認します。チームのステータスを表示します。
# teamdctl team0 state setup: runner: activebackup ports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp7s0
この例では、両方のポートが起動しています。
関連情報
11.8. nm-connection-editor によるネットワークチームの設定
本セクションでは、nm-connection-editor
アプリケーションを使用してネットワークチームを設定する方法を説明します。
nm-connection-editor
は、新しいポートだけをチームに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドを使用したネットワークチームの設定」の説明に従って、nmcli
ユーティリティーを使用してチームを作成します。
Red Hat Enterprise Linux 9 では、ネットワークチーミングが非推奨になりました。代わりに、ネットワークボンディングドライバーの使用を検討してください。詳細は、Configuring network bonding を参照してください。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- 物理または仮想のイーサネットデバイスをサーバーにインストールし、チームのポートとしてイーサネットデバイスを使用する。
- チーム、ボンディング、または VLAN デバイスをチームのポートとして使用するには、これらのデバイスがまだ設定されていないことを確認してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- + ボタンをクリックして、新しい接続を追加します。
-
接続タイプ
Team
を選択し、作成 をクリックします。 Team
タブで以下を行います。-
オプション:
Interface name
フィールドにチームインターフェースの名前を設定します。 Add ボタンをクリックして、ネットワークインターフェースの新しい接続プロファイルを追加し、プロファイルをポートとしてチームに追加します。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
Ethernet
を選択します。 - オプション:ポートの接続名を設定します。
-
イーサネットデバイスの接続プロファイルを作成する場合は、
Ethernet
タブを開き、Device
フィールドでポートとしてチームに追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。いずれの接続にも割り当てられていないチームのイーサネットインターフェースのみを使用できる点に注意してください。 - 保存 をクリックします。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
チームに追加する各インターフェースに直前の手順を繰り返します。
Advanced ボタンをクリックして、チーム接続に高度なオプションを設定します。
-
Runner
タブで、ランナーを選択します。 -
Link Watcher
タブで、リンク監視とそのオプションを設定します。 - OK をクリックします。
-
-
オプション:
チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、この手順を省略します。
-
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。 -
IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。
-
- チーム接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
チームのステータスを表示します。
# teamdctl team0 state setup: runner: activebackup ports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp7s0
第12章 ネットワークボンディングの設定
本セクションでは、ネットワークボンディングの基本、ボンディングとチーミングの相違点、Red Hat Enterprise Linux でネットワークボンディングを設定する方法を説明します。
以下のような異なるタイプのデバイスにボンディングを作成できます。
- 物理および仮想イーサネットデバイス
- ネットワークブリッジ
- ネットワークチーム
- VLAN デバイス
12.1. ネットワークボンディングについて
ネットワークボンディングは、スループットや冗長性が高い論理インターフェースを提供するために、ネットワークインターフェースを結合または集約する方法です。
active-backup
、balance-tlb
、および balance-alb
の各モードは、ネットワークスイッチの特定の設定を必要としません。しかし、その他のボンディングモードでは、スイッチがリンクを集約するように設定する必要があります。たとえば、Cisco スイッチでは、モード 0、2、および 3 の EtherChannel
が必要です。ただし、モード 4 の場合は、LACP (Link Aggregation Control Protocol) と EtherChannel
が必要です。
詳細は、スイッチおよび Linux Ethernet Bonding Driver HOWTO のドキュメントを参照してください。
特定のネットワークボンディング機能 (例: fail-over メカニズム) は、ネットワークスイッチなしでのダイレクトケーブル接続に対応していません。詳細は、ナレッジベースのソリューション「ボンディングは、クロスオーバーケーブルを使用したダイレクトコレクションをサポートしますか?」を参照してください。
12.2. コントローラーおよびポートインターフェースのデフォルト動作の理解
NetworkManager
サービスを使用してチームまたはボンディングのポートインターフェースを管理またはトラブルシューティングする場合は、以下のデフォルトの動作を考慮してください。
- コントローラーインターフェースを起動しても、ポートインターフェースは自動的に起動しない。
- ポートインターフェースを起動すると、コントローラーインターフェースは毎回、起動する。
- コントローラーインターフェースを停止すると、ポートインターフェースも停止する。
- ポートのないコントローラーは、静的 IP 接続を開始できる。
- コントローラーにポートがない場合は、DHCP 接続の開始時にポートを待つ。
- DHCP 接続でポートを待機中のコントローラーは、キャリアを伴うポートの追加時に完了する。
- DHCP 接続でポートを待機中のコントローラーは、キャリアを伴わないポートを追加する時に待機を継続する。
12.3. ボンディングモードに依存するアップストリームのスイッチ設定
以下の表は、ボンディングモードに応じて、どの設定をアップストリームのスイッチに適用する必要があるかを示しています。
ボンディングモード | スイッチの設定 |
---|---|
| (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。 |
| 自動ポートが必要です。 |
| (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。 |
| (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。 |
| LACP がネゴシエートされた Etherchannel が有効になっている必要があります。 |
| 自動ポートが必要です。 |
| 自動ポートが必要です。 |
スイッチの設定は、スイッチのドキュメントを参照してください。
12.4. nmcli コマンドによるネットワークボンディングの設定
本セクションは、nmcli
コマンドを使用して、ネットワークボンディングを設定する方法を説明します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ボンディングのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
ボンディングのポートにチーム、ブリッジ、または VLAN デバイスを使用するには、ボンディングの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
ボンディングインターフェースを作成します。
# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
このコマンドは、
active-backup
モードを使用するbond0
という名前のボンディングを作成します。Media Independent Interface (MII) 監視間隔も設定する場合は、
miimon=interval
オプションをbond.options
プロパティーに追加します。たとえば、同じコマンドで、さらに MII 監視間隔を1000
ミリ秒 (1 秒) に設定するには、次のコマンドを入力します。# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
ネットワークインターフェースを表示し、ボンドに追加する予定のインターフェース名を書き留めます。
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bridge0 bridge connected bridge0 bridge1 bridge connected bridge1 ...
この例では、以下のように設定されています。
-
enp7s0
およびenp8s0
は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。 -
bridge0
およびbridge1
には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
-
インターフェースをボンディングに割り当てます。
ボンディングに割り当てるインターフェースが設定されていない場合は、インターフェース用に新しい接続プロファイルを作成します。
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp7s0 master bond0 # nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname enp8s0 master bond0
これらのコマンドは、
enp7s0
およびenp8s0
のプロファイルを作成し、bond0
接続に追加します。既存の接続プロファイルをボンディングに割り当てるには、以下の接続の
master
パラメーターをbond0
に設定します。# nmcli connection modify bridge0 master bond0 # nmcli connection modify bridge1 master bond0
これらのコマンドは、
bridge0
およびbridge1
という名前の既存の接続プロファイルをbond0
接続に割り当てます。
ボンディングの IP 設定を構成します。このボンディングを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、
bond0
接続の静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。# nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify bond0 ipv4.gateway '192.0.2.254' # nmcli connection modify bond0 ipv4.dns '192.0.2.253' # nmcli connection modify bond0 ipv4.dns-search 'example.com' # nmcli connection modify bond0 ipv4.method manual
IPv6 設定を構成します。たとえば、
bond0
接続の静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。# nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64' # nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify bond0 ipv6.dns-search 'example.com' # nmcli connection modify bond0 ipv6.method manual
接続をアクティベートします。
# nmcli connection up bond0
ポートが接続されており、
CONNECTION
コラムがポートの接続名を表示していることを確認します。# nmcli device DEVICE TYPE STATE CONNECTION ... enp7s0 ethernet connected bond0-port1 enp8s0 ethernet connected bond0-port2
接続のいずれかのポートをアクティブにすると、NetworkManager はボンディングもアクティブにしますが、他のポートはアクティブにしません。ボンディングが有効になっている場合、Red Hat Enterprise Linux がすべてのポートを自動的に有効にするように設定できます。
ボンディングの接続で
connection.autoconnect-slaves
パラメーターを有効にします。# nmcli connection modify bond0 connection.autoconnect-slaves 1
ブリッジを再度アクティブにします。
# nmcli connection up bond0
検証手順
ホストからネットワークケーブルを一時的に削除します。
ソフトウェアユーティリティーを使用して、リンク障害イベントを適切にテストする方法がないことに注意してください。
nmcli
などの接続を非アクティブにするツールでは、ポート設定の変更を処理するボンディングドライバーの機能のみが表示され、実際のリンク障害イベントは表示されません。ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0
関連情報
12.5. RHEL Web コンソールを使用したネットワークボンディングの設定
本セクションでは、RHEL Web コンソールを使用してネットワークボンディングを設定する方法を説明します。
前提条件
- RHEL Web コンソールにログインしている。
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ボンディングのメンバーとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
ボンディングのメンバーにチーム、ブリッジ、または VLAN デバイスを使用するには、次の説明に従って事前に作成します。
手順
-
画面左側のナビゲーションで
Networking
タブを選択します。 -
インターフェース
セクションの Add bond をクリックします。 - 作成するボンディングデバイスの名前を入力します。
- ボンディングのメンバーであるインターフェースを選択します。
ボンディングのモードを選択します。
Active backup
を選択すると、Web コンソールに追加のフィールドPrimary
が表示されます。このフィールドで、優先するアクティブなデバイスを選択できます。-
リンク監視モードを設定します。たとえば、
Adaptive 負荷分散
モードを使用する場合は、ARP
に設定します。 オプション:監視間隔、リンク遅延、およびリンクダウン遅延設定を調整します。通常、トラブルシューティングの目的でのみデフォルトを変更します。
- 適用 をクリックします。
デフォルトでは、ボンディングは動的 IP アドレスを使用します。静的 IP アドレスを設定する場合は、以下を実行します。
-
インターフェース
セクションのボンディングの名前をクリックします。 -
設定するプロトコルの横にある
編集
をクリックします。 -
アドレス
の
横にあるManual
を選択し、IP アドレス、プレフィックス、およびデフォルトゲートウェイを入力します。 -
DNS
セクションで + ボタンをクリックし、DNS サーバーの IP アドレスを入力します。この手順を繰り返して、複数の DNS サーバーを設定します。 -
DNS 検索ドメイン
セクションで、+ ボタンをクリックして検索ドメインを入力します。 インターフェースに静的ルートが必要な場合、それらを
Routes
セクションで設定します。- 適用 をクリックします。
-
検証
画面左側のナビゲーションにある
ネットワーク
タブを選択し、インターフェースに送受信トラフィックがあるかどうかを確認します。ホストからネットワークケーブルを一時的に削除します。
ソフトウェアユーティリティーを使用して、リンク障害イベントを適切にテストする方法がないことに注意してください。Web コンソールなど、接続を非アクティブにするツールは、ボンディングドライバーがメンバー設定の変更を処理する機能のみを表示し、実際のリンク障害イベントは表示されません。
ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0
12.6. nm-connection-editor によるネットワークボンディングの設定
本セクションでは、nm-connection-editor
アプリケーションを使用してネットワークボンディングを設定する方法を説明します。
nm-connection-editor
は、新しいポートだけをボンドに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドを使用したネットワークボンディングの設定」の説明に従って、nmcli
ユーティリティーを使用してボンディングを作成します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ボンディングのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
- ボンディングのポートとしてチーム、ボンディング、または VLAN デバイスを使用するには、これらのデバイスがまだ設定されていないことを確認してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- + ボタンをクリックして、新しい接続を追加します。
-
接続タイプ
Bond
を選択し、作成 をクリックします。 Bond
タブで、以下を行います。-
オプション:
Interface name
フィールドにボンドインターフェースの名前を設定します。 追加 ボタンをクリックして、ネットワークインターフェースをポートとしてボンドに追加します。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
Ethernet
を選択します。 - オプション:ポートの接続名を設定します。
-
イーサネットデバイスの接続プロファイルを作成する場合は、
Ethernet
タブを開き、Device
フィールドでポートとしてボンディングに追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。イーサネットインターフェースは、設定されていないボンディングでのみ使用できることに注意してください。 - 保存 をクリックします。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
ボンディングに追加する各インターフェースで直前の手順を繰り返します。
- オプション:Media Independent Interface (MII) の監視間隔などの他のオプションを設定します。
-
オプション:
ボンディングの IP 設定を構成します。このボンディングを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。
- 保存 をクリックして、ボンド接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
ホストからネットワークケーブルを一時的に削除します。
ソフトウェアユーティリティーを使用して、リンク障害イベントを適切にテストする方法がないことに注意してください。
nmcli
などの接続を非アクティブにするツールでは、ポート設定の変更を処理するボンディングドライバーの機能のみが表示され、実際のリンク障害イベントは表示されません。ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0
12.7. nmstatectl を使用したネットワークボンディングの設定
本セクションでは、nmstatectl
ユーティリティーを使用して、以下の設定でネットワークボンディング、bond0
を設定する方法を説明します。
-
ボンドのネットワークインターフェース:
enp1s0
およびenp7s0
-
モード:
active-backup
-
静的 IPv4 アドレス:
192.0.2.1
および/24
サブネットマスク -
静的 IPv6 アドレス:
2001: db8:1::1
および/64
サブネットマスク -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- 物理または仮想のイーサネットデバイスをサーバーにインストールしてボンディングでポートとしてイーサネットデバイスを使用する。
-
ポート
一覧でインターフェース名を設定し、対応するインターフェースを定義して、ボンディングのポートとしてチーム、ブリッジ、または VLAN デバイスを使用する。 -
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイルを作成します (例:
~/create-bond.yml
)。--- interfaces: - name: bond0 type: bond state: up ipv4: enabled: true address: - ip: 192.0.2.1 prefix-length: 24 dhcp: false ipv6: enabled: true address: - ip: 2001:db8:1::1 prefix-length: 64 autoconf: false dhcp: false link-aggregation: mode: active-backup port: - enp1s0 - enp7s0 - name: enp1s0 type: ethernet state: up - name: enp7s0 type: ethernet state: up routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.254 next-hop-interface: bond0 - destination: ::/0 next-hop-address: 2001:db8:1::fffe next-hop-interface: bond0 dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb
設定をシステムに適用します。
# nmstatectl apply ~/create-bond.yml
検証手順
デバイスおよび接続の状態を表示します。
# nmcli device status DEVICE TYPE STATE CONNECTION bond0 bond connected bond0
接続プロファイルのすべての設定を表示します。
# nmcli connection show bond0 connection.id: bond0 connection.uuid: 79cbc3bd-302e-4b1f-ad89-f12533b818ee connection.stable-id: -- connection.type: bond connection.interface-name: bond0 ...
接続設定を YAML 形式で表示します。
# nmstatectl show bond0
関連情報
-
man ページの
nmstatectl(8)
-
/usr/share/doc/nmstate/examples/
12.8. RHEL システムロールを使用したネットワークボンディングの設定
Networking の RHEL システムロールを使用して、ネットワークボンディングを設定できます。この手順では、2 つのイーサネットデバイスを使用するアクティブバックアップモードでボンディングを設定し、IPv4 アドレスおよび IPv6 アドレス、デフォルトゲートウェイ、および DNS 設定を設定する方法を説明します。
Linux ボンディングのポートではなく、ボンディングに IP 設定を設定します。
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/bond-ethernet.yml
Playbook を以下の内容で作成します。--- - name: Configure a network bond that uses two Ethernet ports hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: # Define the bond profile - name: bond0 type: bond interface_name: bond0 ip: address: - "192.0.2.1/24" - "2001:db8:1::1/64" gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com bond: mode: active-backup state: up # Add an Ethernet profile to the bond - name: bond0-port1 interface_name: enp7s0 type: ethernet controller: bond0 state: up # Add a second Ethernet profile to the bond - name: bond0-port2 interface_name: enp8s0 type: ethernet controller: bond0 state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/bond-ethernet.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/bond-ethernet.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
12.9. VPN を中断せずにイーサネットとワイヤレス接続間の切り替えを可能にするネットワークボンディングの作成
ワークステーションを会社のネットワークに接続する RHEL ユーザーは、通常、リモートリソースにアクセスするのに VPN を使用します。ただし、イーサネット接続と Wi-Fi 接続間のワークステーションスイッチ (たとえば、イーサネット接続のあるドッキングステーションからノート PC を解放した場合など) は、VPN 接続が中断されます。この問題を回避するには、active-backup
モードでイーサネット接続および Wi-Fi 接続を使用するネットワークボンディングを作成します。
前提条件
- ホストに、イーサネットデバイスと Wi-Fi デバイスが含まれている。
イーサネットおよび Wi-Fi NetworkManager 接続プロファイルが作成され、両方の接続が独立して機能します。
この手順では、以下の接続プロファイルを使用して
bond0
という名前のネットワークボンディングを作成します。-
enp11s0u1
イーサネットデバイスに関連付けられたDocking_station
-
wlp1s0
Wi-Fi
デバイスに関連付けられた Wi-Fi
-
手順
active-backup
モードでボンドインターフェースを作成します。# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
このコマンドは、インターフェースおよび接続プロファイル
bond0
の両方に名前を付けます。ボンディングの IPv4 設定を構成します。
- ネットワークの DHCP サーバーが IPv4 アドレスをホストに割り当てる場合は、何もする必要はありません。
ローカルネットワークに静的 IPv4 アドレスが必要な場合は、アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを
bond0
接続に設定します。# nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify bond0 ipv4.gateway '192.0.2.254' # nmcli connection modify bond0 ipv4.dns '192.0.2.253' # nmcli connection modify bond0 ipv4.dns-search 'example.com' # nmcli connection modify bond0 ipv4.method manual
ボンディングの IPv6 設定を構成します。
- ネットワークのルーターまたは DHCP サーバーが IPv6 アドレスをホストに割り当てる場合、アクションは必要ありません。
ローカルネットワークに静的 IPv6 アドレスが必要な場合は、アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを
bond0
接続に設定します。# nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64' # nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify bond0 ipv6.dns-search 'example.com' # nmcli connection modify bond0 ipv6.method manual
接続プロファイルを表示します。
# nmcli connection show NAME UUID TYPE DEVICE Docking_station 256dd073-fecc-339d-91ae-9834a00407f9 ethernet enp11s0u1 Wi-Fi 1f1531c7-8737-4c60-91af-2d21164417e8 wifi wlp1s0 ...
次のステップでは、接続プロファイルとイーサネットデバイス名が必要です。
イーサネット接続の接続プロファイルをボンドに割り当てます。
# nmcli connection modify Docking_station master bond0
Wi-Fi 接続の接続プロファイルをボンディングに割り当てます。
# nmcli connection modify Wi-Fi master bond0
Wi-Fi ネットワークが MAC フィルタリングを使用して、許可リストの MAC アドレスのみがネットワークにアクセスできるようにするには、NetworkManager がアクティブなポートの MAC アドレスをボンドに動的に割り当てるように設定します。
# nmcli connection modify bond0 +bond.options fail_over_mac=1
この設定では、イーサネットデバイスと Wi-Fi デバイスの両方の MAC アドレスの代わりに、Wi-Fi デバイスの MAC アドレスのみを許可リストに設定する必要があります。
イーサネット接続に関連付けられたデバイスを、ボンドのプライマリーデバイスとして設定します。
# nmcli con modify bond0 +bond.options "primary=enp11s0u1"
この設定では、ボンディングが利用可能な場合は、イーサネット接続を常に使用します。
bond0
デバイスがアクティブになると、NetworkManager がポートを自動的にアクティブになるように設定します。# nmcli connection modify bond0 connection.autoconnect-slaves 1
bond0
接続をアクティベートします。# nmcli connection up bond0
検証手順
現在アクティブなデバイス、ボンドおよびそのポートのステータスを表示します。
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active) Primary Slave: enp11s0u1 (primary_reselect always) Currently Active Slave: enp11s0u1 MII Status: up MII Polling Interval (ms): 1 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0 Slave Interface: enp11s0u1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:53:00:59:da:b7 Slave queue ID: 0 Slave Interface: wlp1s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 2 Permanent HW addr: 00:53:00:b3:22:ba Slave queue ID: 0
第13章 WireGuard VPN の設定
WireGuard は、Linux カーネルで実行する高パフォーマンスの VPN ソリューションです。最新の暗号を使用し、他の多くの VPN ソリューションよりも簡単に設定できます。さらに、WireGuard のコードベースが小さくなり、攻撃の影響が減るため、セキュリティーが向上します。認証および暗号化には、WireGuard が SSH と同様の鍵を使用します。
WireGuard はテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらのプレビューは、近々発表予定の製品機能をリリースに先駆けてご提供します。これにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。
WireGuard VPN を設定するには、次の手順を完了する必要があります。各オプションを使用すると、各ステップを実行できます。
- VPN 内のすべてのホストに公開鍵と秘密鍵を作成します。
- nmcli、nmtui、nm-connection-editor、または、wg-quick サービスを使用して、WireGuard サーバーを設定します。
- コマンドライン または グラフィカルインターフェース を使用して、WireGuard サーバーで firewalld を設定します。
- nmcli、nm-connection-editor、または wg-quick を使用して、WireGuard クライアントを設定します。
WireGuard はネットワーク層(レイヤー 3)上で動作します。そのため、DHCP を使用できず、静的 IP アドレスまたは IPv6 リンクローカルアドレスを、サーバーとクライアントの両方のトンネルデバイスに割り当てる必要があります。
WireGuard は、RHEL の FIPS (Federal Information Processing Standard) モードが無効になっている場合にのみ使用できます。
WireGuard VPN に参加するすべてのホストがピアであることに注意してください。このドキュメントでは、接続を確立するホストを説明する client
という用語と、クライアントが接続する固定ホスト名または IP アドレスを使用してホストを説明する server
という用語を使用し、必要に応じてすべてのトラフィックをこのサーバーにルーティングします。
13.1. WireGuard が使用するプロトコルおよびプリミティブ
WireGuard は、次のプロトコルおよびプリミティブを使用します。
13.2. WireGuard がトンネル IP アドレス、公開鍵、およびリモートエンドポイントを使用する方法
WireGuard がピアにネットワークパケットを送信する場合は、次のコマンドを実行します。
- WireGuard は、パケットから宛先 IP を読み込み、ローカル設定で許可されている IP アドレスの一覧と比較します。ピアが見つからない場合、WireGuard はパケットを破棄します。
- ピアが有効な場合、WireGuard は、ピアの公開鍵を使用してパケットを暗号化します。
- 送信側ホストは、ホストの最新のインターネット IP アドレスを検索し、暗号化したパケットを送信します。
WireGuard がパケットを受信すると、以下が行われます。
- WireGuard は、リモートホストの秘密鍵を使用してパケットを復号します。
- WireGuard は、パケットから内部ソースアドレスを読み込み、ローカルホストのピア設定で許可されている IP アドレスの一覧に IP が設定されているかどうかを調べます。ソース IP が許可リストにある場合、WireGuard はパケットを受け入れます。IP アドレスが一覧にない場合は、WireGuard がパケットを破棄します。
公開鍵と許可された IP アドレスの関連付けは、Cryptokey Routing Table
と呼ばれます。つまり、IP アドレスの一覧は、パケットの送信時にはルーティングテーブルと同様に動作し、パケットの受信時にはアクセス制御リストのように動作します。
13.3. NAT およびファイアウォールの背後で WireGuard クライアントを使用する
WireGuard は UDP プロトコルを使用し、ピアがパケットを送信する場合にのみデータを送信します。ルーターのステートフルファイアウォールとネットワークアドレス変換 (NAT) は、接続を追跡して、NAT の背後のピアまたはファイアウォールがパケットを受信できるようにします。
コネクションをアクティブな状態に保つために、WireGuard は persistent keepalives
に対応しています。つまり、WireGuard がキープアライブパケットを送信する間隔を設定できます。デフォルトでは、ネットワークトラフィックを削減するために、永続的なキープアライブ機能は無効になっています。NAT を使用したネットワークでクライアントを使用する場合、またはしばらく非アクティブにした後にファイアウォールが接続を閉じる場合は、クライアントでこの機能を有効にします。
13.4. WireGuard 接続で使用される秘密鍵および公開鍵の作成
WireGuard は、base64 でエンコードされた秘密鍵と公開鍵を使用して、ホストを相互に認証します。そのため、WireGuard VPN に参加する各ホストで鍵を作成する必要があります。
セキュアな接続には、ホストごとに異なる鍵を作成し、公開鍵のみをリモートの WireGuard ホストと共有するようにしてください。このドキュメントで使用しているサンプルキーは使用しないでください。
手順
wireguard-tools
パッケージをインストールします。#
dnf install wireguard-tools
ホストの秘密鍵と、対応する公開鍵を作成します。
#
wg genkey | tee /etc/wireguard/$HOSTNAME.private.key | wg pubkey > /etc/wireguard/$HOSTNAME.public.key
鍵ファイルの内容は必要ですが、ファイル自体は必要ありません。ただし、Red Hat では、将来的に鍵を覚えておく必要がある場合に備え、ファイルを保持することを推奨しています。
鍵ファイルにセキュアなパーミッションを設定します。
#
chmod 600 /etc/wireguard/$HOSTNAME.private.key /etc/wireguard/$HOSTNAME.public.key
秘密鍵を表示します。
#
cat /etc/wireguard/$HOSTNAME.private.key
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=ローカルホストで WireGuard 接続を設定するには、秘密鍵が必要です。秘密鍵を共有しないでください。
公開鍵を表示します。
#
cat /etc/wireguard/$HOSTNAME.public.key
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=リモートホストで WireGuard 接続を設定するには、公開鍵が必要です。
関連情報
-
man ページの
wg(8)
13.5. nmcli を使用した WireGuard サーバーの設定
NetworkManager で接続プロファイルを作成することで、WireGuard サーバーを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
この手順では、次の設定を前提としています。
サーバー
-
プライベートキー:
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
プライベートキー:
クライアント:
-
Public key:
bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
Public key:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- サーバーの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- クライアントの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
NetworkManager WireGuard 接続プロファイルを追加します。
#
nmcli connection add type wireguard con-name server-wg0 ifname wg0 autoconnect no
server-wg0
という名前のプロファイルを作成し、そのプロファイルに仮想インターフェースwg0
を割り当てます。設定を確定せずに接続を追加した後、接続が自動的に開始しないようにするには、autoconnect
パラメータを無効にします。サーバーのトンネル IPv4 アドレスおよびサブネットマスクを設定します。
#
nmcli connection modify server-wg0 ipv4.method manual ipv4.addresses 192.0.2.1/24
サーバーのトンネル IPv6 アドレスおよびサブネットマスクを設定します。
#
nmcli connection modify server-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::1/32
サーバーの秘密鍵を接続プロファイルに追加します。
#
nmcli connection modify server-wg0 wireguard.private-key "YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg="
着信 WireGuard 接続のポートを設定します。
#
nmcli connection modify server-wg0 wireguard.listen-port 51820
着信 WireGuard 接続を受信するホストでは、常に固定ポート番号を設定してください。ポートを設定しないと、
wg0
インターフェースをアクティブにするたびにランダムな空きポートが使用されます。このサーバーとの通信を許可する各クライアントに、ピア設定を追加します。この設定は手動で追加する必要があります。
nmcli
ユーティリティーでは、対応する接続プロパティーの設定に対応していないためです。/etc/NetworkManager/system-connections/server-wg0.nmconnection
ファイルーを編集し、以下を追加します。[wireguard-peer.bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=] allowed-ips=192.0.2.2;2001:db8:1::2;
-
[wireguard-peer.<public_key_of_the_client>]
エントリーは、クライアントのピアセクションを定義し、セクション名にはクライアントの公開鍵が含まれます。 allowed-ips
パラメーターは、このサーバーへのデータ送信を許可するクライアントのトンネル IP アドレスを設定します。各クライアントにセクションを追加します。
-
server-wg0
接続プロファイルを再読み込みします。#
nmcli connection load /etc/NetworkManager/system-connections/server-wg0.nmconnection
オプション:自動的に起動するように接続を設定し、次のコマンドを実行します。
#
nmcli connection modify server-wg0 autoconnect yes
server-wg0
接続を再アクティブ化します。#
nmcli connection up server-wg0
検証
wg0
デバイスのインターフェース設定を表示します。#
wg show wg0
interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。wg0
デバイスの IP 設定を表示します。#
ip address show wg0
20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::3ef:8863:1ce2:844/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
-
nm-settings(5)
の man ページのWireGuard setting
セクション
13.6. nmtui を使用した WireGuard サーバーの設定
NetworkManager で接続プロファイルを作成することで、WireGuard サーバーを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
この手順では、次の設定を前提としています。
サーバー
-
プライベートキー:
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
プライベートキー:
クライアント:
-
Public key:
bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
Public key:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- サーバーの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- クライアントの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
-
NetworkManager-tui
パッケージをインストールしました。
手順
nmtui
アプリケーションを開始します。# nmtui
-
Edit a connection
選択し、Enter を押します。 - Add を選択し、Enter を押します。
-
リストから
WireGuard
接続タイプを選択し、Enter を押します。 Edit connection
ウィンドウで:-
NetworkManager が接続に割り当てる仮想インターフェース (
wg0
など) の接続名を入力します。 - サーバーの秘密鍵を入力します。
着信 WireGuard 接続のリッスンポート番号 (
51820
など) を設定します。着信 WireGuard 接続を受信するホストでは、常に固定ポート番号を設定してください。ポートを設定しないと、WireGuard はインターフェースをアクティブにするたびにランダムな空きポートを使用します。
Peers
ペインの横にある Add をクリックします。- クライアントの公開鍵を入力します。
-
Allowed IPs
フィールドには、このサーバーへのデータ送信を許可するクライアントのトンネル IP アドレスを設定します。 OK を選択し、Enter を押します。
IPv4 Configuration
の横にある Show を選択し、Enter を押します。-
IPv4 設定方法
Manual
を選択します。 -
トンネルの IPv4 アドレスとサブネットマスクを入力します。
Gateway
フィールドは空のままにします。
-
IPv4 設定方法
IPv6 Configuration
の横にある Show を選択し、Enter を押します。-
IPv6 設定方法
Manual
を選択します。 -
トンネルの IPv6 アドレスとサブネットマスクを入力します。
Gateway
フィールドは空のままにします。
-
IPv6 設定方法
OK を選択し、Enter を押します
-
NetworkManager が接続に割り当てる仮想インターフェース (
- 接続のリストが表示されたウィンドウで、Back を選択し、Enter を押します。
-
NetworkManager TUI
のメインウィンドウで、Quit を選択し、Enter を押します。
検証
wg0
デバイスのインターフェース設定を表示します。# wg show wg0 interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128
出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。wg0
デバイスの IP 設定を表示します。# ip address show wg0 20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::3ef:8863:1ce2:844/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
13.7. nm-connection-editor を使用した WireGuard サーバーの設定
NetworkManager で接続プロファイルを作成することで、WireGuard サーバーを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- サーバーの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- クライアントの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
端末を開き、次のコマンドを入力します。
#
nm-connection-editor
- + ボタンをクリックして、新しいコネクションを追加します。
-
WireGuard
の接続の種類を選択し、作成 をクリックします。 - オプション:接続名を更新します。
-
General
タブで、Connect automatically with priority
を選択します。必要に応じて、優先度の値を設定します。 WireGuard
タブで、以下を行います。-
NetworkManager が接続に割り当てる仮想インターフェース (
wg0
など) の名前を入力します。 - サーバーの秘密鍵を入力します。
着信 WireGuard 接続のリッスンポート番号 (
51820
など) を設定します。着信 WireGuard 接続を受信するホストでは、常に固定ポート番号を設定してください。ポートを設定しないと、WireGuard はインターフェースをアクティブにするたびにランダムな空きポートを使用します。
追加 を選択して、ピアを追加します。
- クライアントの公開鍵を入力します。
-
Allowed IPs
フィールドには、このサーバーへのデータ送信を許可するクライアントのトンネル IP アドレスを設定します。 - 適用 をクリックします。
-
NetworkManager が接続に割り当てる仮想インターフェース (
IPv4 Settings
タブで、以下を行います。-
Method
一覧でManual
を選択します。 -
追加 を選択して、トンネルの IPv4 アドレスとサブネットマスクを入力します。
Gateway
フィールドは空のままにします。
-
IPv6 Settings
タブで、以下を行います。-
Method
一覧でManual
を選択します。 -
追加 を選択して、トンネル IPv6 アドレスとサブネットマスクを入力します。
Gateway
フィールドは空のままにします。
-
- 保存 を選択して、接続プロファイルを保存します。
検証
wg0
デバイスのインターフェース設定を表示します。#
wg show wg0
interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。wg0
デバイスの IP 設定を表示します。#
ip address show wg0
20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::3ef:8863:1ce2:844/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
13.8. wg-quick サービスを使用した WireGuard サーバーの設定
/etc/wireguard/
ディレクトリーに設定ファイルを作成することで、WireGuard サーバーを設定できます。この方法を使用して、NetworkManager からサービスを独立して設定します。
この手順では、次の設定を前提としています。
サーバー
-
プライベートキー:
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
プライベートキー:
クライアント:
-
Public key:
bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
Public key:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- サーバーの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- クライアントの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
wireguard-tools
パッケージをインストールします。#
dnf install wireguard-tools
以下の内容で
/etc/wireguard/wg0.conf
ファイルを作成します。[Interface] Address = 192.0.2.1/24, 2001:db8:1::1/32 ListenPort = 51820 PrivateKey = YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg= [Peer] PublicKey = bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= AllowedIPs = 192.0.2.2, 2001:db8:1::2
[Interface]
セクションでは、サーバー上のインターフェースの WireGuard 設定を説明します。-
Address
: サーバーのトンネル IP アドレスをコンマで区切った一覧です。 -
PrivateKey
: サーバーの秘密鍵。 ListenPort
: WireGuard が着信 UDP 接続をリッスンするポートです。着信 WireGuard 接続を受信するホストでは、常に固定ポート番号を設定してください。ポートを設定しないと、
wg0
インターフェースをアクティブにするたびにランダムな空きポートが使用されます。
-
各
[Peer]
セクションでは、1 台のクライアントの設定を説明します。-
PublicKey
: クライアントの公開鍵。 -
AllowedIPs
: このサーバーにデータを送信できるクライアントのトンネル IP アドレスです。
-
WireGuard 接続を有効にして起動します。
#
systemctl enable --now wg-quick@wg0
systemd インスタンス名は、
/etc/wireguard/
ディレクトリーの設定ファイル名に、.conf
の接尾辞を付けずに、同じ名前にする必要があります。このサービスは、仮想ネットワークインターフェースにもこの名前を使用します。
検証
wg0
デバイスのインターフェース設定を表示します。#
wg show wg0
interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。wg0
デバイスの IP 設定を表示します。#
ip address show wg0
20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
-
wg-quick(8)
の man ページ
13.9. コマンドラインを使用した WireGuard サーバーでの firewalld の設定
クライアントからの着信接続を許可するには、WireGuard サーバーで firewalld
サービスを設定する必要があります。また、クライアントが WireGuard サーバーをデフォルトゲートウェイとして使用し、すべてのトラフィックをトンネル経由でルーティングできるようにするには、マスカレードを有効にする必要があります。
手順
firewalld
サービスで着信接続用の WireGuard ポートを開きます。#
firewall-cmd --permanent --add-port=51820/udp --zone=public
クライアントがすべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用する場合は、
public
ゾーンのマスカレードを有効にします。#
firewall-cmd --permanent --zone=public --add-masquerade
firewalld
ルールを再読み込みします。#
firewall-cmd --reload
検証
public
ゾーンの設定を表示します。#
firewall-cmd --list-all
public (active) ... ports: 51820/udp masquerade: yes ...
関連情報
-
firewall-cmd(1)
の man ページ
13.10. グラフィカルインターフェースを使用した WireGuard サーバーでの firewalld の設定
クライアントからの着信接続を許可するには、WireGuard サーバーで firewalld
サービスを設定する必要があります。また、クライアントが WireGuard サーバーをデフォルトゲートウェイとして使用し、すべてのトラフィックをトンネル経由でルーティングできるようにするには、マスカレードを有効にする必要があります。
手順
-
Super キーを押して、
firewall
を入力し、結果からFirewall
アプリケーションを選択します。 -
Configuration
一覧でPermanent
を選択します。 -
public
ゾーンを選択します。 WireGuard ポートへの着信接続を許可します。
-
Ports
タブで、追加 をクリックします。 - 着信 WireGuard 接続に設定したポート番号を入力します。
-
Protocol
一覧からudp
を選択します。 - OK をクリックします。
-
クライアントがすべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用する場合は、次のコマンドを実行します。
-
public
ゾーンのMasquerading
タブに移動します。 -
Masquerade zone
を選択します。
-
- オプション → Firewalld の再読み込み を選択します。
検証
public
ゾーンの設定を表示します。#
firewall-cmd --list-all
public (active) ... ports: 51820/udp masquerade: yes ...
13.11. nmcli を使用した WireGuard クライアントの設定
NetworkManager で接続プロファイルを作成することで、WireGuard クライアントを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
この手順では、次の設定を前提としています。
クライアント:
-
秘密鍵:
aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
秘密鍵:
サーバー
-
公開鍵:
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
公開鍵:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- クライアントの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- サーバーの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
NetworkManager WireGuard 接続プロファイルを追加します。
#
nmcli connection add type wireguard con-name client-wg0 ifname wg0 autoconnect no
client-wg0
という名前のプロファイルを作成し、そのプロファイルに仮想インターフェースwg0
を割り当てます。設定を確定せずに接続を追加した後、接続が自動的に開始しないようにするには、autoconnect
パラメータを無効にします。オプション:NetworkManager が
client-wg
接続を自動的に起動しないように設定します。#
nmcli connection modify client-wg0 autoconnect no
クライアントのトンネル IPv4 アドレスとサブネットマスクを設定します。
#
nmcli connection modify client-wg0 ipv4.method manual ipv4.addresses 192.0.2.2/24
クライアントのトンネル IPv6 アドレスとサブネットマスクを設定します。
#
nmcli connection modify client-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::2/32
すべてのトラフィックをトンネル経由でルーティングする場合は、サーバーのトンネル IP アドレスをデフォルトゲートウェイとして設定します。
#
nmcli connection modify client-wg0 ipv4.gateway 192.0.2.1 ipv6.gateway 2001:db8:1::1
サーバーの秘密鍵を接続プロファイルに追加します。
#
nmcli connection modify client-wg0 wireguard.private-key "aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A="
/etc/NetworkManager/system-connections/client-wg0.nmconnection
ファイルーを編集し、以下を追加します。[wireguard-peer.UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=] endpoint=server.example.com:51820 allowed-ips=192.0.2.1;2001:db8:1::1; persistent-keepalive=20
-
[wireguard-peer.<public_key_of_the_server>]
エントリーは、サーバーのピアセクションを定義します。セクション名には、サーバーの公開鍵が含まれます。 -
endpoint
パラメーターは、サーバーのホスト名または IP アドレスとポートを設定します。クライアントはこの情報を使用して接続を確立します。 allowed-ips
パラメーターは、このクライアントへのデータ送信を許可する IP アドレスの一覧を設定します。たとえば、このパラメーターを次のように設定します。- サーバーのみがこのクライアントと通信できるようにするサーバーのトンネル IP アドレス。上記の例の値は、このシナリオを設定します。
-
リモートの IPv4 アドレスおよび IPv6 アドレスが、このクライアントと通信できるように許可する
0.0.0.0/0;::/0;
この設定を使用して、すべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用します。
-
オプションの
persistent-keepalive
パラメーターは、WireGuard がサーバーにキープアライブパケットを送信する間隔を秒単位で定義します。ネットワークアドレス変換 (NAT) を使用するネットワークでクライアントを使用する場合、またはしばらく非アクティブにした後にファイアウォールが UDP 接続を閉じる場合は、このパラメーターを設定します。
-
client-wg0
接続プロファイルを再読み込みします。#
nmcli connection load /etc/NetworkManager/system-connections/client-wg0.nmconnection
client-wg0
接続を再アクティブ化します。#
nmcli connection up client-wg0
検証
サーバーの IP アドレスの ping を実行します。
#
ping 192.0.2.1
#ping6 2001:db8:1::1
wg0
デバイスのインターフェース設定を表示します。#
wg show wg0
interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。VPN トンネルを介してトラフィックを送信している場合は、
latest handshake
エントリーとtransfer
エントリーのみが含まれることに注意してください。wg0
デバイスの IP 設定を表示します。#
ip address show wg0
10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::73d9:6f51:ea6f:863e/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
-
nm-settings(5)
の man ページのWireGuard setting
セクション
13.12. nmtui を使用した WireGuard クライアントの設定
NetworkManager で接続プロファイルを作成することで、WireGuard クライアントを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
この手順では、次の設定を前提としています。
クライアント:
-
秘密鍵:
aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
秘密鍵:
サーバー
-
公開鍵:
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
公開鍵:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- クライアントの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- サーバーの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
-
NetworkManager-tui
パッケージをインストールしました
手順
nmtui
アプリケーションを開始します。# nmtui
-
Edit a connection
選択し、Enter を押します。 - Add を選択し、Enter を押します。
-
リストから
WireGuard
接続タイプを選択し、Enter を押します。 Edit connection
ウィンドウで:-
NetworkManager が接続に割り当てる仮想インターフェース (
wg0
など) の接続名を入力します。 クライアントの秘密鍵を入力します。
Peers
ペインの横にある Add をクリックします。- サーバーの公開鍵を入力します。
Allowed IPs
フィールドを設定します。たとえば、次のように設定します。- サーバーのみがこのクライアントと通信できるようにするサーバーのトンネル IP アドレス。
-
リモートの IPv4 アドレスおよび IPv6 アドレスが、このクライアントと通信できるように許可する
0.0.0.0/0,::/0
この設定を使用して、すべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用します。
-
Endpoint
フィールドに、WireGuard サーバーのホスト名または IP アドレスとポートを入力します。hostname_or_IP:port_number
の形式を使用します。 - オプション:ネットワークアドレス変換 (NAT) を使用するネットワークでクライアントを使用するか、またはしばらく非アクティブにした後にファイアウォールが UDP 接続を閉じる場合は、永続的なキープアライブの間隔を秒単位で設定します。この間隔で、クライアントは、キープアライブパケットをサーバーに送信します。
OK を選択し、Enter を押します。
IPv4 Configuration
の横にある Show を選択し、Enter を押します。-
IPv4 設定方法
Manual
を選択します。 -
トンネルの IPv4 アドレスとサブネットマスクを入力します。
Gateway
フィールドは空のままにします。
-
IPv4 設定方法
IPv6 Configuration
の横にある Show を選択し、Enter を押します。-
IPv6 設定方法
Manual
を選択します。 -
トンネルの IPv6 アドレスとサブネットマスクを入力します。
Gateway
フィールドは空のままにします。
-
IPv6 設定方法
-
オプション:
Automatically connect
を選択します。 OK を選択し、Enter を押します
-
NetworkManager が接続に割り当てる仮想インターフェース (
- 接続のリストが表示されたウィンドウで、Back を選択し、Enter を押します。
-
NetworkManager TUI
のメインウィンドウで、Quit を選択し、Enter を押します。
検証
サーバーの IP アドレスの ping を実行します。
# ping 192.0.2.1 # ping6 2001:db8:1::1
wg0
デバイスのインターフェース設定を表示します。# wg show wg0 interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds
出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。VPN トンネルを介してトラフィックを送信している場合は、
latest handshake
エントリーとtransfer
エントリーのみが含まれることに注意してください。wg0
デバイスの IP 設定を表示します。# ip address show wg0 10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::73d9:6f51:ea6f:863e/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
13.13. nm-connection-editor を使用した WireGuard クライアントの設定
NetworkManager で接続プロファイルを作成することで、WireGuard クライアントを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- クライアントの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- サーバーの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
端末を開き、次のコマンドを入力します。
#
nm-connection-editor
- + ボタンをクリックして、新しいコネクションを追加します。
-
WireGuard
の接続の種類を選択し、作成 をクリックします。 - オプション:接続名を更新します。
-
オプション:
General
タブで、Connect automatically with priority
を選択します。 WireGuard
タブで、以下を行います。-
NetworkManager が接続に割り当てる仮想インターフェース (
wg0
など) の名前を入力します。 - クライアントの秘密鍵を入力します。
追加 を選択して、ピアを追加します。
- サーバーの公開鍵を入力します。
Allowed IPs
フィールドを設定します。たとえば、次のように設定します。- サーバーのみがこのクライアントと通信できるようにするサーバーのトンネル IP アドレス。
-
リモートの IPv4 アドレスおよび IPv6 アドレスが、このクライアントと通信できるように許可する
0.0.0.0/0;::/0;
この設定を使用して、すべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用します。
-
Endpoint
フィールドに、WireGuard サーバーのホスト名または IP アドレスとポートを入力します。hostname_or_IP:port_number
の形式を使用します。 - オプション:ネットワークアドレス変換 (NAT) を使用するネットワークでクライアントを使用するか、またはしばらく非アクティブにした後にファイアウォールが UDP 接続を閉じる場合は、永続的なキープアライブの間隔を秒単位で設定します。この間隔で、クライアントは、キープアライブパケットをサーバーに送信します。
- 適用 をクリックします。
-
NetworkManager が接続に割り当てる仮想インターフェース (
IPv4 Settings
タブで、以下を行います。-
Method
一覧でManual
を選択します。 - 追加 を選択して、トンネルの IPv4 アドレスとサブネットマスクを入力します。
-
すべてのトラフィックをトンネル経由でルーティングする場合は、サーバーのトンネル IPv4 アドレスを
Gateway
フィールドに設定します。それ以外の場合は、フィールドを空のままにします。
-
IPv6 Settings
タブで、以下を行います。-
Method
一覧でManual
を選択します。 - 追加 を選択して、トンネル IPv6 アドレスとサブネットマスクを入力します。
-
すべてのトラフィックをトンネル経由でルーティングする場合は、
Gateway
フィールドに、サーバーのトンネル IPv6 アドレスを設定します。それ以外の場合は、フィールドを空のままにします。
-
- 保存 を選択して、接続プロファイルを保存します。
検証
サーバーの IP アドレスの ping を実行します。
#
ping 192.0.2.1
#ping6 2001:db8:1::1
wg0
デバイスのインターフェース設定を表示します。#
wg show wg0
interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。VPN トンネルを介してトラフィックを送信している場合は、
latest handshake
エントリーとtransfer
エントリーのみが含まれることに注意してください。wg0
デバイスの IP 設定を表示します。#
ip address show wg0
10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::73d9:6f51:ea6f:863e/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
13.14. wg-quick サービスを使用した WireGuard クライアントの設定
/etc/wireguard/
ディレクトリーに設定ファイルを作成することで、WireGuard クライアントを設定できます。この方法を使用して、NetworkManager からサービスを独立して設定します。
この手順では、次の設定を前提としています。
クライアント:
-
秘密鍵:
aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
秘密鍵:
サーバー
-
公開鍵:
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
公開鍵:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- クライアントの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- サーバーの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
wireguard-tools
パッケージをインストールします。#
dnf install wireguard-tools
以下の内容で
/etc/wireguard/wg0.conf
ファイルを作成します。[Interface] Address = 192.0.2.2/24, 2001:db8:1::2/32 PrivateKey = aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A= [Peer] PublicKey = UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= AllowedIPs = 192.0.2.1, 2001:db8:1::1 Endpoint = server.example.com:51820 PersistentKeepalive = 20
[Interface]
セクションでは、クライアントのインターフェースの WireGuard 設定を説明します。-
Address
: クライアントのトンネル IP アドレスをコンマで区切った一覧です。 -
PrivateKey
: クライアントの秘密鍵。
-
[Peer]
セクションでは、サーバーの設定を説明します。-
PublicKey
: サーバーの公開鍵。 AllowedIPs
: このクライアントにデータを送信できる IP アドレス。たとえば、このパラメーターを次のように設定します。- サーバーのみがこのクライアントと通信できるようにするサーバーのトンネル IP アドレス。上記の例の値は、このシナリオを設定します。
-
リモートの IPv4 アドレスおよび IPv6 アドレスが、このクライアントと通信できるように許可する
0.0.0.0/0, ::/0
この設定を使用して、すべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用します。
-
Endpoint
: サーバーのホスト名または IP アドレスとポートを設定します。クライアントはこの情報を使用して接続を確立します。 -
オプションの
persistent-keepalive
パラメーターは、WireGuard がサーバーにキープアライブパケットを送信する間隔を秒単位で定義します。ネットワークアドレス変換 (NAT) を使用するネットワークでクライアントを使用する場合、またはしばらく非アクティブにした後にファイアウォールが UDP 接続を閉じる場合は、このパラメーターを設定します。
-
WireGuard 接続を有効にして起動します。
#
systemctl enable --now wg-quick@wg0
systemd インスタンス名は、
/etc/wireguard/
ディレクトリーの設定ファイル名に、.conf
の接尾辞を付けずに、同じ名前にする必要があります。このサービスは、仮想ネットワークインターフェースにもこの名前を使用します。
検証
サーバーの IP アドレスの ping を実行します。
#
ping 192.0.2.1
#ping6 2001:db8:1::1
wg0
デバイスのインターフェース設定を表示します。#
wg show wg0
interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds出力で秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。VPN トンネルを介してトラフィックを送信している場合は、
latest handshake
エントリーとtransfer
エントリーのみが含まれることに注意してください。wg0
デバイスの IP 設定を表示します。#
ip address show wg0
10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32__ scope global valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
-
wg-quick(8)
の man ページ
第14章 VPN 接続の設定
本セクションでは、仮想プライベートネットワーク (VPN) 接続を設定する方法を説明します。
VPN は、インターネットを介してローカルネットワークに接続する方法です。Libreswan
が提供する IPsec
は、VPN を作成するのに推奨される方法です。Libreswan
は、VPN 用のユーザー空間の IPsec
実装です。VPN は、インターネットなどの中間ネットワークにトンネルを設定して、LAN と別のリモート LAN との間の通信を可能にします。セキュリティー上の理由から、VPN トンネルは常に認証と暗号化を使用します。暗号化操作では、Libreswan
は NSS
ライブラリーを使用します。
14.1. control-center による VPN 接続の確立
この手順では、control-center
を使用して VPN 接続を設定する方法を説明します。
前提条件
-
NetworkManager-libreswan-gnome
パッケージがインストールされている。
手順
-
Super キーを押して
Settings
と入力し、Enter を押してcontrol-center
アプリケーションを開きます。 -
左側の
Network
エントリーを選択します。 - + アイコンをクリックします。
-
VPN
を選択します。 Identity
メニューエントリーを選択して、基本的な設定オプションを表示します。一般
Gateway
- リモート VPN ゲートウェイの名前またはIP
アドレスです。認証
Type
-
IKEv2 (証明書)
- クライアントは、証明書により認証されます。これはより安全です (デフォルト)。 IKEv1(XAUTH)
- クライアントは、ユーザー名とパスワード、または事前共有キー (PSK) で認証されます。Advanced
セクションでは、以下の設定が可能です。図14.1 VPN 接続の詳細なオプション
警告gnome-control-center
アプリケーションを使用して IPsec ベースの VPN 接続を設定すると、Advanced
ダイアログには設定が表示されますが、変更することはできません。したがって、詳細な IPsec オプションを変更できません。nm-connection-editor
ツールまたはnmcli
ツールを使用して、詳細なプロパティーの設定を実行します。識別
Domain
- 必要な場合は、ドメイン名を入力します。セキュリティー
-
Phase1 Algorithms
- Libreswan パラメーターike
に対応します。暗号化チャンネルの認証および設定に使用するアルゴリズムを入力します。 Phase2 Algorithms
- Libreswan パラメーターesp
に対応します。IPsec
ネゴシエーションに使用するアルゴリズムを入力します。Disable PFS
フィールドで PFS (Perfect Forward Secrecy) を無効にし、PFS に対応していない古いサーバーとの互換性があることを確認します。-
Phase1 Lifetime
- Libreswan パラメーターikelifetime
に対応します。このパラメーターは、トラフィックの暗号化に使用される鍵がどのぐらい有効であるかどうかを示します。 Phase2 Lifetime
- Libreswan パラメーターsalifetime
に対応します。このパラメーターは、接続の特定インスタンスが最後に終了するまでの時間を指定します。セキュリティー上の理由から、暗号化キーは定期的に変更する必要があります。
Remote network
- Libreswan パラメーターrightsubnet
に対応します。このパラメーターは、VPN から到達できる宛先のプライベートリモートネットワークです。絞り込むことのできる
narrowing
フィールドを確認します。これは IKEv2 ネゴシエーションの場合にのみ有効であることに注意してください。-
Enable fragmentation
- Libreswan パラメーターの断片化
に対応します。IKE 断片化を許可するかどうかを指定します。有効な値は、yes
(デフォルト) またはno
です。 -
Enable Mobike
- Libreswan パラメーターmobike
に対応します。最初から接続を再起動しなくても、接続がエンドポイントを移行することを Mobility and Multihoming Protocol (MOBIKE, RFC 4555) が許可するかどうかを設定します。これは、有線、無線、またはモバイルデータの接続の切り替えを行うモバイルデバイスで使用されます。値は、no
(デフォルト) またはyes
です。
-
IPv4 メニューエントリーを選択します。
IPv4 Method
-
Automatic (DHCP)
- 接続しているネットワークが動的IP
アドレスの割り当てにDHCP
サーバーを使用する場合は、このオプションを選択します。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP
アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞169.254/16
付きのランダムなアドレスが、RFC 3927 に従って割り当てられます。 -
Manual
-IP
アドレスを手動で割り当てる場合は、このオプションを選択します。 Disable
- この接続ではIPv4
は無効です。DNS
DNS
セクションでは、Automatic
がON
になっているときに、これをOFF
に切り替えて、使用する DNS サーバーの IP アドレスを入力します。IP アドレスはコンマで区切ります。Routes
Routes
セクションでは、Automatic
がON
になっている場合は、DHCP からのルートが使用されますが、他の静的ルートを追加することもできることに注意してください。OFF
の場合は、静的ルートだけが使用されます。-
Address
- リモートネットワークまたはホストのIP
アドレスを入力します。 -
Netmask
- 上に入力したIP
アドレスのネットマスクまたはプレフィックス長。 -
Gateway
- 上に入力したリモートネットワーク、またはホストにつながるゲートウェイのIP
アドレス。 Metric
- このルートに付与する優先値であるネットワークコスト。数値が低い方が優先されます。Use this connection only for resources on its network (この接続はネットワーク上のリソースのためだけに使用)
このチェックボックスを選択すると、この接続はデフォルトルートになりません。このオプションを選択すると、この接続で自動的に学習したルートを使用することが明確なトラフィックか、手動で入力したトラフィックのみがこの接続を経由します。
-
VPN
接続のIPv6
設定を構成するには、IPv6 メニューエントリーを選択します。IPv6 Method
-
Automatic
-IPv6
ステートレスアドレス自動設定 (SLAAC) を使用して、ハードウェアのアドレスとルーター通知 (RA) に基づくステートレスの自動設定を作成するには、このオプションを選択します。 -
Automatic, DHCP only
- RA を使用せず、直接DHCPv6
に情報を要求してステートフルな設定を作成する場合は、このオプションを選択します。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP
アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞FE80::0
付きのランダムなアドレスが、RFC 4862 に従って割り当てられます。 -
Manual
-IP
アドレスを手動で割り当てる場合は、このオプションを選択します。 Disable
- この接続ではIPv6
は無効です。DNS
、Routes
、Use this connection only for resources on its network
が、一般的なIPv4
設定となることに注意してください。
-
-
VPN
接続の編集が終了したら、追加 ボタンをクリックして設定をカスタマイズするか、適用 ボタンをクリックして、既存の接続に保存します。 -
プロファイルを
ON
に切り替え、VPN
接続をアクティブにします。
関連情報
-
nm-settings-libreswan(5)
14.2. nm-connection-editor による VPN 接続の設定
この手順では、nm-connection-editor
を使用して VPN 接続を設定する方法を説明します。
前提条件
-
NetworkManager-libreswan-gnome
パッケージがインストールされている。 インターネット鍵交換バージョン 2 (IKEv2) 接続を設定する場合は、以下のようになります。
- 証明書が、IPsec ネットワークセキュリティーサービス (NSS) データベースにインポートされている。
- NSS データベースの証明書のニックネームが知られている。
手順
端末を開き、次のコマンドを入力します。
$ nm-connection-editor
- + ボタンをクリックして、新しい接続を追加します。
-
IPsec ベースの VPN
接続タイプを選択し、作成 をクリックします。 VPN
タブで、以下を行います。Gateway
フィールドに VPN ゲートウェイのホスト名または IP アドレスを入力し、認証タイプを選択します。認証タイプに応じて、異なる追加情報を入力する必要があります。-
IKEv2 (Certifiate)
は、証明書を使用してクライアントを認証します。これは、より安全です。この設定には、IPsec NSS データベースの証明書のニックネームが必要です。 IKEv1 (XAUTH)
は、ユーザー名とパスワード (事前共有鍵) を使用してユーザーを認証します。この設定は、以下の値を入力する必要があります。- ユーザー名
- Password
- グループ名
- シークレット
-
リモートサーバーが IKE 交換のローカル識別子を指定する場合は、
Remote ID
フィールドに正確な文字列を入力します。リモートサーバーで Libreswan を実行すると、この値はサーバーのleftid
パラメーターに設定されます。必要に応じて、詳細 ボタンをクリックして、追加設定を設定します。以下の設定を構成できます。
識別
-
ドメイン
- 必要な場合は、ドメイン名を入力します。
-
セキュリティー
-
Phase1 アルゴリズム
は、Libreswan パラメーターike
に対応します。暗号化チャンネルの認証および設定に使用するアルゴリズムを入力します。 Phase2 アルゴリズム
は、Libreswan パラメーターesp
に対応します。IPsec
ネゴシエーションに使用するアルゴリズムを入力します。Disable PFS
フィールドで PFS (Perfect Forward Secrecy) を無効にし、PFS に対応していない古いサーバーとの互換性があることを確認します。-
Phase1 ライフタイム
は、Libreswan パラメーターikelifetime
に対応します。このパラメーターは、トラフィックの暗号化に使用される鍵が有効である期間を定義します。 -
Phase2 ライフタイム
は、Libreswan パラメーターsalifetime
に対応します。このパラメーターは、セキュリティー関連が有効である期間を定義します。
-
接続性
リモートネットワーク
は、Libreswan パラメーターrightsubnet
に対応し、VPN から到達できる宛先のプライベートリモートネットワークです。絞り込むことのできる
narrowing
フィールドを確認します。これは IKEv2 ネゴシエーションの場合にのみ有効であることに注意してください。-
フラグメンテーションの有効化
は、Libreswan パラメーターの断片化
に対応します。IKE 断片化を許可するかどうかを指定します。有効な値は、yes
(デフォルト) またはno
です。 -
Mobike の有効化
は、Libreswan パラメーターmobike
に対応します。パラメーターは、最初から接続を再起動しなくても、接続がエンドポイントを移行するようにするため、MOBIKE (Mobility and Multihoming Protocol) (RFC 4555) を許可するかどうかを定義します。これは、有線、無線、またはモバイルデータの接続の切り替えを行うモバイルデバイスで使用されます。値は、no
(デフォルト) またはyes
です。
IPv4 設定
タブで、IP 割り当て方法を選択し、必要に応じて、追加の静的アドレス、DNS サーバー、検索ドメイン、ルートを設定します。- 接続を読み込みます。
-
nm-connection-editor
を閉じます。
+ ボタンをクリックして新しい接続を追加する場合は、NetworkManager により、その接続用の新しい設定が作成され、既存の接続の編集に使用するのと同じダイアログが表示されます。このダイアログの違いは、既存の接続プロファイルに Details メニューエントリーがあることです。
関連情報
-
nm-settings-libreswan(5)
の man ページ
14.3. IPsec 接続を高速化するために、ESP ハードウェアオフロードの自動検出と使用を設定
Encapsulating Security Payload (ESP) をハードウェアにオフロードすると、Ethernet で IPsec 接続が加速します。デフォルトでは、Libreswan は、ハードウェアがこの機能に対応しているかどうかを検出するため、ESP ハードウェアのオフロードを有効にします。この手順では、機能が無効または明示的に有効になっている場合に自動検出を有効にする方法を説明します。
前提条件
- ネットワークカードは、ESP ハードウェアオフロードに対応します。
- ネットワークドライバーは、ESP ハードウェアのオフロードに対応します。
- IPsec 接続が設定され、動作します。
手順
-
ESP ハードウェアオフロードサポートの自動検出を使用する接続の
/etc/ipsec.d/
ディレクトリーにある Libreswan 設定ファイルを編集します。 -
接続の設定で
nic-offload
パラメーターが設定されていないことを確認します。 nic-offload
を削除した場合は、ipsec
を再起動します。#
systemctl restart ipsec
検証
ネットワークカードが ESP ハードウェアオフロードサポートに対応している場合は、以下の手順に従って結果を検証します。
IPsec 接続が使用するイーサネットデバイスの
tx_ipsec
カウンターおよびrx_ipsec
カウンターを表示します。#
ethtool -S enp1s0 | egrep "_ipsec"
tx_ipsec: 10 rx_ipsec: 10IPsec トンネルを介してトラフィックを送信します。たとえば、リモート IP アドレスに ping します。
#
ping -c 5 remote_ip_address
イーサネットデバイスの
tx_ipsec
カウンターおよびrx_ipsec
カウンターを再度表示します。#
ethtool -S enp1s0 | egrep "_ipsec"
tx_ipsec: 15 rx_ipsec: 15カウンターの値が増えると、ESP ハードウェアオフロードが動作します。
関連情報
14.4. IPsec 接続を加速化するためにボンディングでの ESP ハードウェアオフロードの設定
Encapsulating Security Payload (ESP) をハードウェアにオフロードすると、IPsec 接続が加速します。フェイルオーバーの理由でネットワークボンディングを使用する場合、ESP ハードウェアオフロードを設定する要件と手順は、通常のイーサーネットデバイスを使用する要件と手順とは異なります。たとえば、このシナリオでは、ボンディングでオフロードサポートを有効にし、カーネルはボンディングのポートに設定を適用します。
前提条件
- ボンディングのすべてのネットワークカードは、ESP ハードウェアオフロードをサポートしています。
-
ネットワークドライバーは、ボンドデバイスで ESP ハードウェアオフロードに対応しています。RHEL では、
ixgbe
ドライバーのみがこの機能をサポートしています。 - ボンディングが設定されており、動作します。
-
ボンディングは
active-backup
モードを使用します。ボンディングドライバーは、この機能の他のモードをサポートしません。 - IPsec 接続が設定され、動作します。
手順
ネットワークボンディングで ESP ハードウェアオフロードのサポートを有効にします。
#
nmcli connection modify bond0 ethtool.feature-esp-hw-offload on
このコマンドにより、
bond0
接続での ESP ハードウェアオフロードのサポートが有効になります。bond0
接続を再度アクティブにします。#
nmcli connection up bond0
ESP ハードウェアオフロードを使用する接続の
/etc/ipsec.d/
ディレクトリーの Libreswan 設定ファイルを編集し、nic-offload=yes
ステートメントを接続エントリーに追加します。conn example ... nic-offload=yes
ipsec
サービスを再起動します。#
systemctl restart ipsec
検証
ボンディングのアクティブなポートを表示します。
#
grep "Currently Active Slave" /proc/net/bonding/bond0
Currently Active Slave: enp1s0アクティブなポートの
tx_ipsec
カウンターおよびrx_ipsec
カウンターを表示します。#
ethtool -S enp1s0 | egrep "_ipsec"
tx_ipsec: 10 rx_ipsec: 10IPsec トンネルを介してトラフィックを送信します。たとえば、リモート IP アドレスに ping します。
#
ping -c 5 remote_ip_address
アクティブなポートの
tx_ipsec
カウンターおよびrx_ipsec
カウンターを再度表示します。#
ethtool -S enp1s0 | egrep "_ipsec"
tx_ipsec: 15 rx_ipsec: 15カウンターの値が増えると、ESP ハードウェアオフロードが動作します。
関連情報
- ネットワークボンディングの設定
-
『
ネットワークのセキュリティー保護
』ドキュメントの「IPsec を使用した VPNの設定」のセクション - 『ネットワークのセキュリティー保護』ドキュメントの「IPsec を使用した VPNの設定」の章
第15章 IP トンネルの設定
VPN と同様に、IP トンネルは、インターネットなどの 3 つ目のネットワーク上で 2 つのネットワークを直接接続します。ただし、すべてのトンネルプロトコルが暗号化に対応しているわけではありません。
トンネルを確立する両方のネットワークのルーターには、最低でも 2 つのインターフェースが必要です。
- ローカルネットワークに接続されているインターフェース 1 つ
- トンネルが確立されたネットワークに接続されたインターフェース 1 つ。
トンネルを確立するには、リモートサブネットから IP アドレスを使用して、両方のルーターに仮想インターフェースを作成します。
NetworkManager は、以下の IP トンネルに対応します。
- GRE (Generic Routing Encapsulation)
- IP6GRE (Generic Routing Encapsulation over IPv6)
- GRETAP (Generic Routing Encapsulation Terminal Access Point)
- IP6GRETAP (Generic Routing Encapsulation Terminal Access Point over IPv6)
- IPIP (IPv4 over IPv4)
- IPIP6 (IPv4 over IPv6)
- IP6IP6 (IPv6 over IPv6)
- SIT (Simple Internet Transition)
このトンネルは、タイプに応じて、OSI (Open Systems Interconnection) モデルのレイヤー 2 または 3 で動作します。
15.1. nmcli を使用して IPIP トンネルを設定して、IPv4 パケットの IPv4 トラフィックをカプセル化します。
IPIP (IP over IP) トンネルは OSI レイヤー 3 で動作し、RFC 2003 で説明されているように IPv4 パケットの IPv4 トラフィックをカプセル化します。
IPIP トンネルを介して送信されるデータは暗号化されません。セキュリティー上の理由から、すでに暗号化されたデータにはトンネルを使用してください (HTTPS などの他のプロトコル)。
IPIP トンネルはユニキャストパケットのみをサポートすることに注意してください。マルチキャストをサポートする IPv4 トンネルが必要な場合は、「nmcli を使用した GRE トンネルを設定して IPv4 パケット内のレイヤー 3 トラフィックをカプセル化」を参照します。
この手順では、以下の図に示すように、2 つの RHEL ルーター間で IPIP トンネルを作成し、インターネット経由で 2 つの内部サブネットに接続する方法を説明します。

前提条件
- 各 RHEL ルーターには、ローカルサブネットに接続されているネットワークインターフェースがあります。
- 各 RHEL ルーターには、インターネットに接続しているネットワークインターフェースがあります。
- トンネル経由で送信するトラフィックは IPv4 ユニキャストです。
手順
ネットワーク A の RHEL ルーターで、次のコマンドを実行します。
tun0
という名前の IPIP トンネルインターフェースを作成します。# nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 198.51.100.5 local 203.0.113.10
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。IPv4 アドレスを
tun0
デバイスに設定します。# nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'
トンネルには、2 つの使用可能な IP アドレスを持つ
/30
サブネットで十分であることに注意してください。IPv 4 設定を使用するように手動で
tun0
接続を設定します。# nmcli connection modify tun0 ipv4.method manual
トラフィックを
172.16.0.0/24
ネットワークにルーティングする静的ルートをルーター B のトンネル IP に追加します。# nmcli connection modify tun0 +ipv4.routes "172.16.0.0/24 10.0.1.2"
tun0
接続を有効にします。# nmcli connection up tun0
パケット転送を有効にします。
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
ネットワーク B の RHEL ルーターで、次のコマンドを実行します。
tun0
という名前の IPIP トンネルインターフェースを作成します。# nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 203.0.113.10 local 198.51.100.5
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。IPv4 アドレスを
tun0
デバイスに設定します。# nmcli connection modify tun0 ipv4.addresses '10.0.1.2/30'
IPv 4 設定を使用するように手動で
tun0
接続を設定します。# nmcli connection modify tun0 ipv4.method manual
トラフィックを
192.0.2.0/24
ネットワークにルーティングする静的ルートをルーター A のトンネル IP に追加します。# nmcli connection modify tun0 +ipv4.routes "192.0.2.0/24 10.0.1.1"
tun0
接続を有効にします。# nmcli connection up tun0
パケット転送を有効にします。
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
検証手順
各 RHEL ルーターから、他のルーターの内部インターフェースの IP アドレスに ping します。
ルーター A で
172.16.0.1
に ping します。# ping 172.16.0.1
ルーター B で
192.0.2.1
に ping します。# ping 192.0.2.1
関連情報
-
nmcli
の man ページ -
nm-settings(5)
の man ページのip-tunnel settings
セクション
15.2. nmcli を使用して GRE トンネルを設定して、IPv4 パケット内のレイヤー 3 トラフィックをカプセル化
Generic Routing Encapsulation (GRE) トンネルは、RFC 2784 で説明されているように、IPv4 パケットでレイヤー 3 トラフィックをカプセル化します。GRE トンネルは、有効なイーサネットタイプで任意のレイヤー 3 プロトコルをカプセル化できます。
GRE トンネルを介して送信されるデータは暗号化されません。セキュリティー上の理由から、すでに暗号化されたデータにはトンネルを使用してください (HTTPS などの他のプロトコル)。
この手順では、以下の図に示すように、2 つの RHEL ルーター間で GRE トンネルを作成し、インターネット経由で 2 つの内部サブネットに接続する方法を説明します。

gre0
デバイス名は予約されています。デバイスに gre1
または別の名前を使用します。
前提条件
- 各 RHEL ルーターには、ローカルサブネットに接続されているネットワークインターフェースがあります。
- 各 RHEL ルーターには、インターネットに接続しているネットワークインターフェースがあります。
手順
ネットワーク A の RHEL ルーターで、次のコマンドを実行します。
gre1
という名前の GRE トンネルインターフェースを作成します。# nmcli connection add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 remote 198.51.100.5 local 203.0.113.10
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。IPv4 アドレスを
gre1
デバイスに設定します。# nmcli connection modify gre1 ipv4.addresses '10.0.1.1/30'
トンネルには、2 つの使用可能な IP アドレスを持つ
/30
サブネットで十分であることに注意してください。手動の IPv 4 設定を使用するように
gre1
接続を設定します。# nmcli connection modify gre1 ipv4.method manual
トラフィックを
172.16.0.0/24
ネットワークにルーティングする静的ルートをルーター B のトンネル IP に追加します。# nmcli connection modify gre1 +ipv4.routes "172.16.0.0/24 10.0.1.2"
gre1
コネクションを有効にします。# nmcli connection up gre1
パケット転送を有効にします。
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
ネットワーク B の RHEL ルーターで、次のコマンドを実行します。
gre1
という名前の GRE トンネルインターフェースを作成します。# nmcli connection add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 remote 203.0.113.10 local 198.51.100.5
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。IPv4 アドレスを
gre1
デバイスに設定します。# nmcli connection modify gre1 ipv4.addresses '10.0.1.2/30'
手動の IPv 4 設定を使用するように
gre1
接続を設定します。# nmcli connection modify gre1 ipv4.method manual
トラフィックを
192.0.2.0/24
ネットワークにルーティングする静的ルートをルーター A のトンネル IP に追加します。# nmcli connection modify gre1 +ipv4.routes "192.0.2.0/24 10.0.1.1"
gre1
コネクションを有効にします。# nmcli connection up gre1
パケット転送を有効にします。
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
検証手順
各 RHEL ルーターから、他のルーターの内部インターフェースの IP アドレスに ping します。
ルーター A で
172.16.0.1
に ping します。# ping 172.16.0.1
ルーター B で
192.0.2.1
に ping します。# ping 192.0.2.1
関連情報
-
nmcli
の man ページ -
nm-settings(5)
の man ページのip-tunnel settings
セクション
15.3. IPv4 でイーサネットフレームを転送するための GRETAP トンネルの設定
GRETAP (Generic Routing Encapsulation Terminal Access Point) トンネルは OSI レベル 2 で動作し、RFC 2784 で説明されているように IPv4 パケットのイーサネットトラフィックをカプセル化します。
GRETAP トンネルを介して送信されるデータは暗号化されません。セキュリティー上の理由から、VPN または別の暗号化された接続にトンネルを確立します。
この手順では、以下の図に示すように、2 つの RHEL ルーター間で GRETAP トンネルを作成し、ブリッジを使用して 2 つのネットワークに接続する方法を説明します。

gretap0
デバイス名が予約されています。デバイスに gretap1
または別の名前を使用します。
前提条件
- 各 RHEL ルーターには、ローカルネットワークに接続されたネットワークインターフェースがあり、IP 設定は割り当てられません。
- 各 RHEL ルーターには、インターネットに接続しているネットワークインターフェースがあります。
手順
ネットワーク A の RHEL ルーターで、次のコマンドを実行します。
bridge0
という名前のブリッジインターフェースを作成します。# nmcli connection add type bridge con-name bridge0 ifname bridge0
ブリッジの IP 設定を構成します。
# nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify bridge0 ipv4.method manual
ローカルネットワークに接続されたインターフェース用の新しい接続プロファイルをブリッジに追加します。
# nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0
GRETAP トンネルインターフェースの新しい接続プロファイルをブリッジに追加します。
# nmcli connection add type ip-tunnel ip-tunnel.mode gretap slave-type bridge con-name bridge0-port2 ifname gretap1 remote 198.51.100.5 local 203.0.113.10 master bridge0
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。オプション:STP (Spanning Tree Protocol)を無効にする必要がない場合は、これを無効にします。
# nmcli connection modify bridge0 bridge.stp no
デフォルトでは、STP は有効になり、接続を使用する前に遅延が生じます。
bridge0
接続がアクティベートするように、ブリッジのポートが自動的にアクティブになるようにします。# nmcli connection modify bridge0 connection.autoconnect-slaves 1
bridge0
接続をアクティブにします。# nmcli connection up bridge0
ネットワーク B の RHEL ルーターで、次のコマンドを実行します。
bridge0
という名前のブリッジインターフェースを作成します。# nmcli connection add type bridge con-name bridge0 ifname bridge0
ブリッジの IP 設定を構成します。
# nmcli connection modify bridge0 ipv4.addresses '192.0.2.2/24' # nmcli connection modify bridge0 ipv4.method manual
ローカルネットワークに接続されたインターフェース用の新しい接続プロファイルをブリッジに追加します。
# nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0
GRETAP トンネルインターフェースの新しい接続プロファイルをブリッジに追加します。
# nmcli connection add type ip-tunnel ip-tunnel.mode gretap slave-type bridge con-name bridge0-port2 ifname gretap1 remote 203.0.113.10 local 198.51.100.5 master bridge0
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。オプション:STP (Spanning Tree Protocol)を無効にする必要がない場合は、これを無効にします。
# nmcli connection modify bridge0 bridge.stp no
bridge0
接続がアクティベートするように、ブリッジのポートが自動的にアクティブになるようにします。# nmcli connection modify bridge0 connection.autoconnect-slaves 1
bridge0
接続をアクティブにします。# nmcli connection up bridge0
検証手順
両方のルーターで、
enp1s0
接続およびgretap1
接続が接続され、CONNECTION
列にポートの接続名が表示されていることを確認します。# nmcli device nmcli device DEVICE TYPE STATE CONNECTION ... bridge0 bridge connected bridge0 enp1s0 ethernet connected bridge0-port1 gretap1 iptunnel connected bridge0-port2
各 RHEL ルーターから、他のルーターの内部インターフェースの IP アドレスに ping します。
ルーター A で
192.0.2.2
に ping します。# ping 192.0.2.2
ルーター B で
192.0.2.1
に ping します。# ping 192.0.2.1
関連情報
-
nmcli
の man ページ -
nm-settings(5)
の man ページのip-tunnel settings
セクション
15.4. 関連情報
-
man ページの
ip-link(8)
第16章 ポートミラーリング
ネットワーク管理者は、ポートミラーリングを使用して、あるネットワークデバイスから別のネットワークデバイスに通信中の受信および送信トラフィックを複製できます。管理者は、ポートミラーリングを使用してネットワークトラフィックを監視し、ネットワークデータを収集します。
- ネットワークの問題のデバッグしてネットワークフローを調整する
- ネットワークトラフィックを調べて分析し、ネットワークの問題をトラブルシュートする
- 侵入を検出する
16.1. nmcli を使用したネットワークインターフェースのミラーリング
NetworkManager を使用してポートのミラーリングを設定できます。以下の手順では、トラフィック制御 (tc
) ルールおよびフィルターを enp1s0
ネットワークインターフェースに追加することで、enp1s0
から enp7s0
にネットワークトラフィックをミラーリングします。
前提条件
- ネットワークトラフィックをミラーリングするネットワークインターフェース。
手順
ネットワークトラフィックをミラーリングするネットワーク接続プロファイルを追加します。
# nmcli connection add type ethernet ifname enp1s0 con-name enp1s0 autoconnect no
10:
handle で送信(送信)トラフィックについて、prio
qdisc
をenp1s0
に割り当てます。# nmcli connection modify enp1s0 +tc.qdisc "root prio handle 10:"
子なしで割り当てられた
prio
qdisc
では、フィルターを割り当てることができます。ffff:
handle を使用して、受信トラフィックのqdisc
を追加します。# nmcli connection modify enp1s0 +tc.qdisc "ingress handle ffff:"
以下のフィルターを追加して、ingress および egress
qdiscs
のパケットを一致させ、enp7s0
にミラーリングします。# nmcli connection modify enp1s0 +tc.tfilter "parent ffff: matchall action mirred egress mirror dev enp7s0" # nmcli connection modify enp1s0 +tc.tfilter "parent 10: matchall action mirred egress mirror dev enp7s0"
matchall
フィルターはすべてのパケットに一致し、mirred
アクションではパケットを宛先にリダイレクトします。接続をアクティベートします。
# nmcli connection up enp1s0
検証手順
tcpdump
ユーティリティーをインストールします。# dnf install tcpdump
ターゲットデバイスでミラーリングされたトラフィック(
enp7s0
)を表示します。# tcpdump -i enp7s0
第17章 すべての MAC アドレスからのトラフィックを受け入れるようにネットワークデバイスを設定
ネットワークデバイスは通常、コントローラーが受信するようにプログラムされているパケットを傍受して読み取ります。ネットワークデバイスを設定して、仮想スイッチまたはポートグループレベルのすべての MAC アドレスからのトラフィックを受け入れることができます。
このネットワークモードを使用すると、以下を行うことができます。
- ネットワーク接続問題を診断する
- セキュリティー上の理由から、ネットワークアクティビティーを監視する
- 転送中のプライベートデータまたはネットワークへの侵入を傍受する
本セクションでは、iproute2
ユーティリティー、nmcli
ユーティリティー、または nmstatectl
ユーティリティーを使用して、すべての MAC アドレスからのトラフィックを受け入れるようにネットワークデバイスを設定する方法を説明します。InfiniBand
を除くあらゆる種類のネットワークデバイスに対してこのモードを有効にできます。
17.1. iproute2 を使用して、すべてのトラフィックを受け入れるようにネットワークデバイスを一時的に設定する
この手順では、MAC アドレスに関係なくすべてのトラフィックを受け入れるようにネットワークデバイスを設定する方法を説明します。iproute2
ユーティリティーを使用して行った変更は一時的なもので、マシンの再起動後に失われます。
手順
オプション:ネットワークインターフェースを表示して、すべてのトラフィックを受信するインターフェースを識別します。
# ip a 1: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 98:fa:9b:a4:34:09 brd ff:ff:ff:ff:ff:ff 2: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 6a:fd:16:b0:83:5c brd ff:ff:ff:ff:ff:ff 3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 ...
このプロパティーを有効または無効にするには、デバイスを変更します。
enp1s0
のaccept-all-mac-addresses
モードを有効にするには、次のコマンドを実行します。# ip link set enp1s0 promisc on
enp1s0
のaccept-all-mac-addresses
モードを無効にするには、次のコマンドを実行します。# ip link set enp1s0 promisc off
検証手順
accept-all-mac-addresses
モードが有効になっていることを確認するには、次のコマンドを実行します。# ip link show enp1s0 1: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether 98:fa:9b:a4:34:09 brd ff:ff:ff:ff:ff:ff
機器の説明の PROMISC
フラグは、モードが有効であることを示しています。
17.2. nmcli を使用して、すべてのトラフィックを受け入れるようにネットワークデバイスを永続的に設定
この手順では、nmcli
コマンドを使用して、MAC アドレスに関係なくトラフィックを受け入れるようにネットワークデバイスを設定する方法を説明します。
手順
オプション:ネットワークインターフェースを表示して、すべてのトラフィックを受信するインターフェースを識別します。
# ip a 1: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 98:fa:9b:a4:34:09 brd ff:ff:ff:ff:ff:ff 2: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 6a:fd:16:b0:83:5c brd ff:ff:ff:ff:ff:ff 3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 ...
接続がない場合は、新しい接続を作成できます。
ネットワークデバイスを変更して、このプロパティーを有効または無効にします。
enp1s0
のethernet.accept-all-mac-addresses
モードを有効にするには、以下を実行します。# nmcli connection modify enp1s0 ethernet.accept-all-mac-addresses yes
enp1s0
のaccept-all-mac-addresses
モードを無効にするには、次のコマンドを実行します。# nmcli connection modify enp1s0 ethernet.accept-all-mac-addresses no
接続を再度アクティブにして、変更を適用するには、以下のコマンドを実行します。
# nmcli connection up enp1s0
検証手順
ethernet.accept-all-mac-addresses
モードが有効になっていることを確認するには、次のコマンドを実行します。# nmcli connection show enp1s0 ... 802-3-ethernet.accept-all-mac-addresses:1 (true)
この802-3-ethernet.accept-all-mac-addresses: true
は、モードが有効であることを示しています。
17.3. nmstatectl を使用してすべてのトラフィックを受け入れるようにネットワークデバイスを永続的に設定
この手順では、nmstatectl
ユーティリティを使用して、MAC アドレスに関係なくすべてのトラフィックを受け入れるようにネットワークデバイスを設定する方法を説明します。
前提条件
-
nmstate
パッケージがインストールされている。 -
デバイスの設定に使用した
.yml
ファイルが利用できます。
手順
enp1s0 コネクションに存在する
enp1s0.yml
を修正し、以下の内容を追加します。--- interfaces: - name: enp1s0 type: ethernet state: up accept -all-mac-address: true
ネットワーク設定を適用します。
# nmstatectl apply ~/enp1s0.yml
検証手順
802-3-ethernet.accept-all-mac-addresses
モードが有効になっていることを確認するには、次のコマンドを実行します。# nmstatectl show enp1s0 interfaces: - name: enp1s0 type: ethernet state: up accept-all-mac-addresses: true ...
この802-3-ethernet.accept-all-mac-addresses: true
は、モードが有効であることを示しています。
関連情報
-
nmstatectl
の詳細は、nmstatectl(8)
man ページを参照してください。 -
設定例は、
/usr/share/doc/nmstate/examples/
ディレクトリーを参照してください。
第18章 FreeRADIUS バックエンドで hostapd を使用する LAN クライアント用の 802.1x ネットワーク認証サービスの設定
IEEE 802.1X 標準は、許可されていないクライアントからネットワークを保護するためのセキュアな認証および承認方法を定義しています。hostapd
サービスと FreeRADIUS を使用すると、ネットワークにネットワークアクセス制御 (NAC) を提供できます。
本書では、RHEL ホストは、さまざまなクライアントを既存のネットワークに接続するためのブリッジとして機能します。ただし、RHEL ホストは、認証されたクライアントのみにネットワークへのアクセスを許可します。

18.1. 前提条件
FreeRADIUS のクリーンインストール。
freeradius
パッケージがすでにインストールされている場合は、/etc/raddb/
ディレクトリーを削除し、アンインストールしてから、パッケージを再度インストールします。/etc/raddb/
ディレクトリー内の権限とシンボリックリンクが異なるため、dnf reinstall
コマンドを使用してパッケージを再インストールしないでください。
18.2. オーセンティケーターにブリッジを設定する
ネットワークブリッジは、MAC アドレスのテーブルに基づいてホストとネットワーク間のトラフィックを転送するリンク層デバイスです。RHEL を 802.1X オーセンティケーターとして設定する場合は、認証を実行するインターフェイスと LAN インターフェイスの両方をブリッジに追加します。
前提条件
- サーバーには複数のイーサネットインターフェイスがあります。
手順
ブリッジインターフェイスを作成します。
# nmcli connection add type bridge con-name br0 ifname br0
イーサネットインターフェイスをブリッジに割り当てます。
# nmcli connection add type ethernet slave-type bridge con-name br0-port1 ifname enp1s0 master br0 # nmcli connection add type ethernet slave-type bridge con-name br0-port2 ifname enp7s0 master br0 # nmcli connection add type ethernet slave-type bridge con-name br0-port3 ifname enp8s0 master br0 # nmcli connection add type ethernet slave-type bridge con-name br0-port4 ifname enp9s0 master br0
ブリッジが拡張認証プロトコル over LAN (EAPOL) パケットを転送できるようにします。
# nmcli connection modify br0 group-forward-mask 8
ポートを自動的にアクティブ化するように接続を設定します。
# nmcli connection modify br0 connection.autoconnect-slaves 1
接続をアクティベートします。
# nmcli connection up br0
検証
特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。
# ip link show master br0 3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff ...
EAPOL パケットの転送が
br0
デバイスで有効になっているかどうかを確認します。# cat /sys/class/net/br0/bridge/group_fwd_mask 0x8
コマンドが
0x8
を返す場合、転送が有効になります。
関連情報
-
man ページの
nm-settings(5)
18.3. FreeRADIUS による証明書の要件
セキュアな FreeRADIUS サービスを利用するには、さまざまな目的で TLS 証明書が必要です。
サーバーへの暗号化された接続用の TLS サーバー証明書。信頼済み認証局 (CA) を使用して証明書を発行します。
サーバー証明書には、
TLS Web Server Authentication
に設定された拡張鍵用途 (EKU) フィールドが必要です。拡張認証プロトコルトランスポート層セキュリティー (EAP-TLS) のために同じ CA によって発行されたクライアント証明書。EAP-TLS は証明書ベースの認証を提供し、デフォルトで有効になっています。
クライアント証明書では、EKU フィールドを
TLS Web Client Authentication
に設定する必要があります。
接続をセキュリティー保護するには、会社の CA を使用するか、独自の CA を作成して FreeRADIUS の証明書を発行します。パブリック CA を使用する場合は、パブリック CA がユーザーを認証し、EAP-TLS のクライアント証明書を発行できるようにします。
18.4. テスト目的で FreeRADIUS サーバーに一連の証明書を作成する
テストの目的で、freeradius
パッケージはスクリプトと設定ファイルを /etc/raddb/certs/
ディレクトリーにインストールして、独自の認証局 (CA) を作成し、証明書を発行します。
デフォルト設定を使用する場合、これらのスクリプトによって生成された証明書は 60 日後に期限切れになり、キーは安全でないパスワード (何でも) を使用します。ただし、CA、サーバー、およびクライアントの設定をカスタマイズできます。
手順を実行すると、本書の後半で必要となる次のファイルが作成されます。
-
/etc/raddb/certs/ca.pem
:CA 証明書 -
/etc/raddb/certs/server.key
:サーバー証明書の秘密鍵 -
/etc/raddb/certs/server.pem
:サーバー証明書 -
/etc/raddb/certs/client.key
:クライアント証明書の秘密鍵 -
/etc/raddb/certs/client.pem
:クライアント証明書
前提条件
-
freeradius
パッケージをインストールしました。
手順
/etc/raddb/certs/
ディレクトリーに移動します。# cd /etc/raddb/certs/
オプション:CA 設定をカスタマイズします。
... [ req ] default_bits = 2048 input_password = ca_password output_password = ca_password ... [certificate_authority] countryName = US stateOrProvinceName = North Carolina localityName = Raleigh organizationName = Example Inc. emailAddress = admin@example.org commonName = "Example Certificate Authority" ...
オプション:サーバー設定をカスタマイズします。
... [ CA_default ] default_days = 730 ... [ req ] distinguished_name = server default_bits = 2048 input_password = key_password output_password = key_password ... [server] countryName = US stateOrProvinceName = North Carolina localityName = Raleigh organizationName = Example Inc. emailAddress = admin@example.org commonName = "Example Server Certificate" ...
オプション:クライアント設定をカスタマイズします。
... [ CA_default ] default_days = 365 ... [ req ] distinguished_name = client default_bits = 2048 input_password = password_on_private_key output_password = password_on_private_key ... [client] countryName = US stateOrProvinceName = North Carolina localityName = Raleigh organizationName = Example Inc. emailAddress = user@example.org commonName = user@example.org ...
証明書を作成します。
# make all
/etc/raddb/certs/server.pem
ファイルのグループをradiusd
に変更します。# chgrp radiusd /etc/raddb/certs/server.pem*
関連情報
-
/etc/raddb/certs/README.md
18.5. EAP を使用してネットワーククライアントを安全に認証するための FreeRADIUS の設定
FreeRADIUS は、拡張認証プロトコル (EAP) のさまざまな方法をサポートしています。ただし、セキュアなネットワークの場合、本書では、次のセキュアな EAP 認証方法のみをサポートするように FreeRADIUS を設定する方法について説明します。
- EAP-TLS(Transport Layer Security) は、セキュアな TLS 接続を使用して、証明書を使用してクライアントを認証します。EAP-TLS を使用するには、各ネットワーククライアントの TLS クライアント証明書とサーバーのサーバー証明書が必要です。同じ認証局 (CA) が証明書を発行している必要があることに注意してください。使用する CA によって発行されたすべてのクライアント証明書は FreeRADIUS サーバーに対して認証できるため、常に独自の CA を使用して証明書を作成してください。
- EAP-TTLS(Tunneled Transport Layer Security) は、セキュアな TLS 接続を使用し、パスワード認証プロトコル (PAP) やチャレンジハンドシェイク認証プロトコル (CHAP) などのメカニズムを使用してクライアントを認証します。EAP-TTLS を使用するには、TLS サーバー証明書が必要です。
- EAP-PEAP (保護された拡張認証プロトコル) は、トンネルを設定するための外部認証プロトコルとしてセキュアな TLS 接続を使用します。オーセンティケーターは、RADIUS サーバーの証明書を認証します。その後、サプリカントは、Microsoft チャレンジハンドシェイク認証プロトコルバージョン 2 (MS-CHAPv2) またはその他の方法を使用して、暗号化されたトンネルを介して認証します。
デフォルトの FreeRADIUS 設定ファイルはドキュメントとして機能し、すべてのパラメーターとディレクティブを記述します。特定の機能を無効にする場合は、設定ファイルの対応する部分を削除するのではなく、コメントアウトしてください。これにより、設定ファイルと含まれているドキュメントの構造を保持できます。
前提条件
-
freeradius
パッケージをインストールしました。 -
/etc/raddb/
ディレクトリー内の設定ファイルは変更されておらず、freeradius
パッケージによって提供されています。 サーバーには次のファイルがあります。
-
FreeRADIUS ホストの TLS 秘密鍵:
/etc/raddb/certs/server.key
-
FreeRADIUS ホストの TLS サーバー証明書:
/etc/raddb/certs/server.pem
-
TLS CA 証明書:
/etc/raddb/certs/ca.pem
ファイルを別の場所に保存する場合、またはファイルの名前が異なる場合は、それに応じて
/etc/raddb/mods-available/eap
ファイルのprivate_key_file
、certificate_file
、およびca_file
パラメーターを設定します。-
FreeRADIUS ホストの TLS 秘密鍵:
手順
Diffie-Hellman (DH) パラメーターを持つ
/etc/raddb/certs/dh
が存在しない場合は、作成します。たとえば、2048 ビットの素数を持つ DH ファイルを作成するには、次のように入力します。# openssl dhparam -out /etc/raddb/certs/dh 2048
セキュリティー上の理由から、素数が 2048 ビット未満の DH ファイルは使用しないでください。ビット数によっては、ファイルの作成に数分かかる場合があります。
TLS 秘密鍵、サーバー証明書、CA 証明書、および DH パラメーターを使用したファイルにセキュアな権限を設定します。
# chmod 640 /etc/raddb/certs/server.key /etc/raddb/certs/server.pem /etc/raddb/certs/ca.pem /etc/raddb/certs/dh # chown root:radiusd /etc/raddb/certs/server.key /etc/raddb/certs/server.pem /etc/raddb/certs/ca.pem /etc/raddb/certs/dh
/etc/raddb/mods-available/eap
ファイルを編集します。private_key_password
パラメーターで秘密鍵のパスワードを設定します。eap { ... tls-config tls-common { ... private_key_password = key_password ... } }
環境に応じて、
eap
ディレクティブのdefault_eap_type
パラメーターを、使用するプライマリー EAP タイプに設定します。eap { ... default_eap_type = ttls ... }
安全な環境では、
ttls
、tls
、またはpeap
のみを使用してください。安全でない EAP-MD5 認証方式を無効にするには、
md5
ディレクティブをコメントアウトします。eap { ... # md5 { # } ... }
デフォルトの設定ファイルでは、他の安全でない EAP 認証方法がデフォルトでコメントアウトされていることに注意してください。
/etc/raddb/sites-available/default
ファイルを編集し、eap
以外のすべての認証方法をコメントアウトします。authenticate { ... # Auth-Type PAP { # pap # } # Auth-Type CHAP { # chap # } # Auth-Type MS-CHAP { # mschap # } # mschap # digest ... }
これにより、EAP のみが有効になり、プレーンテキスト認証方式が無効になります。
/etc/raddb/clients.conf
ファイルを編集します。localhost
およびlocalhost_ipv6
クライアントディレクティブでセキュアなパスワードを設定します。client localhost { ipaddr = 127.0.0.1 ... secret = client_password ... } client localhost_ipv6 { ipv6addr = ::1 secret = client_password }
リモートホスト上のネットワークオーセンティケーターなどの RADIUS クライアントが FreeRADIUS サービスにアクセスできる必要がある場合は、それらに対応するクライアントディレクティブを追加します。
client hostapd.example.org { ipaddr = 192.0.2.2/32 secret = client_password }
ipaddr
パラメーターは IPv4 および IPv6 アドレスを受け入れ、オプションのクラスレスドメイン間ルーティング (CIDR) 表記を使用して範囲を指定できます。ただし、このパラメーターに設定できる値は 1 つだけです。たとえば、IPv4 および IPv6 アドレスへのアクセスを許可するには、2 つのクライアントディレクティブを追加します。ホスト名や IP 範囲が使用される場所を説明する単語など、クライアントディレクティブのわかりやすい名前を使用します。
EAP-TTLS または EAP-PEAP を使用する場合は、ユーザーを
/etc/raddb/users
ファイルに追加します。example_user Cleartext-Password := "user_password"
証明書ベースの認証 (EAP-TLS) を使用する必要があるユーザーの場合、エントリーを追加しないでください。
設定ファイルを確認します。
# radiusd -XC ... Configuration appears to be OK
radiusd
サービスを有効にして開始します。# systemctl enable --now radiusd
トラブルシューティング
radiusd
サービスを停止します。# systemctl stop radiusd
デバッグモードでサービスを開始します。
# radiusd -X ... Ready to process requests
-
Verification
セクションで参照されているように、FreeRADIUS ホストで認証テストを実行します。
次のステップ
- 不要な認証方法や使用しないその他の機能を無効にします。
18.6. 有線ネットワークでのオーセンティケーターとしての hostapd の設定
ホストアクセスポイントデーモン (hostapd
) サービスは、有線ネットワークでオーセンティケーターとして機能し、802.1X 認証を提供できます。このため、hostapd
サービスには、クライアントを認証する RADIUS サーバーが必要です。
hostapd
サービスは、統合された RADIUS サーバーを提供します。ただし、統合 RADIUS サーバーはテスト目的でのみ使用してください。実稼働環境では、さまざまな認証方法やアクセス制御などの追加機能をサポートする FreeRADIUS サーバーを使用します。
hostapd
サービスはトラフィックプレーンと相互作用しません。このサービスは、オーセンティケーターとしてのみ機能します。たとえば、hostapd
制御インターフェイスを使用するスクリプトまたはサービスを使用して、認証イベントの結果に基づいてトラフィックを許可または拒否します。
前提条件
-
hostapd
パッケージをインストールしました。 - FreeRADIUS サーバーが設定され、クライアントを認証する準備が整いました。
手順
次のコンテンツで
/etc/hostapd/hostapd.conf
ファイルを作成します。# General settings of hostapd # =========================== # Control interface settings ctrl_interface=/var/run/hostapd ctrl_interface_group=wheel # Enable logging for all modules logger_syslog=-1 logger_stdout=-1 # Log level logger_syslog_level=2 logger_stdout_level=2 # Wired 802.1X authentication # =========================== # Driver interface type driver=wired # Enable IEEE 802.1X authorization ieee8021x=1 # Use port access entry (PAE) group address # (01:80:c2:00:00:03) when sending EAPOL frames use_pae_group_addr=1 # Network interface for authentication requests interface=br0 # RADIUS client configuration # =========================== # Local IP address used as NAS-IP-Address own_ip_addr=192.0.2.2 # Unique NAS-Identifier within scope of RADIUS server nas_identifier=hostapd.example.org # RADIUS authentication server auth_server_addr=192.0.2.1 auth_server_port=1812 auth_server_shared_secret=client_password # RADIUS accounting server acct_server_addr=192.0.2.1 acct_server_port=1813 acct_server_shared_secret=client_password
この設定で使用されるパラメーターの詳細は、
/usr/share/doc/hostapd/hostapd.conf
サンプル設定ファイルの説明を参照してください。hostapd
サービスを有効にして開始します。# systemctl enable --now hostapd
検証
参照:
トラブルシューティング
hostapd
サービスを停止します。# systemctl stop hostapd
デバッグモードでサービスを開始します。
# hostapd -d /etc/hostapd/hostapd.conf
-
Verification
セクションで参照されているように、FreeRADIUS ホストで認証テストを実行します。
関連情報
-
hostapd.conf(5)
man page -
/usr/share/doc/hostapd/hostapd.conf
18.7. FreeRADIUS サーバーまたはオーセンティケーターに対する EAP-TTLS 認証のテスト
Tunneled Transport Layer Security (EAP-TTLS) を介した拡張認証プロトコル (EAP) を使用した認証が期待どおりに機能するかどうかをテストするには、次の手順を実行します。
- FreeRADIUS サーバーをセットアップした後
-
hostapd
サービスを 802.1X ネットワーク認証のオーセンティケーターとして設定した後。
この手順で使用されるテストユーティリティーの出力は、EAP 通信に関する追加情報を提供し、問題のデバッグに役立ちます。
前提条件
認証する場合:
FreeRADIUS サーバー:
-
hostapd
パッケージによって提供されるeapol_test
ユーティリティーがインストールされます。 - この手順を実行するクライアントは、FreeRADIUS サーバーのクライアントデータベースで承認されています。
-
-
同じ名前のパッケージによって提供されるオーセンティケーター、
wpa_supplicant
ユーティリティーがインストールされます。
-
認証局 (CA) 証明書を
/etc/pki/tls/certs/ca.pem
ファイルに保存しました。
手順
次のコンテンツで
/etc/wpa_supplicant/wpa_supplicant-TTLS.conf
ファイルを作成します。ap_scan=0 network={ eap=TTLS eapol_flags=0 key_mgmt=IEEE8021X # Anonymous identity (sent in unencrypted phase 1) # Can be any string anonymous_identity="anonymous" # Inner authentication (sent in TLS-encrypted phase 2) phase2="auth=PAP" identity="example_user" password="user_password" # CA certificate to validate the RADIUS server's identity ca_cert="/etc/pki/tls/certs/ca.pem" }
認証するには:
FreeRADIUS サーバーには、次のように入力します。
# eapol_test -c /etc/wpa_supplicant/wpa_supplicant-TTLS.conf -a 192.0.2.1 -s client_password ... EAP: Status notification: remote certificate verification (param=success) ... CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully ... SUCCESS
-a
オプションは FreeRADIUS サーバーの IP アドレスを定義し、-s
オプションは FreeRADIUS サーバーのクライアント設定でコマンドを実行するホストのパスワードを指定します。オーセンティケーター。次のように入力します。
# wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant-TTLS.conf -D wired -i enp0s31f6 ... enp0s31f6: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully ...
-i
オプションは、wpa_supplicant
が LAN(EAPOL) パケットを介して拡張認証プロトコルを送信するネットワークインターフェイス名を指定します。デバッグ情報の詳細は、コマンドに
-d
オプションを渡してください。
関連情報
-
/usr/share/doc/wpa_supplicant/wpa_supplicant.conf
18.8. FreeRADIUS サーバーまたはオーセンティケーターに対する EAP-TLS 認証のテスト
拡張認証プロトコル (EAP) Transport Layer Security (EAP-TLS) を使用した認証が期待どおりに機能するかどうかをテストするには、次の手順を実行します。
- FreeRADIUS サーバーをセットアップした後
-
hostapd
サービスを 802.1X ネットワーク認証のオーセンティケーターとして設定した後。
この手順で使用されるテストユーティリティーの出力は、EAP 通信に関する追加情報を提供し、問題のデバッグに役立ちます。
前提条件
認証する場合:
FreeRADIUS サーバー:
-
hostapd
パッケージによって提供されるeapol_test
ユーティリティーがインストールされます。 - この手順を実行するクライアントは、FreeRADIUS サーバーのクライアントデータベースで承認されています。
-
-
同じ名前のパッケージによって提供されるオーセンティケーター、
wpa_supplicant
ユーティリティーがインストールされます。
-
認証局 (CA) 証明書を
/etc/pki/tls/certs/ca.pem
ファイルに保存しました。 - クライアント証明書を発行した CA は、FreeRADIUS サーバーのサーバー証明書を発行した CA と同じです。
-
クライアント証明書を
/etc/pki/tls/certs/client.pem
ファイルに保存しました。 -
クライアントの秘密鍵を
/etc/pki/tls/private/client.key
に保存しました
手順
次のコンテンツで
/etc/wpa_supplicant/wpa_supplicant-TLS.conf
ファイルを作成します。ap_scan=0 network={ eap=TLS eapol_flags=0 key_mgmt=IEEE8021X identity="user@example.org" client_cert="/etc/pki/tls/certs/client.pem" private_key="/etc/pki/tls/private/client.key" private_key_passwd="password_on_private_key" # CA certificate to validate the RADIUS server's identity ca_cert="/etc/pki/tls/certs/ca.pem" }
認証するには:
FreeRADIUS サーバーには、次のように入力します。
# eapol_test -c /etc/wpa_supplicant/wpa_supplicant-TLS.conf -a 192.0.2.1 -s client_password ... EAP: Status notification: remote certificate verification (param=success) ... CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully ... SUCCESS
-a
オプションは FreeRADIUS サーバーの IP アドレスを定義し、-s
オプションは FreeRADIUS サーバーのクライアント設定でコマンドを実行するホストのパスワードを指定します。オーセンティケーター。次のように入力します。
# wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant-TLS.conf -D wired -i enp0s31f6 ... enp0s31f6: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully ...
-i
オプションは、wpa_supplicant
が LAN(EAPOL) パケットを介して拡張認証プロトコルを送信するネットワークインターフェイス名を指定します。デバッグ情報の詳細は、コマンドに
-d
オプションを渡してください。
関連情報
-
/usr/share/doc/wpa_supplicant/wpa_supplicant.conf
18.9. hostapd 認証イベントに基づくトラフィックのブロックと許可
hostapd
サービスはトラフィックプレーンと相互作用しません。このサービスは、オーセンティケーターとしてのみ機能します。ただし、認証イベントの結果に基づいてトラフィックを許可および拒否するスクリプトを作成できます。
この手順はサポートされておらず、エンタープライズ対応のソリューションではありません。hostapd_cli
によって取得されたイベントを評価することにより、トラフィックをブロックまたは許可する方法のみを示しています。
802-1x-tr-mgmt
systemd サービスが開始すると、RHEL は LAN(EAPOL) パケットを介した拡張認証プロトコルを除く hostapd
のリッスンポート上のすべてのトラフィックをブロックし、hostapd_cli
ユーティリティーを使用して hostapd
制御インターフェイスに接続します。次に、/usr/local/bin/802-1x-tr-mgmt
スクリプトがイベントを評価します。hostapd_cli
が受信するさまざまなイベントに応じて、スクリプトは MAC アドレスのトラフィックを許可またはブロックします。802-1x-tr-mgmt
サービスが停止すると、すべてのトラフィックが自動的に再度許可されることに注意してください。
hostapd
サーバーでこの手順を実行します。
前提条件
-
hostapd
サービスが設定され、サービスはクライアントを認証する準備ができています。
手順
次のコンテンツで
/usr/local/bin/802-1x-tr-mgmt
ファイルを作成します。#!/bin/sh if [ "x$1" == "xblock_all" ] then nft delete table bridge tr-mgmt-br0 2>/dev/null || true nft -f - << EOF table bridge tr-mgmt-br0 { set allowed_macs { type ether_addr } chain accesscontrol { ether saddr @allowed_macs accept ether daddr @allowed_macs accept drop } chain forward { type filter hook forward priority 0; policy accept; meta ibrname "br0" jump accesscontrol } } EOF echo "802-1x-tr-mgmt Blocking all traffic through br0. Traffic for given host will be allowed after 802.1x authentication" elif [ "x$1" == "xallow_all" ] then nft delete table bridge tr-mgmt-br0 echo "802-1x-tr-mgmt Allowed all forwarding again" fi case ${2:-NOTANEVENT} in AP-STA-CONNECTED | CTRL-EVENT-EAP-SUCCESS | CTRL-EVENT-EAP-SUCCESS2) nft add element bridge tr-mgmt-br0 allowed_macs { $3 } echo "$1: Allowed traffic from $3" ;; AP-STA-DISCONNECTED | CTRL-EVENT-EAP-FAILURE) nft delete element bridge tr-mgmt-br0 allowed_macs { $3 } echo "802-1x-tr-mgmt $1: Denied traffic from $3" ;; esac
次のコンテンツで
/etc/systemd/system/802-1x-tr-mgmt@.service
サービスファイルを作成します。[Unit] Description=Example 802.1x traffic management for hostapd After=hostapd.service After=sys-devices-virtual-net-%i.device [Service] Type=simple ExecStartPre=-/bin/sh -c '/usr/sbin/tc qdisc del dev %i ingress > /dev/null 2>&1' ExecStartPre=-/bin/sh -c '/usr/sbin/tc qdisc del dev %i clsact > /dev/null 2>&1' ExecStartPre=/usr/sbin/tc qdisc add dev %i clsact ExecStartPre=/usr/sbin/tc filter add dev %i ingress pref 10000 protocol 0x888e matchall action ok index 100 ExecStartPre=/usr/sbin/tc filter add dev %i ingress pref 10001 protocol all matchall action drop index 101 ExecStart=/usr/sbin/hostapd_cli -i %i -a /usr/local/bin/802-1x-tr-mgmt ExecStopPost=-/usr/sbin/tc qdisc del dev %i clsact [Install] WantedBy=multi-user.target
systemd を再ロードします。
# systemctl daemon-reload
hostapd
がリッスンしているインターフェイス名で802-1x-tr-mgmt
サービスを有効にして開始します。# systemctl enable --now 802-1x-tr-mgmt@br0.service
検証
ネットワークに対してクライアントで認証します。参照:
関連情報
-
systemd.service(5)
man ページ
第19章 ファイルシステムに保存されている証明書で 802.1X 標準を使用した、ネットワークへの RHEL クライアントの認証
管理者は、IEEE 802.1X 標準に基づいてポートベースのネットワークアクセス制御 (NAC) を使用して、承認されていない LAN および Wi-Fi クライアントからネットワークを保護します。本セクションの手順では、ネットワーク認証を設定するさまざまなオプションを説明します。
19.1. nmcli を使用して、既存のイーサネット接続での 802.1X ネットワーク認証の設定
nmcli
ユーティリティーを使用して、クライアントがネットワークに対して自己認証するように設定できます。この手順では、p1s0
という名前の既存の NetworkManager イーサネット接続プロファイルで、ネットワークに認証を行うように TLS 認証を設定する方法を説明します。
前提条件
- ネットワークは 802.1X ネットワーク認証をサポートしている。
- イーサネット接続プロファイルが NetworkManager に存在し、有効な IP 設定があります。
TLS 認証に必要な以下のファイルがクライアントにある。
-
クライアント鍵が保存されているのは
/etc/pki/tls/private/client.key
ファイルで、そのファイルは所有されており、root
ユーザーのみが読み取り可能です。 -
クライアント証明書は
/etc/pki/tls/certs/client.crt
に保存されます。 -
認証局 (CA) 証明書は、
/etc/pki/tls/certs/ca.crt
ファイルに保存されています。
-
クライアント鍵が保存されているのは
-
wpa_supplicant
パッケージがインストールされている。
手順
EAP (Extensible Authentication Protocol) を
tls
に設定し、クライアント証明書および鍵ファイルへのパスを設定します。# nmcli connection modify enp1s0 802-1x.eap tls 802-1x.client-cert /etc/pki/tls/certs/client.crt 802-1x.private-key /etc/pki/tls/certs/certs/client.key
1 つのコマンドで、
802-1x.eap
パラメーター、802-1x.client-cert
パラメーター、および802-1x.private-key
パラメーターを設定する必要があります。CA 証明書のパスを設定します。
# nmcli connection modify enp1s0 802-1x.ca-cert /etc/pki/tls/certs/ca.crt
証明書で使用するユーザーの ID を設定します。
# nmcli connection modify enp1s0 802-1x.identity user@example.com
必要に応じて、パスワードを設定に保存します。
# nmcli connection modify enp1s0 802-1x.private-key-password password
重要デフォルトでは、NetworkManager は、パスワードを、
/etc/sysconfig/network-scripts/keys-connection_name
ファイルにクリアテキストで保存します。これは、root
ユーザーのみが読み取れるようにします。ただし、設定ファイルのクリアテキストパスワードはセキュリティーリスクとなる可能性があります。セキュリティーを強化するには、
802-1x.password-flags
パラメーターを0x1
に設定します。この設定では、GNOME デスクトップ環境またはnm-applet
が実行中のサーバーで、NetworkManager がこれらのサービスからパスワードを取得します。その他の場合は、NetworkManager によりパスワードの入力が求められます。接続プロファイルをアクティベートします。
# nmcli connection up enp1s0
検証手順
- ネットワーク認証が必要なネットワーク上のリソースにアクセスします。
関連情報
- イーサネット接続の設定
-
nm-settings(5)
の man ページの802-1x settings
セクション -
man ページの
nmcli(1)
19.2. nmstatectl を使用した 802.1X ネットワーク認証による静的イーサネット接続の設定
nmstate
ユーティリティを使用して、802.1X 規格を使用してクライアントを認証するイーサネット接続を作成できます。この手順では、以下の設定を使用して、enp1s0
インターフェースにイーサネット接続を追加する方法を説明します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
-
TLS
Extensible Authentication Protocol (EAP) を使用した 802.1X ネットワーク認証
nmstate
ライブラリーは、TLS
EAP メソッドのみに対応します。
前提条件
- ネットワークは 802.1X ネットワーク認証をサポートしている。
- 管理ノードは NetworkManager を使用している。
TLS 認証に必要な以下のファイルがクライアントにある。
-
クライアント鍵が保存されているのは
/etc/pki/tls/private/client.key
ファイルで、そのファイルは所有されており、root
ユーザーのみが読み取り可能です。 -
クライアント証明書は
/etc/pki/tls/certs/client.crt
に保存されます。 -
認証局 (CA) 証明書は、
/etc/pki/tls/certs/ca.crt
ファイルに保存されています。
-
クライアント鍵が保存されているのは
手順
以下の内容を含む YAML ファイル (例:
~/create-ethernet-profile.yml
) を作成します。--- interfaces: - name: enp1s0 type: ethernet state: up ipv4: enabled: true address: - ip: 192.0.2.1 prefix-length: 24 dhcp: false ipv6: enabled: true address: - ip: 2001:db8:1::1 prefix-length: 64 autoconf: false dhcp: false 802.1x: ca-cert: /etc/pki/tls/certs/ca.crt client-cert: /etc/pki/tls/certs/client.crt eap-methods: - tls identity: client.example.org private-key: /etc/pki/tls/private/client.key private-key-password: password routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.254 next-hop-interface: enp1s0 - destination: ::/0 next-hop-address: 2001:db8:1::fffe next-hop-interface: enp1s0 dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb
設定をシステムに適用します。
# nmstatectl apply ~/create-ethernet-profile.yml
検証
- ネットワーク認証が必要なネットワーク上のリソースにアクセスします。
19.3. RHEL システムロールを使用した 802.1X ネットワーク認証による静的イーサネット接続の設定
Networking の RHEL システムロールを使用して、802.1X 規格を使用してクライアントを認証するイーサネット接続の作成を自動化できます。この手順では、以下の設定で enp1s0
インターフェースのイーサネット接続をリモートに追加する方法を説明します。これには、Ansible Playbook を実行します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
-
TLS
Extensible Authentication Protocol (EAP) を使用した 802.1X ネットワーク認証
Ansible コントロールノードで以下の手順を実行します。
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが必要。 - ネットワークは 802.1X ネットワーク認証をサポートしている。
- 管理ノードは NetworkManager を使用している。
TLS 認証に必要な以下のファイルがコントロールノードにある。
-
クライアントキーは、
/srv/data/client.key
ファイルに保存されます。 -
クライアント証明書は
/srv/data/client.crt
ファイルに保存されます。 -
認証局 (CA) 証明書は、
/srv/data/ca.crt
ファイルに保存されます。
-
クライアントキーは、
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/enable-802.1x.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with 802.1X authentication hosts: node.example.com become: true tasks: - name: Copy client key for 802.1X authentication copy: src: "/srv/data/client.key" dest: "/etc/pki/tls/private/client.key" mode: 0600 - name: Copy client certificate for 802.1X authentication copy: src: "/srv/data/client.crt" dest: "/etc/pki/tls/certs/client.crt" - name: Copy CA certificate for 802.1X authentication copy: src: "/srv/data/ca.crt" dest: "/etc/pki/ca-trust/source/anchors/ca.crt" - include_role: name: rhel-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com ieee802_1x: identity: user_name eap: tls private_key: "/etc/pki/tls/private/client.key" private_key_password: "password" client_cert: "/etc/pki/tls/certs/client.crt" ca_cert: "/etc/pki/ca-trust/source/anchors/ca.crt" domain_suffix_match: example.com state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/enable-802.1x.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
19.4. RHEL System Roles を使用した 802.1X ネットワーク認証による Wi-Fi 接続の設定
RHEL System Roles を使用すると、Wi-Fi 接続の作成を自動化できます。この手順では、Ansible Playbook を使用して wlp1s0
インターフェースのワイヤレス接続プロファイルをリモートで追加する方法を説明します。作成されたプロファイルは、802.1X 標準を使用して、Wi-Fi ネットワークに対してクライアントを認証します。Playbook は、DHCP を使用するように接続プロファイルを設定します。静的 IP 設定を設定するには、それに応じて IP
ディクショナリーのパラメーターを調整します。
前提条件
- ansible パッケージと rhel-system-roles パッケージをコントロールノードにインストールしました。
- ネットワークは 802.1X ネットワーク認証をサポートしている。
-
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが必要。 -
マネージドノードに
wpa_supplicant
パッケージをインストールしました。 - DHCP は、マネージドノードのネットワークで使用できます。
TLS 認証に必要な以下のファイルがコントロールノードにある。
-
クライアントキーは、
/srv/data/client.key
ファイルに保存されます。 -
クライアント証明書は
/srv/data/client.crt
ファイルに保存されます。 -
CA 証明書は
/srv/data/ca.crt
ファイルに保存されます。
-
クライアントキーは、
Ansible control node で次の手順を実行します。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/enable-802.1x.yml
Playbook を以下の内容で作成します。--- - name: Configure a Wi-Fi connection with 802.1X authentication hosts: "node.example.com" become: true tasks: - name: Copy client key for 802.1X authentication copy: src: "/srv/data/client.key" dest: "/etc/pki/tls/private/client.key" mode: 0400 - name: Copy client certificate for 802.1X authentication copy: src: "/srv/data/client.crt" dest: "/etc/pki/tls/certs/client.crt" - name: Copy CA certificate for 802.1X authentication copy: src: "/srv/data/ca.crt" dest: "/etc/pki/ca-trust/source/anchors/ca.crt" - block: - import_role: name: linux-system-roles.network vars: network_connections: - name: Configure the Example-Wi-Fi profile interface_name: wlp1s0 state: up type: wireless autoconnect: yes ip: dhcp4: true auto6: true wireless: ssid: "Example-Wi-Fi" key_mgmt: "wpa-eap" ieee802_1x: identity: "user_name" eap: tls private_key: "/etc/pki/tls/client.key" private_key_password: "password" private_key_password_flags: none client_cert: "/etc/pki/tls/client.pem" ca_cert: "/etc/pki/tls/cacert.pem" domain_suffix_match: "example.com"
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/enable-802.1x.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
第20章 デフォルトのゲートウェイ設定の管理
デフォルトゲートウェイは、他のルートがパケットの宛先と一致する場合にネットワークパケットを転送するルーターです。ローカルネットワークでは、通常、デフォルトゲートウェイは、インターネットの近くの 1 ホップのホストです。
20.1. nmcli を使用して、既存の接続でデフォルトのゲートウェイを設定
ほとんどの場合、管理者は、「nmcli を使用した静的イーサネット接続の設定」などの説明に従って接続を作成する場合のデフォルトのゲートウェイを設定します。
本セクションでは、nmcli
ユーティリティーを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、
root
権限が必要になります。
手順
デフォルトゲートウェイの IP アドレスを設定します。
たとえば、
example
接続のデフォルトゲートウェイの IPv4 アドレスを192.0.2.1
に設定するには、次のコマンドを実行します。$
sudo nmcli connection modify example ipv4.gateway "192.0.2.1"
たとえば、
example
接続のデフォルトゲートウェイの IPv6 アドレスを2001:db8:1::1
に設定するには、次のコマンドを実行します。$
sudo nmcli connection modify example ipv6.gateway "2001:db8:1::1"
ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで
example
接続を再起動するには、次のコマンドを実行します。$
sudo nmcli connection up example
警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
20.2. nmcli インタラクティブモードを使用して、既存の接続でデフォルトゲートウェイを設定
ほとんどの場合、管理者は、「nmcli インタラクティブエディターを使用した動的イーサネット接続の設定」などの説明に従って、接続を作成する場合のデフォルトのゲートウェイを設定します。
本セクションでは、nmcli
ユーティリティーのインタラクティブモードを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、
root
権限が必要になります。
手順
必要な接続に対して
nmcli
インタラクティブモードを開きます。たとえば、example 接続のnmcli
インタラクティブモードを開くには、次のコマンドを実行します。$
sudo nmcli connection edit example
デフォルトのゲートウェイを設定します。
たとえば、
example
接続のデフォルトゲートウェイの IPv4 アドレスを192.0.2.1
に設定するには、次のコマンドを実行します。nmcli>
set ipv4.gateway 192.0.2.1
たとえば、
example
接続のデフォルトゲートウェイの IPv6 アドレスを2001:db8:1::1
に設定するには、次のコマンドを実行します。nmcli>
set ipv6.gateway 2001:db8:1::1
必要に応じて、デフォルトゲートウェイが正しく設定されていることを確認します。
nmcli>
print
... ipv4.gateway: 192.0.2.1 ... ipv6.gateway: 2001:db8:1::1 ...設定を保存します。
nmcli>
save persistent
ネットワーク接続を再起動して、変更を有効にします。
nmcli>
activate example
警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
nmcli
インタラクティブモードを終了します。nmcli>
quit
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
20.3. using nm-connection-editor で、既存の接続にデフォルトのゲートウェイを設定
ほとんどの場合、管理者は、接続を作成する場合のデフォルトのゲートウェイを設定します。本セクションでは、nm-connection-editor
アプリケーションを使用して作成しておいた接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- 変更する接続を選択し、歯車のアイコンをクリックして、既存の接続を編集します。
IPv4 デフォルトゲートウェイを設定します。たとえば、その接続のデフォルトゲートウェイの IPv4 アドレスを
192.0.2.1
に設定します。-
IPv4 Settings
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
IPv6 デフォルトゲートウェイを設定します。たとえば、接続のデフォルトゲートウェイの IPv6 アドレスを
2001:db8:1::1
に設定するには、以下を行います。-
IPv6
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
- OK をクリックします。
- 保存 をクリックします。
ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで
example
接続を再起動するには、次のコマンドを実行します。$
sudo nmcli connection up example
警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
20.4. control-center を使用して、既存の接続でフォルトのゲートウェイを設定
ほとんどの場合、管理者は、接続を作成する場合のデフォルトのゲートウェイを設定します。本セクションでは、control-center
アプリケーションを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
control-center
アプリケーションで、接続のネットワーク設定を開いている。
手順
IPv4 デフォルトゲートウェイを設定します。たとえば、その接続のデフォルトゲートウェイの IPv4 アドレスを
192.0.2.1
に設定します。-
IPv4
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
IPv6 デフォルトゲートウェイを設定します。たとえば、接続のデフォルトゲートウェイの IPv6 アドレスを
2001:db8:1::1
に設定するには、以下を行います。-
IPv6
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
- 適用 をクリックします。
Network
ウィンドウに戻り、接続のボタンを Off に切り替えてから On に戻して、接続を無効にして再度有効にし、変更を適用します。警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
20.5. nmstatectl を使用して既存の接続でデフォルトのゲートウェイを設定
nmstatectl
ユーティリティーを使用してネットワーク接続のデフォルトゲートウェイを設定できます。この手順では、既存の enp1s0
接続のデフォルトゲートウェイを 192.0.2.1
に設定する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
enp1s0
インターフェースが設定され、デフォルトゲートウェイの IP アドレスがこのインターフェースの IP 設定のサブネット内にある。 -
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイル (例:
~/set-default-gateway.yml
) を作成します。--- routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.1 next-hop-interface: enp1s0
設定をシステムに適用します。
# nmstatectl apply ~/set-default-gateway.yml
関連情報
-
nmstatectl
の詳細は、nmstatectl(8)
man ページを参照してください。 -
設定例は、
/usr/share/doc/nmstate/examples/
ディレクトリーを参照してください。
20.6. システムロールを使用して、既存の接続でデフォルトのゲートウェイを設定
Networking の RHEL システムロールを使用して、デフォルトゲートウェイを設定できます。
Networking の RHEL システムロールを使用する再生を実行すると、設定値が再生で指定されたものと一致しない場合に、システムロールが同じ名前の既存の接続プロファイルを上書きします。したがって、IP 設定がすでに存在している場合でも、再生でネットワーク接続プロファイルの設定全体を指定する必要があります。それ以外の場合は、ロールはこれらの値をデフォルト値にリセットします。
この手順では、すでに存在するかどうかに応じて、以下の設定で enp1s0
接続プロファイルを作成または更新します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ198.51.100.20
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
198.51.100.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
198.51.100.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-connection.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with static IP and default gateway hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/ethernet-connection.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/ethernet-connection.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
-
ansible-playbook(1)
の man ページ
20.7. NetworkManager が複数のデフォルトゲートウェイを管理する方法
フォールバック上の理由で特定の状況では、ホストに複数のデフォルトゲートウェイを設定します。ただし、非同期ルーティングの問題を回避するために、同じプロトコルの各デフォルトゲートウェイには別のメトリクス値が必要です。RHEL は、最も低いメトリックセットを持つデフォルトゲートウェイへの接続のみを使用することに注意してください。
以下のコマンドを使用して、接続の IPv4 ゲートウェイと IPv6 ゲートウェイの両方にメトリクスを設定できます。
# nmcli connection modify connection-name ipv4.route-metric value ipv6.route-metric value
ルーティングの問題を回避するために、複数の接続プロファイルで同じプロトコルに同じメトリック値を設定しないでください。
メトリック値なしでデフォルトのゲートウェイを設定すると、NetworkManager は、インターフェースタイプに基づいてメトリック値を自動的に設定します。このため、NetworkManager は、アクティブな最初の接続に、このネットワークタイプのデフォルト値を割り当て、そのネットワークタイプがアクティベートされる順序で、同じタイプの他の接続にインクリメントした値を設定します。たとえば、デフォルトゲートウェイを持つ 2 つのイーサネット接続が存在する場合、NetworkManager は、ルートに 100
のメトリックを、最初にアクティブにしている接続のデフォルトゲートウェイに設定します。2 つ目の接続では、NetworkManager は 101
を設定します。
以下は、よく使用されるネットワークタイプと、そのデフォルトのメトリックの概要です。
connection.type | デフォルトのメトリクス値 |
---|---|
VPN | 50 |
イーサネット | 100 |
MACsec | 125 |
Infiniband | 150 |
bond= | 300 |
team= | 350 |
VLAN | 400 |
ブリッジ | 425 |
TUN | 450 |
Wi-Fi | 600 |
IP トンネル | 675 |
20.8. 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定
NetworkManager が特定のプロファイルを使用してデフォルトゲートウェイを指定しないようにすることができます。デフォルトゲートウェイに接続されていない接続プロファイルには、以下の手順に従います。
前提条件
- デフォルトゲートウェイに接続されていない接続の NetworkManager 接続プロファイルが存在する。
手順
接続で動的 IP 設定を使用する場合は、NetworkManager が、IPv4 および IPv6 接続のデフォルトルートとして接続を使用しないように設定します。
# nmcli connection modify connection_name ipv4.never-default yes ipv6.never-default yes
ipv4.never-default
およびipv6.never-default
をyes
に設定すると、対応するプロトコルのデフォルトのゲートウェイ IP アドレスが、接続プロファイルから削除されることに注意してください。接続をアクティベートします。
# nmcli connection up connection_name
検証手順
-
ip -4 route
コマンドおよびip -6 route
コマンドを使用して、RHEL が、IPv4 プロトコルおよび IPv6 プロトコルのデフォルトルートにネットワークインターフェースを使用しないことを確認します。
20.9. 複数のデフォルトゲートウェイによる予期しないルーティング動作の修正
マルチパス TCP を使用する場合など、ホストで複数のデフォルトゲートウェイが必要なシナリオはそれほどありません。多くの場合、ルーティングの動作や非同期ルーティングの問題を回避するために、1 つのデフォルトゲートウェイのみを設定します。
異なるインターネットプロバイダーにトラフィックをルーティングするには、複数のデフォルトゲートウェイの代わりにポリシーベースのルーティングを使用します。
前提条件
- ホストは NetworkManager を使用してネットワーク接続を管理します。これはデフォルトです。
- ホストには複数のネットワークインターフェースがある。
- ホストには複数のデフォルトゲートウェイが設定されている。
手順
ルーティングテーブルを表示します。
IPv4 の場合は、次のコマンドを実行します。
# ip -4 route default via 192.0.2.1 dev enp1s0 proto static metric 101 default via 198.51.100.1 dev enp7s0 proto static metric 102 ...
IPv6 の場合は、次のコマンドを実行します。
# ip -6 route default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium default via 2001:db8:2::1 dev enp7s0 proto static metric 102 pref medium ...
default
で開始するエントリーはデフォルトのルートを示します。dev
の横に表示されるこれらのエントリーのインターフェース名を書き留めます。以下のコマンドを使用して、前の手順で特定したインターフェースを使用する NetworkManager 接続を表示します。
# nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp1s0 GENERAL.CONNECTION: Corporate-LAN IP4.GATEWAY: 192.168.122.1 IP6.GATEWAY: 2001:db8:1::1 # nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp7s0 GENERAL.CONNECTION: Internet-Provider IP4.GATEWAY: 198.51.100.1 IP6.GATEWAY: 2001:db8:2::1
この例では、
Corporate-LAN
とInternet-Provider
という名前のプロファイルにはデフォルトのゲートウェイが設定されています。これは、ローカルネットワークでは、通常、インターネット 1 ホップ近いホストがデフォルトゲートウェイであるため、この手順の残りの部分では、Corporate-LAN
のデフォルトゲートウェイが正しくないことを想定するためです。NetworkManager が、IPv4 および IPv6 接続のデフォルトルートとして
Corporate-LAN
接続を使用しないように設定します。# nmcli connection modify Corporate-LAN ipv4.never-default yes ipv6.never-default yes
ipv4.never-default
およびipv6.never-default
をyes
に設定すると、対応するプロトコルのデフォルトのゲートウェイ IP アドレスが、接続プロファイルから削除されることに注意してください。Corporate-LAN
接続をアクティブにします。# nmcli connection up Corporate-LAN
検証手順
IPv4 および IPv6 ルーティングテーブルを表示し、プロトコルごとに 1 つのデフォルトゲートウェイのみが利用可能であることを確認します。
IPv4 の場合は、次のコマンドを実行します。
# ip -4 route default via 192.0.2.1 dev enp1s0 proto static metric 101 ...
IPv6 の場合は、次のコマンドを実行します。
# ip -6 route default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium ...
第21章 静的ルートの設定
ルーティングにより、相互接続されたネットワーク間でトラフィックを送受信することができます。大規模な環境では、管理者は、ルーターが他のルーターについて動的に確認できるようにサービスを設定します。小規模な環境では、管理者は多くの場合、静的ルートを設定して、トラフィックがあるネットワークから次のネットワークに到達できるようにします。
これらの条件がすべて適用される場合は、複数のネットワーク間で機能通信を実現するには、静的ルートが必要です。
- トラフィックは複数のネットワークを渡す必要があります。
- デフォルトゲートウェイ経由の排他トラフィックフローでは不十分です。
「静的ルートを必要とするネットワークの例」 静的ルートを設定しない場合のシナリオおよび異なるネットワーク間のトラフィックフローについて説明します。
21.1. 静的ルートを必要とするネットワークの例
すべての IP ネットワークが 1 つのルーター経由で直接接続されるわけではないので、この例では静的ルートが必要です。静的ルートがないと、一部のネットワークは相互に通信できません。また、一部のネットワークからのトラフィックは 1 方向にのみ流れます。
この例のネットワークトポロジーは人工的であり、静的ルーティングの概念を説明するためにのみ使用されます。実稼働環境では、推奨トポロジーではありません。
この例のすべてのネットワーク間での機能的な通信では、次にホップルーター 2(203.0.113.10
)で Raleigh(198
.51.100.0/24)への静的ルートを設定します。次のホップの IP アドレスは、データセンターネットワーク(203.0.113.0/24
)のルーター 2 のいずれかになります。
以下のように静的ルートを設定できます。
-
簡素化された設定の場合は、この静的ルートをルーター 1 にのみ設定します。ただし、これにより、データセンター(
203.0.113.0/24)からのホストは常に Router 1 から Router 2 を通じてトラフィックを Raleigh(
)に送信するため、ルーター 1 のトラフィックが増加します。198
.51.100.0/24 -
より詳細な設定の場合は、データセンターのすべてのホスト(
203.0.113.0/24
)にこの静的ルートを設定します。次に、このサブネットのすべてのホストは、Razleigh(198.51.100.0/24)に近くのルーター 2(203.0.113.10
)にトラフィックを直接送信し
ます。
ネットワークトラフィックフローに関する詳細情報は、ダイアグラムの説明を参照してください。

必要な静的ルートが設定されていない場合、以下で は通信が機能し、機能しない状況を説明します。
Berlin ネットワークのホスト(
192.0.2.0/24
):- 同じサブネットの他のホストと直接接続されているため、通信することができます。
-
ルーター 1 は Berlin ネットワーク(
192.0.2.0/24
)にあり、デフォルトゲートウェイがあるため、インターネットと通信できます。 -
Router 1 には Berlin(192.0.2
.0/24)とデータセンター(203.0.113.0/
24
)の両方のネットワークにインターフェースがあるため、データセンターネットワーク(203.0.113.0/24
)と通信できます。 -
ルーター 1 にはこのネットワークにインターフェースがないため、Radigh ネットワーク(
198.51.100.0/24
)と通信できません。そのため、ルーター 1 はトラフィックを独自のデフォルトゲートウェイ(Internet)に送信します。
データセンターネットワークのホスト(
203.0.113.0/24
):- 同じサブネットの他のホストと直接接続されているため、通信することができます。
-
デフォルトゲートウェイが Router 1 に設定され、ルーター 1 にはネットワーク、データセンター(
203.0.113.0/24
)、インターネットへのインターフェースがあるため、インターネットとの通信ができます。 -
デフォルトのゲートウェイが Router 1 に設定され、ルーター 1 にはデータセンター(203.0
.113.0/
)と通信できます。24
)と Berlin(192.0.2.0/24)の両方のネットワークにインターフェースがあるため、Berlin ネットワーク(192.0.2.0/24
-
データセンターネットワークにはこのネットワークにインターフェースがないため、R Raleigh ネットワーク(
198.51.100.0/24
)と通信できません。したがって、データセンター内のホスト(203.0.113.0/24
)はトラフィックをデフォルトゲートウェイ(ルーター 1)に送信します。また、ルーター 1 には Raleigh ネットワーク(198.51.100.0/24
)にはインターフェースがないため、ルーター 1 はこのトラフィックを独自のデフォルトゲートウェイ(Internet)に送信します。
Raleigh ネットワークのホスト(
198.51.100.0/24
):- 同じサブネットの他のホストと直接接続されているため、通信することができます。
-
インターネット上のホストと通信できません。Router 2 はデフォルトゲートウェイ設定が原因でルーター 1 にトラフィックを送信します。ルーター 1 の実際の動作は、リバースパスフィルター(
rp_filter
)システム制御(sysctl
)設定によって異なります。RHEL では、デフォルトでは、ルーター 1 はインターネットにルーティングする代わりに送信トラフィックをドロップします。ただし、設定された動作に関係なく、静的ルートなしで通信を行うことができません。 -
データセンターネットワーク(
203.0.113.0/24
)と通信できません。デフォルトゲートウェイ設定は、ルーター 2 経由の宛先に到達します。ただし、データセンターネットワーク(203.0.113.0/24
)のホストがデフォルトゲートウェイ(Router 1)に送信されるため、パケットに応答は送信者に到達しません。次に、ルーター 1 はトラフィックをインターネットに送信します。 -
Berlin ネットワーク(
192.0.2.0/24
)と通信できません。Router 2 はデフォルトゲートウェイ設定が原因でルーター 1 にトラフィックを送信します。ルーター 1 の実際の動作は、rp_filter
sysctl
設定によって異なります。RHEL では、デフォルトでルーター 1 は、Berlin ネットワーク(192.0.2.0/24
)に送信する代わりに送信トラフィックをドロップします。ただし、設定された動作に関係なく、静的ルートなしで通信を行うことができません。
静的ルートの設定に加え、両方のルーターで IP 転送を有効にする必要があります。
21.2. nmcli コマンドを使用して、静的ルートを設定する方法
静的ルートを設定するには、次の構文で nmcli
ユーティリティーを使用します。
$ nmcli connection modify connection_name ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."
このコマンドは、次のルート属性に対応します。
-
cwnd=n
: パケット数で定義された輻輳ウィンドウ (CWND) サイズを設定します。 -
lock-cwnd=true|false
: カーネルが CWND 値を更新できるかどうかを定義します。 -
lock-mtu=true|false
: カーネルが MTU をパス MTU ディスカバリーに更新できるかどうかを定義します。 -
lock-window=true|false
: カーネルが TCP パケットの最大ウィンドウサイズを更新できるかどうかを定義します。 -
mtu=n
: 宛先へのパスに沿って使用する最大転送単位 (MTU) を設定します。 -
onlink=true|false
: ネクストホップがどのインターフェイス接頭辞とも一致しない場合でも、このリンクに直接接続されるかどうかを定義します。 -
scope=n
: IPv4 ルートの場合、この属性はルートプレフィックスがカバーする宛先のスコープを設定します。値を整数 (0〜255) として設定します。 -
src=address
: ルート接頭辞の対象となる宛先にトラフィックを送信するときに優先する送信元アドレスを設定します。 -
table=table_id
: ルートを追加するテーブルの ID を設定します。このパラメーターを省略すると、NetworkManager はmain
テーブルを使用します。 -
tos=n
: サービスのタイプ (TOS) キーを設定します。値を整数 (0〜255) として設定します。 -
type=value
: ルートタイプを設定します。NetworkManager はユニキャスト
、local
、blackhole
、到達不能
、禁止
、およびスロー
ルートタイプに対応します。デフォルトはunicast
です。 -
window=n
: これらの宛先にアドバタイズする TCP の最大ウィンドウサイズをバイト単位で設定します。
ipv4.routes
サブコマンドを使用する場合は、nmcli
が、このパラメーターの現在の設定をすべて上書きします。
ルートを追加するには、以下を実行します。
$ nmcli connection modify connection_name +ipv4.routes "..."
同様に、特定のルートを削除するには、以下を実行します。
$ nmcli connection modify connection_name -ipv4.routes "..."
21.3. nmcli コマンドを使用した静的ルートの設定
nmcli connection modify
コマンドを使用して、ネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。これは、example
接続から到達可能です。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、コマンドに
root
権限が必要になります。
手順
静的ルートを
example
接続に追加します。$
sudo nmcli connection modify example +ipv4.routes "192.0.2.0/24 198.51.100.1"
1 回で複数のルートを設定するには、個々のルートをコンマで区切ってコマンドに渡す必要があります。たとえば、ルートを
192.0.2.0/24
および203.0.113.0/24
のネットワークに追加して、両方のルートが198.51.100.1
ゲートウェイを通るには、以下のコマンドを実行します。$
sudo nmcli connection modify example +ipv4.routes "192.0.2.0/24 198.51.100.1, 203.0.113.0/24 198.51.100.1"
必要に応じて、ルートが設定に正しく追加されたことを確認します。
$
nmcli connection show example
... ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 } ...ネットワーク接続が再起動します。
$
sudo nmcli connection up example
警告接続を再起動すると、そのインターフェースの接続が一時的に中断します。
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
関連情報
-
man ページの
nmcli(1)
21.4. control-center による静的ルートの設定
GNOME で control-center
を使用して、ネットワーク接続の設定に静的ルートを追加します。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
control-center
アプリケーションで接続のネットワーク設定が開いている。nm-connection-editor を使用したイーサネット接続の設定 を参照してください。
手順
-
IPv4
タブを開きます。 -
必要に応じて、
IPv4
タブのRoutes
セクションの On ボタンをクリックして自動ルートを無効にし、静的ルートのみを使用します。自動ルートが有効になっている場合は、Red Hat Enterprise Linux が静的ルートと、DHCP サーバーから受け取ったルートを使用します。 アドレス、ネットマスク、ゲートウェイを入力します。必要に応じて、メトリック値を入力します。
- 適用 をクリックします。
Network
ウィンドウに戻り、接続のボタンを Off に切り替えてから On に戻して、接続を無効にして再度有効にし、変更を適用します。警告接続を再起動すると、そのインターフェースの接続が一時的に中断します。
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
21.5. nm-connection-editor による静的ルートの設定
nm-connection-editor
アプリケーションを使用して、ネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。これは、example
接続から到達可能です。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
-
example
接続を選択し、歯車アイコンをクリックして、既存の接続を変更します。 -
IPv4
タブを開きます。 - Routes ボタンをクリックします。
Add ボタンをクリックして、アドレス、ネットマスク、ゲートウェイを入力します。必要に応じてメトリック値を入力します。
- OK をクリックします。
- 保存 をクリックします。
ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで
example
接続を再起動するには、次のコマンドを実行します。$
sudo nmcli connection up example
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
21.6. nmcli インタラクティブモードで静的ルートの設定
nmcli
ユーティリティーのインタラクティブモードを使用して、ネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。これは、example
接続から到達可能です。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、コマンドに
root
権限が必要になります。
手順
example
接続のnmcli
インタラクティブモードを開きます。$
sudo nmcli connection edit example
静的ルートを追加します。
nmcli>
set ipv4.routes 192.0.2.0/24 198.51.100.1
必要に応じて、ルートが設定に正しく追加されたことを確認します。
nmcli>
print
... ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 } ...ip
属性には、転送するネットワークと、ゲートウェイのnh
属性 (次のホップ) が表示されます。設定を保存します。
nmcli>
save persistent
ネットワーク接続が再起動します。
nmcli>
activate example
警告接続を再起動すると、この接続を現在使用している接続がすべて一時的に中断されます。
nmcli
インタラクティブモードを終了します。nmcli>
quit
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
21.7. nmstatectl を使用した静的ルートの設定
nmstatectl
ユーティリティーを使用してネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加し、enp1s0
インターフェースから到達できるようにする方法を説明します。
前提条件
-
enp1s0
ネットワークインターフェースが設定されている。 - 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイルを作成します (例:
~/add-static-route-to-enp1s0.yml
)。--- routes: config: - destination: 192.0.2.0/24 next-hop-address: 198.51.100.1 next-hop-interface: enp1s0
設定をシステムに適用します。
# nmstatectl apply ~/add-static-route-to-enp1s0.yml
関連情報
-
man ページの
nmstatectl(8)
-
/usr/share/doc/nmstate/examples/
21.8. RHEL システムロールを使用した静的ルートの設定
Networking の RHEL システムロールを使用して、静的ルートを設定できます。
Networking の RHEL システムロールを使用する再生を実行すると、設定値が再生で指定されたものと一致しない場合に、システムロールが同じ名前の既存の接続プロファイルを上書きします。したがって、IP 設定がすでに存在している場合でも、再生でネットワーク接続プロファイルの設定全体を指定する必要があります。それ以外の場合は、ロールはこれらの値をデフォルト値にリセットします。
この手順では、すでに存在するかどうかに応じて、以下の設定で enp7s0
接続プロファイルを作成または更新します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ198.51.100.20
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
198.51.100.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
198.51.100.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
静的ルート:
-
ゲートウェイ
198.51.100.1
の192.0.2.0/24
-
203.0.113.0/24
のゲートウェイ198.51.100.2
-
ゲートウェイ
前提条件
-
ansible-core
パッケージおよびrhel-system-roles
パッケージが制御ノードにインストールされている。 -
Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な
sudo
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/add-static-routes.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with static IP and additional routes hosts: node.example.com become: true tasks: - include_role: name: rhel-system-roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com route: - network: 192.0.2.0 prefix: 24 gateway: 198.51.100.1 - network: 203.0.113.0 prefix: 24 gateway: 198.51.100.2 state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。# ansible-playbook -u root ~/add-static-routes.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
# ansible-playbook -u user_name --ask-become-pass ~/add-static-routes.yml
--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
検証手順
ルーティングテーブルを表示します。
# ip -4 route default via 198.51.100.254 dev enp7s0 proto static metric 100 192.0.2.0/24 via 198.51.100.1 dev enp7s0 proto static metric 100 203.0.113.0/24 via 198.51.100.2 dev enp7s0 proto static metric 100 ...
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル -
ansible-playbook(1)
の man ページ
第22章 代替ルートを定義するポリシーベースのルーティングの構成
デフォルトでは、RHEL のカーネルは、ルーティングテーブルを使用して宛先アドレスに基づいてネットワークパケットを転送する場所を決定します。ポリシーベースのルーティングにより、複雑なルーティングシナリオを構成できます。たとえば、送信元アドレス、パケットメタデータ、プロトコルなどのさまざまな基準に基づいてパケットをルーティングできます。
本セクションでは、NetworkManager を使用してポリシーベースのルーティングを設定する方法を説明します。
NetworkManager を使用するシステムでは、nmcli
ユーティリティーのみがルーティングルールの設定と、特定のテーブルへのルートの割り当てをサポートします。
22.1. NetworkManager を使用して、特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング
本セクションでは、デフォルトで、デフォルトルートを使用して、すべてのトラフィックをインターネットプロバイダー A にルーティングするルーターとして RHEL を構成する方法を説明します。RHEL は、ポリシーベースのルーティングを使用して、内部ワークステーションのサブネットから受信したトラフィックをプロバイダー B にルーティングします。
この手順では、次のネットワークトポロジを想定しています。
前提条件
-
システムは、
NetworkManager
を使用して、ネットワークを設定します (これがデフォルトです)。 この手順で設定する RHEL ルーターには、4 つのネットワークインターフェイスがあります。
-
enp7s0
インターフェースはプロバイダー A のネットワークに接続されます。プロバイダーのネットワークのゲートウェイ IP は198.51.100.2
で、ネットワークは/30
ネットワークマスクを使用します。 -
enp1s0
インターフェースはプロバイダー B のネットワークに接続されます。プロバイダーのネットワークのゲートウェイ IP は192.0.2.2
で、ネットワークは/30
ネットワークマスクを使用します。 -
enp8s0
インターフェースは、内部ワークステーションで10.0.0.0/24
サブネットに接続されています。 -
enp9s0
インターフェースは、会社のサーバーを使用して203.0.113.0/24
サブネットに接続されています。
-
-
内部ワークステーションのサブネット内のホストは、デフォルトゲートウェイとして
10.0.0.1
を使用します。この手順では、この IP アドレスをルーターのenp8s0
ネットワークインターフェースに割り当てます。 -
サーバーサブネット内のホストは、デフォルトゲートウェイとして
203.0.113.1
を使用します。この手順では、この IP アドレスを、ルーターのenp9s0
ネットワークインターフェースに割り当てます。 -
デフォルトでは、
firewalld
サービスは有効でアクティブになっています。
手順
プロバイダー A へのネットワークインターフェースを構成します。
# nmcli connection add type ethernet con-name Provider-A ifname enp7s0 ipv4.method manual ipv4.addresses 198.51.100.1/30 ipv4.gateway 198.51.100.2 ipv4.dns 198.51.100.200 connection.zone external
nmcli connection add
コマンドでは、NetworkManager 接続プロファイルが作成されます。次の一覧では、コマンドのオプションを説明します。-
type
ethernet
:接続タイプがイーサネットであることを定義します。 -
con-name
connection_name
:プロファイルの名前を設定します。混乱を避けるために、わかりやすい名前を使用してください。 -
ifname
network_device
:ネットワークインターフェースを設定します。 -
ipv4.method
manual
:静的 IP アドレスを設定できるようにします。 -
ipv4.addresses
IP_address/subnet_mask
:IPv4 アドレスおよびサブネットマスクを設定します。 -
ipv4.gateway
IP_address
:デフォルトのゲートウェイアドレスを設定します。 -
ipv4.dns
IP_of_DNS_server
:DNS サーバーの IPv4 アドレスを設定します。 -
connection.zone
firewalld_zone
:定義したfirewalld
ゾーンにネットワークインターフェースを割り当てます。firewalld
は、外部
ゾーンに割り当てられたマスカレードインターフェースを自動的に有効にすることに注意してください。
-
プロバイダー B へのネットワークインターフェースを設定します。
# nmcli connection add type ethernet con-name Provider-B ifname enp1s0 ipv4.method manual ipv4.addresses 192.0.2.1/30 ipv4.routes "0.0.0.0/0 192.0.2.2 table=5000" connection.zone external
このコマンドは、デフォルトゲートウェイを設定する
ipv4.gateway
の代わりに、ipv4.routes
パラメーターを使用します。これは、この接続用のデフォルトゲートウェイを、デフォルトとは異なるルーティングテーブル (5000
) に割り当てるために必要です。NetworkManager は、接続がアクティブになると、この新しいルーティングテーブルを自動的に作成します。内部ワークステーションサブネットへのネットワークインターフェースを設定します。