342
Red Hat Enterprise Linux 8 ネットワークの設定および管理 Red Hat Enterprise Linux 8 におけるネットワークの設定と管理に関するガイド Last Updated: 2021-05-19

Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Red Hat Enterprise Linux 8

ネットワークの設定および管理

Red Hat Enterprise Linux 8 におけるネットワークの設定と管理に関するガイド

Last Updated: 2021-05-19

Page 2: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d
Page 3: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Red Hat Enterprise Linux 8 ネットワークの設定および管理

Red Hat Enterprise Linux 8 におけるネットワークの設定と管理に関するガイド

Page 4: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

法律上の通知法律上の通知

Copyright © 2021 Red Hat, Inc.

The text of and illustrations in this document are licensed by Red Hat under a Creative CommonsAttribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA isavailable athttp://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you mustprovide the URL for the original version.

Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift,Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United Statesand other countries.

Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.

Java ® is a registered trademark of Oracle and/or its affiliates.

XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United Statesand/or other countries.

MySQL ® is a registered trademark of MySQL AB in the United States, the European Union andother countries.

Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by theofficial Joyent Node.js open source or commercial project.

The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marksor trademarks/service marks of the OpenStack Foundation, in the United States and othercountries and are used with the OpenStack Foundation's permission. We are not affiliated with,endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

概要概要

本書は、Red Hat Enterprise Linux 8 でネットワークを管理する方法を説明します。

Page 5: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

目次目次

オープンソースをより包摂的にオープンソースをより包摂的に

RED HAT ドキュメントへのフィードバックドキュメントへのフィードバック (英語のみ英語のみ)

第第1章章 RHEL ネットワークに関する一般的なトピックネットワークに関する一般的なトピック1.1. IP ネットワークと非 IP ネットワークの違い1.2. 静的 IP アドレスと動的 IP アドレス設定の違い1.3. DHCP トランザクションフェーズ

DiscoveryOfferRequestAcknowledgment

1.4. INFINIBAND ネットワークおよび RDMA ネットワーク1.5. RHEL における従来のネットワークスクリプトのサポート1.6. ネットワーク設定方法の選択

第第2章章 一貫性のあるネットワークインターフェースデバイスの命名一貫性のあるネットワークインターフェースデバイスの命名2.1. ネットワークインターフェースのデバイス命名階層2.2. ネットワークデバイスの名前変更の仕組み2.3. X86_64 プラットフォームで説明されている予想可能なネットワークインターフェースのデバイス名2.4. SYSTEM Z プラットフォームで予測可能なネットワークインターフェースデバイス名2.5. インストール時の一貫性のあるインターフェースデバイスの命名の無効化2.6. インストール済みのシステムでのインターフェースデバイスへの一貫性のある命名の無効化2.7. イーサネットネットワークインターフェースの命名に PREFIXDEVNAME を使用

2.7.1. prefixdevname の概要2.7.2. prefixdevname の制限事項2.7.3. prefixdevname の設定

2.8. 関連情報

第第3章章 NETWORKMANAGER の使用の使用3.1. NETWORKMANAGER を使用する利点3.2. NETWORKMANAGER 接続の管理に使用できるユーティリティーおよびアプリケーションの概要3.3. NETWORKMANAGER の DISPATCHER スクリプトの使用3.4. 手動で作成した IFCFG ファイルを NETWORKMANAGER に読み込む

第第4章章 特定のデバイスを無視するように特定のデバイスを無視するように NETWORKMANAGER の設定の設定4.1. NETWORKMANAGER でデバイスを管理対象外として永続的に設定4.2. NETWORKMANAGER でデバイスを管理対象外として一時的に設定

第第5章章 NMTUI の使用の使用5.1. NMTUI ユーティリティーの起動5.2. NMTUI を使用した接続プロファイルの追加5.3. NMTUI で編集済み接続への変更の適用

第第6章章 NMCLI の使用の使用6.1. NMCLI における出力形式6.2. NMCLI でタブ補完の使用6.3. NMCLI でよく使用されるコマンド

第第7章章 GNOME GUI を使用したネットワークの設定を使用したネットワークの設定7.1. GNOME SHELL ネットワーク接続アイコンによるネットワーク接続

第第8章章 「「 INTRODUCTION TO NMSTATE」」8.1. PYTHON アプリケーションでの LIBNMSTATE ライブラリーの使用

11

12

1313131314141414141414

16161718181919

2020212121

2323232424

262627

28282831

33333334

3535

3737

目次目次

1

Page 6: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.2. NMSTATECTL を使用した現在のネットワーク設定の更新8.3. 関連情報

第第9章章 イーサネット接続の設定イーサネット接続の設定9.1. NMCLI を使用した静的イーサネット接続の設定9.2. NMCLI インタラクティブエディターを使用した静的イーサネット接続の設定9.3. NMSTATECTL を使用した静的イーサネット接続の設定9.4. RHEL システムロールを使用した静的イーサネット接続の設定9.5. NMCLI で動的イーサネット接続の設定9.6. NMCLI インタラクティブエディターで動的イーサネット接続の設定9.7. NMSTATECTL を使用した動的イーサネット接続の設定9.8. RHEL システムロールを使用した動的イーサネット接続の設定9.9. CONTROL-CENTER によるイーサネット接続の設定9.10. NM-CONNECTION-EDITOR を使用したイーサネット接続の設定9.11. NETWORKMANAGER 接続の DHCP 動作の設定

第第10章章 WI-FI 接続の管理接続の管理10.1. ワイヤレス規制ドメインの設定10.2. NMCLI による WI-FI 接続の設定10.3. CONTROL-CENTER による WI-FI 接続の設定10.4. NMCLI による WI-FI ネットワークへの接続10.5. NMCLI を使用した非表示の WI-FI ネットワーク接続10.6. GNOME GUI による WI-FI ネットワークへの接続

第第11章章 VLAN タグの設定タグの設定11.1. NMCLI コマンドによる VLAN タグ付けの設定11.2. NM-CONNECTION-EDITOR による VLAN タグの設定11.3. NMSTATECTL を使用した VLAN タグ付けの設定11.4. システムロールを使用した VLAN タグの設定

第第12章章 ネットワークブリッジの設定ネットワークブリッジの設定12.1. NMCLI コマンドによるネットワークブリッジの設定12.2. NM-CONNECTION-EDITOR によるネットワークブリッジの設定12.3. NMSTATECTL を使用したネットワークブリッジの設定

第第13章章 ネットワークチーミングの設定ネットワークチーミングの設定13.1. ネットワークチーミングの理解13.2. コントローラーおよびポートインターフェースのデフォルト動作の理解13.3. ネットワークチーミングとボンディング機能の比較13.4. TEAMD サービス、ランナー、およびリンク監視の理解13.5. TEAMD サービスのインストール13.6. NMCLI コマンドによるネットワークチームの設定13.7. NM-CONNECTION-EDITOR によるネットワークチームの設定

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定14.1. ネットワークボンディングについて14.2. コントローラーおよびポートインターフェースのデフォルト動作の理解14.3. ネットワークチーミングとボンディング機能の比較14.4. ボンディングモードに依存するアップストリームのスイッチ設定14.5. NMCLI コマンドによるネットワークボンディングの設定14.6. NM-CONNECTION-EDITOR によるネットワークボンディングの設定14.7. NMSTATECTL を使用したネットワークボンディングの設定14.8. RHEL システムロールを使用したネットワークボンディングの設定14.9. VPN を中断せずにイーサネットとワイヤレス接続間の切り替えを可能にするネットワークボンディングの作成

3738

393941

444648505253545760

62626264676768

6969717375

787881

84

8787878889909093

9797979899

100103106108

110

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

2

Page 7: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

第第15章章 VPN 接続の設定接続の設定15.1. CONTROL-CENTER による VPN 接続の確立15.2. NM-CONNECTION-EDITOR による VPN 接続の設定15.3. IPSEC 接続を加速化するためにボンディングでの ESP ハードウェアオフロードの設定15.4. 関連情報

第第16章章 IP トンネルの設定トンネルの設定16.1. NMCLI を使用して IPIP トンネルを設定して、IPV4 パケットの IPV4 トラフィックをカプセル化します。

16.2. NMCLI を使用して GRE トンネルを設定して、IPV4 パケット内のレイヤー 3 トラフィックをカプセル化

16.3. IPV4 でイーサネットフレームを転送するための GRETAP トンネルの設定16.4. 関連情報

第第17章章 FIBRE CHANNEL OVER ETHERNET の設定の設定17.1. RHEL でハードウェア FCOE HBA の使用17.2. ソフトウェア FCOE デバイスの設定17.3. 関連情報

第第18章章 ポートミラーリングポートミラーリング18.1. NMCLI を使用したネットワークインターフェースのミラーリング

第第19章章 802.1X 標準を使用したネットワークへの標準を使用したネットワークへの RHEL クライアントの認証クライアントの認証19.1. NMCLI を使用して、既存のイーサネット接続での 802.1X ネットワーク認証の設定19.2. RHEL システムロールを使用した 802.1X ネットワーク認証による静的イーサネット接続の設定19.3. NMCLI を使用した、既存の WI-FI 接続での 802.1X ネットワーク認証の設定

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理20.1. NMCLI を使用して、既存の接続でデフォルトのゲートウェイを設定20.2. NMCLI インタラクティブモードを使用して、既存の接続でデフォルトゲートウェイを設定20.3. USING NM-CONNECTION-EDITOR で、既存の接続にデフォルトのゲートウェイを設定20.4. CONTROL-CENTER を使用して、既存の接続でフォルトのゲートウェイを設定20.5. NMSTATECTL を使用して既存の接続でデフォルトのゲートウェイを設定20.6. システムロールを使用して、既存の接続でデフォルトのゲートウェイを設定20.7. レガシーネットワークスクリプトの使用時に、既存の接続でデフォルトゲートウェイの設定20.8. NETWORKMANAGER が複数のデフォルトゲートウェイを管理する方法20.9. 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NETWORKMANAGER の設定20.10. 複数のデフォルトゲートウェイによる予期しないルーティング動作の修正

第第21章章 静的ルートの設定静的ルートの設定21.1. NMCLI コマンドを使用して、静的ルートを設定する方法21.2. NMCLI コマンドを使用した静的ルートの設定21.3. CONTROL-CENTER による静的ルートの設定21.4. NM-CONNECTION-EDITOR による静的ルートの設定21.5. NMCLI インタラクティブモードで静的ルートの設定21.6. NMSTATECTL を使用した静的ルートの設定21.7. RHEL システムロールを使用した静的ルートの設定21.8. レガシーネットワークスクリプトの使用時に KEY-VALUE-FORMAT に静的ルート設定ファイルを作成21.9. 従来のネットワークスクリプトの使用時に、IP-COMMAND-FORMAT で静的ルート設定ファイルを作成

第第22章章 代替ルートを定義するポリシーベースのルーティングの構成代替ルートを定義するポリシーベースのルーティングの構成22.1. NETWORKMANAGER を使用して、特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング22.2. 従来のネットワークスクリプトを使用する場合のポリシーベースのルーティングに関連する設定ファイルの概要

114114118121122

123

123

126128131

132132132134

135135

137137138140

143143144145147148149151151152153

156156156157158159161161

164

165

166

166

170

目次目次

3

Page 8: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22.3. レガシーネットワークスクリプトを使用して、特定のサブネットから別のデフォルトゲートウェイにトラフィックをルーティング

第第23章章 ダミーインターフェースの作成ダミーインターフェースの作成23.1. NMCLI を使用して IPV4 アドレスと IPV6 アドレスの両方を使用したダミーインターフェースの作成

第第24章章 ネットワーク経由でカーネルメッセージをログに記録するネットワーク経由でカーネルメッセージをログに記録する NETCONSOLE の使用の使用24.1. カーネルメッセージをリモートホストに記録するように NETCONSOLE サービスを設定

第第25章章 SYSTEMD ネットワークターゲットおよびサービスネットワークターゲットおよびサービス25.1. SYSTEMD ターゲット NETWORK と NETWORK-ONLINE の違い25.2. NETWORKMANAGER-WAIT-ONLINE の概要25.3. ネットワークの開始後に SYSTEMD サービスが起動する設定

第第26章章 LINUX トラフィックの制御トラフィックの制御26.1. キュー規則の概要分類的な qdiscsクラスレス qdiscs

26.2. RHEL で利用できる QDISCS26.3. TC ユーティリティーを使用したネットワークインターフェースの QDISC の検査26.4. デフォルトの QDISC の更新26.5. TC ユーティリティーを使用して、ネットワークインターフェースの現在の QDISK を一時的に設定する

26.6. NETWORKMANAGER を使用したネットワークインターフェースの現在の QDISK の永続的な設定

第第27章章 MULTIPATH TCP の使用の使用27.1. MPTCP サポートを有効にするための RHEL の準備27.2. 複数の利用可能なパスについてアプリケーションに通知するために IPROUTE2 を使用27.3. カーネルでの MULTIPATH TCP の無効化

第第28章章 DNS サーバーの順序の設定サーバーの順序の設定28.1. NETWORKMANAGER が /ETC/RESOLV.CONF で DNS サーバーを順序付ける方法

DNS 優先度パラメーターのデフォルト値有効な DNS 優先度の値:

28.2. NETWORKMANAGER 全体でデフォルトの DNS サーバー優先度の値の設定28.3. NETWORKMANAGER 接続の DNS 優先度の設定

第第29章章 IFCFG ファイルでファイルで IP ネットワークの設定ネットワークの設定29.1. IFCFG ファイルの静的ネットワーク設定でインタフェースの設定29.2. IFCFG ファイルの動的ネットワーク設定でインタフェースの設定29.3. IFCFG ファイルでシステム全体およびプライベート接続プロファイルの管理

第第30章章 NETWORKMANAGER で特定接続ので特定接続の IPV6 の無効化の無効化30.1. NMCLI を使用した接続で IPV6 の無効化

第第31章章 /ETC/RESOLV.CONF ファイルの手動設定ファイルの手動設定31.1. NETWORKMANAGER 設定で DNS 処理の無効化31.2. /ETC/RESOLV.CONF を、DNS 設定を手動で設定するシンボリックリンクに置き換え

第第32章章 802.3 リンク設定の構成リンク設定の構成32.1. NMCLI ツールで 802.3 リンク設定の構成

第第33章章 ETHTOOL オフロード機能の設定オフロード機能の設定33.1. NETWORKMANAGER で対応している機能のオフロード33.2. NETWORKMANAGER を使用した ETHTOOL オフロード機能の設定33.3. システムロールを使用した ETHTOOL 機能の設定

171

177177

178178

179179179180

181181181181181

183184

185185

187187190192

193193193193194195

196196196197

198198

200200201

202202

204204206206

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

4

Page 9: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

第第34章章 ETHTOOL コロケーターの設定コロケーターの設定34.1. NETWORKMANAGER で対応している結合設定34.2. NETWORKMANAGER を使用した ETHTOOL 結合の設定34.3. システムロールを使用した ETHTOOL 結合の設定

第第35章章 MACSEC を使用した同じ物理ネットワーク内のレイヤーを使用した同じ物理ネットワーク内のレイヤー 2 トラフィックの暗号化トラフィックの暗号化35.1. NMCLI による MACSEC 接続の設定

第第36章章 異なるドメインでの各種異なるドメインでの各種 DNS サーバーの使用サーバーの使用36.1. 選択した DNS サーバーへの特定ドメインの DNS 要求の送信

第第37章章 IPVLAN の使用の使用37.1. IPVLAN の概要37.2. IPVLAN モード37.3. MACVLAN の概要37.4. IPVLAN および MACVLAN の比較37.5. IPROUTE2 を使用した IPVLAN デバイスの作成および設定

第第38章章 VRF (VIRTUAL ROUTING AND FORWARDING) の設定の設定38.1. 別のインターフェースで同じ IP アドレスを永続的に再利用する38.2. 複数のインターフェースで同じ IP アドレスを一時的に再利用38.3. 関連情報

第第39章章 システムのルーティングプロトコルの設定システムのルーティングプロトコルの設定39.1. FRROUTING の概要39.2. FRROUTING の設定39.3. FRR の設定の修正追加のデーモンの有効化デーモンの無効化

39.4. 特定のデーモンの設定の修正

第第40章章 RX リングバッファーの監視およびチューニングリングバッファーの監視およびチューニング40.1. 破棄されたパケット数の表示40.2. パケットの破棄レートが高いのを減らすために RX リングバッファーを増やす

第第41章章 基本的なネットワーク設定のテスト基本的なネットワーク設定のテスト41.1. PING ユーティリティーを使用した他のホストへの IP 接続の検証41.2. HOST ユーティリティーを使用した名前解決の検証

第第42章章 NETWORKMANAGER のデバッグの概要のデバッグの概要42.1. デバッグレベルおよびドメイン42.2. NETWORKMANAGER ログレベルの設定42.3. NMCLI を使用して、ランタイム時にログレベルを一時的に設定42.4. NETWORKMANAGER ログの表示

第第43章章 ネットワークパケットのキャプチャーネットワークパケットのキャプチャー43.1. XDP プログラムがドロップしたパケットを含むネットワークパケットをキャプチャーするためにXDPDUMP を使用43.2. 関連情報

第第44章章 RHEL で特定のカーネルバージョンを使用で特定のカーネルバージョンを使用44.1. 以前のカーネルバージョンを使用した RHEL の起動

第第45章章 DHCP サービスの提供サービスの提供45.1. DHCPV4 および DHCPV6 で DHCPD を使用する場合の相違点45.2. DHCPD サービスのリースデータベース

209209210210

213213

216216

218218218218218219

221221222224

225225226227227227227

229229229

231231231

232232232233234

235

235236

237237

238238238

目次目次

5

Page 10: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45.3. DHCPV6 と RADVD の比較45.4. IPV6 ルーター用に RADVD サービスの設定45.5. DHCP サーバーのネットワークインターフェースの設定45.6. DHCP サーバーに直接接続されたサブネット用の DHCP サービスの設定45.7. DHCP サーバーに直接接続していないサブネット用の DHCP サービスの設定45.8. DHCP を使用してホストに静的アドレスの割り当て45.9. GROUP 宣言を使用して、パラメーターを複数のホスト、サブネット、および共有ネットワークを同時に適用45.10. 破損したリースデータベースの復元45.11. DHCP リレーエージェントの設定

第第46章章 FIREWALLD の使用および設定の使用および設定46.1. FIREWALLD の使用

46.1.1. firewalld、nftables、または iptables を使用する場合46.1.2. ゾーン46.1.3. 事前定義サービス

46.2. FIREWALLD の現在の状況および設定の表示46.2.1. firewalld の現在の状況の表示46.2.2. GUI を使用して許可されるサービスの表示46.2.3. CLI を使用した firewalld 設定の表示

46.3. FIREWALLD でネットワークトラフィックの制御46.3.1. 緊急時に CLI を使用してすべてのトラフィックの無効化46.3.2. CLI を使用して事前定義されたサービスでトラフィックの制御46.3.3. GUI を使用して事前定義サービスでトラフィックを制御46.3.4. 新しいサービスの追加46.3.5. GUI を使用してポートを開く46.3.6. GUI を使用してプロトコルを使用したトラフィックの制御46.3.7. GUI を使用してソースポートを開く

46.4. CLI を使用したポートの制御46.4.1. ポートを開く46.4.2. ポートを閉じる

46.5. ファイアウォールゾーンでの作業46.5.1. ゾーンの一覧46.5.2. 特定ゾーンに対する firewalld 設定の修正46.5.3. デフォルトゾーンの変更46.5.4. ゾーンへのネットワークインターフェースの割り当て46.5.5. nmcliを使用して接続にゾーンを割り当て46.5.6. ifcfg ファイルでゾーンをネットワーク接続に手動で割り当て46.5.7. 新しいゾーンの作成46.5.8. ゾーンの設定ファイル46.5.9. 着信トラフィックにデフォルトの動作を設定するゾーンターゲットの使用

46.6. ゾーンを使用し、ソースに応じた着信トラフィックの管理46.6.1. ゾーンを使用し、ソースに応じた着信トラフィックの管理46.6.2. ソースの追加46.6.3. ソースの削除46.6.4. ソースポートの追加46.6.5. ソースポートの削除46.6.6. ゾーンおよびソースを使用して特定ドメインのみに対してサービスの許可

46.7. FIREWALLD を使用した NAT の設定46.7.1. 異なる NAT タイプ - マスカレード、ソース NAT、宛先 NAT、リダイレクト46.7.2. IP アドレスのマスカレードの設定

46.8. ポート転送46.8.1. リダイレクトするポートの追加

239239240242245248

250251

253

256256256256258258258259259260260261261262263263263264264264265265265266266266267267267268268268269269270270270271271

272272273

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

6

Page 11: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46.8.2. 同一マシンで TCP ポート 80 からポート 88 へのリダイレクト46.8.3. リダイレクトしているポートの削除46.8.4. 同じマシンで TCP ポート 88 に転送されるポート 80 の削除

46.9. ICMP リクエストの管理46.9.1. ICMP リクエストの一覧表示およびブロック46.9.2. GUI を使用した ICMP フィルターの設定

46.10. FIREWALLD を使用した IP セットの設定および制御46.10.1. CLI を使用した IP セットオプションの設定

46.11. リッチルールの優先度設定46.11.1. priority パラメーターを異なるチェーンにルールを整理する方法46.11.2. リッチルールの優先度の設定

46.12. ファイアウォールロックダウンの設定46.12.1. CLI を使用したロックダウンの設定46.12.2. CLI を使用したロックダウン許可リストオプションの設定46.12.3. 設定ファイルを使用したロックダウンの許可リストオプションの設定

46.13. 関連情報インストールされているドキュメントオンラインドキュメント

第第47章章 NFTABLES の使用の使用47.1. IPTABLES から NFTABLES への移行

47.1.1. firewalld、nftables、または iptables を使用する場合47.1.2. iptables のルールを nftables ルールに変換47.1.3. 一般的な iftables コマンドおよび nftables コマンドの比較

47.2. NFTABLES スクリプトの作成および実行47.2.1. 対応している nftables スクリプトの形式47.2.2. nftables スクリプトの実行47.2.3. nftables スクリプトでコメントの使用47.2.4. nftables スクリプトで変数の使用値を 1 つ持つ変数匿名セットを含む変数

47.2.5. nftables スクリプトへのファイルの追加47.2.6. システムの起動時に nftables ルールの自動読み込み

47.3. NFTABLES テーブル、チェーン、およびルールの作成および管理47.3.1. 標準のチェーン優先度の値およびテキスト名47.3.2. nftables ルールセットの表示47.3.3. nftables テーブルの作成47.3.4. nftables チェーンの作成47.3.5. nftables チェーンの最後に対するルールの追加47.3.6. nftables チェーンの先頭へのルールの挿入47.3.7. nftables チェーンの特定の位置へのルールの挿入

47.4. NFTABLES を使用した NAT の設定47.4.1. 異なる NAT タイプ - マスカレード、ソース NAT、宛先 NAT、リダイレクト47.4.2. nftables を使用したマスカレードの設定47.4.3. nftables を使用したソース NAT の設定47.4.4. nftables を使用した宛先 NAT の設定47.4.5. nftables を使用したリダイレクトの設定

47.5. NFTABLES コマンドを使用したセットの使用47.5.1. nftables での匿名セットの使用47.5.2. nftables で名前付きセットの使用47.5.3. 関連情報

47.6. NFTABLES コマンドにおける決定マップの使用47.6.1. nftables での匿名マップの使用

273273274274274276277277279279279280280280282283283284

285285285286286287287288289289289289290290291291292293294295295296297297298299299300301301302303303303

目次目次

7

Page 12: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47.6.2. nftables で名前付きマップの使用47.6.3. 関連情報

47.7. NFTABLES を使用したポート転送の設定47.7.1. 着信パケットの別のローカルポートへの転送47.7.2. 特定のローカルポートで着信パケットを別のホストに転送

47.8. NFTABLES を使用した接続の量の制限47.8.1. nftables を使用した接続数の制限47.8.2. 1 分以内に新しい着信 TCP 接続を 11 個以上試行する IP アドレスのブロック

47.9. NFTABLES ルールのデバッグ47.9.1. カウンターによるルールの作成47.9.2. 既存のルールへのカウンターの追加47.9.3. 既存のルールに一致するパケットの監視

47.10. NFTABLES ルールセットのバックアップおよび復元47.10.1. ファイルへの nftables ルールセットのバックアップ47.10.2. ファイルからの nftables ルールセットの復元

47.11. 関連情報

第第48章章 DDOS 攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで XDP-FILTER を使用を使用48.1. XDP-FILTER ルールに一致するネットワークパケットの削除48.2. XDP-FILTER ルールに一致するネットワークパケット以外のネットワークパケットをすべて削除

第第49章章 DPDK の使用の使用49.1. DPDK パッケージのインストール49.2. 関連情報

第第50章章 RHEL のの EBPF ネットワーク機能についてネットワーク機能について50.1. RHEL におけるネットワーク EBPF 機能の概要

XDPAF_XDPトラフィック制御ソケットフィルターコントロールグループストリームパーサーSO_REUSEPORT ソケットの選択Flow dissectorTCP 輻輳制御カプセル化によるルートソケットルックアップ

50.2. ネットワークカードによる XDP 機能の概要

第第51章章 BPF コンパイラーコレクションを使用したネットワークトレースコンパイラーコレクションを使用したネットワークトレース51.1. BCC の概要51.2. BCC-TOOLS パッケージのインストール51.3. カーネルの受け入れキューに追加された TCP 接続の表示51.4. 発信 TCP 接続試行の追跡51.5. 発信 TCP 接続のレイテンシーの測定51.6. カーネルによって破棄された TCP パケットおよびセグメントの詳細の表示51.7. TCP セッションのトレース51.8. TCP 再送信の追跡51.9. TCP 状態変更情報の表示51.10. 特定のサブネットに送信された TCP トラフィックの要約および集計51.11. IP アドレスとポートによるネットワークスループットの表示51.12. 確立された TCP 接続の追跡51.13. IPV4 および IPV6 リッスン試行の追跡

304306306306307308308308309309310310311311312312

313313315

317317317

318318318319

320320320321321321321

322322322

325325325326326327328328329330331332332333

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

8

Page 13: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51.14. ソフト割り込みのサービス時間の要約51.15. 関連情報

第第52章章 TIPC の使用の使用52.1. TIPC のアーキテクチャー52.2. システムの起動時の TIPC モジュールの読み込み52.3. TIPC ネットワークの作成52.4. 関連情報

333334

335335335336337

目次目次

9

Page 14: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

10

Page 15: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

オープンソースをより包摂的に

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社 の CTO、Chris Wrightのメッセージ を参照してください。

オープンソースをより包摂的にオープンソースをより包摂的に

11

Page 16: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

RED HAT ドキュメントへのフィードバック (英語のみ)ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。改善点を報告する場合は、以下のように行います。

特定の文章に簡単なコメントを記入する場合は、以下の手順を行います。

1. ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上端にFeedback ボタンがあることを確認してください。

2. マウスカーソルで、コメントを追加する部分を強調表示します。

3. そのテキストの下に表示される Add Feedback ポップアップをクリックします。

4. 表示される手順に従ってください。

より詳細なフィードバックを行う場合は、Bugzilla のチケットを作成します。

1. Bugzilla の Web サイトにアクセスします。

2. Component で Documentation を選択します。

3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。

4. Submit Bug をクリックします。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

12

Page 17: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第1章 RHEL ネットワークに関する一般的なトピック本セクションでは、一般的なネットワークトピックについて詳しく説明します。

1.1. IP ネットワークと非 IP ネットワークの違い

ネットワークとは、ファイル、プリンタ、アプリケーション、インターネット接続など、情報とリソースを共有して通信できる、相互接続されたデバイスのシステムです。これらの各デバイスには、プロトコルと呼ばれる一連の規則を使用して 2 つ以上のデバイス間でメッセージを送受信する固有の IP アドレスがあります。

ネットワーク通信のカテゴリー

IP ネットワークネットワーク

IP アドレスを介して通信するネットワーク。IP ネットワークは、インターネットおよびほとんどの内部ネットワークに実装されています。イーサネット、無線ネットワーク、VPN 接続などが一般的な例です。

非非 IP ネットワークネットワーク

トランスポート層ではなく下位層を介して通信するのに使用されるネットワーク。このネットワークはほとんど使用されないことに注意してください。たとえば、InfiniBand は非 IP ネットワークです。

1.2. 静的 IP アドレスと動的 IP アドレス設定の違い

静的な静的な IP アドレス指定アドレス指定

静的 IP アドレスをデバイスに割り当てると、そのアドレスは手動で変更しない限り、時間が経過しても変わることはありません。必要に応じて静的 IP アドレスを使用します。

DNS などのサーバーや認証サーバーのネットワークアドレスの整合性を確保する。

他のネットワークインフラストラクチャーから独立して動作する、帯域外管理デバイスを使用する。

動的な動的な IP アドレス指定アドレス指定

動的 IP アドレスを使用するようにデバイスを設定すると、アドレスは時間の経過とともに変わる可能性があります。このため、ホストの再起動後に IP アドレスが異なる可能性があるため、通常は動的アドレスがネットワークに接続されるデバイスに使用されます。動的 IP アドレスは、より柔軟で、設定と管理が簡単です。Dynamic Host Control Protocol (DHCP)は、ネットワーク設定をホストに動的に割り当てる従来の方法です。

注記注記

静的 IP アドレスまたは動的 IP アドレスをどのような場合に使用するかを定義する厳密な規則はありません。ユーザーのニーズ、設定、およびネットワーク環境によって異なります。

関連情報関連情報

DHCP サーバーの設定方法は、45章DHCP サービスの提供 を参照してください。

1.3. DHCP トランザクションフェーズ

第第1章章 RHEL ネットワークに関する一般的なトピックネットワークに関する一般的なトピック

13

Page 18: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

DHCP は、Discovery、Offer、Request、Acknowledgement の 4 つのフェーズで機能します。DHCPはこのプロセスを使用してクライアントに IP アドレスを提供します。

DiscoveryDHCP クライアントがメッセージを送信して、ネットワーク上にある DHCP サーバーを検出します。このメッセージは、ネットワークおよびデータリンク層でブロードキャストされます。

OfferDHCP サーバーはクライアントからメッセージを受け取り、DHCP クライアントに IP アドレスを提供します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。

RequestDHCP クライアントは、提供される IP アドレスを DHCP サーバーに要求します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。

AcknowledgmentDHCP サーバーは、DHCP クライアントに確認応答を送信します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。これは、DHCP DORA プロセスの最後のメッセージです。

1.4. INFINIBAND ネットワークおよび RDMA ネットワーク

InfiniBand ネットワークおよび Remote Direct Memory Access (RDMA) ネットワークの詳細は、『InfiniBand および RDMA ネットワークの設定』を参照してください。

1.5. RHEL における従来のネットワークスクリプトのサポート

デフォルトでは、RHEL は NetworkManager を使用してネットワーク接続を設定および管理し、/usr/sbin/ifup スクリプトおよび /usr/sbin/ifdown スクリプトは NetworkManager を使用して /etc/sysconfig/network-scripts/ ディレクトリー内の ifcfg ファイルを処理します。

ただし、NetworkManager を使用せずにネットワーク設定を処理する非推奨のネットワークスクリプトが必要な場合は、それをインストールできます。

# yum install network-scripts

従来のネットワークスクリプトをインストールしたら、/usr/sbin/ifup スクリプトおよび /usr/sbin/ifdown スクリプトを、ネットワーク設定を管理する非推奨のシェルスクリプトにリンクします。

重要重要

レガシースクリプトは RHEL 8 で非推奨となり、RHEL の今後のメジャーバージョンで削除されます。以前のバージョンから RHEL 8 にアップグレードしたため、レガシーネットワークスクリプトを使用する場合は、設定を NetworkManager に移行することが推奨されます。

1.6. ネットワーク設定方法の選択

NetworkManager を使用してネットワークインターフェースを設定するには、次のいずかのツールを使用します。

テキストユーザーインターフェース nmtui が表示されます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

14

Page 19: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

コマンドラインユーティリティーの nmcli

グラフィカルユーザーインターフェースツールの GNOME GUI

NetworkManager のツールおよびアプリケーションを使用せずにネットワークインターフェースを設定するには、以下を行います。

ifcfg ファイルを手動で編集する。ファイルを直接編集しても、NetworkManager は RHELのデフォルトで、そのファイルを処理することに注意してください。非推奨の従来のネットワークスクリプトをインストールして有効にした場合にのみ、これらのスクリプトは ifcfg ファイルを処理します。

root ファイルシステムがローカルにない場合にネットワーク設定を行う方法は、次のとおりです。

カーネルのコマンドラインを使用する。

関連情報関連情報

5章nmtui の使用

6章nmcli の使用

7章GNOME GUI を使用したネットワークの設定

「RHEL における従来のネットワークスクリプトのサポート」

第第1章章 RHEL ネットワークに関する一般的なトピックネットワークに関する一般的なトピック

15

Page 20: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第2章 一貫性のあるネットワークインターフェースデバイスの命名Red Hat Enterprise Linux 8 は、ネットワークインターフェース用に一貫した予測可能なデバイスの命名方法を提供します。このような機能により、ネットワークインターフェースの検出と区別が容易になります。

カーネルは、固定接頭辞と、カーネルがネットワークデバイスを初期化する際に増加する数を連結させて、ネットワークインターフェースに名前を割り当てます。たとえば、eth0 は、システムの起動時にプローブされる最初のデバイスを表します。ただし、この名前がシャーシのラベルに対応しているとは限りません。複数のネットワークアダプターを使用する最新のサーバープラットフォームでは、このインターフェースの非決定論的および反直感的な命名が行われています。これは、システムボードに組み込まれたネットワークアダプターと、アドインアダプターの両方に影響します。

Red Hat Enterprise Linux 8 では、udev デバイスマネージャーは、さまざまな命名スキームに対応します。デフォルトでは、udev は、ファームウェア、トポロジー、場所の情報に基づいて固定名を割り当てます。これには、次の利点があります。

デバイス名は完全に予測可能です。

ハードウェアを追加または削除しても、再列挙は行われないため、デバイス名は固定されたままになります。

不具合のあるハードウェアをシームレスに交換できます。

2.1. ネットワークインターフェースのデバイス命名階層

一貫性のあるデバイスの命名が有効になっている場合 (Red Hat Enterprise Linux 8 のデフォルト)は、udev デバイスマネージャーが、以下のスキームに基づいてデバイス名を生成します。

スキースキームム

説明説明 例例

1 デバイス名には、ファームウェアまたは BIOS が提供するオンボードデバイスのインデックス番号が含まれます。この情報が利用できない、または該当しない場合は、udev によりスキーム 2 が使用されます。

eno1

2 デバイス名には、ファームウェアまたは BIOS が提供する PCI Express(PCIe) ホットプラグインスロットのインデックス番号が含まれます。この情報が利用できない、または該当しない場合は、udev によりスキーム 3 が使用されます。

ens1

3 デバイス名には、ハードウェアのコネクターの物理的な場所が含まれます。この情報が利用できない、または該当しない場合は、udev によりスキーム 5 が使用されます。

enp2s0

4 デバイス名には MAC アドレスが含まれます。Red Hat Enterprise Linuxでは、デフォルトではこのスキームが使用されません。管理者は、必要に応じて使用できます。

enx525400d5e0fb

5 従来の、予測できないカーネル命名スキーム。udev がその他のスキームを適用できない場合は、デバイスマネージャーによりこのスキームが使用されます。

eth0

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

16

Page 21: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Red Hat Enterprise Linux では、デフォルトでは、/usr/lib/systemd/network/99-default.link ファイルの NamePolicy 設定に基づいてデバイス名が選択されます。NamePolicy の値の順序は重要です。RedHat Enterprise Linux では、そのファイルで指定され、udev が生成した最初のデバイス名が使用されます。

udev ルールを手動で設定し、カーネルデバイス名を変更すると、このルールが優先されます。

2.2. ネットワークデバイスの名前変更の仕組み

デフォルトでは、一貫性のあるデバイスの命名が Red Hat Enterprise Linux 8 で有効になっています。udev デバイスマネージャーは、デバイスの名前を変更するさまざまなルールを処理します。以下の一覧では、udev がルールを処理する順番と、ルールを実行するアクションを説明します。

1. /usr/lib/udev/rules.d/60-net.rules ファイルは、/lib/udev/rename_device ヘルパーユーティリティーが、/etc/sysconfig/network-scripts/ifcfg-* ファイルの HWADDR パラメーターを検索することを定義します。変数に設定した値がインターフェースの MAC アドレスに一致すると、ヘルパーユーティリティーは、インターフェースの名前を、ファイルの DEVICE パラメーターに設定した名前に変更します。

2. /usr/lib/udev/rules.d/71-biosdevname.rules ファイルは、biosdevname ユーティリティーが直前の手順で名前が変更されていない場合に、命名ポリシーに従ってインターフェースの名前を変更することを定義します。

3. /usr/lib/udev/rules.d/75-net-description.rules ファイルは、udev がネットワークインターフェースデバイスを検査し、udev の内部変数のプロパティーが次の手順で処理されることを定義します。このプロパティーの一部は未定義である可能性があることに注意してください。

4. /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 pathMACAddressPolicy=persistent

このポリシーでは、カーネルが永続名を使用すると、udev がインターフェースの名前を変更します。カーネルが永続名を使用しないと、udev はインターフェースを、udev のハードウェアデータベースが提供する名前に変更します。このデータベースが利用できない場合、Red HatEnterprise Linux は上記のメカニズムにフォールバックします。

別の方法では、メディアアクセス制御 (MAC) アドレスベースのインターフェース名に対して、このファイルの NamePolicy パラメーターを mac に設定します。

5. /usr/lib/udev/rules.d/80-net-setup-link.rules ファイルは、udev が、以下の順番で udev 内のパラメーターに基づいてインターフェースの名前を変更することを定義します。

a. ID_NET_NAME_ONBOARD

b. ID_NET_NAME_SLOT

c. ID_NET_NAME_PATH

あるパラメーターが設定されていないと、udev は次のパラメーターを使用します。パラメーターが設定されていないと、インターフェースの名前が変更されません。

ステップ 3 と 4 は、「ネットワークインターフェースのデバイス命名階層」 に記載されている命名ス

第第2章章 一貫性のあるネットワークインターフェースデバイスの命名一貫性のあるネットワークインターフェースデバイスの命名

17

Page 22: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ステップ 3 と 4 は、「ネットワークインターフェースのデバイス命名階層」 に記載されている命名スキーム 1 から 4 を実装します。

関連情報関連情報

一貫性のある命名にカスタム接頭辞を設定する方法は、「イーサネットネットワークインターフェースの命名に prefixdevname を使用」 を参照してください。

NamePolicy パラメーターの詳細は、man ページの systemd.link(5) を参照してください。

2.3. X86_64 プラットフォームで説明されている予想可能なネットワークインターフェースのデバイス名

一貫性のあるネットワークデバイス名機能が有効になると、udev デバイスマネージャーは異なる基準に基づいてデバイスの名前を作成します。本セクションでは、Red Hat Enterprise Linux 8 が 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) のデフォルト値を表示しません。

2.4. SYSTEM Z プラットフォームで予測可能なネットワークインターフェースデバイス名

一貫性のあるネットワークデバイス名機能が有効になると、System z プラットフォームの udev デバイスマネージャーにより、バス ID に基づいてデバイス名が作成されます。バス ID は、s390 チャンネルサブシステム内のデバイスを識別します。

CCW (Channel Command Word) デバイスの場合、バス ID は、先頭に 0.n 接頭辞が付いたデバイス番号

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

18

Page 23: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

CCW (Channel Command Word) デバイスの場合、バス ID は、先頭に 0.n 接頭辞が付いたデバイス番号です。ここで n は、サブチャンネルのセット ID です。

イーサネットインターフェースの名前は enccw0.0.1234 などになります。SLIP (Serial Line InternetProtocol) の CTC (Channel-to-Channel) ネットワークデバイスの名前は、slccw0.0.1234 などになります。

znetconf -c コマンドまたは lscss -a コマンドを使用して、利用可能なネットワークデバイスとそのバス ID を表示します。

2.5. インストール時の一貫性のあるインターフェースデバイスの命名の無効化

本セクションは、インストール時に、一貫性のあるインターフェースデバイスの命名を無効にする方法を説明します。

警告警告

Red Hat は、一貫性のあるデバイスの命名を無効にしないことを推奨します。一貫性のあるデバイスの命名を無効にすると、さまざまな問題が発生する可能性があります。たとえば、別のネットワークインターフェースカードをシステムに追加する場合は、eth0 などのカーネルデバイス名の割り当てが修正されなくなります。したがって、システムの再起動後に、カーネルに別の名前を付けることができます。

手順手順

1. Red Hat Enterprise Linux 8 インストールメディアを起動します。

2. ブートマネージャーで Red Hat Enterprise Linux 8 のインストールのインストール を選択し、Tab キーを押してエントリーを編集します。

3. net.ifnames=0 パラメーターをカーネルコマンドラインに追加します。

vmlinuz... net.ifnames=0

4. Enter を押してインストールを開始します。

関連情報関連情報

RHEL 7 と RHEL 8 で net.ifnames=0 を設定しても安全ですか?

RHEL 7 でカーネルの NIC 名を使用している場合に RHEL 8 へのインプレースアップグレードを実行する方法

2.6. インストール済みのシステムでのインターフェースデバイスへの一貫性のある命名の無効化

本セクションでは、既にインストールされているシステムで、一貫性のあるインターフェースデバイスの命名を無効にする方法を説明します。

第第2章章 一貫性のあるネットワークインターフェースデバイスの命名一貫性のあるネットワークインターフェースデバイスの命名

19

Page 24: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

警告警告

Red Hat は、一貫性のあるデバイスの命名を無効にしないことを推奨します。一貫性のあるデバイスの命名を無効にすると、さまざまな問題が発生する可能性があります。たとえば、別のネットワークインターフェースカードをシステムに追加する場合は、eth0 などのカーネルデバイス名の割り当てが修正されなくなります。したがって、システムの再起動後に、カーネルに別の名前を付けることができます。

前提条件前提条件

システムが、一貫性のあるインターフェースデバイスの命名を使用している (デフォルト)。

手順手順

1. /etc/default/grub ファイルを編集し、net.ifnames=0 パラメーターを GRUB_CMDLINE_LINUX 変数に追加します。

GRUB_CMDLINE_LINUX="... *net.ifnames=0

2. grub.cfg ファイルを再構築します。

システムで UEFI ブートモードを使用している場合は、次のコマンドを実行します。

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

システムでレガシーブートモードを使用している場合は、次のコマンドを実行します。

# grub2-mkconfig -o /boot/grub2/grub.cfg

3. 設定ファイルまたはスクリプトでインターフェース名を使用する場合は、手動で更新する必要があります。

4. ホストを再起動します。

# reboot

2.7. イーサネットネットワークインターフェースの命名にPREFIXDEVNAME を使用

本ドキュメントは、このようなインターフェースのデフォルト命名スキームを使用しない場合は、イーサーネットネットワークインターフェースに、一貫性のある命名規則の接頭辞を設定する方法を説明します。ただし、Red Hat は、デフォルトの命名スキームを使用することを推奨します。このスキームの詳細は、2章一貫性のあるネットワークインターフェースデバイスの命名 を参照してください。

2.7.1. prefixdevname の概要

prefixdevname ツールは、イーサーネットネットワークインターフェースの命名に使用した接頭辞を定義する udev ヘルパーユーティリティーです。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

20

Page 25: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2.7.2. prefixdevname の制限事項

イーサネットネットワークインターフェースの接頭辞には一定の制限があります。

選択する接頭辞は、次の要件を満たす必要があります。

ASCII 文字列である

英数字文字列である

16 文字より短くする

警告警告

この接頭辞は、Linux のネットワークインターフェースの命名に使用される周知の接頭辞と競合させることができません。具体的には、eth、 eno、 ens、 em などの接頭辞は使用できません。

2.7.3. prefixdevname の設定

prefixdevname を使用した接頭辞の設定は、システムのインストール時に行われます。

イーサネットネットワークインターフェースに必要な接頭辞を設定して有効にするには、以下の手順に従います。

手順手順

カーネルコマンドラインに次の文字列を追加します。

net.ifnames.prefix=<required prefix>

警告警告

Red Hat は、デプロイ済みのシステムで prefixdevname を使用することはサポートしていません。

接頭辞を一度設定し、オペレーティングシステムを再起動すると、接頭辞は、ネットワークインターフェースが表示されるたびに有効になります。新しいデバイスは、<PREFIX><INDEX> の形式で名前に割り当てられます。たとえば、選択した接頭辞が net で、net0 接頭辞および net1 接頭辞がシステムにすでに存在している場合、新しいインターフェースの名前は net2 となります。次に、prefixdevnameユーティリティーは、新しい .link ファイルを /etc/systemd/network ディレクトリーに生成し、表示されたばかりの MAC アドレスを持つインターフェースにその名前を適用します。この設定は、システムを再起動しても持続します。

2.8. 関連情報

第第2章章 一貫性のあるネットワークインターフェースデバイスの命名一貫性のあるネットワークインターフェースデバイスの命名

21

Page 26: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

udev デバイスマネージャーの詳細は、man ページの udev(7) を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

22

Page 27: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第3章 NETWORKMANAGER の使用デフォルトでは、RHEL 8 は NetworkManager を使用してネットワーク設定と接続を管理します。

3.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 接続のほかに、接続固有のパラメーターを多数設定できます。設定オプションは、必要に応じて修正できます。

再起動プロセス後もデバイスの状態を維持し、再起動中に管理モードに設定されているインターフェースを引き継ぎます。

明示的に管理対象外として設定されていませんが、ユーザーまたは他のネットワークサービスによって手動で制御されているデバイスを処理します。

関連情報関連情報

RHEL 8 Web コンソールのインストールおよび使用の詳細は『RHEL 8 web コンソールを使用したシステムの管理』を参照してください。

3.2. NETWORKMANAGER 接続の管理に使用できるユーティリティーおよびアプリケーションの概要

以下のユーティリティーおよびアプリケーションを使用して、NetworkManager 接続を管理できます。

nmcli - 接続を管理するコマンドラインユーティリティー。

nmtui - パスワードベースのテキストユーザーインターフェース (TUI)。このアプリケーションを使用するには、NetworkManager-tui パッケージをインストールします。

nm-connection-editor - NetworkManager 関連のタスクのグラフィカルユーザーインターフェース (GUI)。このアプリケーションを起動するには、GNOME セッションの端末に nm-connection-editor と入力します。

第第3章章 NETWORKMANAGER の使用の使用

23

Page 28: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

control-center - デスクトップユーザー用に GNOME シェルによって提供される GUI。このアプリケーションは nm-connection-editor よりも対応している機能が少ないことに注意してください。

GNOME Shell の network connection icon - このアイコンは、ネットワーク接続の状態を表し、使用している接続の種類を視覚的に表示します。

関連情報関連情報

5章nmtui の使用

6章nmcli の使用

7章GNOME GUI を使用したネットワークの設定

3.3. NETWORKMANAGER の DISPATCHER スクリプトの使用

デフォルトで /etc/NetworkManager/dispatcher.d/ ディレクトリーが存在し、NetworkManager はそこでアルファベット順にスクリプトを実行します。各スクリプトは、root が所有する所有する 実行ファイルであることと、書き込み権限書き込み権限 がファイル所有者にのみ付与されているようにする必要があります。

注記注記

NetworkManager は、/etc/NetworkManager/dispatcher.d/ にある dispatcher スクリプトをアルファベット順に実行します。

関連情報関連情報

dispatcher スクリプトの例は、「ethtool コマンドを適用するように NetworkManager のdispatcher スクリプトを記述する」を参照してください。

3.4. 手動で作成した IFCFG ファイルを NETWORKMANAGER に読み込む

Red Hat Enterprise Linux 8 では、ifcfg ファイルを編集しても、NetworkManager が自動的に変更を認識しないため、変更を通知する必要があります。NetworkManager のプロファイル設定を更新するツールを使用していると、NetworkManager は、そのプロファイルを使用して再接続するまで変更を実装しません。たとえば、エディターを使用して設定ファイルを変更すると、NetworkManager がその設定ファイルを再度読み込む必要があります。

/etc/sysconfig/ ディレクトリーは、設定ファイルとスクリプト用の場所です。ほとんどのネットワーク設定情報がここに保存されます。例外は VPN、モバイルブロードバンド、および PPPoE の設定で、これは /etc/NetworkManager/ サブディレクトリーに保存されます。たとえば、インターフェース固有の情報は、/etc/sysconfig/network-scripts/ ディレクトリーの ifcfg ファイルに保存されます。

VPN、モバイルブロードバンド、および PPPoE 接続の情報は、/etc/NetworkManager/system-connections/ に保存されます。

注記注記

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

24

Page 29: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

注記注記

デフォルトでは、RHEL は NetworkManager を使用してネットワーク接続を設定および管理し、/usr/sbin/ifup スクリプトおよび /usr/sbin/ifdown スクリプトはNetworkManager を使用して /etc/sysconfig/network-scripts/ ディレクトリー内の ifcfgファイルを処理します。

ネットワーク設定を管理するためにレガシーネットワークスクリプトが必要な場合は、手動でインストールできます。詳細は、「RHEL における従来のネットワークスクリプトのサポート」 を参照してください。ただし、従来のネットワークスクリプトは非推奨となり、RHEL の今後のバージョンで削除されます。

手順手順

1. 新しい設定ファイルを読み込むには、次のコマンドを実行します。

# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-connection_name

2. NetworkManager にすでに読み込まれている接続ファイルを更新した場合は、次のコマンドを実行します。

# nmcli connection up connection_name

関連情報関連情報

man ページの NetworkManager(8) - ネットワーク管理デーモンが説明されています。

man ページの NetworkManager.conf(5) - NetworkManager 設定ファイルが説明されています。

/usr/share/doc/initscripts/sysconfig.txt - 従来のネットワークサービスで使用される ifcfg 設定ファイルとそのディレクティブが説明されています。

man ページの ifcfg(8) - ifcfg コマンドについて簡単に説明しています。

第第3章章 NETWORKMANAGER の使用の使用

25

Page 30: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第4章 特定のデバイスを無視するように NETWORKMANAGER の設定

デフォルトでは、NetworkManager は lo (loopback) デバイス以外のすべてのデバイスを管理します。ただし、特定のデバイスを unmanaged に設定すると、NetworkManager がこのデバイスを無視するように設定できます。この設定では、スクリプトなどを使用して、このデバイスを手動で管理できます。

4.1. NETWORKMANAGER でデバイスを管理対象外として永続的に設定

インターフェース名、MAC アドレス、デバイスタイプなど、複数の基準に基づいてデバイスを 管理対管理対象外象外 として設定できます。この手順では、NetworkManager で、enp1s0 インターフェースを 管理対象管理対象外外 として永続的に設定する方法を説明します。

一時的にネットワークデバイスを 管理外管理外 として設定する場合は、「NetworkManager でデバイスを管理対象外として一時的に設定」 を参照してください。

手順手順

1. 必要に応じて、デバイスの一覧を表示して、管理対象外管理対象外 に設定するデバイスを特定します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp1s0 ethernet disconnected --...

2. 以下の内容で /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;...

3. NetworkManager サービスを再読み込みします。

# systemctl reload NetworkManager

検証手順検証手順

デバイスの一覧を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp1s0 ethernet unmanaged --...

enp1s0 デバイスの横にある 管理対象外管理対象外 状態は、NetworkManager がこのデバイスを管理していないことを示しています。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

26

Page 31: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

デバイスを非管理対象と、対応する構文に設定するのに使用できる基準の一覧は、man ページの NetworkManager.conf(5) の Device List Format セクションを参照してください。

4.2. NETWORKMANAGER でデバイスを管理対象外として一時的に設定

インターフェース名、MAC アドレス、デバイスタイプなど、複数の基準に基づいてデバイスを 管理対管理対象外象外 として設定できます。この手順では、NetworkManager で、enp1s0 インターフェースを 管理対象管理対象外外 として一時的に設定する方法を説明します。

この方法は、たとえば、テスト目的で使用します。ネットワークデバイスを 管理対象外管理対象外 として永続的に設定する場合は、「NetworkManager でデバイスを管理対象外として永続的に設定」 を参照してください。

この方法は、たとえば、テスト目的で使用します。unmanaged としてネットワークデバイスを永続的に設定するには、Configuring and managing networkingの「NetworkManager でデバイスを管理対象外として永続的に設定」を参照してください。

手順手順

1. 必要に応じて、デバイスの一覧を表示して、管理対象外管理対象外 に設定するデバイスを特定します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp1s0 ethernet disconnected --...

2. enp1s0 デバイスを 管理対象外管理対象外 の状態に設定します。

# nmcli device set enp1s0 managed no

検証手順検証手順

デバイスの一覧を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp1s0 ethernet unmanaged --...

enp1s0 デバイスの横にある 管理対象外管理対象外 状態は、NetworkManager がこのデバイスを管理していないことを示しています。

関連情報関連情報

デバイスを非管理対象と、対応する構文に設定するのに使用できる基準の一覧は、man ページの NetworkManager.conf(5) の Device List Format セクションを参照してください。

第第4章章 特定のデバイスを無視するように特定のデバイスを無視するように NETWORKMANAGER の設定の設定

27

Page 32: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第5章 NMTUI の使用nmtui アプリケーションは、NetworkManager のテキストユーザーインターフェース (TUI) です。本章では、nmtui を使用してネットワークインターフェースを設定する方法を説明します。

注記注記

nmtui アプリケーションは、すべての接続タイプに対応していません。特に、802.1X 認証を必要とする VPN 接続またはイーサネット接続を追加または変更することはできません。

5.1. NMTUI ユーティリティーの起動

この手順では、NetworkManager テキストユーザーインターフェース nmtui を起動する方法を説明します。

前提条件前提条件

NetworkManager-tui パッケージがインストールされている。

手順手順

1. nmtui を起動するには、次のコマンドを実行します。

# nmtui

2. 以下に移動します。

カーソルを使用するか Tab を押して次に進むか、Shift+Tab を押して前に戻ります。

Enter を押してオプションを選択します。

Space バーを使用して、チェックボックスのステータスを切り替えます。

5.2. NMTUI を使用した接続プロファイルの追加

nmtui アプリケーションで、NetworkManager へのテキストユーザーインターフェースが含まれます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

28

Page 33: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

nmtui アプリケーションで、NetworkManager へのテキストユーザーインターフェースが含まれます。この手順では、新しい接続プロファイルを追加する方法を説明します。

前提条件前提条件

NetworkManager-tui パッケージがインストールされている。

手順手順

1. NetworkManager のテキストユーザーインターフェースユーティリティーを起動します。

# nmtui

2. 接続の編集接続の編集 メニューエントリーを選択し、Enter を押します。

3. Add ボタンを選択し、Enter を押します。

4. Ethernet を選択し、Enter を押します。

5. フィールドにコネクションの詳細を入力します。

第第5章章 NMTUI の使用の使用

29

Page 34: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

6. OK をクリックして変更を保存します。

7. Back を選択してメインメニューに戻ります。

8. Activate a connection を選択し、Enter を押します。

9. 新しい接続エントリーを選択し、Enter を押して接続をアクティベートします。

10. Back を選択してメインメニューに戻ります。

11. Quit を選択します。

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

30

Page 35: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp1s0 ethernet connected Example-Connection

2. 接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。

# nmcli connection show Example-Connectionconnection.id: Example-Connectionconnection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp1s0...

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart ofNetworkManager service」を参照してください。

関連情報関連情報

基本的なネットワーク設定のテスト

man ページのnmtui(1)

5.3. NMTUI で編集済み接続への変更の適用

nmtui で接続を修正したら、接続を再度アクティブにする必要があります。nmtui で接続を再有効にすると、一時的に接続が非アクティブになることに注意してください。

手順手順

1. メインメニューで、Activate a connection メニューエントリーを選択します。

2. 修正した接続を選択します。

3. 右側で Deactivate ボタンを選択し、Enter を押します。

第第5章章 NMTUI の使用の使用

31

Page 36: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

4. 接続を再度選択します。

5. 右側で Activate ボタンを選択し、Enter を押します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

32

Page 37: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第6章 NMCLI の使用本セクションでは、nmcli ユーティリティーに関する一般的な情報を説明します。

6.1. NMCLI における出力形式

nmcli ユーティリティーは、nmcli コマンドの出力を修正するさまざまなオプションに対応します。このオプションを使用すると、必要な情報のみを表示できます。これにより、スクリプトの出力の処理が容易になります。

デフォルトでは、nmcli ユーティリティーは、出力をテーブルのような形式で表示します。

# nmcli deviceDEVICE TYPE STATE CONNECTIONenp1s0 ethernet connected enp1s0lo loopback unmanaged --

-f オプションを使用すると、特定の列をカスタム順序で表示できます。たとえば、DEVICE 列および STATE 列のみを表示するには、次のコマンドを実行します。

# nmcli -f DEVICE,STATE deviceDEVICE STATEenp1s0 connectedlo unmanaged

-t オプションを指定すると、出力の個別のフィールドをコロンで区切って表示できます。

# nmcli -t deviceenp1s0:ethernet:connected:enp1s0lo:loopback:unmanaged:

-f と-t を組み合わせて、コロン区切り形式で特定のフィールドのみを表示すると、スクリプトで出力を処理する場合に便利です。

# nmcli -f DEVICE,STATE -t deviceenp1s0:connectedlo:unmanaged

6.2. NMCLI でタブ補完の使用

ホストに bash-completion パッケージがインストールされている場合は、nmcli ユーティリティーがタブ補完に対応します。これにより、オプション名を自動補完し、可能なオプションおよび値を特定できます。

たとえば、nmcli con と入力して Tab を押すと、シェルが自動的に nmcli connection に対してコマンドを完了します。

補完では、入力したオプションまたは値が一意である必要があります。一意でない場合は、nmcli がすべての可能性を表示します。たとえば、nmcli connection d と入力して Tab を押すと、コマンドが、可能なオプションとして delete および down を表示します。

タブ補完を使用して、接続プロファイルに設定できるプロパティーをすべて表示することもできます。

第第6章章 NMCLI の使用の使用

33

Page 38: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

タブ補完を使用して、接続プロファイルに設定できるプロパティーをすべて表示することもできます。たとえば、nmcli connection modify connection_name と入力して Tab を押すと、利用可能なプロパティーの完全リストが表示されます。

6.3. NMCLI でよく使用されるコマンド

頻繁に使用する nmcli コマンドの概要を以下に示します。

リスト接続プロファイルを表示するには、次のコマンドを実行します。

# nmcli connection showNAME UUID TYPE DEVICEenp1s0 45224a39-606f-4bf7-b3dc-d088236c15ee ethernet enp1s0

特定の接続プロファイルの設定を表示するには、次のコマンドを実行します。

# nmcli connection show connection_nameconnection.id: enp1s0connection.uuid: 45224a39-606f-4bf7-b3dc-d088236c15eeconnection.stable-id: --connection.type: 802-3-ethernet...

接続のプロパティーを変更するには、次のコマンドを実行します。

# nmcli connection modify connection_name property value

複数のプロパティープロパティー 値値 の組み合わせをコマンドに渡すと、1 つのコマンドを使用して複数のプロパティーを変更できます。

ネットワークデバイスの一覧、その状態、およびデバイスを使用する接続プロファイルを表示するには、次のコマンドを実行します。

# nmcli deviceDEVICE TYPE STATE CONNECTIONenp1s0 ethernet connected enp1s0enp8s0 ethernet disconnected --enp7s0 ethernet unmanaged --...

接続を有効にするには、次のコマンドを実行します。

# nmcli connection up connection_name

接続を無効にするには、次のコマンドを実行します。

# nmcli connection down connection_name

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

34

Page 39: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第7章 GNOME GUI を使用したネットワークの設定GNOME で以下の方法でネットワーク接続を管理および設定することができます。

デスクトップ右上の GNOME Shell のネットワーク接続アイコン

GNOME control-center アプリケーション

GNOME nm-connection-editor アプリケーション

7.1. GNOME SHELL ネットワーク接続アイコンによるネットワーク接続

GNOME GUI を使用する場合は、GNOME Shell のネットワーク接続アイコンを使用して、ネットワークに接続できます。

前提条件前提条件

GNOME パッケージグループがインストールされている。

GNOME にログインしている。

ネットワークに静的 IP アドレスや 802.1x 設定などの特定の設定が必要な場合には、接続プロファイルがすでに作成されています。

手順手順

1. デスクトップ右上隅のネットワーク接続アイコンをクリックします。

2. 接続タイプに応じて、Wired エントリーまたは Wi-Fi エントリーを選択します。

第第7章章 GNOME GUI を使用したネットワークの設定を使用したネットワークの設定

35

Page 40: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

有線接続の場合は、Connect を選択してネットワークに接続します。

Wi-Fi 接続の場合は、Select network をクリックして、接続するネットワークを選択し、パスワードを入力します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

36

Page 41: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第8章 「 INTRODUCTION TO NMSTATE」nmstate は宣言型のネットワークマネージャー API です。nmstate パッケージは、libnmstate Pythonライブラリー、およびコマンドラインユーティリティー nmstatectl を提供し、RHEL でNetworkManager を管理します。Nmstate を使用する場合、YAML または JSON 形式の命令を使用して予想されるネットワーク状態を記述します。

Nmstate を使用する利点は多数あります。たとえば、以下のようになります。

RHEL ネットワーク機能を管理するために、安定性と拡張可能なインターフェースを提供します。

ホストおよびクラスターレベルでのアトミックおよびトランザクション操作をサポートします。

ほとんどのプロパティーの部分的な編集をサポートし、この手順で指定されていない既存の設定を保持します。

管理者が独自のプラグインを使用できるようにプラグインサポートを提供します。

8.1. PYTHON アプリケーションでの LIBNMSTATE ライブラリーの使用

libnmstate Python ライブラリーを使用すると、開発者は独自のアプリケーションで Nmstate を使用できます。

ライブラリーを使用するには、ソースコードにインポートします。

import libnmstate

このライブラリーを使用するには、nmstate パッケージをインストールする必要があることに注意してください。

例例8.1 libnmstate ライブラリーを使用したネットワーク状態のクエリーライブラリーを使用したネットワーク状態のクエリー

以下の Python コードは、libnmstate ライブラリーをインポートし、利用可能なネットワークインターフェースとその状態を表示します。

import jsonimport libnmstatefrom libnmstate.schema import Interface

net_state = libnmstate.show()for iface_state in net_state[Interface.KEY]: print(iface_state[Interface.NAME] + ": " + iface_state[Interface.STATE])

8.2. NMSTATECTL を使用した現在のネットワーク設定の更新

nmstatectl ユーティリティーを使用して、1 つまたはすべてのインターフェースの現在のネットワーク設定をファイルに保存できます。このファイルを使用して、以下を行うことができます。

設定を変更し、同じシステムに適用します。

第第8章章 「「 INTRODUCTION TO NMSTATE」」

37

Page 42: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

別のホストにファイルをコピーし、同じまたは変更された設定でホストを設定します。

この手順では、enp1s0 インターフェースの設定をファイルへエクスポートし、設定を変更し、ホストに適用する方法を説明します。

前提条件前提条件

nmstate パッケージがインストールされている。

手順手順

1. enp1s0 インターフェースの設定を ~/network-config.yml ファイルにエクスポートします。

# nmstatectl show enp1s0 > ~/network-config.yml

このコマンドにより、enp1s0 の設定が YAML 形式で保存されます。JSON 形式で出力を保存するには、--json オプションをコマンドに渡します。

インターフェース名を指定しない場合、nmstatectl はすべてのインターフェースの設定をエクスポートします。

2. テキストエディターで ~/network-config.yml ファイルを変更して、設定を更新します。

3. ~/network-config.yml ファイルからの設定を適用します。

# nmstatectl set ~/network-config.yml

JSON 形式で設定をエクスポートしている場合は、--json オプションをコマンドに渡します。

8.3. 関連情報

ライブラリーの詳細および API ドキュメントなど、アップストリームのドキュメントへのリンクは、/usr/share/doc/nmstate/README.md ファイルを参照してください。

YAML 形式のさまざまな設定例については、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

38

Page 43: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第9章 イーサネット接続の設定本セクションでは、静的および動的の IP アドレスでイーサネット接続を構成するさまざまな方法を説明します。

9.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

手順手順

1. Ethernet 接続の NetworkManager 接続プロファイルを新たに追加します。

# nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet

以下の手順は、作成した Example-Connection 接続プロファイルを変更します。

2. IPv4 アドレスを設定します。

# nmcli connection modify Example-Connection ipv4.addresses 192.0.2.1/24

3. IPv6 アドレスを設定します。

# nmcli connection modify Example-Connection ipv6.addresses 2001:db8:1::1/64

4. IPv4 および IPv6 接続メソッドを manual に設定します。

# nmcli connection modify Example-Connection ipv4.method manual# nmcli connection modify Example-Connection ipv6.method manual

5. IPv4 および IPv6 のデフォルトゲートウェイを設定します。

# nmcli connection modify Example-Connection ipv4.gateway 192.0.2.254# nmcli connection modify Example-Connection ipv6.gateway 2001:db8:1::fffe

6. IPv4 および IPv6 DNS サーバーアドレスを設定します。

第第9章章 イーサネット接続の設定イーサネット接続の設定

39

Page 44: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nmcli connection modify Example-Connection ipv4.dns "192.0.2.200"# nmcli connection modify Example-Connection ipv6.dns "2001:db8:1::ffbb"

複数の DNS サーバーを設定するには、空白で区切って引用符で囲みます。

7. IPv4 および IPv6 接続の DNS 検索ドメインを設定します。

# nmcli connection modify Example-Connection ipv4.dns-search example.com# nmcli connection modify Example-Connection ipv6.dns-search example.com

8. 接続プロファイルをアクティベートします。

# nmcli connection up Example-ConnectionConnection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected Example-Connection

2. 接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。

# nmcli connection show Example-Connectionconnection.id: Example-Connectionconnection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

3. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 192.0.2.3

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、IP およびサブネットの設定を確認します。

リモートサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 198.162.3.1

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

40

Page 45: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。IPv4 の場合:

# ping 192.0.2.254

IPv6 の場合:

# ping 2001:db8:1::fffe

4. host ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

トラブルシューティングの手順トラブルシューティングの手順

1. 接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。

ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。

リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。

ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「 NetworkManager duplicates a connection after restart ofNetworkManager service」を参照してください。

関連情報関連情報

nm-settings(5)、nmcli および nmcli(1) の man ページ

特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定

9.2. NMCLI インタラクティブエディターを使用した静的イーサネット接続の設定

この手順では、nmcli 対話モードを使用して、以下の設定でイーサネット接続を追加する方法を説明します。

静的 IPv4 アドレス - /24 サブネットマスクを持つ 192.0.2.1

第第9章章 イーサネット接続の設定イーサネット接続の設定

41

Page 46: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

静的 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

手順手順

1. イーサネット接続に新しい NetworkManager 接続プロファイルを追加して、対話モードを開始するには、次のコマンドを実行します。

# nmcli connection edit type ethernet con-name Example-Connection

2. ネットワークインターフェースを設定します。

nmcli> set connection.interface-name enp7s0

3. IPv4 アドレスを設定します。

nmcli> set ipv4.addresses 192.0.2.1/24

4. IPv6 アドレスを設定します。

nmcli> set ipv6.addresses 2001:db8:1::1/64

5. IPv4 および IPv6 接続メソッドを manual に設定します。

nmcli> set ipv4.method manualnmcli> set ipv6.method manual

6. IPv4 および IPv6 のデフォルトゲートウェイを設定します。

nmcli> set ipv4.gateway 192.0.2.254nmcli> set ipv6.gateway 2001:db8:1::fffe

7. IPv4 および IPv6 DNS サーバーアドレスを設定します。

nmcli> set ipv4.dns 192.0.2.200nmcli> set ipv6.dns 2001:db8:1::ffbb

複数の DNS サーバーを設定するには、空白で区切って引用符で囲みます。

8. IPv4 および IPv6 接続の DNS 検索ドメインを設定します。

nmcli> set ipv4.dns-search example.comnmcli> set ipv6.dns-search example.com

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

42

Page 47: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

9. 接続をアクティベートして保存します。

nmcli> save persistentSaving 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

10. インタラクティブモードを終了します。

nmcli> quit

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected Example-Connection

2. 接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。

# nmcli connection show Example-Connectionconnection.id: Example-Connectionconnection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

3. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 192.0.2.3

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、IP およびサブネットの設定を確認します。

リモートサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 198.162.3.1

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。

第第9章章 イーサネット接続の設定イーサネット接続の設定

43

Page 48: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

IPv4 の場合:

# ping 192.0.2.254

IPv6 の場合:

# ping 2001:db8:1::fffe

4. host ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

トラブルシューティングの手順トラブルシューティングの手順

1. 接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。

ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。

リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。

ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。

関連情報関連情報

接続プロファイルのプロパティーとその設定の詳細は、nm-settings(5) の man ページを参照してください。

nmcli ユーティリティーの詳細は、 nmcli(1) の man ページを参照してください。

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManagerservice」を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

9.3. NMSTATECTL を使用した静的イーサネット接続の設定

この手順では、nmstatectl ユーティリティーを使用して以下の設定を使用して、enp7s0 デバイスのイーサネット接続を設定する方法を説明します。

静的 IPv4 アドレス: /24 サブネットマスクを持つ 192.0.2.1

静的 IPv6 アドレス: 2001:db8:1::1 ( /64 サブネットマスクあり)

IPv4 デフォルトゲートウェイ: 192.0.2.254

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

44

Page 49: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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 パッケージがインストールされている。

手順手順

1. 以下の内容を含む 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: falseroutes: 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: enp7s0dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb

第第9章章 イーサネット接続の設定イーサネット接続の設定

45

Page 50: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. 設定をシステムに適用します。

# nmstatectl set ~/create-ethernet-profile.yml

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected enp7s0

2. 接続プロファイルのすべての設定を表示します。

# nmcli connection show enp7s0connection.id: enp7s0connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

9.4. RHEL システムロールを使用した静的イーサネット接続の設定

この手順では、RHEL システムロールを使用して、以下の設定で enp7s0 インターフェースのイーサネット接続をリモートに追加する方法を説明します。これには、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

Ansible コントロールノードで以下の手順を実行します。

前提条件前提条件

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

46

Page 51: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

ホストは NetworkManager を使用してネットワークを設定している。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/ethernet-static-IP.yml ファイルを以下の内容で作成します。

---- name: Configure an Ethernet connection with static IP hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network

vars: network_connections: - 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

3. 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 は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

第第9章章 イーサネット接続の設定イーサネット接続の設定

47

Page 52: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

9.5. NMCLI で動的イーサネット接続の設定

この手順では、nmcli ユーティリティーを使用して、動的イーサネット接続を追加する方法を説明します。この設定では、NetworkManager はこの接続の IP 設定を DHCP サーバーから要求します。

前提条件前提条件

DHCP サーバーはネットワークで使用できます。

手順手順

1. Ethernet 接続の NetworkManager 接続プロファイルを新たに追加します。

# nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet

2. 必要に応じて、Example-Connection プロファイルを使用するときに NetworkManager がDHCP サーバーに送信するホスト名を変更します。

# nmcli connection modify Example-Connection ipv4.dhcp-hostname Example ipv6.dhcp-hostname Example

3. 必要に応じて、Example-Connection プロファイルを使用するときに NetworkManager が IPv4DHCP サーバーに送信するクライアント ID を変更します。

# nmcli connection modify Example-Connection ipv4.dhcp-client-id client-ID

IPv6 には dhcp-client-id パラメーターがないことに注意してください。IPv6 の識別子を作成するには、dhclient サービスを構成します。

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected Example-Connection

2. 接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。

# nmcli connection show Example-Connectionconnection.id: Example-Connectionconnection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

48

Page 53: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

3. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 192.0.2.3

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、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

4. host ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

関連情報関連情報

IPv6 のクライアント識別子の設定の詳細は、man ページ dhclient(8) を参照してください。

接続プロファイルのプロパティーとその設定の詳細は、man ページの nm-settings(5) を参照してください。

nmcli ユーティリティーの詳細は、 nmcli(1) の man ページを参照してください。

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動

第第9章章 イーサネット接続の設定イーサネット接続の設定

49

Page 54: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManagerservice」を参照してください。

9.6. NMCLI インタラクティブエディターで動的イーサネット接続の設定

この手順では、nmcli ユーティリティーのインタラクティブエディターを使用して、動的イーサネット接続を追加する方法を説明します。この設定では、NetworkManager はこの接続の IP 設定を DHCPサーバーから要求します。

前提条件前提条件

DHCP サーバーはネットワークで使用できます。

手順手順

1. イーサネット接続に新しい NetworkManager 接続プロファイルを追加して、対話モードを開始するには、次のコマンドを実行します。

# nmcli connection edit type ethernet con-name Example-Connection

2. ネットワークインターフェースを設定します。

nmcli> set connection.interface-name enp7s0

3. 必要に応じて、Example-Connection プロファイルを使用するときに NetworkManager がDHCP サーバーに送信するホスト名を変更します。

nmcli> set ipv4.dhcp-hostname Examplenmcli> set ipv6.dhcp-hostname Example

4. 必要に応じて、Example-Connection プロファイルを使用するときに NetworkManager が IPv4DHCP サーバーに送信するクライアント ID を変更します。

nmcli> set ipv4.dhcp-client-id client-ID

IPv6 には dhcp-client-id パラメーターがないことに注意してください。IPv6 の識別子を作成するには、dhclient サービスを構成します。

5. 接続をアクティベートして保存します。

nmcli> save persistentSaving 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

6. インタラクティブモードを終了します。

nmcli> quit

検証手順検証手順

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

50

Page 55: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected Example-Connection

2. 接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。

# nmcli connection show Example-Connectionconnection.id: Example-Connectionconnection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

3. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 192.0.2.3

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、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

4. host ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合

第第9章章 イーサネット接続の設定イーサネット接続の設定

51

Page 56: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

関連情報関連情報

IPv6 のクライアント識別子の設定の詳細は、man ページ dhclient(8) を参照してください。

接続プロファイルのプロパティーとその設定の詳細は、man ページの nm-settings(5) を参照してください。

nmcli ユーティリティーの詳細は、 nmcli(1) の man ページを参照してください。

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManagerservice」を参照してください。

9.7. NMSTATECTL を使用した動的イーサネット接続の設定

この手順では、nmstatectl ユーティリティーを使用して enp7s0 デバイスの動的イーサネットを追加する方法を説明します。この手順の設定により、NetworkManager は、DHCP サーバーからこの接続の IP設定を要求します。

nmstatectl ユーティリティーは、設定後に、結果が設定ファイルに一致します。何らかの障害が発生した場合には、nmstatectl は自動的に変更をロールバックし、システムを正しくない状態に残らないようにします。

手順では、YAML 形式でインターフェース設定を定義します。または、JSON 形式で設定を指定することもできます。

前提条件前提条件

nmstate パッケージがインストールされている。

手順手順

1. 以下の内容を含む YAML ファイル(例: ~/create-ethernet-profile.yml )を作成します。

---interfaces:- name: enp7s0 type: ethernet state: up ipv4: enabled: true address: [] auto-dns: true auto-gateway: true auto-routes: true dhcp: true ipv6: enabled: true address: [] auto-dns: true auto-gateway: true

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

52

Page 57: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

auto-routes: true autoconf: true dhcp: true

2. 設定をシステムに適用します。

# nmstatectl set ~/create-ethernet-profile.yml

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected enp7s0

2. 接続プロファイルのすべての設定を表示します。

# nmcli connection show enp7s0connection.id: enp7s0_connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

9.8. RHEL システムロールを使用した動的イーサネット接続の設定

この手順では、RHEL システムロールを使用して、Ansible Playbook を実行して enp7s0 インターフェースの動的イーサネット接続をリモートに追加する方法を説明します。この設定により、ネットワーク接続は、DHCP サーバーからこの接続の IP 設定を要求するようになりました。Ansible コントロールノードで以下の手順を実行します。

前提条件前提条件

DHCP サーバーはネットワークで使用できる。

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

ホストは NetworkManager を使用してネットワークを設定している。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホス

第第9章章 イーサネット接続の設定イーサネット接続の設定

53

Page 58: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/ethernet-dynamic-IP.yml Playbook を以下の内容で作成します。

---- name: Configure an Ethernet connection with dynamic IP hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network

vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up

3. 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 は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

9.9. CONTROL-CENTER によるイーサネット接続の設定

イーサネット接続は、物理サーバーまたは仮想マシンで最も頻繁に使用される接続タイプになります。本セクションでは、GNOME control-center でこの接続タイプを設定する方法を説明します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

54

Page 59: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

control-center は、nm-connection-editor アプリケーションまたは nmcli ユーティリティーほど多くの設定オプションに対応していないことに注意してください。

前提条件前提条件

サーバーに、物理または仮想のイーサネットデバイスが設定されている。

GNOME がインストールされている。

手順手順

1. Super キーを押して Settings を入力し、Enter を押します。

2. 左側のナビゲーションにある Network を選択します。

3. Wired エントリーの横にある + ボタンをクリックして、新規プロファイルを作成します。

4. 必要に応じて、Identity タブで接続の名前を設定します。

5. IPv4 タブで、IPv4 設定を構成します。たとえば、Manual メソッドを選択し、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。

6. IPv6 タブで、IPv6 設定を構成します。たとえば、Manual メソッドを選択し、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。

第第9章章 イーサネット接続の設定イーサネット接続の設定

55

Page 60: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

7. 追加追加 ボタンをクリックして接続を保存します。GNOME の control-center は、接続を自動的にアクティブにします。

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet connected Example-Connection

2. 接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。

# nmcli connection show Example-Connectionconnection.id: Example-Connectionconnection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp7s0...

3. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 192.0.2.3

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

56

Page 61: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、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

4. host ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

トラブルシューティングの手順トラブルシューティングの手順

1. 接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。

ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。

リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。

ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。

関連資料関連資料

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

9.10. NM-CONNECTION-EDITOR を使用したイーサネット接続の設定

第第9章章 イーサネット接続の設定イーサネット接続の設定

57

Page 62: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

イーサネット接続は、物理サーバーまたは仮想サーバーで最も頻繁に使用される接続タイプになります。本セクションでは、nm-connection-editor アプリケーションを使用して接続タイプを設定する方法を説明します。

前提条件前提条件

サーバーに、物理または仮想のイーサネットデバイスが設定されている。

GNOME がインストールされている。

手順手順

1. 端末を開き、次のコマンドを入力します。

$ nm-connection-editor

2. + ボタンをクリックして、新しい接続を追加します。

3. イーサネットイーサネット 接続タイプを選択し、作成作成 をクリックします。

4. General タブで、以下を行います。

a. システムの起動時または NetworkManager サービスを再起動する際にこの接続を自動的に有効にするには、以下を行います。

i. Connect automatically with priority を選択します。

ii. 必要に応じて、Connect automatically with priority の横にある優先度の値を変更します。同じデバイスに複数の接続プロファイルが存在する場合は、NetworkManager はプロファイルを 1 つだけ有効にします。デフォルトでは、NetworkManager は、自動接続が有効になっている最後のプロファイルをアクティブにします。ただし、プロファイルに優先度の値を設定すると、NetworkManager は、最も優先度が高いプロファイルをアクティブにします。

b. プロファイルが、この接続プロファイルを作成したユーザーに対してのみ利用可能になる場合は、All users may connect to this network チェックボックスの選択を解除します。

5. イーサネットイーサネット タブで、デバイスを選択します。必要に応じて、イーサネット関連の設定をさら

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

58

Page 63: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

5. イーサネットイーサネット タブで、デバイスを選択します。必要に応じて、イーサネット関連の設定をさらに選択します。

6. IPv4 Settings タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。

7. IPv6 設定設定 タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。

第第9章章 イーサネット接続の設定イーサネット接続の設定

59

Page 64: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

8. 接続を読み込みます。

9. nm-connection-editor を閉じます。

検証手順検証手順

1. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。IPv4 の場合:

# ping 192.0.2.3

IPv6 の場合:

# ping 2001:db8:2::1

コマンドが失敗した場合は、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 の設定」 を参照してください。

9.11. NETWORKMANAGER 接続の DHCP 動作の設定

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

60

Page 65: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

DHCP (Dynamic Host Configuration Protocol) クライアントは、クライアントがネットワークに接続するたびに、動的 IP アドレスと対応する設定情報を DHCP サーバーに要求します。

DHCP サーバーから IP アドレスを取得するように接続を設定すると、NetworkManager は DHCP サーバーから IP アドレスを要求します。デフォルトでは、クライアントはこのリクエストが完了するまで45 秒待機します。dhcp クライアントは、DHCP 接続が開始する際に、DHCP サーバーに IP アドレスを要求します。

前提条件前提条件

DHCP を使用する接続がホストに設定されている。

手順手順

1. ipv4.dhcp-timeout および ipv6.dhcp-timeout プロパティーを設定します。たとえば、両方のオプションを 30 秒に設定するには、次のコマンドを実行します。

# nmcli connection modify connection_name ipv4.dhcp-timeout 30 ipv6.dhcp-timeout 30

パラメーターを infinity に設定すると、成功するまで NetworkManager が IP アドレスのリクエストおよび更新を停止しないようにします。

2. 必要に応じて、タイムアウト前に 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 アドレスを取得するようになりました。

3. 必要に応じて、タイムアウト前に NetworkManager が IPv6 アドレスを受信しない場合にこの動作を設定します。

# nmcli connection modify connection_name ipv6.may-fail value

関連情報関連情報

本セクションで説明するプロパティーの詳細は、man ページの nm-settings(5) を参照してください。

第第9章章 イーサネット接続の設定イーサネット接続の設定

61

Page 66: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第10章 WI-FI 接続の管理本セクションでは、Wi-Fi 接続を設定し、管理する方法を説明します。

10.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 ページを参照してください。

man ページの setregdomain(1) - 国コードに基づき規制ドメインを設定します。

man ページの crda(8) - 特定 ISO または IEC 3166 alpha2 のワイヤレス規制ドメインをカーネルに送信します。

man ページの regulatory.bin(5) - Linux ワイヤレス規制データベースを表示します。

man ページの iw(8) ページ - ワイヤレスデバイスおよびその設定を表示または操作します。

10.2. NMCLI による WI-FI 接続の設定

この手順では、nmcli を使用して Wi-fi 接続プロファイルを設定する方法を説明します。

前提条件前提条件

nmcli ユーティリティーがインストールされている。

WiFi ラジオボタンがオンになっている (デフォルト)。

~]$ nmcli radio wifi on

手順手順

1. 静的な IP 設定で Wi-Fi 接続プロファイルを作成するには、次のコマンドを実行します。

~]$ nmcli con add con-name MyCafe ifname wlan0 type wifi ssid MyCafe ` `ip4 192.168.100.101/24 gw4 192.168.100.1

2. DNS サーバーを設定します。たとえば、192.160.100.1 を DNS サーバーとして設定するには、次のコマンドを実行します。

~]$ nmcli con modify con-name MyCafe ipv4.dns "192.160.100.1"

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

62

Page 67: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. 必要に応じて、DNS 検索ドメインを設定します。たとえば、検索ドメインを example.com に設定するには、次のコマンドを実行します。

~]$ nmcli con modify con-name MyCafe ipv4.dns-search "example.com"

4. 特定のプロパティー (例: mtu) を確認するには、次のコマンドを実行します。

~]$ nmcli connection show id MyCafe | grep mtu802-11-wireless.mtu: auto

5. 設定のプロパティーを変更するには、次のコマンドを実行します。

~]$ nmcli connection modify id MyCafe 802-11-wireless.mtu 1350

6. 変更を確認するには、次のコマンドを実行します。

~]$ nmcli connection show id MyCafe | grep mtu802-11-wireless.mtu: 1350

検証手順検証手順

1. ping ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。

同じサブネットの IP アドレスに ping します。以下に例を示します。

# ping 192.168.100.103

コマンドが失敗した場合は、IP およびサブネットの設定を確認します。

リモートサブネットの IP アドレスに ping します。以下に例を示します。

# ping 198.51.16.3

コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。

# ping 192.168.100.1

2. host ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

関連情報関連情報

プロパティーとその設定の詳細は、man ページの nm-settings(5) を参照してください。

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager の起動または再起動により、デバイスの設定を反映するインメモリー接続が作成されます。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager

第第10章章 WI-FI 接続の管理接続の管理

63

Page 68: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

service」を参照してください。

10.3. CONTROL-CENTER による WI-FI 接続の設定

Wi-Fi に接続すると、現在のネットワーク接続に応じてネットワーク設定が事前に入力されます。これは、インターフェースがネットワークに接続すると、設定が自動的に検出されることを意味します。

この手順では、control-center を使用して、Wi-Fi 設定を手動で設定する方法を説明します。

手順手順

1. Super キーを押して アクティビティーの概要アクティビティーの概要 を表示し、Wi-Fi と入力して Enter キーを押します。左側のメニューエントリーでは、利用可能なネットワークの一覧が表示されます。

2. 編集する Wi-Fi 接続名の右側にある歯車アイコンを選択すると、接続の編集ダイアログが表示されます。Details メニューウィンドウには、詳細な設定が可能となる接続の詳細が表示されます。オプションオプション

a. Connect automatically を選択すると、その接続が利用可能であることをNetworkManager が検出すると、NetworkManager をこの接続に自動接続します。NetworkManager が自動的に接続しないようにする場合は、チェックボックスの選択を解除します。チェックボックスの選択を解除した場合は、ネットワーク接続のアイコンメニューでその接続を手動で選択すると、その接続が接続するようになります。

b. 他のユーザーも接続を利用できるようにするには、Make available to other users チェックボックスを選択します。

c. バックグラウンドデータの使用を制御することもできます。Restrict background data usage を選択しない (デフォルト) ままにしておくと、NetworkManager は、活発に使用しているデータをダウンロードしようとします。そうしない場合は、チェックボックスを選択し、NetworkManager が接続をメーター制に設定し、バックグラウンドデータ使用に制限を適用します。

注記注記

Wi-Fi 接続を削除するには、赤い Forget Connection をクリックします。

3. 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 アドレス必要でない限り、空白のままにします。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

64

Page 69: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

4. さらに 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 アドレスはコンマで区切ります。

RoutesRoutes セクションでは、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 アドレスを

第第10章章 WI-FI 接続の管理接続の管理

65

Page 70: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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 設定です。

5. Wi-Fi 接続の セキュリティーセキュリティー を設定する場合は、Security メニューエントリーを選択します。以下の設定オプションが利用できます。

Security

None - Wi-Fi 接続は暗号化しません。

WEP 40/128-bit Key - IEEE 802.11 規格の Wired Equivalent Privacy (WEP)共有キー(PSK) を 1 つ使用します。

WEP 128-bit Passphrase - パスフレーズの MD5 ハッシュで WEP キーを引き出します。

警告警告

Wi-Fi が暗号化、WEP、または WPA を使用しない場合は、ネットワークが安全ではなく、そのネットワーク上で送信するデータをすべて読み取ることができるため、そのネットワークは使用しないでください。

LEAP - Cisco Systems の Lightweight Extensible Authentication Protocol。

Dynamic WEP (802.1X) - WEP キーは動的に変更します。

WPA & WPA2 Personal - IEEE 802.11i 規格の WPA (Wi-Fi Protected Access) です。WEP の代替。802.11i-2004 規格の Wi-Fi Protected Access II (WPA2)。個人モードは、事前共有キー (WPA-PSK) を使用します。

WPA & WPA2 Enterprise - IEEE 802.1X ネットワークアクセス制御を提供するために、RADIUS 認証サーバーと併用する WPA。

Password - 認証プロセスで使用するパスワードを入力します。

6. 設定が完了したら、適用適用 ボタンをクリックして保存します。

注記注記

プラスプラス ボタンをクリックして新しい接続を追加する場合は、NetworkManager により、その接続用の新しい設定が作成され、既存の接続の編集に使用するのと同じダイアログが表示されます。このダイアログの違いは、既存の接続プロファイルに Details メニューエントリーがあることです。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

66

Page 71: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

10.4. NMCLI による WI-FI ネットワークへの接続

この手順では、nmcli ユーティリティーを使用して ワイヤレスワイヤレス 接続に接続する方法を説明します。

前提条件前提条件

nmcli ユーティリティーがインストールされている。

WiFi ラジオボタンがオンになっている (デフォルト)。

~]$ nmcli radio wifi on

手順手順

1. 利用可能な Wi-Fi 接続リストを更新するには、次のコマンドを実行します。

~]$ nmcli device wifi rescan

2. 利用可能な Wi-Fi アクセスポイントを表示するには、次のコマンドを実行します。

~]$ nmcli dev wifi list

IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY... MyCafe Infra 3 405 Mbit/s 85 ▂▄▆█ WPA1 WPA2

3. 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

10.5. NMCLI を使用した非表示の WI-FI ネットワーク接続

すべてのアクセスポイントには、アクセスポイントを特定するための SSID (Service Set Identifier) があります。ただし、アクセスポイントはその SSID をブロードキャストしないように設定されていることがあります。この場合は非表示となり、NetworkManager の利用可能なネットワーク一覧には表示されなくなります。

この手順では、nmcli ツールを使用して非表示のネットワークに接続する方法を説明します。

前提条件前提条件

nmcli ユーティリティーがインストールされている。

(次のコマンドを実行し) SSID と Wi-Fi 接続のパスワードを確認している。

第第10章章 WI-FI 接続の管理接続の管理

67

Page 72: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

WiFi ラジオボタンがオンになっている (デフォルト)。

~]$ nmcli radio wifi on

手順手順

非表示の SSID に接続します。

~]$ nmcli dev wifi connect SSID_Name password wireless_password hidden yes

10.6. GNOME GUI による WI-FI ネットワークへの接続

この手順では、ワイヤレスネットワークに接続してインターネットにアクセスする方法を説明します。

手順手順

1. 画面右上にあるGNOME Shell ネットワーク接続アイコンメニューを開きます。

2. Wi-Fi Not Connected を選択します。

3. Select Network オプションをクリックします。

4. 接続するネットワークの名前をクリックし、Connect をクリックします。ネットワークが表示されない場合は、ネットワークが表示されなくなります。

5. ネットワークがパスワードまたは暗号鍵で保護されている場合は、パスワードを入力し、Connect をクリックします。パスワードが分からない場合は、Wi-Fi ネットワークの管理者に連絡してください。

6. 接続に成功すると、接続アイコンメニューでネットワーク名が表示され、ワイヤレスインジケーターが画面の右上隅に表示されます。

関連情報関連情報

コントロールセンターによる Wi-Fi 接続の設定

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

68

Page 73: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第11章 VLAN タグの設定本セクションでは、仮想ローカルエリアネットワーク (VLAN) を設定する方法を説明します。VLANは、物理ネットワーク内の論理ネットワークです。VLAN インターフェースは、インターフェースを通過する際に VLAN ID でパケットをタグ付けし、返信パケットのタグを削除します。

VLAN インターフェースを、イーサネット、ボンド、チーム、ブリッジデバイスなどの別のインターフェースに作成します。このインターフェースは、親インターフェース親インターフェース と呼ばれます。

11.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-autoconf がしばらくすると、インターフェースが停止する可能性があります。

ホストが接続するスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。

手順手順

1. ネットワークインターフェースを表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp1s0 ethernet disconnected enp1s0bridge0 bridge connected bridge0bond0 bond connected bond0...

2. VLAN インターフェースを作成します。たとえば、VLAN インターフェース vlan10 を作成し、enp1s0 を親インターフェースとして使用し、VLAN ID 10 のタグパケットを作成するには、次のコマンドを実行します。

# nmcli connection add type vlan con-name vlan10 ifname vlan10 vlan.parent enp1s0 vlan.id 10

VLAN は、0 から 4094 の範囲内に存在する必要があります。

第第11章章 VLAN タグの設定タグの設定

69

Page 74: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. デフォルトでは、VLAN 接続は、親インターフェースから最大伝送単位 (MTU) を継承します。必要に応じて、別の MTU 値を設定します。

# nmcli connection modify vlan10 802-3-ethernet.mtu 2000

4. VLAN デバイスの IP 設定を構成します。この VLAN デバイスを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. 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

b. 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

5. 接続をアクティベートします。

# nmcli connection up vlan10

検証手順検証手順

1. 設定を確認します。

# ip -d addr show vlan104: 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

関連情報関連情報

接続のテストに関する詳細は、41章基本的なネットワーク設定のテスト を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

70

Page 75: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

nmcli の例は、man ページの nmcli-examples(7) を参照してください。

設定可能なすべての vlan プロパティーは、man ページの nm-settings (5) の vlan setting セクションを参照してください。

11.2. NM-CONNECTION-EDITOR による VLAN タグの設定

本セクションでは、nm-connection-editor アプリケーションを使用して、仮想ローカルエリアネットワーク (VLAN) のタグ付けを設定する方法を説明します。

前提条件前提条件

仮想 VLAN インターフェースに対する親として使用するインターフェースが VLAN タグに対応している。

ボンドインターフェースに VLAN を設定する場合は、以下のようになります。

ボンディングのポートが起動している。

ボンドが、fail_over_mac=follow オプションで設定されていない。VLAN 仮想デバイスは、親の新規 MAC アドレスに一致する MAC アドレスを変更できません。このような場合、トラフィックは間違ったソースの MAC アドレスで送信されます。

ホストが接続するスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。

手順手順

1. 端末を開き、nm-connection-editor と入力します。

$ nm-connection-editor

2. + ボタンをクリックして、新しい接続を追加します。

3. VLAN 接続タイプを選択し、作成作成 をクリックします。

4. VLAN タブで、以下を行います。

a. 親インターフェースを選択します。

b. VLAN id を選択します。VLAN は、0 から 4094 の範囲内に存在する必要があります。

c. デフォルトでは、VLAN 接続は、親インターフェースから最大伝送単位 (MTU) を継承します。必要に応じて、別の MTU 値を設定します。

d. 必要に応じて、VLAN インターフェースの名前および VLAN 固有のオプションを設定します。

第第11章章 VLAN タグの設定タグの設定

71

Page 76: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

5. VLAN デバイスの IP 設定を構成します。この VLAN デバイスを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. IPv4 Settings タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。

b. IPv6 設定設定 タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワー

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

72

Page 77: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

b. IPv6 設定設定 タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。

6. 保存保存 をクリックして VLAN 接続を保存します。

7. nm-connection-editor を閉じます。

検証手順検証手順

1. 設定を確認します。

# ip -d addr show vlan104: 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

関連情報関連情報

接続のテストに関する詳細は、41章基本的なネットワーク設定のテスト を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

11.3. NMSTATECTL を使用した VLAN タグ付けの設定

本セクションでは、nmstatectl ユーティリティーを使用して、イーサネット接続を使用する ID 10 のVLAN を設定する方法について説明します。親デバイスとして、VLAN 接続には IP、デフォルトゲートウェイ、および DNS 設定が含まれます。

環境に応じて、YAML ファイルを適宜調整します。たとえば、VLAN でチーム、ブリッジ、またはボン

第第11章章 VLAN タグの設定タグの設定

73

Page 78: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

環境に応じて、YAML ファイルを適宜調整します。たとえば、VLAN でチーム、ブリッジ、またはボンディングデバイスを使用するには、base-iface 属性と VLAN で使用するポートの type 属性を調整します。

前提条件前提条件

VLAN でイーサネットデバイスをポートとして使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。

nmstate パッケージがインストールされている。

手順手順

1. 以下の内容を含む 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

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

74

Page 79: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. 設定をシステムに適用します。

# nmstatectl set ~/create-vlan.yml

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONvlan10 vlan connected vlan10

2. 接続プロファイルのすべての設定を表示します。

# nmcli connection show vlan10connection.id: vlan10connection.uuid: 1722970f-788e-4f81-bd7d-a86bf21c9df5connection.stable-id: --connection.type: vlanconnection.interface-name: vlan10...

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

11.4. システムロールを使用した VLAN タグの設定

networking の RHEL システムロールを使用して、VLAN タグ付けを設定できます。この手順では、イーサネット接続と、このイーサネット接続を使用する ID 10 の VLAN を追加する方法を説明します。親デバイスとして、VLAN 接続には IP、デフォルトゲートウェイ、および DNS 設定が含まれます。

環境に応じて、play を適宜調整します。以下に例を示します。

ボンディングなどの他の接続で VLAN をポートとして使用するには、ip 属性を省略し、親設定で IP 設定を設定します。

VLAN でチーム、ブリッジ、またはボンディングデバイスを使用するには、interface_name とVLAN で使用するポートの type 属性を調整します。

前提条件前提条件

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホス

第第11章章 VLAN タグの設定タグの設定

75

Page 80: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/vlan-ethernet.yml Playbook を以下の内容で作成します。

---- name: Configure a VLAN that uses an Ethernet connection hosts: node.example.com become: true tasks: - include_role: name: linux-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: vlan10 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 を設定します。

3. Playbook を実行します。

root ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。

# ansible-playbook -u root ~/vlan-ethernet.yml

管理ホストにユーザーとして接続するには、次のコマンドを実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

76

Page 81: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# 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 は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

第第11章章 VLAN タグの設定タグの設定

77

Page 82: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第12章 ネットワークブリッジの設定ネットワークブリッジは、MAC アドレスのテーブルに基づいてネットワーク間のトラフィックを転送するリンク層デバイスです。ブリッジは、ネットワークトラフィックをリッスンし、どのホストが各ネットワークに接続しているかを把握して、MAC アドレステーブルを構築します。たとえば、Red HatEnterprise Linux 8 ホスト上のソフトウェアブリッジを使用して、ハードウェアブリッジや仮想化環境で仮想マシンをホストと同じネットワークに統合できます。

ブリッジには、ブリッジが接続する必要がある各ネットワークにネットワークデバイスが必要です。ブリッジを設定する場合には、ブリッジは コントローラーコントローラー と呼ばれ、ポートポート を使用するデバイスです。

以下のように、さまざまなタイプのデバイスにブリッジを作成できます。

物理および仮想イーサネットデバイス

ネットワークボンディング

ネットワークチーム

VLAN デバイス

Wi-Fi で効率的に使用するために、Wi-Fi で 3-address フレームの使用を指定する IEEE 802.11 規格により、Ad-Hoc モードまたは Infrastructure モードで稼働している Wi-Fi ネットワークにはブリッジを設定できません。

12.1. NMCLI コマンドによるネットワークブリッジの設定

本セクションは、nmcli ユーティリティーを使用してネットワークブリッジを設定する方法を説明します。

前提条件前提条件

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスをサーバーにインストールする必要があります。

ブリッジのポートにチーム、ボンディング、または VLAN デバイスを使用するには、ブリッジの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。

「nmcli コマンドによるネットワークチームの設定」

「nmcli コマンドによるネットワークブリッジの設定」

「nmcli コマンドによる VLAN タグ付けの設定」

手順手順

1. ブリッジインターフェースを作成します。

# nmcli connection add type bridge con-name bridge0 ifname bridge0

このコマンドにより bridge0 という名前のブリッジが作成されます。以下を入力します。

2. ネットワークインターフェースを表示し、ブリッジに追加するインターフェースの名前を書き

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

78

Page 83: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. ネットワークインターフェースを表示し、ブリッジに追加するインターフェースの名前を書き留めます。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet disconnected --enp8s0 ethernet disconnected --bond0 bond connected bond0bond1 bond connected bond1...

この例では、以下のように設定されています。

enp7s0 および enp8s0 は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。

bond0 および bond1 には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。

3. インターフェースをブリッジに割り当てます。

a. ブリッジに割り当てるインターフェースが設定されていない場合は、それらのブリッジに新しい接続プロファイルを作成します。

# 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 接続に追加します。

b. 既存の接続プロファイルをブリッジに割り当てるには、以下の接続の master パラメーターを bridge0 に設定します。

# nmcli connection modify bond0 master bridge0# nmcli connection modify bond1 master bridge0

これらのコマンドは、bond0 および bond1 という名前の既存の接続プロファイルを bridge0 接続に割り当てます。

4. ブリッジの IP 設定を構成します。このブリッジを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. 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

b. IPv6 設定を構成します。たとえば、bridge0 接続の静的 IPv6 アドレス、ネットワークマス

第第12章章 ネットワークブリッジの設定ネットワークブリッジの設定

79

Page 84: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

b. 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

5. 必要に応じて、ブリッジのその他のプロパティーを設定します。たとえば、bridge0 の STP(Spanning Tree Protocol) の優先度を 16384 に設定するには、次のコマンドを実行します。

# nmcli connection modify bridge0 bridge.priority '16384'

デフォルトでは STP が有効になっています。

6. 接続をアクティベートします。

# nmcli connection up bridge0

7. ポートが接続されており、CONNECTION コラムがポートの接続名を表示していることを確認します。

# nmcli deviceDEVICE TYPE STATE CONNECTION...enp7s0 ethernet connected bridge0-port1enp8s0 ethernet connected bridge0-port2

Red Hat Enterprise Linux は、システム起動時にコントローラーとポートをアクティブにします。ポート接続をアクティベートすると、コントローラーもアクティベートされます。ただし、この場合、ポート接続は 1 つだけアクティブになります。デフォルトでは、コントローラーを有効にしても、自動的にポートはアクティベートされません。ただし、この動作は、以下の設定で有効にできます。

a. ブリッジ接続の connection.autoconnect-slaves パラメーターを有効にします。

# nmcli connection modify bridge0 connection.autoconnect-slaves 1

b. ブリッジを再度アクティブにします。

# nmcli connection up bridge0

検証手順検証手順

特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。

# ip link show master bridge03: 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

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

80

Page 85: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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 link show3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 1004: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 1005: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 1006: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100...

特定のイーサネットデバイスのステータスを表示するには、bridge link show dev ethernet_device_name コマンドを使用します。

関連情報関連情報

接続のテストに関する詳細は、41章基本的なネットワーク設定のテスト を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

nmcli の例は、man ページの nmcli-examples(7) を参照してください。

設定可能なすべてのブリッジプロパティーは、man ページの nm-settings(5) の bridge settings セクションを参照してください。

設定可能なすべてのブリッジポートプロパティーは、man ページの nm-settings(5) の bridge-port settings セクションを参照してください。

bridge ユーティリティーの詳細は、man ページの bridge (8) を参照してください。

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager の起動または再起動により、デバイスの設定を反映するインメモリー接続が作成されます。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManagerservice」を参照してください。

12.2. NM-CONNECTION-EDITOR によるネットワークブリッジの設定

本セクションでは、nm-connection-editor アプリケーションを使用してネットワークブリッジを設定する方法を説明します。

nm-connection-editor は、新しいポートだけをブリッジに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドによるネットワークブリッジの設定」 の説明に従って nmcli ユーティリティーを使用してブリッジを作成します。

前提条件前提条件

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

第第12章章 ネットワークブリッジの設定ネットワークブリッジの設定

81

Page 86: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスをサーバーにインストールする必要があります。

ブリッジのポートとしてチーム、ボンディング、または VLAN デバイスを使用するには、これらのデバイスがまだ設定されていないことを確認してください。

手順手順

1. 端末を開き、nm-connection-editor と入力します。

$ nm-connection-editor

2. + ボタンをクリックして、新しい接続を追加します。

3. 接続タイプ Bridge を選択し、作成作成 をクリックします。

4. Bridge タブで以下を行います。

a. 必要に応じて、Interface name フィールドに、ブリッジインターフェースの名前を設定します。

b. 追加追加 ボタンをクリックして、ネットワークインターフェースの新しい接続プロファイルを作成し、プロファイルをポートとしてブリッジに追加します。

i. インターフェースの接続タイプを選択します。たとえば、有線接続に Ethernet を選択します。

ii. 必要に応じて、ポートデバイスの接続名を設定します。

iii. イーサネットデバイスの接続プロファイルを作成する場合は、Ethernet タブを開き、Device フィールドで選択し、ポートとしてブリッジに追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。

iv. 保存保存 をクリックします。

c. ブリッジに追加する各インターフェースに、直前の手順を繰り返します。

5. 必要に応じて、スパニングツリープロトコル (STP) オプションなどの追加のブリッジ設定を行います。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

82

Page 87: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

6. ブリッジの IP 設定を構成します。このブリッジを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. IPv4 Settings タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。

b. IPv6 設定設定 タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。

第第12章章 ネットワークブリッジの設定ネットワークブリッジの設定

83

Page 88: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

7. ブリッジ接続を保存します。

8. nm-connection-editor を閉じます。

検証手順検証手順

特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。

# ip link show master bridge03: 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:ff4: 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 link show3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 1004: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 1005: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 1006: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100...

特定のイーサネットデバイスのステータスを表示するには、bridge link show dev ethernet_device_name コマンドを使用します。

関連情報関連情報

nm-connection-editor によるネットワークボンディングの設定

nm-connection-editor によるネットワークチームの設定

nm-connection-editor による VLAN タグの設定

接続テストの詳細は、「基本的なネットワーク設定のテスト」を参照してください。

接続にデフォルトゲートウェイがない場合は、「NetworkManager の設定」を参照して、特定のプロファイルを使用してデフォルトゲートウェイが指定されないようにします。

12.3. NMSTATECTL を使用したネットワークブリッジの設定

本セクションでは、nmstatectl ユーティリティーを使用して、以下の設定で Linux ネットワークブリッジ bridge0 を設定する方法を説明します。

ブリッジのネットワークインターフェース: enp1s0 および enp7s0

スパニングツリープロトコル(STP): 有効化

静的 IPv4 アドレス: /24 サブネットマスクを持つ 192.0.2.1

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

84

Page 89: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

静的 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 パッケージがインストールされている。

手順手順

1. 以下の内容を含む 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

第第12章章 ネットワークブリッジの設定ネットワークブリッジの設定

85

Page 90: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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: bridge0dns-resolver: config: search: - example.com server: - 192.0.2.200 - 2001:db8:1::ffbb

2. 設定をシステムに適用します。

# nmstatectl set ~/create-bridge.yml

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONbridge0 bridge connected bridge0

2. 接続プロファイルのすべての設定を表示します。

# nmcli connection show bridge0connection.id: bridge0connection.uuid: e2cc9206-75a2-4622-89cf-1252926060a9connection.stable-id: --connection.type: bridgeconnection.interface-name: bridge0...

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

86

Page 91: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第13章 ネットワークチーミングの設定本セクションでは、ネットワークボンディングの基本、ボンディングとチーミングの相違点、Red HatEnterprise Linux 8 にネットワークチームを設定する方法を説明します。

ネットワークチームは、以下のような異なるタイプのデバイスに作成できます。

物理および仮想イーサネットデバイス

ネットワークボンディング

ネットワークブリッジ

VLAN デバイス

13.1. ネットワークチーミングの理解

ネットワークチーミングとは、ネットワークインターフェースを統合または集約し、より高いスループットまたは冗長性のある論理インターフェースを提供する機能です。

ネットワークチーミングでは、カーネルドライバーを使用してパケットフローの高速処理や、他のタスク用のユーザー空間ライブラリーおよびサービスを実装します。これにより、ネットワークチーミングは、負荷分散および冗長性の要件に対して、簡単に拡張可能でスケーラブルなソリューションとなります。

重要重要

特定のネットワークチーミング機能 (例: フェイルオーバーメカニズム) は、ネットワークスイッチのないダイレクトケーブル接続に対応していません。詳細は、「ボンディングは、クロスオーバーケーブルを使用したダイレクトコレクションをサポートしますか?」を参照してください。

13.2. コントローラーおよびポートインターフェースのデフォルト動作の理解

NetworkManager サービスを使用してチームまたはボンディングのポートインターフェースを管理またはトラブルシューティングする場合は、以下のデフォルトの動作を考慮してください。

コントローラーインターフェースを起動しても、ポートインターフェースは自動的に起動しない。

ポートインターフェースを起動すると、コントローラーインターフェースは毎回、起動する。

コントローラーインターフェースを停止すると、ポートインターフェースも停止する。

ポートのないコントローラーは、静的 IP 接続を開始できる。

コントローラーにポートがない場合は、DHCP 接続の開始時にポートを待つ。

DHCP 接続でポートを待機中のコントローラーは、キャリアを伴うポートの追加時に完了する。

DHCP 接続でポートを待機中のコントローラーは、キャリアを伴わないポートを追加する時に待機を継続する。

第第13章章 ネットワークチーミングの設定ネットワークチーミングの設定

87

Page 92: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

13.3. ネットワークチーミングとボンディング機能の比較

ネットワークチームおよびネットワークボンディングでサポートされている機能について説明します。

機能機能 ネットワークボンドネットワークボンド ネットワークチームネットワークチーム

ブロードキャストの Tx ポリシー はい はい

ラウンドロビンの Tx ポリシー はい はい

アクティブバックアップの Tx ポリシー はい はい

LACP (802.3ad) への対応 あり (アクティブのみ)

はい

ハッシュベースの Tx ポリシー はい はい

ユーザーによるハッシュ機能の設定 いいえ はい

Tx 負荷分散への対応 (TLB) はい はい

LACP ハッシュポートの選択 はい はい

LACP 対応の負荷分散 いいえ はい

Ethtool リンク監視 はい はい

ARP リンク監視 はい はい

NS/NA (IPv6) リンク監視 いいえ はい

ポートのアップ/ダウンの遅延 はい はい

ポートの優先度および持続性 (スティッキネス) (「プライマリー」のオプション強化)

いいえ はい

ポートごとに個別のリンク監視の設定 いいえ はい

複数のリンク監視の設定 限定的 はい

ロックなしの Tx/Rx パス なし (rwlock) あり (RCU)

VLAN への対応 はい はい

ユーザー空間のランタイム制御 限定的 はい

ユーザー空間での論理 いいえ はい

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

88

Page 93: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

拡張性 困難 容易

モジュラー設計 いいえ はい

パフォーマンスのオーバーヘッド 低 非常に低い

D-Bus インターフェース いいえ はい

複数デバイスのスタッキング はい はい

LLDP を使用したゼロ設定 いいえ (計画中)

NetworkManager への対応 はい はい

機能機能 ネットワークボンドネットワークボンド ネットワークチームネットワークチーム

13.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 ユーティリティーを使用してリンク状態の変更を監視します。これはデフォルトのリンク監視です。

第第13章章 ネットワークチーミングの設定ネットワークチーミングの設定

89

Page 94: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

arp_ping - libteam ライブラリーは、arp_ping ユーティリティーでアドレス解決プロトコル(ARP) を使用して、遠端のハードウェアアドレスの存在を監視します。

nsna_ping - IPv6 接続では、 libteam ライブラリーが IPv6 neighbor Discovery プロトコルのNeighbor Advertisement 機能と Neighbor Solicitation 機能を使用して、近くのインターフェースの存在を監視します。

各ランナーは、lacp を除くリンク監視を使用できます。このランナーは、ethtool リンク監視のみを使用できます。

13.5. TEAMD サービスのインストール

NetworkManager にネットワークチームを設定するには、teamd サービスと、NetworkManager のチームプラグインが必要です。デフォルトでは、いずれも Red Hat Enterprise Linux 8 にインストールされます。本セクションでは、削除する場合に必要なパッケージをインストールする方法を説明します。

前提条件前提条件

有効な Red Hat サブスクリプションがホストに割り当てられている。

手順手順

1. teamd パッケージおよび NetworkManager-team パッケージをインストールします。

# yum install teamd NetworkManager-team

13.6. NMCLI コマンドによるネットワークチームの設定

本セクションでは、nmcli ユーティリティーを使用してネットワークチームを設定する方法を説明します。

前提条件前提条件

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

チームのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされ、スイッチに接続されている必要があります。

チームのポートにボンディング、ブリッジ、または VLAN デバイスを使用するには、チームの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。

nmcli コマンドによるネットワークボンディングの設定

nmcli コマンドによるネットワークブリッジの設定

nmcli コマンドによる VLAN タグ付けの設定

手順手順

1. チームインターフェースを作成します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

90

Page 95: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nmcli connection add type team con-name team0 ifname team0 team.runner activebackup

このコマンドは、activebackup ランナーを使用する team0 という名前のネットワークチームを作成します。

2. 必要に応じて、リンク監視を設定します。たとえば、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"

3. ネットワークインターフェースを表示し、チームに追加するインターフェースの名前を書き留めます。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet disconnected --enp8s0 ethernet disconnected --bond0 bond connected bond0bond1 bond connected bond1...

この例では、以下のように設定されています。

enp7s0 および enp8s0 は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。いずれの接続にも割り当てられていないチームでネットワークインターフェースのみを使用できます。

bond0 および bond1 には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。

4. ポートインターフェースをチームに割り当てます。

a. チームに割り当てるインターフェースが設定されていない場合は、それらの接続プロファイルを新たに作成します。

# 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

第第13章章 ネットワークチーミングの設定ネットワークチーミングの設定

91

Page 96: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ifname enp8s0 master team0

.これらのコマンドは、enp7s0 および enp8s0 にプロファイルを作成し、team0 接続に追加します。

b. 既存の接続プロファイルをチームに割り当てるには、以下の接続の master パラメーターをteam0 に設定します。

# nmcli connection modify bond0 master team0# nmcli connection modify bond1 master team0

これらのコマンドは、bond0 および bond1 という名前の既存の接続プロファイルを team0 接続に割り当てます。

5. チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. 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

b. 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

6. 接続をアクティベートします。

# nmcli connection up team0

検証手順検証手順

チームのステータスを表示します。

# teamdctl team0 statesetup: runner: activebackupports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

92

Page 97: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0runner: active port: enp7s0

この例では、両方のポートが起動しています。

関連情報関連情報

接続のテストに関する詳細は、41章基本的なネットワーク設定のテスト を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

「teamd サービス、ランナー、およびリンク監視の理解」

nmcli の例は、man ページの nmcli-examples(7) を参照してください。

設定可能なすべてのチームプロパティーは、nm-settings (5) の man ページの team セクションを参照してください。

JSON 設定や JSON の例で設定できるパラメーターは、teamd.conf (5) の man ページを参照してください。

13.7. NM-CONNECTION-EDITOR によるネットワークチームの設定

本セクションでは、nm-connection-editor アプリケーションを使用してネットワークチームを設定する方法を説明します。

nm-connection-editor は、新しいポートだけをチームに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドによるネットワークチームの設定」の説明に従って nmcli ユーティリティーを使用してチームを作成します。

前提条件前提条件

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

チームのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。

チーム、ボンディング、または VLAN デバイスをチームのポートとして使用するには、これらのデバイスがまだ設定されていないことを確認してください。

手順手順

1. 端末を開き、nm-connection-editor と入力します。

第第13章章 ネットワークチーミングの設定ネットワークチーミングの設定

93

Page 98: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

$ nm-connection-editor

2. + ボタンをクリックして、新しい接続を追加します。

3. 接続タイプ Team を選択し、作成作成 をクリックします。

4. Team タブで以下を行います。

a. 必要に応じて、Interface name フィールドにチームインターフェースの名前を設定します。

b. Add ボタンをクリックして、ネットワークインターフェースの新しい接続プロファイルを追加し、プロファイルをポートとしてチームに追加します。

i. インターフェースの接続タイプを選択します。たとえば、有線接続に Ethernet を選択します。

ii. 必要に応じて、ポートの接続名を設定します。

iii. イーサネットデバイスの接続プロファイルを作成する場合は、Ethernet タブを開き、Device フィールドでポートとしてチームに追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。いずれの接続にも割り当てられていないチームのイーサネットインターフェースのみを使用することに注意してください。

iv. 保存保存 をクリックします。

c. チームに追加する各インターフェースに直前の手順を繰り返します。

d. Advanced ボタンをクリックして、チーム接続に高度なオプションを設定します。

i. Runner タブで、ランナーを選択します。

ii. Link Watcher タブで、リンク監視とそのオプションを設定します。

iii. OK をクリックします。

5. チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、こ

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

94

Page 99: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

5. チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. IPv4 Settings タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。

b. IPv6 設定設定 タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。

第第13章章 ネットワークチーミングの設定ネットワークチーミングの設定

95

Page 100: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

6. チーム接続を保存します。

7. nm-connection-editor を閉じます。

検証手順検証手順

チームのステータスを表示します。

# teamdctl team0 statesetup: runner: activebackupports: 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: 0runner: active port: enp7s0

関連情報関連情報

nm-connection-editor によるネットワークボンディングの設定

nm-connection-editor によるネットワークチームの設定

nm-connection-editor による VLAN タグの設定

接続テストの詳細は、「基本的なネットワーク設定のテスト」を参照してください。

接続にデフォルトゲートウェイがない場合は、「NetworkManager の設定」を参照して、特定のプロファイルを使用してデフォルトゲートウェイが指定されないようにします。

「teamd サービス、ランナー、およびリンク監視の理解」

ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManagerservice」を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

96

Page 101: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第14章 ネットワークボンディングの設定本セクションでは、ネットワークボンディングの基本、ボンディングとチーミングの相違点、Red HatEnterprise Linux 8 でネットワークボンディングを設定する方法を説明します。

以下のような異なるタイプのデバイスにボンディングを作成できます。

物理および仮想イーサネットデバイス

ネットワークブリッジ

ネットワークチーム

VLAN デバイス

14.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 メカニズム) は、ネットワークスイッチなしでのダイレクトケーブル接続に対応していません。詳細は、ナレッジベースのソリューション「ボンディングは、クロスオーバーケーブルを使用したダイレクトコレクションをサポートしますか?」を参照してください。

14.2. コントローラーおよびポートインターフェースのデフォルト動作の理解

NetworkManager サービスを使用してチームまたはボンディングのポートインターフェースを管理またはトラブルシューティングする場合は、以下のデフォルトの動作を考慮してください。

コントローラーインターフェースを起動しても、ポートインターフェースは自動的に起動しない。

ポートインターフェースを起動すると、コントローラーインターフェースは毎回、起動する。

コントローラーインターフェースを停止すると、ポートインターフェースも停止する。

ポートのないコントローラーは、静的 IP 接続を開始できる。

コントローラーにポートがない場合は、DHCP 接続の開始時にポートを待つ。

DHCP 接続でポートを待機中のコントローラーは、キャリアを伴うポートの追加時に完了する。

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

97

Page 102: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

DHCP 接続でポートを待機中のコントローラーは、キャリアを伴わないポートを追加する時に待機を継続する。

14.3. ネットワークチーミングとボンディング機能の比較

ネットワークチームおよびネットワークボンディングでサポートされている機能について説明します。

機能機能 ネットワークボンドネットワークボンド ネットワークチームネットワークチーム

ブロードキャストの Tx ポリシー はい はい

ラウンドロビンの Tx ポリシー はい はい

アクティブバックアップの Tx ポリシー はい はい

LACP (802.3ad) への対応 あり (アクティブのみ)

はい

ハッシュベースの Tx ポリシー はい はい

ユーザーによるハッシュ機能の設定 いいえ はい

Tx 負荷分散への対応 (TLB) はい はい

LACP ハッシュポートの選択 はい はい

LACP 対応の負荷分散 いいえ はい

Ethtool リンク監視 はい はい

ARP リンク監視 はい はい

NS/NA (IPv6) リンク監視 いいえ はい

ポートのアップ/ダウンの遅延 はい はい

ポートの優先度および持続性 (スティッキネス) (「プライマリー」のオプション強化)

いいえ はい

ポートごとに個別のリンク監視の設定 いいえ はい

複数のリンク監視の設定 限定的 はい

ロックなしの Tx/Rx パス なし (rwlock) あり (RCU)

VLAN への対応 はい はい

ユーザー空間のランタイム制御 限定的 はい

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

98

Page 103: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ユーザー空間での論理 いいえ はい

拡張性 困難 容易

モジュラー設計 いいえ はい

パフォーマンスのオーバーヘッド 低 非常に低い

D-Bus インターフェース いいえ はい

複数デバイスのスタッキング はい はい

LLDP を使用したゼロ設定 いいえ (計画中)

NetworkManager への対応 はい はい

機能機能 ネットワークボンドネットワークボンド ネットワークチームネットワークチーム

14.4. ボンディングモードに依存するアップストリームのスイッチ設定

以下の表は、ボンディングモードに応じて、どの設定をアップストリームのスイッチに適用する必要があるかを示しています。

ボンディングモードボンディングモード スイッチの設定スイッチの設定

0 - balance-rr (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。

1 - active-backup 自動ポートが必要です。

2 - balance-xor (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。

3 - broadcast (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。

4 - 802.3ad LACP がネゴシエートされた Etherchannel が有効になっている必要があります。

5 - balance-tlb 自動ポートが必要です。

6 - balance-alb 自動ポートが必要です。

スイッチの設定は、スイッチのドキュメントを参照してください。

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

99

Page 104: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

14.5. NMCLI コマンドによるネットワークボンディングの設定

本セクションは、nmcli コマンドを使用して、ネットワークボンディングを設定する方法を説明します。

前提条件前提条件

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

ボンディングのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。

ボンディングのポートにチーム、ブリッジ、または VLAN デバイスを使用するには、ボンディングの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。

「nmcli コマンドによるネットワークチームの設定」

「nmcli コマンドによるネットワークブリッジの設定」

「nmcli コマンドによる VLAN タグ付けの設定」

手順手順

1. ボンディングインターフェースを作成します。

# 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"

2. ネットワークインターフェースを表示し、ボンドに追加する予定のインターフェース名を書き留めます。

# nmcli device statusDEVICE TYPE STATE CONNECTIONenp7s0 ethernet disconnected --enp8s0 ethernet disconnected --bridge0 bridge connected bridge0bridge1 bridge connected bridge1...

この例では、以下のように設定されています。

enp7s0 および enp8s0 は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。

bridge0 および bridge1 には既存の接続プロファイルがあります。これらのデバイスを

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

100

Page 105: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

bridge0 および bridge1 には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。

3. インターフェースをボンディングに割り当てます。

a. ボンディングに割り当てるインターフェースが設定されていない場合は、インターフェース用に新しい接続プロファイルを作成します。

# 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 接続に追加します。

b. 既存の接続プロファイルをボンディングに割り当てるには、以下の接続の master パラメーターを bond0 に設定します。

# nmcli connection modify bridge0 master bond0# nmcli connection modify bridge1 master bond0

これらのコマンドは、bridge0 および bridge1 という名前の既存の接続プロファイルを bond0 接続に割り当てます。

4. ボンディングの IP 設定を構成します。このボンディングを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. 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

b. 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

5. 接続をアクティベートします。

# nmcli connection up bond0

6. ポートが接続されており、CONNECTION コラムがポートの接続名を表示していることを確認します。

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

101

Page 106: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nmcli deviceDEVICE TYPE STATE CONNECTION...enp7s0 ethernet connected bond0-port1enp8s0 ethernet connected bond0-port2

Red Hat Enterprise Linux は、システムの起動時にコントローラーおよびポートデバイスをアクティブにします。ポート接続をアクティベートすると、コントローラーもアクティベートされます。ただし、この場合、ポート接続は 1 つだけアクティブになります。デフォルトでは、コントローラーを有効にしても、自動的にポートはアクティベートされません。ただし、この動作は、以下の設定で有効にできます。

a. ボンディングの接続で connection.autoconnect-slaves パラメーターを有効にします。

# nmcli connection modify bond0 connection.autoconnect-slaves 1

b. ブリッジを再度アクティブにします。

# nmcli connection up bond0

検証手順検証手順

1. ボンドのステータスを表示します。

# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: enp7s0MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0

Slave Interface: enp7s0MII Status: upSpeed: UnknownDuplex: UnknownLink Failure Count: 0Permanent HW addr: 52:54:00:d5:e0:fbSlave queue ID: 0

Slave Interface: enp8s0MII Status: upSpeed: UnknownDuplex: UnknownLink Failure Count: 0Permanent HW addr: 52:54:00:b2:e2:63Slave queue ID: 0

この例では、両方のポートが起動しています。

2. ボンディングフェイルオーバーが機能することを確認するには、以下を行います。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

102

Page 107: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

a. ホストからネットワークケーブルを一時的に削除します。コマンドラインでリンク障害イベントを適切にテストする方法がないことに注意してください。

b. ボンドのステータスを表示します。

# cat /proc/net/bonding/bond0

関連情報関連情報

接続のテストに関する詳細は、41章基本的なネットワーク設定のテスト を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

nmcli の例は、man ページの nmcli-examples(7) を参照してください。

ボンディングを作成する際に nmcli コマンドの bond.options パラメーターに設定できるオプションの一覧は、https://www.kernel.org/doc/Documentation/networking/bonding.txt を参照してください。

14.6. NM-CONNECTION-EDITOR によるネットワークボンディングの設定

本セクションでは、nm-connection-editor アプリケーションを使用してネットワークボンディングを設定する方法を説明します。

nm-connection-editor は、新しいポートだけをチームに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドを使用したネットワークボンディングの設定」の説明に従って、nmcli ユーティリティーを使用してボンディングを作成します。

前提条件前提条件

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

ボンディングのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。

ボンディングのポートとしてチーム、ボンディング、または VLAN デバイスを使用するには、これらのデバイスがまだ設定されていないことを確認してください。

手順手順

1. 端末を開き、nm-connection-editor と入力します。

$ nm-connection-editor

2. + ボタンをクリックして、新しい接続を追加します。

3. 接続タイプ Bond を選択し、作成作成 をクリックします。

4. Bond タブで、以下を行います。

a. 必要に応じて、Interface name フィールドにボンドインターフェースの名前を設定します。

b. 追加追加 ボタンをクリックして、ネットワークインターフェースをポートとしてボンドに追加

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

103

Page 108: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

b. 追加追加 ボタンをクリックして、ネットワークインターフェースをポートとしてボンドに追加します。

i. インターフェースの接続タイプを選択します。たとえば、有線接続に Ethernet を選択します。

ii. 必要に応じて、ポートの接続名を設定します。

iii. イーサネットデバイスの接続プロファイルを作成する場合は、Ethernet タブを開き、Device フィールドでポートとしてボンディングに追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。イーサネットインターフェースは、設定されていないボンディングでのみ使用できることに注意してください。

iv. 保存保存 をクリックします。

c. ボンディングに追加する各インターフェースで直前の手順を繰り返します。

d. オプションで、Media Independent Interface (MII) の監視間隔などの他のオプションを設定します。

5. ボンディングの IP 設定を構成します。このボンディングを他のデバイスのポートとして使用する場合は、この手順を省略します。

a. IPv4 Settings タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

104

Page 109: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

b. IPv6 設定設定 タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。

6. 保存保存 をクリックして、ボンド接続を保存します。

7. nm-connection-editor を閉じます。

検証手順検証手順

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

105

Page 110: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ボンディングのステータスを表示します。

$ cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: enp7s0MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0

Slave Interface: enp7s0MII Status: upSpeed: UnknownDuplex: UnknownLink Failure Count: 0Permanent HW addr: 52:54:00:d5:e0:fbSlave queue ID: 0

Slave Interface: enp8s0MII Status: upSpeed: UnknownDuplex: UnknownLink Failure Count: 0Permanent HW addr: 52:54:00:b2:e2:63Slave queue ID: 0

この例では、両方のポートが起動しています。

関連情報関連情報

接続テストの詳細は、「基本的なネットワーク設定のテスト」を参照してください。

コネクションにデフォルトゲートウェイがない場合は、「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 を参照してください。

nm-connection-editor によるネットワークチームの設定

nm-connection-editor によるネットワークブリッジの設定

nm-connection-editor による VLAN タグの設定

14.7. NMSTATECTL を使用したネットワークボンディングの設定

本セクションでは、nmstatectl ユーティリティーを使用して、以下の設定でネットワークボンディング、bond0 を設定する方法を説明します。

ボンドのネットワークインターフェース: enp1s0 および enp7s0

モード: active-backup

静的 IPv4 アドレス: /24 サブネットマスクを持つ 192.0.2.1

静的 IPv6 アドレス: 2001:db8:1::1 ( /64 サブネットマスクあり)

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

106

Page 111: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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 パッケージがインストールされている。

手順手順

1. 以下の内容を含む 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

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

107

Page 112: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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

2. 設定をシステムに適用します。

# nmstatectl set ~/create-bond.yml

検証手順検証手順

1. デバイスおよび接続の状態を表示します。

# nmcli device statusDEVICE TYPE STATE CONNECTIONbond0 bond connected bond0

2. 接続プロファイルのすべての設定を表示します。

# nmcli connection show bond0connection.id: bond0connection.uuid: 79cbc3bd-302e-4b1f-ad89-f12533b818eeconnection.stable-id: --connection.type: bondconnection.interface-name: bond0...

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

14.8. RHEL システムロールを使用したネットワークボンディングの設定

ネットワークネットワーク RHEL システムロールを使用して、ネットワークボンディングを設定できます。この手順では、2 つのイーサネットデバイスを使用するアクティブバックアップモードでボンディングを設定し、IPv4 アドレスおよび IPv6 アドレス、デフォルトゲートウェイ、および DNS 設定を設定する方法を説明します。

注記注記

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

108

Page 113: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

注記注記

Linux ブリッジのポートではなく、ブリッジで IP 設定を設定します。

前提条件前提条件

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/bond-ethernet.yml Playbook を以下の内容で作成します。

---- name: Configure a network bond that uses two Ethernet ports hosts: node.example.com become: true tasks: - include_role: name: linux-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

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

109

Page 114: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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

3. 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 は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

14.9. VPN を中断せずにイーサネットとワイヤレス接続間の切り替えを可能にするネットワークボンディングの作成

ワークステーションを会社のネットワークに接続する RHEL ユーザーは、通常、リモートリソースにアクセスするのに VPN を使用します。ただし、イーサネット接続と Wi-Fi 接続間のワークステーションスイッチ (たとえば、イーサネット接続のあるドッキングステーションからノート PC を解放した場合など) は、VPN 接続が中断されます。この問題を回避するには、active-backup モードでイーサネット接続および Wi-Fi 接続を使用するネットワークボンディングを作成します。

前提条件前提条件

ホストに、イーサネットデバイスと Wi-Fi デバイスが含まれている。

イーサネットおよび Wi-Fi NetworkManager 接続プロファイルが作成され、両方の接続が独立して機能します。この手順では、以下の接続プロファイルを使用して bond0 という名前のネットワークボンディングを作成します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

110

Page 115: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

enp11s0u1 イーサネットデバイスに関連付けられた Docking_station

wlp61s0 Wi-Fi デバイスに関連付けられた Wi-Fi

手順手順

1. active-backup モードでボンドインターフェースを作成します。

# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"

このコマンドは、インターフェースおよび接続プロファイル bond0 の両方に名前を付けます。

2. ボンディングの 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

3. ボンディングの 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

4. 接続プロファイルを表示します。

# nmcli connection showNAME UUID TYPE DEVICEDocking_station 256dd073-fecc-339d-91ae-9834a00407f9 ethernet enp11s0u1Wi-Fi 1f1531c7-8737-4c60-91af-2d21164417e8 wifi wlp61s0...

次のステップでは、接続プロファイルとイーサネットデバイス名が必要です。

5. イーサネット接続の接続プロファイルをボンドに割り当てます。

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

111

Page 116: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nmcli connection modify Docking_station master bond0

6. Wi-Fi 接続の接続プロファイルをボンディングに割り当てます。

# nmcli connection modify Wi-Fi master bond0

7. Wi-Fi ネットワークが MAC フィルタリングを使用して、許可リストの MAC アドレスのみがネットワークにアクセスできるようにするには、NetworkManager がアクティブなポートのMAC アドレスをボンドに動的に割り当てるように設定します。

# nmcli connection modify bond0 +bond.options fail_over_mac=1

この設定では、イーサネットデバイスと Wi-Fi デバイスの両方の MAC アドレスの代わりに、Wi-Fi デバイスの MAC アドレスのみを許可リストに設定する必要があります。

8. イーサネット接続に関連付けられたデバイスを、ボンドのプライマリーデバイスとして設定します。

# nmcli con modify bond0 +bond.options "primary=enp11s0u1"

この設定では、ボンディングが利用可能な場合は、イーサネット接続を常に使用します。

9. bond0 デバイスがアクティブになると、NetworkManager がポートを自動的にアクティブになるように設定します。

# nmcli connection modify bond0 connection.autoconnect-slaves 1

10. bond0 接続をアクティベートします。

# nmcli connection up bond0

検証手順検証手順

現在アクティブなデバイス、ボンドおよびそのポートのステータスを表示します。

# cat /proc/net/bonding/bond0Ethernet 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: enp11s0u1MII Status: upMII Polling Interval (ms): 1Up Delay (ms): 0Down Delay (ms): 0Peer Notification Delay (ms): 0

Slave Interface: enp11s0u1MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:53:00:59:da:b7

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

112

Page 117: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Slave queue ID: 0

Slave Interface: wlp61s0MII Status: upSpeed: UnknownDuplex: UnknownLink Failure Count: 2Permanent HW addr: 00:53:00:b3:22:baSlave queue ID: 0

関連情報関連情報

イーサネット接続の設定

Wi-Fi 接続の管理

ネットワークボンディングの設定

第第14章章 ネットワークボンディングの設定ネットワークボンディングの設定

113

Page 118: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第15章 VPN 接続の設定本セクションでは、仮想プライベートネットワーク (VPN) 接続を設定する方法を説明します。

VPN は、インターネットを介してローカルネットワークに接続する方法です。Libreswan が提供する IPsec は、VPN を作成するのに推奨される方法です。Libreswan は、VPN 用のオープンソースで、ユーザー空間の IPsec 実装です。VPN は、インターネットなどの中間ネットワークにトンネルを設定して、LAN と別のリモート LAN との間の通信を可能にします。セキュリティー上の理由から、VPN トンネルは常に認証と暗号化を使用します。暗号化操作では、Libreswan は NSS ライブラリーを使用します。

15.1. CONTROL-CENTER による VPN 接続の確立

この手順では、control-center を使用して VPN 接続を設定する方法を説明します。

前提条件前提条件

NetworkManager-libreswan-gnome パッケージがインストールされている。

手順手順

1. Super キーを押して Settings と入力し、Enter を押して control-center アプリケーションを開きます。

2. 左側の Network エントリーを選択します。

3. + アイコンをクリックします。

4. VPN を選択します。

5. Identity メニューエントリーを選択して、基本的な設定オプションを表示します。一般一般

Gateway - リモート VPN ゲートウェイの名前または IP アドレスです。

認証認証

Type

IKEv2 (証明書証明書)- クライアントは、証明書により認証されます。これはより安全です (デフォルト)。

IKEv1(XAUTH) - クライアントは、ユーザー名とパスワード、または事前共有キー (PSK)で認証されます。Advanced セクションでは、以下の設定が可能です。

図図15.1 VPN 接続の詳細なオプション接続の詳細なオプション

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

114

Page 119: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

図図15.1 VPN 接続の詳細なオプション接続の詳細なオプション

第第15章章 VPN 接続の設定接続の設定

115

Page 120: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

警告警告

gnome-control-center アプリケーションを使用して IPsec ベースのVPN 接続を設定すると、Advanced ダイアログには設定が表示されますが、変更することはできません。したがって、詳細な IPsec オプションを変更できません。nm-connection-editor ツールまたは nmcliツールを使用して、詳細なプロパティーの設定を実行します。

識別識別

Domain - 必要な場合は、ドメイン名を入力します。Security

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 です。

6. IPv4 メニューエントリーを選択します。IPv4 Method

Automatic (DHCP) - 接続しているネットワークがルーター通知 (RA) または DHCP サーバーを使用して動的 IP アドレスを割り当てる場合は、このオプションを選択します。

Link-Local Only - 接続しているネットワークに DHCP サーバーがなく、IP アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞 169.254/16 付きのランダムなアドレスが、RFC 3927 に従って割り当てられます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

116

Page 121: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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 (この接続はネットワーク上のリこの接続はネットワーク上のリソースのためだけに使用ソースのためだけに使用)

このチェックボックスを選択すると、この接続はデフォルトルートになりません。このオプションを選択すると、この接続で自動的に学習したルートを使用することが明確なトラフィックか、手動で入力したトラフィックのみがこの接続を経由します。

7. 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 設定となることに注意してください。

8. VPN 接続の編集が終了したら、追加追加 ボタンをクリックして設定をカスタマイズするか、適用適用ボタンをクリックして、既存の接続に保存します。

9. プロファイルを ON に切り替え、VPN 接続をアクティブにします。

関連情報関連情報

第第15章章 VPN 接続の設定接続の設定

117

Page 122: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

対応している Libreswan パラメーターの詳細は、man ページの nm-settings-libreswan(5) を参照してください。

15.2. NM-CONNECTION-EDITOR による VPN 接続の設定

この手順では、nm-connection-editor を使用して VPN 接続を設定する方法を説明します。

前提条件前提条件

NetworkManager-libreswan-gnome パッケージがインストールされている。

インターネット鍵交換バージョン 2 (IKEv2) 接続を設定する場合は、以下のようになります。

証明書が、IPsec ネットワークセキュリティーサービス (NSS) データベースにインポートされている。

NSS データベースの証明書のニックネームが知られている。

手順手順

1. 端末を開き、次のコマンドを入力します。

$ nm-connection-editor

2. + ボタンをクリックして、新しい接続を追加します。

3. IPsec ベースのベースの VPN 接続タイプを選択し、作成作成 をクリックします。

4. VPN タブで、以下を行います。

a. Gateway フィールドに VPN ゲートウェイのホスト名または IP アドレスを入力し、認証タイプを選択します。認証タイプに応じて、異なる追加情報を入力する必要があります。

IKEv2 (Certifiate) は、証明書を使用してクライアントを認証します。これは、より安全です。この設定には、IPsec NSS データベースの証明書のニックネームが必要です。

IKEv1 (XAUTH) は、ユーザー名とパスワード (事前共有鍵) を使用してユーザーを認証します。この設定は、以下の値を入力する必要があります。

ユーザー名

Password

グループ名

シークレット

b. リモートサーバーが IKE 交換のローカル識別子を指定する場合は、Remote ID フィールドに正確な文字列を入力します。リモートサーバーで Libreswan を実行すると、この値はサーバーの leftid パラメーターに設定されます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

118

Page 123: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

c. 必要に応じて、詳細詳細 ボタンをクリックして、追加設定を設定します。以下の設定を構成できます。

識別

ドメインドメイン - 必要な場合は、ドメイン名を入力します。

Security

Phase1 アルゴリズムアルゴリズム は、Libreswan パラメーター ike に対応します。暗号化チャンネルの認証および設定に使用するアルゴリズムを入力します。

Phase2 アルゴリズムアルゴリズム は、Libreswan パラメーター esp に対応します。IPsec ネゴシエーションに使用するアルゴリズムを入力します。Disable PFS フィールドで PFS (Perfect Forward Secrecy) を無効にし、PFS に対応していない古いサーバーとの互換性があることを確認します。

Phase1 ライフタイムライフタイム は、Libreswan パラメーター ikelifetime に対応します。このパラメーターは、トラフィックの暗号化に使用される鍵が有効である期間を定義します。

Phase2 ライフタイムライフタイム は、Libreswan パラメーター salifetime に対応します。このパラメーターは、セキュリティー関連が有効である期間を定義します。

接続性

リモートネットワークリモートネットワーク は、Libreswan パラメーター rightsubnet に対応し、VPN

第第15章章 VPN 接続の設定接続の設定

119

Page 124: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

リモートネットワークリモートネットワーク は、Libreswan パラメーター rightsubnet に対応し、VPNから到達できる宛先のプライベートリモートネットワークです。絞り込むことのできる narrowing フィールドを確認します。これは IKEv2 ネゴシエーションの場合にのみ有効であることに注意してください。

フラグメンテーションの有効化フラグメンテーションの有効化 は、Libreswan パラメーターの 断片化断片化 に対応します。IKE 断片化を許可するかどうかを指定します。有効な値は、yes (デフォルト)または no です。

Mobike の有効化の有効化 は、Libreswan パラメーター mobike に対応します。パラメーターは、最初から接続を再起動しなくても、接続がエンドポイントを移行するようにするため、MOBIKE (Mobility and Multihoming Protocol) (RFC 4555) を許可するかどうかを定義します。これは、有線、無線、またはモバイルデータの接続の切り替えを行うモバイルデバイスで使用されます。値は、no (デフォルト) または yesです。

5. IPv4 設定設定 タブで、IP 割り当て方法を選択し、必要に応じて、追加の静的アドレス、DNS サーバー、検索ドメイン、ルートを設定します。

6. 接続を読み込みます。

7. nm-connection-editor を閉じます。

注記注記

+ ボタンをクリックして新しい接続を追加する場合は、NetworkManager により、その接続用の新しい設定が作成され、既存の接続の編集に使用するのと同じダイアログが表示されます。このダイアログの違いは、既存の接続プロファイルに Details メニューエントリーがあることです。

関連情報関連情報

対応している IPsec パラメーターの詳細は、man ページの nm-settings-libreswan(5) を参照し

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

120

Page 125: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

対応している IPsec パラメーターの詳細は、man ページの nm-settings-libreswan(5) を参照してください。

15.3. IPSEC 接続を加速化するためにボンディングでの ESP ハードウェアオフロードの設定

Encapsulating Security Payload(ESP)をハードウェアにオフロードすると、ハードウェアが IPsec 接続を加速します。フェイルオーバーの理由でネットワークボンディングを使用する場合は、ESP ハードウェアオフロードを設定する手順と通常のイーサネットデバイスを使用する手順が異なります。たとえば、このシナリオでは、ボンディングでオフロードサポートを有効にし、カーネルはボンディングのポートに設定を適用します。

前提条件前提条件

ボンディングのすべてのネットワークカードは、ESP ハードウェアオフロードをサポートしています。

ネットワークドライバーは、ボンドデバイスで ESP ハードウェアオフロードに対応しています。RHEL 8.4 では、ixgbe ドライバーのみがこの機能をサポートしています。

ボンディングが設定されており、動作します。

ボンディングは active-backup モードを使用します。ボンディングドライバーは、この機能の他のモードをサポートしません。

IPsec 接続が設定され、動作します。

手順手順

1. ネットワークボンディングで ESP ハードウェアオフロードのサポートを有効にします。

# nmcli connection modify bond0 ethtool.feature-esp-hw-offload

このコマンドにより、bond0 接続での ESP ハードウェアオフロードのサポートが有効になります。

2. bond0 接続を再度アクティブにします。

# nmcli connection up bond0

3. ESP ハードウェアオフロードを使用する接続の /etc/ipsec.d/ ディレクトリーの Libreswan 設定ファイルを編集し、nic-offload=yes ステートメントを接続エントリーに追加します。

conn example ... nic-offload=yes

4. ipsec サービスを再起動します。

# systemctl restart ipsec

検証検証

第第15章章 VPN 接続の設定接続の設定

121

Page 126: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. ボンディングのアクティブなポートを表示します。

# grep "Currently Active Slave" /proc/net/bonding/bond0Currently Active Slave: enp1s0

2. アクティブなポートの tx_ipsec カウンターおよび rx_ipsec カウンターを表示します。

# ethtool enp1s0 | egrep "_ipsec" tx_ipsec: 10 rx_ipsec: 10

3. IPsec トンネルを介してトラフィックを送信します。たとえば、リモート IP アドレスに ping します。

# ping -c 5 remote_ip_address

4. アクティブなポートの tx_ipsec カウンターおよび rx_ipsec カウンターを再度表示します。

# ethtool enp1s0 | egrep "_ipsec" tx_ipsec: 15 rx_ipsec: 15

カウンターの値が増えると、ESP ハードウェアオフロードが動作します。

関連情報関連情報

14章ネットワークボンディングの設定.

ネットワークネットワーク のセキュリティー保護のセキュリティー保護 ドキュメントの「ドキュメントの「IPsec を使用したを使用した VPN の設定」

15.4. 関連情報

IPsec を使用した VPN の設定に関する詳細は、『ネットワークのセキュリティー保護』の「IPsec を使用した VPN の設定」の章を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

122

Page 127: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第16章 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で動作します。

16.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 つの内部サブネットに接続する方法を説明します。

第第16章章 IP トンネルの設定トンネルの設定

123

Page 128: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

前提条件前提条件

各 RHEL ルーターには、ローカルサブネットに接続されているネットワークインターフェースがあります。

各 RHEL ルーターには、インターネットに接続しているネットワークインターフェースがあります。

トンネル経由で送信するトラフィックは IPv4 ユニキャストです。

手順手順

1. ネットワーク A の RHEL ルーターで、次のコマンドを実行します。

a. 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 アドレスを設定します。

b. IPv4 アドレスを tun0 デバイスに設定します。

# nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'

トンネルには、2 つの使用可能な IP アドレスを持つ /30 サブネットで十分であることに注意してください。

c. IPv 4 設定を使用するように手動で tun0 接続を設定します。

# nmcli connection modify tun0 ipv4.method manual

d. トラフィックを 172.16.0.0/24 ネットワークにルーティングする静的ルートをルーター B のトンネル IP に追加します。

# nmcli connection modify tun0 +ipv4.routes "172.16.0.0/24 10.0.1.2"

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

124

Page 129: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

e. tun0 接続を有効にします。

# nmcli connection up tun0

f. パケット転送を有効にします。

# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf# sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

2. ネットワーク B の RHEL ルーターで、次のコマンドを実行します。

a. 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 アドレスを設定します。

b. IPv4 アドレスを tun0 デバイスに設定します。

# nmcli connection modify tun0 ipv4.addresses '10.0.1.2/30'

c. IPv 4 設定を使用するように手動で tun0 接続を設定します。

# nmcli connection modify tun0 ipv4.method manual

d. トラフィックを 192.0.2.0/24 ネットワークにルーティングする静的ルートをルーター A のトンネル IP に追加します。

# nmcli connection modify tun0 +ipv4.routes "192.0.2.0/24 10.0.1.1"

e. tun0 接続を有効にします。

# nmcli connection up tun0

f. パケット転送を有効にします。

# 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. ルーター A で 172.16.0.1 に ping します。

# ping 172.16.0.1

b. ルーター B で 192.0.2.1 に ping します。

# ping 192.0.2.1

第第16章章 IP トンネルの設定トンネルの設定

125

Page 130: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

nmcli の使用に関する詳細は、man ページの nmcli を参照してください。

nmcli で設定できるトンネル設定の詳細は、man ページの nm-settings(5) の ip-tunnel settings セクションを参照してください。

16.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 ルーターには、インターネットに接続しているネットワークインターフェースがあります。

手順手順

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

126

Page 131: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. ネットワーク A の RHEL ルーターで、次のコマンドを実行します。

a. 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 アドレスを設定します。

b. IPv4 アドレスを gre1 デバイスに設定します。

# nmcli connection modify gre1 ipv4.addresses '10.0.1.1/30'

トンネルには、2 つの使用可能な IP アドレスを持つ /30 サブネットで十分であることに注意してください。

c. 手動の IPv 4 設定を使用するように gre1 接続を設定します。

# nmcli connection modify gre1 ipv4.method manual

d. トラフィックを 172.16.0.0/24 ネットワークにルーティングする静的ルートをルーター B のトンネル IP に追加します。

# nmcli connection modify tun0 +ipv4.routes "172.16.0.0/24 10.0.1.2"

e. gre1 コネクションを有効にします。

# nmcli connection up gre1

f. パケット転送を有効にします。

# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf# sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

2. ネットワーク B の RHEL ルーターで、次のコマンドを実行します。

a. gre1 という名前の GRE トンネルインターフェースを作成します。

# nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name gre1 ifname gre1 remote 203.0.113.10 local 198.51.100.5

remote パラメーターおよび local パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。

b. IPv4 アドレスを gre1 デバイスに設定します。

# nmcli connection modify gre1 ipv4.addresses '10.0.1.2/30'

c. 手動の IPv 4 設定を使用するように gre1 接続を設定します。

# nmcli connection modify gre1 ipv4.method manual

d. トラフィックを 192.0.2.0/24 ネットワークにルーティングする静的ルートをルーター A の

第第16章章 IP トンネルの設定トンネルの設定

127

Page 132: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

d. トラフィックを 192.0.2.0/24 ネットワークにルーティングする静的ルートをルーター A のトンネル IP に追加します。

# nmcli connection modify tun0 +ipv4.routes "192.0.2.0/24 10.0.1.1"

e. gre1 コネクションを有効にします。

# nmcli connection up gre1

f. パケット転送を有効にします。

# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf# sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

検証手順検証手順

1. 各 RHEL ルーターから、他のルーターの内部インターフェースの IP アドレスに ping します。

a. ルーター A で 172.16.0.1 に ping します。

# ping 172.16.0.1

b. ルーター B で 192.0.2.1 に ping します。

# ping 192.0.2.1

関連情報関連情報

nmcli の使用に関する詳細は、man ページの nmcli を参照してください。

nmcli で設定できるトンネル設定の詳細は、man ページの nm-settings(5) の ip-tunnel settings セクションを参照してください。

16.3. IPV4 でイーサネットフレームを転送するための GRETAP トンネルの設定

GRETAP (Generic Routing Encapsulation Terminal Access Point) トンネルは OSI レベル 2 で動作し、RFC 2784 で説明されているように IPv4 パケットのイーサネットトラフィックをカプセル化します。

重要重要

GRETAP トンネルを介して送信されるデータは暗号化されません。セキュリティー上の理由から、VPN または別の暗号化された接続にトンネルを確立します。

この手順では、以下の図に示すように、2 つの RHEL ルーター間で GRETAP トンネルを作成し、ブリッジを使用して 2 つのネットワークに接続する方法を説明します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

128

Page 133: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

注記注記

gretap0 デバイス名が予約されています。デバイスに gretap1 または別の名前を使用します。

前提条件前提条件

各 RHEL ルーターには、ローカルネットワークに接続されたネットワークインターフェースがあり、IP 設定は割り当てられません。

各 RHEL ルーターには、インターネットに接続しているネットワークインターフェースがあります。

手順手順

1. ネットワーク A の RHEL ルーターで、次のコマンドを実行します。

a. bridge0 という名前のブリッジインターフェースを作成します。

# nmcli connection add type bridge con-name bridge0 ifname bridge0

b. ブリッジの IP 設定を構成します。

# nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24'# nmcli connection modify bridge0 ipv4.method manual

c. ローカルネットワークに接続されたインターフェース用の新しい接続プロファイルをブリッジに追加します。

# nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0

d. GRETAP トンネルインターフェースの新しい接続プロファイルをブリッジに追加します。

第第16章章 IP トンネルの設定トンネルの設定

129

Page 134: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# 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 アドレスを設定します。

e. 必要に応じて、STP (Spanning Tree Protocol)を無効にする必要がない場合は、これを無効にします。

# nmcli connection modify bridge0 bridge.stp no

デフォルトでは、STP は有効になり、接続を使用する前に遅延が生じます。

f. bridge0 接続がアクティベートするように、ブリッジのポートが自動的にアクティブになるようにします。

# nmcli connection modify bridge0 connection.autoconnect-slaves 1

g. bridge0 接続をアクティブにします。

# nmcli connection up bridge0

2. ネットワーク B の RHEL ルーターで、次のコマンドを実行します。

a. bridge0 という名前のブリッジインターフェースを作成します。

# nmcli connection add type bridge con-name bridge0 ifname bridge0

b. ブリッジの IP 設定を構成します。

# nmcli connection modify bridge0 ipv4.addresses '192.0.2.2/24'# nmcli connection modify bridge0 ipv4.method manual

c. ローカルネットワークに接続されたインターフェース用の新しい接続プロファイルをブリッジに追加します。

# nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0

d. 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 アドレスを設定します。

e. 必要に応じて、STP (Spanning Tree Protocol)を無効にする必要がない場合は、これを無効にします。

# nmcli connection modify bridge0 bridge.stp no

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

130

Page 135: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

f. bridge0 接続がアクティベートするように、ブリッジのポートが自動的にアクティブになるようにします。

# nmcli connection modify bridge0 connection.autoconnect-slaves 1

g. bridge0 接続をアクティブにします。

# nmcli connection up bridge0

検証手順検証手順

1. 両方のルーターで、enp1s0 接続および gretap1 接続が接続され、CONNECTION 列にポートの接続名が表示されていることを確認します。

# nmcli devicenmcli deviceDEVICE TYPE STATE CONNECTION...bridge0 bridge connected bridge0enp1s0 ethernet connected bridge0-port1gretap1 iptunnel connected bridge0-port2

2. 各 RHEL ルーターから、他のルーターの内部インターフェースの IP アドレスに ping します。

a. ルーター A で 192.0.2.2 に ping します。

# ping 192.0.2.2

b. ルーター B で 192.0.2.1 に ping します。

# ping 192.0.2.1

関連情報関連情報

nmcli の使用に関する詳細は、man ページの nmcli を参照してください。

nmcli で設定できるトンネル設定の詳細は、man ページの nm-settings(5) の ip-tunnel settings セクションを参照してください。

16.4. 関連情報

トンネルインターフェースの一覧と、ip ユーティリティーを使用したトンネルの一時的な設定については、man ページの ip-link(8) を参照してください。

第第16章章 IP トンネルの設定トンネルの設定

131

Page 136: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第17章 FIBRE CHANNEL OVER ETHERNET の設定IEEE T11 FC-BB-5 標準に基づく Fibre Channel over Ethernet (FCoE) は、イーサネットネットワーク上でファイバーチャネルフレームを送信するためのプロトコルです。通常、データセンターには専用のLAN およびストレージエリアネットワーク (SAN) があり、各個別設定に分けられます。FCoE は、これらのネットワークを単一のネットワーク構成とコンバージドネットワーク構成に統合します。FCoE の利点 (ハードウェアおよび電力の低さなど) の利点は以下のとおりです。

17.1. RHEL でハードウェア FCOE HBA の使用

Red Hat Enterprise Linux では、以下のドライバーがサポートするハードウェアの FCoE Host BusAdapter (HBA) を使用できます。

qedf

bnx2fc

fnic

このような HBA を使用する場合は、HBA の設定で FCoE を設定します。詳細は、アダプターのドキュメントを参照してください。

HBA を設定したら、ストレージエリアネットワーク (SAN) からエクスポートした論理ユニット番号(LUN) は、RHEL が /dev/sd* デバイスとして自動的に利用できます。ローカルストレージデバイスと同様に、これらのデバイスを使用できます。

17.2. ソフトウェア FCOE デバイスの設定

ソフトウェア FCoE デバイスを使用すると、FCoE オフロードを部分的に対応するイーサネットアダプターを使用し、FCoE を介して論理ユニット番号 (LUN) にアクセスできます。

重要重要

RHEL は、fcoe.ko カーネルモジュールを必要とするソフトウェア FCoE デバイスに対応していません。詳細は、『RHEL 8 の導入における検討事項の導入における検討事項』の「FCoE ソフトウェアの削除」を参照してください。

この手順を完了すると、ストレージエリアネットワーク (SAN) からのエクスポート LUN は、/dev/sd*デバイスとして RHEL で利用可能になります。ローカルストレージデバイスと同様に、これらのデバイスを使用できます。

前提条件前提条件

ホストバスアダプター (HBA) は qedf、bnx2fc、または fnic ドライバーを使用し、fcoe.koカーネルモジュールは必要ありません。

SAN は VLAN を使用して、通常のイーサネットトラフィックからストレージトラフィックを分離します。

ネットワークスイッチが VLAN に対応するように設定されている。

サーバーの HBA が BIOS で設定されている。詳細は、HBA のドキュメントを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

132

Page 137: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

HBA がネットワークに接続されており、リンクが起動している。

手順手順

1. fcoe-utils パッケージをインストールします。

# yum install fcoe-utils

2. /etc/fcoe/cfg-ethx テンプレートファイルを /etc/fcoe/cfg-interface_name にコピーします。たとえば、FCoE を使用するように enp1s0 インターフェースを設定する場合は、次のコマンドを実行します。

# cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-enp1s0

3. fcoe サービスを有効にして起動します。

# systemctl enable --now fcoe

4. FCoE VLAN ID を検出し、イニシエーターを起動して、検出された VLAN のネットワークデバイスを作成します。

# fipvlan -s -c enp1s0Created VLAN device enp1s0.200Starting FCoE on interface enp1s0.200Fibre Channel Forwarders Discoveredinterface | VLAN | FCF MAC------------------------------------------enp1s0 | 200 | 00:53:00:a7:e7:1b

5. 必要に応じて、検出されたターゲット、LUN、および LUN に関連付けられたデバイスの詳細を表示するには、次のコマンドを実行します。

# fcoeadm -tInterface: enp1s0.200Roles: FCP TargetNode Name: 0x500a0980824acd15Port Name: 0x500a0982824acd15Target ID: 0MaxFrameSize: 2048 bytesOS Device Name: rport-11:0-1FC-ID (Port ID): 0xba00a0State: Online

LUN ID Device Name Capacity Block Size Description------ ----------- ---------- ---------- --------------------- 0 sdb 28.38 GiB 512 NETAPP LUN (rev 820a) ...

この例では、SAN からの LUN 0 が /dev/sdb デバイスとしてホストに割り当てられていることを示しています。

検証手順検証手順

fcoeadm -i コマンドを使用して、アクティブな FCoE インターフェースに関する情報を表示し

第第17章章 FIBRE CHANNEL OVER ETHERNET の設定の設定

133

Page 138: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

fcoeadm -i コマンドを使用して、アクティブな FCoE インターフェースに関する情報を表示します。

# fcoeadm -iDescription: BCM57840 NetXtreme II 10 Gigabit EthernetRevision: 11Manufacturer: Broadcom Inc. and subsidiariesSerial Number: 000AG703A9B7

Driver: bnx2x UnknownNumber of Ports: 1

Symbolic Name: bnx2fc (QLogic BCM57840) v2.12.13 over enp1s0.200 OS Device Name: host11 Node Name: 0x2000000af70ae935 Port Name: 0x2001000af70ae935 Fabric Name: 0x20c8002a6aa7e701 Speed: 10 Gbit Supported Speed: 1 Gbit, 10 Gbit MaxFrameSize: 2048 bytes FC-ID (Port ID): 0xba02c0 State: Online

関連情報関連情報

fcoeadm ユーティリティーの詳細は、fcoeadm(8) man ページを参照してください。

システムの起動時に、ソフトウェア FCoE 経由で接続したストレージをマウントする方法は、/usr/share/doc/fcoe-utils/README ファイルを参照してください。

17.3. 関連情報

詳細はファイバーチャネルデバイスの使用方法は、『ストレージデバイスの管理ストレージデバイスの管理』の「ファイバーチャネルデバイスの使用」を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

134

Page 139: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第18章 ポートミラーリングネットワーク管理者は、ポートミラーリングを使用して、あるネットワークデバイスから別のネットワークデバイスに通信中のインバウンドおよび送信トラフィックを複製できます。管理者は、ポートミラーリングを使用してネットワークトラフィックを監視し、ネットワークデータを収集します。

ネットワークの問題のデバッグおよびネットワークフローの調整

ネットワークトラフィックを調べて分析して、ネットワークの問題をトラブルシュートします。

侵入の検出

18.1. NMCLI を使用したネットワークインターフェースのミラーリング

NetworkManager を使用してポートのミラーリングを設定できます。以下の手順では、トラフィック制御(tc)ルールおよびフィルターを enp1s0 ネットワークインターフェースに追加することで、ネットワークインターフェースに追加することで、enp 1s0 かからら enp7 s0 にネットワークトラフィックをミラーリングします。

前提条件前提条件

ネットワークトラフィックをミラーリングするネットワークインターフェース。

手順手順

1. ネットワークトラフィックをミラーリングするネットワーク接続プロファイルを追加します。

# nmcli connection add type ethernet ifname enp1s0 con-name enp1s0 autoconnect no

2. '10:' を持つ egress(発信)トラフィックについて prio qdisc を enp1s0 に割り当てます。子なしで接続された 'prio' qdisc は、フィルターの割り当てを許可します。

# nmcli connection modify enp1s0 +tc.qdisc "root prio handle 10:"

3. 'ffff:' ハンドルを使用して、Ingress トラフィックの qdisc を追加します。

# nmcli connection modify enp1s0 +tc.qdisc "ingress handle ffff:"

4. ingress および egress qdiscs のパケットを照合し、それらを別のインターフェースにミラーリングするには、以下のフィルターを追加します。

# nmcli connection modify enp1s0 +tc.tfilter "parent ffff: matchall action mirred egress mirror dev mirror-of-enp1s0"

# nmcli connection modify enp1s0 +tc.tfilter "parent 10: matchall action mirred egress mirror dev mirror-of-enp1s0"

matchall フィルター はは すべてのパケットにマッチし、mirred アクション でで はパケットを宛先にリダイレクトします。

5. 接続をアクティベートします。

# nmcli connection up enp1s0

第第18章章 ポートミラーリングポートミラーリング

135

Page 140: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

検証手順検証手順

1. tcpdump ユーティリティーをインストールします。

# yum install tcpdump

2. ターゲットデバイスでミラーリングされたトラフィック(mirror-of-enp1s0)を表示します。

# tcpdump -i enp7s0

関連情報関連情報

tcpdump ユーティリティーの使用方法は、ユーティリティーの使用方法は、tcpdump ナレッジベースソリューション 「How tocapture network packets using tcpdump 」を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

136

Page 141: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第19章 802.1X 標準を使用したネットワークへの RHEL クライアントの認証

管理者は、IEEE 802.1X 標準に基づいてポートベースのネットワークアクセス制御 (NAC) を使用して、承認されていない LAN および Wi-Fi クライアントからネットワークを保護します。本セクションの手順では、ネットワーク認証を設定するさまざまなオプションを説明します。

19.1. NMCLI を使用して、既存のイーサネット接続での 802.1X ネットワーク認証の設定

nmcli ユーティリティーを使用して、クライアントがネットワークに対して自己認証するように設定できます。この手順では、enp1s0 という名前の既存の NetworkManager イーサネット接続プロファイルで、MSCHAPv2 (Microsoft Challenge-Handshake Authentication Protocol version 2) を使用する PEAP(Protected Extensible Authentication Protocol) 認証を設定する方法を説明します。

前提条件前提条件

1. ネットワークには 802.1X ネットワーク認証が必要です。

2. イーサネット接続プロファイルが NetworkManager に存在し、有効な IP 設定があります。

3. クライアントがオーセンティケーターの証明書を検証する必要がある場合は、認証局 (CA) 証明書を /etc/pki/ca-trust/source/anchors/ ディレクトリーに保存する必要があります。

4. wpa_supplicant パッケージがインストールされている。

手順手順

1. Extensible Authentication Protocol (EAP) を peap に設定し、内部認証プロトコルを mschapv2に設定し、ユーザー名を設定します。

# nmcli connection modify enp1s0 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name

1 つのコマンドで 802-1x.eap パラメーター、802-1x.phase2-auth パラメーター、および 802-1x.identity パラメーターを設定する必要があります。

2. 必要に応じて、パスワードを設定に保存します。

# nmcli connection modify enp1s0 802-1x.password パスワード

重要重要

デフォルトでは、NetworkManager は、パスワードを、/etc/sysconfig/network-scripts/keys-connection_name ファイルにクリアテキストで保存します。これは、root ユーザーのみが読み取れるようにします。ただし、設定ファイルのクリアテキストパスワードはセキュリティーリスクとなる可能性があります。

セキュリティーを強化するには、802-1x.password-flags パラメーターを 0x1に設定します。この設定では、GNOME デスクトップ環境または nm-applet が実行中のサーバーで、NetworkManager がこれらのサービスからパスワードを取得します。その他の場合は、NetworkManager によりパスワードの入力が求められます。

第第19章章 802.1X 標準を使用したネットワークへの標準を使用したネットワークへの RHEL クライアントの認証クライアントの認証

137

Page 142: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. クライアントがオーセンティケーターの証明書を検証する必要がある場合は、接続プロファイルの 802-1x.ca-cert パラメーターを CA 証明書のパスに設定します。

# nmcli connection modify enp1s0 802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt

注記注記

セキュリティー上の理由から、Red Hat はオーセンティケーターの証明書を使用して、クライアントがオーセンティケーターの ID を検証できるようにすることを推奨します。

4. 接続プロファイルをアクティベートします。

# nmcli connection up enp1s0

検証手順検証手順

ネットワーク認証が必要なネットワーク上のリソースにアクセスします。

関連情報関連情報

NetworkManager イーサネット接続プロファイルを追加する方法は、9章イーサネット接続の設定 を参照してください。

これ以降の 802.1X 関連のパラメーターと説明は、man ページの nm-settings(5) の 802-1x settings セクションを参照してください。

nmcli ユーティリティーの詳細は、 nmcli(1) の man ページを参照してください。

19.2. RHEL システムロールを使用した 802.1X ネットワーク認証による静的イーサネット接続の設定

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 コントロールノードで以下の手順を実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

138

Page 143: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

前提条件前提条件

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが必要。

ネットワークは 802.1X ネットワーク認証をサポートしている。

管理ノードは NetworkManager を使用している。

TLS 認証に必要な以下のファイルがコントロールノードにある。

/srv/data/client.key ファイルに保存されているクライアントキー。

/srv/data/client.crt ファイルに保存されているクライアント証明書。

/srv/data/ca.crt ファイルに保存されている認証局 (CA) の証明書。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/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: linux-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet

第第19章章 802.1X 標準を使用したネットワークへの標準を使用したネットワークへの RHEL クライアントの認証クライアントの認証

139

Page 144: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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

3. 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 は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

802.1X パラメーターの詳細は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルの ieee802_1x セクションを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

19.3. NMCLI を使用した、既存の WI-FI 接続での 802.1X ネットワーク認証の設定

nmcli ユーティリティーを使用して、クライアントがネットワークに対して自己認証するように設定で

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

140

Page 145: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

きます。この手順では、wlp1s0 という名前の既存の NetworkManager Wi-Fi 接続プロファイルで、MSCHAPv2 (Microsoft Challenge-Handshake Authentication Protocol version 2) を使用する PEAP(Protected Extensible Authentication Protocol) 認証を設定する方法を説明します。

前提条件前提条件

1. ネットワークには 802.1X ネットワーク認証が必要です。

2. Wi-Fi 接続プロファイルが NetworkManager に存在し、有効な IP 設定があります。

3. クライアントがオーセンティケーターの証明書を検証する必要がある場合は、認証局 (CA) 証明書を /etc/pki/ca-trust/source/anchors/ ディレクトリーに保存する必要があります。

4. wpa_supplicant パッケージがインストールされている。

手順手順

1. Wi-Fi セキュリティーモードを wpa-eap に設定し、Extensible Authentication Protocol (EAP) をpeap に設定し、内部認証プロトコルを mschapv2 に設定し、ユーザー名を設定します。

# nmcli connection modify wpl1s0 802-11-wireless-security.key-mgmt wpa-eap 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name

1 つのコマンドで 802-11-wireless-security.key-mgmt パラメーター、802-1x.eap パラメーター、802-1x.phase2-auth パラメーター、および 802-1x.identity パラメーターを設定する必要があります。

2. 必要に応じて、パスワードを設定に保存します。

# nmcli connection modify wpl1s0 802-1x.password パスワード

重要重要

デフォルトでは、NetworkManager は、パスワードを、/etc/sysconfig/network-scripts/keys-connection_name ファイルにクリアテキストで保存します。これは、root ユーザーのみが読み取れるようにします。ただし、設定ファイルのクリアテキストパスワードはセキュリティーリスクとなる可能性があります。

セキュリティーを強化するには、802-1x.password-flags パラメーターを 0x1に設定します。この設定では、GNOME デスクトップ環境または nm-applet が実行中のサーバーで、NetworkManager がこれらのサービスからパスワードを取得します。その他の場合は、NetworkManager によりパスワードの入力が求められます。

3. クライアントがオーセンティケーターの証明書を検証する必要がある場合は、接続プロファイルの 802-1x.ca-cert パラメーターを CA 証明書のパスに設定します。

# nmcli connection modify wpl1s0 802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt

注記注記

セキュリティー上の理由から、Red Hat はオーセンティケーターの証明書を使用して、クライアントがオーセンティケーターの ID を検証できるようにすることを推奨します。

第第19章章 802.1X 標準を使用したネットワークへの標準を使用したネットワークへの RHEL クライアントの認証クライアントの認証

141

Page 146: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

4. 接続プロファイルをアクティベートします。

# nmcli connection up wpl1s0

検証手順検証手順

ネットワーク認証が必要なネットワーク上のリソースにアクセスします。

関連情報関連情報

NetworkManager イーサネット接続プロファイルを追加する方法は、10章Wi-Fi 接続の管理 を参照してください。

これ以降の 802.1X 関連のパラメーターと説明は、man ページの nm-settings(5) の 802-1x settings セクションを参照してください。

nmcli ユーティリティーの詳細は、 nmcli(1) の man ページを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

142

Page 147: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第20章 デフォルトのゲートウェイ設定の管理デフォルトゲートウェイは、他のルートがパケットの宛先と一致する場合にネットワークパケットを転送するルーターです。ローカルネットワークでは、通常、デフォルトゲートウェイは、インターネットの近くの 1 ホップのホストです。

20.1. NMCLI を使用して、既存の接続でデフォルトのゲートウェイを設定

ほとんどの場合、管理者は、「nmcli を使用した静的イーサネット接続の設定」などの説明に従って接続を作成する場合のデフォルトのゲートウェイを設定します。

本セクションでは、nmcli ユーティリティーを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。

前提条件前提条件

デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。

物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、root 権限が必要になります。

手順手順

1. デフォルトゲートウェイの 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"

2. ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで example接続を再起動するには、次のコマンドを実行します。

$ sudo nmcli connection up example

警告警告

このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。

3. 必要に応じて、ルートがアクティブであることを確認します。IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

143

Page 148: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

$ ip -4 routedefault via 192.0.2.1 dev example proto static metric 100

IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

$ ip -6 routedefault via 2001:db8:1::1 dev example proto static metric 100 pref medium

関連情報関連情報

nmcli を使用した静的イーサネット接続の設定

20.2. NMCLI インタラクティブモードを使用して、既存の接続でデフォルトゲートウェイを設定

ほとんどの場合、管理者は、「nmcli インタラクティブエディターを使用した動的イーサネット接続の設定」などの説明に従って、接続を作成する場合のデフォルトのゲートウェイを設定します。

本セクションでは、nmcli ユーティリティーのインタラクティブモードを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。

前提条件前提条件

デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。

物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、root 権限が必要になります。

手順手順

1. 必要な接続に対して nmcli インタラクティブモードを開きます。たとえば、example 接続の nmcli インタラクティブモードを開くには、次のコマンドを実行します。

$ sudo nmcli connection edit example

2. デフォルトのゲートウェイを設定します。たとえば、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

3. 必要に応じて、デフォルトゲートウェイが正しく設定されていることを確認します。

nmcli> print...ipv4.gateway: 192.0.2.1

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

144

Page 149: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

...ipv6.gateway: 2001:db8:1::1...

4. 設定を保存します。

nmcli> save persistent

5. ネットワーク接続を再起動して、変更を有効にします。

nmcli> activate example

警告警告

このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。

6. nmcli インタラクティブモードを終了します。

nmcli> quit

7. 必要に応じて、ルートがアクティブであることを確認します。IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

$ ip -4 routedefault via 192.0.2.1 dev example proto static metric 100

IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

$ ip -6 routedefault via 2001:db8:1::1 dev example proto static metric 100 pref medium

関連情報関連情報

nmcli インタラクティブエディターを使用した静的イーサネット接続の設定

20.3. USING NM-CONNECTION-EDITOR で、既存の接続にデフォルトのゲートウェイを設定

ほとんどの場合、管理者は、接続を作成する場合のデフォルトのゲートウェイを設定します。本セクションでは、nm-connection-editor アプリケーションを使用して作成しておいた接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。

前提条件前提条件

デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

145

Page 150: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. 端末を開き、nm-connection-editor と入力します。

$ nm-connection-editor

2. 変更する接続を選択し、歯車のアイコンをクリックして、既存の接続を編集します。

3. IPv4 デフォルトゲートウェイを設定します。たとえば、その接続のデフォルトゲートウェイのIPv4 アドレスを 192.0.2.1 に設定します。

a. IPv4 Settings タブを開きます。

b. そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の gateway フィールドにアドレスを入力します。

4. IPv6 デフォルトゲートウェイを設定します。たとえば、接続のデフォルトゲートウェイの IPv6アドレスを 2001:db8:1::1 に設定するには、以下を行います。

a. IPv6 タブを開きます。

b. そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の gateway フィールドにアドレスを入力します。

5. OK をクリックします。

6. 保存保存 をクリックします。

7. ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで example接続を再起動するには、次のコマンドを実行します。

$ sudo nmcli connection up example

警告警告

このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。

8. 必要に応じて、ルートがアクティブであることを確認します。IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

146

Page 151: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

$ ip -4 routedefault via 192.0.2.1 dev example proto static metric 100

IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

$ ip -6 routedefault via 2001:db8:1::1 dev example proto static metric 100 pref medium

関連情報関連情報

「nm-connection-editor を使用したイーサネット接続の設定」

20.4. CONTROL-CENTER を使用して、既存の接続でフォルトのゲートウェイを設定

ほとんどの場合、管理者は、接続を作成する場合のデフォルトのゲートウェイを設定します。本セクションでは、control-center アプリケーションを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。

前提条件前提条件

デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。

control-center アプリケーションで、接続のネットワーク設定を開いている。

手順手順

1. IPv4 デフォルトゲートウェイを設定します。たとえば、その接続のデフォルトゲートウェイのIPv4 アドレスを 192.0.2.1 に設定します。

a. IPv4 タブを開きます。

b. そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の gateway フィールドにアドレスを入力します。

2. IPv6 デフォルトゲートウェイを設定します。たとえば、接続のデフォルトゲートウェイの IPv6アドレスを 2001:db8:1::1 に設定するには、以下を行います。

a. IPv6 タブを開きます。

b. そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の gateway フィールドにアドレスを入力します。

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

147

Page 152: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. 適用適用 をクリックします。

4. Network ウィンドウに戻り、接続のボタンを Off に切り替えてから On に戻して、接続を無効にして再度有効にし、変更を適用します。

警告警告

このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。

5. 必要に応じて、ルートがアクティブであることを確認します。IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

$ ip -4 routedefault via 192.0.2.1 dev example proto static metric 100

IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。

$ ip -6 routedefault via 2001:db8:1::1 dev example proto static metric 100 pref medium

関連情報関連情報

「nm-connection-editor を使用したイーサネット接続の設定」

20.5. NMSTATECTL を使用して既存の接続でデフォルトのゲートウェイを設定

nmstatectl ユーティリティーを使用してネットワーク接続のデフォルトゲートウェイを設定できます。この手順では、既存の enp1s0 接続のデフォルトゲートウェイを 192.0.2.1 に設定する方法を説明します。

前提条件前提条件

デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。

enp1s0 インターフェースが設定され、デフォルトゲートウェイの IP アドレスは、このインターフェースの IP 設定のサブネットに含まれます。

nmstate パッケージがインストールされている。

手順手順

1. 以下の内容を含む YAML ファイル(例: ~/set-default-gateway.yml )を作成します。

---routes:

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

148

Page 153: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

config: - destination: 0.0.0.0/0 next-hop-address: 192.0.2.1 next-hop-interface: enp1s0

2. 設定をシステムに適用します。

# nmstatectl set ~/set-default-gateway.yml

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

20.6. システムロールを使用して、既存の接続でデフォルトのゲートウェイを設定

networking の RHEL システムロールを使用して、デフォルトゲートウェイを設定できます。

重要重要

network の 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 パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

149

Page 154: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/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: linux-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

3. 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 は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関す

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

150

Page 155: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

20.7. レガシーネットワークスクリプトの使用時に、既存の接続でデフォルトゲートウェイの設定

この手順では、従来のネットワークスクリプトを使用する際にデフォルトのゲートウェイを設定する方法を説明します。この例では、デフォルトのゲートウェイを、enp1s0 インターフェースから到達可能な 192.0.2.1 に設定します。

前提条件前提条件

NetworkManager パッケージがインストールされていないか、NetworkManager サービスが無効になります。

network-scripts パッケージがインストールされている。

手順手順

1. /etc/sysconfig/network-scripts/ifcfg-enp1s0 ファイルの GATEWAY パラメーターを 192.0.2.1 に設定します。

GATEWAY=192.0.2.1

2. /etc/sysconfig/network-scripts/route-enp0s1 ファイルに デフォルトデフォルト エントリーを追加します。

default via 192.0.2.1

3. ネットワーク接続が再起動します。

# systemctl restart network

20.8. NETWORKMANAGER が複数のデフォルトゲートウェイを管理する方法

フォールバック上の理由で特定の状況では、ホストに複数のデフォルトゲートウェイを設定します。ただし、非同期ルーティングの問題を回避するために、同じプロトコルの各デフォルトゲートウェイには別のメトリクス値が必要です。RHEL は、最も低いメトリックセットを持つデフォルトゲートウェイへの接続のみを使用することに注意してください。

以下のコマンドを使用して、接続の IPv4 ゲートウェイと IPv6 ゲートウェイの両方にメトリクスを設定できます。

# nmcli connection modify connection-name ipv4.route-metric value ipv6.route-metric value

重要重要

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

151

Page 156: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

重要重要

ルーティングの問題を回避するために、複数の接続プロファイルで同じプロトコルに同じメトリック値を設定しないでください。

メトリック値なしでデフォルトのゲートウェイを設定すると、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

関連情報関連情報

ポリシーベースのルーティングの詳細は、22章代替ルートを定義するポリシーベースのルーティングの構成 を参照してください。

Multipath TCP の詳細は、27章Multipath TCP の使用 を参照してください。

20.9. 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐためのNETWORKMANAGER の設定

NetworkManager が特定のプロファイルを使用してデフォルトゲートウェイを指定しないようにするこ

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

152

Page 157: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

NetworkManager が特定のプロファイルを使用してデフォルトゲートウェイを指定しないようにすることができます。デフォルトゲートウェイに接続されていない接続プロファイルには、以下の手順に従います。

前提条件前提条件

デフォルトゲートウェイに接続されていない接続の NetworkManager 接続プロファイルが存在する。

手順手順

1. 接続で動的 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 アドレスが、接続プロファイルから削除されることに注意してください。

2. 接続をアクティベートします。

# nmcli connection up connection_name

検証手順検証手順

ip -4 route コマンドおよび ip -6 route コマンドを使用して、RHEL が、IPv4 プロトコルおよび IPv6 プロトコルのデフォルトルートにネットワークインターフェースを使用しないことを確認します。

20.10. 複数のデフォルトゲートウェイによる予期しないルーティング動作の修正

マルチパス TCP を使用する場合など、ホストで複数のデフォルトゲートウェイが必要なシナリオはそれほどありません。多くの場合、ルーティングの動作や非同期ルーティングの問題を回避するために、1つのデフォルトゲートウェイのみを設定します。

注記注記

異なるインターネットプロバイダーにトラフィックをルーティングするには、複数のデフォルトゲートウェイの代わりにポリシーベースのルーティングを使用します。

前提条件前提条件

ホストは NetworkManager を使用してネットワーク接続を管理します。これはデフォルトです。

ホストには複数のネットワークインターフェースがある。

ホストには複数のデフォルトゲートウェイが設定されている。

手順手順

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

153

Page 158: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. ルーティングテーブルを表示します。

IPv4 の場合は、次のコマンドを実行します。

# ip -4 routedefault via 192.0.2.1 dev enp1s0 proto static metric 101default via 198.51.100.1 dev enp7s0 proto static metric 102...

IPv6 の場合は、次のコマンドを実行します。

# ip -6 routedefault via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref mediumdefault via 2001:db8:2::1 dev enp7s0 proto static metric 102 pref medium...

default で開始するエントリーはデフォルトのルートを示します。dev の横に表示されるこれらのエントリーのインターフェース名を書き留めます。

2. 以下のコマンドを使用して、前の手順で特定したインターフェースを使用するNetworkManager 接続を表示します。

# nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp1s0GENERAL.CONNECTION: Corporate-LANIP4.GATEWAY: 192.168.122.1IP6.GATEWAY: 2001:db8:1::1

# nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp7s0GENERAL.CONNECTION: Internet-ProviderIP4.GATEWAY: 198.51.100.1IP6.GATEWAY: 2001:db8:2::1

この例では、Corporate-LAN と Internet-Provider という名前のプロファイルにはデフォルトのゲートウェイが設定されています。これは、ローカルネットワークでは、通常、インターネット 1 ホップ近いホストがデフォルトゲートウェイであるため、この手順の残りの部分では、Corporate-LAN のデフォルトゲートウェイが正しくないことを想定するためです。

3. 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 アドレスが、接続プロファイルから削除されることに注意してください。

4. Corporate-LAN 接続をアクティブにします。

# nmcli connection up Corporate-LAN

検証手順検証手順

IPv4 および IPv6 ルーティングテーブルを表示し、プロトコルごとに 1 つのデフォルトゲート

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

154

Page 159: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

IPv4 および IPv6 ルーティングテーブルを表示し、プロトコルごとに 1 つのデフォルトゲートウェイのみが利用可能であることを確認します。

IPv4 の場合は、次のコマンドを実行します。

# ip -4 routedefault via 192.0.2.1 dev enp1s0 proto static metric 101...

IPv6 の場合は、次のコマンドを実行します。

# ip -6 routedefault via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium...

関連情報関連情報

ポリシーベースのルーティングの詳細は、22章代替ルートを定義するポリシーベースのルーティングの構成 を参照してください。

Multipath TCP の詳細は、27章Multipath TCP の使用 を参照してください。

第第20章章 デフォルトのゲートウェイ設定の管理デフォルトのゲートウェイ設定の管理

155

Page 160: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第21章 静的ルートの設定デフォルトでは、デフォルトゲートウェイが設定されていると、Red Hat Enterprise Linux は、ホストに直接接続されていないネットワークのトラフィックをデフォルトゲートウェイに転送します。静的ルートを使用して、Red Hat Enterprise Linux が特定のホストまたはネットワークのトラフィックをデフォルトゲートウェイとは別のルーターに転送するように設定できます。本セクションでは、静的ルートを設定するさまざまなオプションを説明します。

21.1. NMCLI コマンドを使用して、静的ルートを設定する方法

静的ルートを設定するには、次の構文で nmcli ユーティリティーを使用します。

$ nmcli connection modify connection_name ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."

このコマンドは、次のルート属性に対応します。

table=n

src=address

tos=n

onlink=true|false

window=n

cwnd=n

mtu=n

lock-window=true|false

lock-cwdn=true|false

lock-mtu=true|false

サブコマンド ipv4.routes を使用する場合は、nmcli が、このパラメーターの現在の設定をすべて上書きします。ルートを追加するには、nmcli connection modify connection_name +ipv4.routes "…" コマンドを実行します。同様に、nmcli connection modify connection_name -ipv4.routes "…" を使用して、特定ルートを削除できます。

21.2. NMCLI コマンドを使用した静的ルートの設定

nmcli connection modify コマンドを使用して、ネットワーク接続の設定に静的ルートを追加できます。

本セクションの手順では、198.51.100.1 で実行しているゲートウェイを使用する 192.0.2.0/24 ネットワークにルートを追加する方法を説明します。これは、example 接続から到達可能です。

前提条件前提条件

ネットワークが設定されている。

静的ルートのゲートウェイが、インターフェースで直接到達できる。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

156

Page 161: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、コマンドに root 権限が必要になります。

手順手順

1. 静的ルートを 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"

2. 必要に応じて、ルートが設定に正しく追加されたことを確認します。

$ nmcli connection show example...ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 }...

3. ネットワーク接続が再起動します。

$ sudo nmcli connection up example

警告警告

接続を再起動すると、そのインターフェースの接続が一時的に中断します。

4. 必要に応じて、ルートがアクティブであることを確認します。

$ ip route...192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

関連情報関連情報

nmcli の詳細は、man ページの nmcli(1) を参照してください。

21.3. CONTROL-CENTER による静的ルートの設定

GNOME で control-center を使用して、ネットワーク接続の設定に静的ルートを追加します。

本セクションの手順では、198.51.100.1 で実行しているゲートウェイを使用する 192.0.2.0/24 ネットワークにルートを追加する方法を説明します。

第第21章章 静的ルートの設定静的ルートの設定

157

Page 162: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

前提条件前提条件

ネットワークが設定されている。

静的ルートのゲートウェイが、インターフェースで直接到達できる。

control-center アプリケーションで接続のネットワーク設定が開いている。nm-connection-editor を使用したイーサネット接続の設定 を参照してください。

手順手順

1. IPv4 タブを開きます。

2. 必要に応じて、IPv4 タブの Routes セクションの On ボタンをクリックして自動ルートを無効にし、静的ルートのみを使用します。自動ルートが有効になっている場合は、Red HatEnterprise Linux が静的ルートと、DHCP サーバーから受け取ったルートを使用します。

3. アドレス、ネットマスク、ゲートウェイを入力します。必要に応じて、メトリック値を入力します。

4. 適用適用 をクリックします。

5. Network ウィンドウに戻り、接続のボタンを Off に切り替えてから On に戻して、接続を無効にして再度有効にし、変更を適用します。

警告警告

接続を再起動すると、そのインターフェースの接続が一時的に中断します。

6. 必要に応じて、ルートがアクティブであることを確認します。

$ ip route...192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

21.4. NM-CONNECTION-EDITOR による静的ルートの設定

nm-connection-editor アプリケーションを使用して、ネットワーク接続の設定に静的ルートを追加できます。

本セクションの手順では、198.51.100.1 で実行しているゲートウェイを使用する 192.0.2.0/24 ネットワークにルートを追加する方法を説明します。これは、example 接続から到達可能です。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

158

Page 163: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

前提条件前提条件

ネットワークが設定されている。

静的ルートのゲートウェイが、インターフェースで直接到達できる。

手順手順

1. 端末を開き、nm-connection-editor と入力します。

$ nm-connection-editor

2. example 接続を選択し、歯車アイコンをクリックして、既存の接続を変更します。

3. IPv4 タブを開きます。

4. Routes ボタンをクリックします。

5. Add ボタンをクリックして、アドレス、ネットマスク、ゲートウェイを入力します。必要に応じてメトリック値を入力します。

6. OK をクリックします。

7. 保存保存 をクリックします。

8. ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで example接続を再起動するには、次のコマンドを実行します。

$ sudo nmcli connection up example

9. 必要に応じて、ルートがアクティブであることを確認します。

$ ip route...192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

21.5. NMCLI インタラクティブモードで静的ルートの設定

nmcli ユーティリティーのインタラクティブモードを使用して、ネットワーク接続の設定に静的ルートを追加できます。

本セクションの手順では、198.51.100.1 で実行しているゲートウェイを使用する 192.0.2.0/24 ネットワークにルートを追加する方法を説明します。これは、example 接続から到達可能です。

前提条件前提条件

第第21章章 静的ルートの設定静的ルートの設定

159

Page 164: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ネットワークが設定されている。

静的ルートのゲートウェイが、インターフェースで直接到達できる。

物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、コマンドに root 権限が必要になります。

手順手順

1. example 接続の nmcli インタラクティブモードを開きます。

$ sudo nmcli connection edit example

2. 静的ルートを追加します。

nmcli> set ipv4.routes 192.0.2.0/24 198.51.100.1

3. 必要に応じて、ルートが設定に正しく追加されたことを確認します。

nmcli> print...ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 }...

ip 属性には、転送するネットワークと、ゲートウェイの nh 属性 (次のホップ) が表示されます。

4. 設定を保存します。

nmcli> save persistent

5. ネットワーク接続が再起動します。

nmcli> activate example

警告警告

接続を再起動すると、この接続を現在使用している接続がすべて一時的に中断されます。

6. nmcli インタラクティブモードを終了します。

nmcli> quit

7. 必要に応じて、ルートがアクティブであることを確認します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

160

Page 165: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

$ ip route...192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

関連情報関連情報

インタラクティブモードで使用できるコマンドの一覧は、インタラクティブシェルに help と入力します。

21.6. NMSTATECTL を使用した静的ルートの設定

nmstatectl ユーティリティーを使用してネットワーク接続の設定に静的ルートを追加できます。

本セクションの手順では、198.51.100.1 で実行しているゲートウェイを使用する 192.0.2.0/24 ネットワークにルートを追加する方法を説明します。これは、enp1s0 インターフェースから到達可能です。

前提条件前提条件

enp1s0 ネットワークインターフェースが設定されている。

静的ルートのゲートウェイが、インターフェースで直接到達できる。

nmstate パッケージがインストールされている。

手順手順

1. 以下の内容を含む 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

2. 設定をシステムに適用します。

# nmstatectl set ~/add-static-route-to-enp1s0.yml

関連情報関連情報

nmstatectl の詳細は、nmstatectl (8) man ページを参照してください。

設定例は、/usr/share/doc/nmstate/examples/ ディレクトリーを参照してください。

21.7. RHEL システムロールを使用した静的ルートの設定

networking の RHEL システムロールを使用して、静的ルートを設定できます。

重要重要

第第21章章 静的ルートの設定静的ルートの設定

161

Page 166: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

重要重要

network の 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 パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/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: linux-system-roles.network

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

162

Page 167: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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

3. 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 routedefault via 198.51.100.254 dev enp7s0 proto static metric 100192.0.2.0/24 via 198.51.100.1 dev enp7s0 proto static metric 100203.0.113.0/24 via 198.51.100.2 dev enp7s0 proto static metric 100...

関連情報関連情報

network_connections で使用されるパラメーターの詳細と、システムロール network に関す

第第21章章 静的ルートの設定静的ルートの設定

163

Page 168: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

network_connections で使用されるパラメーターの詳細と、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

21.8. レガシーネットワークスクリプトの使用時に KEY-VALUE-FORMATに静的ルート設定ファイルを作成

この手順では、NetworkManager の代わりに従来のネットワークスクリプトを使用する場合に、IPv4ルートのルーティング設定ファイルを 192.0.2.0/24 ネットワークに手動で作成する方法を説明します。この例では、IP アドレス 198.51.100.1 の対応するゲートウェイは、enp1s0 インターフェースを介して到達できます。

この手順の例では、key-value-format の設定エントリーを使用します。

注記注記

従来のネットワークスクリプトは、静的 IPv4 ルートでのみ key-value-format に対応します。IPv6 ルートの場合は、ip-command-format を使用します。従来のネットワークスクリプトの使用時に、ip-command-format で静的ルート設定ファイルを作成 を参照してください。

前提条件前提条件

静的ルートのゲートウェイが、インターフェースで直接到達できる。

NetworkManager パッケージがインストールされていないか、NetworkManager サービスが無効になります。

network-scripts パッケージがインストールされている。

手順手順

1. 静的 IPv4 ルートを /etc/sysconfig/network-scripts/route-enp0s1 ファイルに追加します。

ADDRESS0=192.0.2.0NETMASK0=255.255.255.0GATEWAY0=198.51.100.1

ADDRESS0 変数は、最初のルーティングエントリーのネットワークを定義します。

NETMASK0 変数は、最初のルーティングエントリーのネットマスクを定義します。

GATEWAY0 変数は、最初のルーティングエントリーのリモートネットワークまたはホストへのゲートウェイの IP アドレスを定義します。複数の静的ルートを追加する場合は、変数名の数を増やします。各ルートの変数は順番に番号付けされる必要があることに注意してください。たとえば、ADDRESS0、ADDRESS1、ADDRESS3 などです。

2. ネットワークを再起動します。

# systemctl restart network

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

164

Page 169: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

従来のネットワークスクリプトの設定の詳細は、/usr/share/doc/network-scripts/sysconfig.txt ファイルを参照してください。

21.9. 従来のネットワークスクリプトの使用時に、IP-COMMAND-FORMATで静的ルート設定ファイルを作成

この手順では、従来のネットワークスクリプトを使用する場合に、以下の静的ルートのルーティング設定ファイルを手動で作成する方法を説明します。

192.0.2.0/24 ネットワークへの IPv4 ルート。IP アドレス 198.51.100.1 の対応するゲートウェイは、enp1s0 インターフェースを介して到達できます。

2001:db8:1::/64 ネットワークへの IPv6 ルート。IP アドレス 2001:db8:2::1 の対応するゲートウェイは、enp1s0 インターフェースを介して到達できます。

この手順の例では、ip-command-format の設定エントリーを使用します。

前提条件前提条件

静的ルートのゲートウェイが、インターフェースで直接到達できる。

NetworkManager パッケージがインストールされていないか、NetworkManager サービスが無効になります。

network-scripts パッケージがインストールされている。

手順手順

1. 静的 IPv4 ルートを /etc/sysconfig/network-scripts/route-enp0s1 ファイルに追加します。

192.0.2.0/24 via 198.51.100.1 dev enp0s1

2. 静的 IPv6 ルートを /etc/sysconfig/network-scripts/route6-enp0s1 ファイルに追加します。

2001:db8:1::/64 via 2001:db8:2::1 dev enp0s1

3. ネットワークを再起動します。

# systemctl restart network

関連情報関連情報

従来のネットワークスクリプトの設定の詳細は、/usr/share/doc/network-scripts/sysconfig.txt ファイルを参照してください。

第第21章章 静的ルートの設定静的ルートの設定

165

Page 170: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第22章 代替ルートを定義するポリシーベースのルーティングの構成

デフォルトでは、RHEL のカーネルは、ルーティングテーブルを使用して宛先アドレスに基づいてネットワークパケットを転送する場所を決定します。ポリシーベースのルーティングにより、複雑なルーティングシナリオを構成できます。たとえば、送信元アドレス、パケットメタデータ、プロトコルなどのさまざまな基準に基づいてパケットをルーティングできます。

本セクションでは、NetworkManager を使用してポリシーベースのルーティングを設定する方法を説明します。

注記注記

NetworkManager を使用するシステムでは、nmcli ユーティリティーのみがルーティングルールの設定と、特定のテーブルへのルートの割り当てをサポートします。

22.1. NETWORKMANAGER を使用して、特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング

本セクションでは、デフォルトで、デフォルトルートを使用して、すべてのトラフィックをインターネットプロバイダー A にルーティングするルーターとして RHEL を構成する方法を説明します。RHELは、ポリシーベースのルーティングを使用して、内部ワークステーションのサブネットから受信したトラフィックをプロバイダー B にルーティングします。

この手順では、次のネットワークトポロジを想定しています。

前提条件前提条件

システムは NetworkManager を使用してネットワークを構成します。これはRHEL 8のデフォルトです。

この手順で設定する RHEL ルーターには、4 つのネットワークインターフェイスがあります。

enp7s0 インターフェースはプロバイダー A のネットワークに接続されています。プロバイダーのネットワークのゲートウェイ IP は 198.51.100.2 で、ネットワークは /30 ネットワークマスクを使用します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

166

Page 171: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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 サービスは有効でアクティブになっています。

手順手順

1. プロバイダー 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 は、外部外部 ゾーンに割り当てられたマスカレードインターフェースを自動的に有効にすることに注意してください。

2. プロバイダー 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

第第22章章 代替ルートを定義するポリシーベースのルーティングの構成代替ルートを定義するポリシーベースのルーティングの構成

167

Page 172: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

このコマンドは、デフォルトゲートウェイを設定する ipv4.gateway の代わりに、ipv4.routesパラメーターを使用します。これは、この接続用のデフォルトゲートウェイを、デフォルトとは異なるルーティングテーブル (5000) に割り当てるために必要です。NetworkManager は、接続がアクティブになると、この新しいルーティングテーブルを自動的に作成します。

3. 内部ワークステーションサブネットへのネットワークインターフェースを設定します。

# nmcli connection add type ethernet con-name Internal-Workstations ifname enp8s0 ipv4.method manual ipv4.addresses 10.0.0.1/24 ipv4.routes "10.0.0.0/24 src=192.0.2.1 table=5000" ipv4.routing-rules "priority 5 from 10.0.0.0/24 table 5000" connection.zone internal

このコマンドは、ipv4.routes パラメーターを使用して、ID が 5000 のルーティングテーブルに静的ルートを追加します。10.0.0.0/24 サブネットのこの静的ルートは、プロバイダー B(192.0.2.1) へのローカルネットワークインターフェースの IP を次のホップとして使用します。

また、このコマンドでは ipv4.routing-rules パラメーターを使用して、優先度 5 のルーティングルールを追加します。このルーティングルールは、トラフィックを 10.0.0.0/24 サブネットからテーブル 5000 へルーティングします。値が小さいほど優先度が高くなります。

ipv4.routing-rules パラメーターの構文は ip route add コマンドと同じですが、ipv4.routing-rules は常に優先度を指定する必要があります。

4. サーバーサブネットへのネットワークインターフェースを設定します。

# nmcli connection add type ethernet con-name Servers ifname enp9s0 ipv4.method manual ipv4.addresses 203.0.113.1/24 connection.zone internal

検証手順検証手順

1. 内部ワークステーションサブネットの RHEL ホストで、以下を行います。

a. traceroute パッケージをインストールします。

# yum install traceroute

b. traceroute ユーティリティーを使用して、インターネットのホストへのルートを表示します。

# traceroute redhat.comtraceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 10.0.0.1 (10.0.0.1) 0.337 ms 0.260 ms 0.223 ms 2 192.0.2.1 (192.0.2.1) 0.884 ms 1.066 ms 1.248 ms ...

コマンドの出力には、プロバイダー B のネットワークである 192.0.2.1 経由でルーターがパケットを送信することが表示されます。

2. サーバーのサブネットの RHEL ホストで、以下を行います。

a. traceroute パッケージをインストールします。

# yum install traceroute

b. traceroute ユーティリティーを使用して、インターネットのホストへのルートを表示しま

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

168

Page 173: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

b. traceroute ユーティリティーを使用して、インターネットのホストへのルートを表示します。

# traceroute redhat.comtraceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 203.0.113.1 (203.0.113.1) 2.179 ms 2.073 ms 1.944 ms 2 198.51.100.2 (198.51.100.2) 1.868 ms 1.798 ms 1.549 ms ...

コマンドの出力には、ルーターがプロバイダー A のネットワークである 198.51.100.2 経由でパケットを送信することが表示されます。

トラブルシューティングの手順トラブルシューティングの手順

RHEL ルーターで以下を行います。

1. ルールの一覧を表示します。

# ip rule list0: from all lookup local5: from 10.0.0.0/24 lookup 500032766: from all lookup main32767: from all lookup default

デフォルトでは、RHEL には、local テーブル、main テーブル、および default テーブルのルールが含まれます。

2. テーブル 5000 のルートを表示します。

# ip route list table 50000.0.0.0/0 via 192.0.2.2 dev enp1s0 proto static metric 10010.0.0.0/24 dev enp8s0 proto static scope link src 192.0.2.1 metric 102

3. インターフェースとファイアウォールゾーンを表示します。

# firewall-cmd --get-active-zonesexternal interfaces: enp1s0 enp7s0internal interfaces: enp8s0 enp9s0

4. 外部外部 ゾーンでマスカレードが有効になっていることを確認します。

# firewall-cmd --info-zone=externalexternal (active) target: default icmp-block-inversion: no interfaces: enp1s0 enp7s0 sources: services: ssh ports: protocols: masquerade: yes ...

第第22章章 代替ルートを定義するポリシーベースのルーティングの構成代替ルートを定義するポリシーベースのルーティングの構成

169

Page 174: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

nmcli connection add コマンドに設定できる ipv4.* パラメーターの詳細は、man ページの nm-settings(5) の IPv4 settings セクションを参照してください。

nmcli connection add コマンドに設定できる connection.* パラメーターの詳細は、man ページの nm-settings(5) の Connection settings セクションを参照してください。

nmcli を使用した NetworkManager 接続の管理の詳細は、man ページの nmcli(1) の Connection management commands セクションを参照してください。

22.2. 従来のネットワークスクリプトを使用する場合のポリシーベースのルーティングに関連する設定ファイルの概要

NetworkManager の代わりに従来のネットワークスクリプトを使用してネットワークを設定する場合は、ポリシーベースのルーティングを設定することもできます。

注記注記

network-scripts パッケージが提供する従来のネットワークスクリプトを使用したネットワークの設定は、RHEL 8 では非推奨になりました。Red Hat は、NetworkManager を使用してポリシーベースのルーティングを設定することを推奨します。例については、「NetworkManager を使用して、特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング」 を参照してください。

レガシーネットワークスクリプトを使用する場合、次の構成ファイルがポリシーベースルーティングに含まれます。

/etc/sysconfig/network-scripts/route-interface - このファイルは IPv4 ルートを定義します。table オプションを使用してルーティングテーブルを指定します。以下に例を示します。

192.0.2.0/24 via 198.51.100.1 table 1203.0.113.0/24 via 198.51.100.2 table 2

/etc/sysconfig/network-scripts/route6-interface - このファイルは IPv6 ルートを定義します。

/etc/sysconfig/network-scripts/rule-interface - このファイルは、カーネルがトラフィックを特定のルーティングテーブルにルーティングする IPv4 ソースネットワークのルールを定義します。以下に例を示します。

from 192.0.2.0/24 lookup 1from 203.0.113.0/24 lookup 2

/etc/sysconfig/network-scripts/rule6-interface - このファイルは、カーネルがトラフィックを特定のルーティングテーブルにルーティングする IPv6 ソースネットワークのルールを定義します。

/etc/iproute2/rt_tables - このファイルは、特定のルーティングテーブルを参照する数字の代わりに名前を使用する場合にマッピングを定義します。以下に例を示します。

1 Provider_A2 Provider_B

関連情報関連情報

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

170

Page 175: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

IP ルーティングの詳細は、man ページの ip-route(8) を参照してください。

ルーティングルールの詳細は、man ページの ip-rule(8) を参照してください。

22.3. レガシーネットワークスクリプトを使用して、特定のサブネットから別のデフォルトゲートウェイにトラフィックをルーティング

本セクションでは、デフォルトで、デフォルトルートを使用して、すべてのトラフィックをインターネットプロバイダー A にルーティングするルーターとして RHEL を構成する方法を説明します。RHELは、ポリシーベースのルーティングを使用して、内部ワークステーションのサブネットから受信したトラフィックをプロバイダー B にルーティングします。

重要重要

network-scripts パッケージが提供する従来のネットワークスクリプトを使用したネットワークの設定は、RHEL 8 では非推奨になりました。このセクションの手順は、ホストでNetworkManager ではなく、レガシーネットワークスクリプトを使用している場合に限り行います。NetworkManager を使用してネットワーク設定を管理する場合は、「NetworkManager を使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング」を参照してください。

この手順では、次のネットワークトポロジを想定しています。

注記注記

従来のネットワークスクリプトは、設定ファイルをアルファベット順に処理します。したがって、他のインターフェースのルールとルートで使用されるインターフェースが、依存するインターフェースが必要とするときに確実に稼働するように、構成ファイルに名前を付ける必要があります。正しい順序を達成するために、この手順では ifcfg-* ファイル、route-* ファイル、および rules-* ファイルの番号を使用します。

前提条件前提条件

NetworkManager パッケージがインストールされていないか、NetworkManager サービスが

第第22章章 代替ルートを定義するポリシーベースのルーティングの構成代替ルートを定義するポリシーベースのルーティングの構成

171

Page 176: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

NetworkManager パッケージがインストールされていないか、NetworkManager サービスが無効になります。

network-scripts パッケージがインストールされている。

この手順で設定する 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 サービスは有効でアクティブになっています。

手順手順

1. 以下の内容で /etc/sysconfig/network-scripts/ifcfg-1_Provider-A ファイルを作成して、ネットワークインターフェースの設定をプロバイダー A に追加します。

TYPE=EthernetIPADDR=198.51.100.1PREFIX=30GATEWAY=198.51.100.2DNS1=198.51.100.200DEFROUTE=yesNAME=1_Provider-ADEVICE=enp7s0ONBOOT=yesZONE=external

以下の一覧は、設定ファイルで使用されるパラメーターについて説明しています。

TYPE=Ethernet - 接続タイプがイーサネットであることを定義します。

IPADDR=IP_address - IPv4 アドレスを設定します。

PREFIX=subnet_mask - サブネットマスクを設定します。

GATEWAY=IP_address - デフォルトのゲートウェイアドレスを設定します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

172

Page 177: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

DNS1=IP_of_DNS_server - DNS サーバーの IPv4 アドレスを設定します。

DEFROUTE=yes|no - 接続がデフォルトルートであるかどうかを定義します。

NAME=connection_name - 接続プロファイルの名前を設定します。混乱を避けるために、わかりやすい名前を使用してください。

DEVICE=network_device - ネットワークインターフェースを設定します。

ONBOOT=yes - システムの起動時に RHEL がこの接続を開始することを定義します。

zone=firewalld_zone - 定義した firewalld ゾーンにネットワークインターフェースを割り当てます。firewalld は、外部外部 ゾーンに割り当てられたマスカレードインターフェースを自動的に有効にすることに注意してください。

2. プロバイダー B にネットワークインターフェースの設定を追加します。

a. 以下の内容で /etc/sysconfig/network-scripts/ifcfg-2_Provider-B ファイルを作成します。

TYPE=EthernetIPADDR=192.0.2.1PREFIX=30DEFROUTE=noNAME=2_Provider-BDEVICE=enp1s0ONBOOT=yesZONE=external

このインターフェースの設定ファイルには、デフォルトのゲートウェイ設定が含まれていないことに注意してください。

b. 2_Provider-B 接続のゲートウェイを別のルーティングテーブルに割り当てます。したがって、以下の内容で /etc/sysconfig/network-scripts/route-2_Provider-B ファイルを作成します。

0.0.0.0/0 via 192.0.2.2 table 5000

このエントリーは、このゲートウェイを経由するすべてのサブネットからのゲートウェイおよびトラフィックをテーブル 5000 に割り当てます。

3. 内部ワークステーションサブネットへのネットワークインターフェースの設定を作成します。

a. 以下の内容で /etc/sysconfig/network-scripts/ifcfg-3_Internal-Workstations ファイルを作成します。

TYPE=EthernetIPADDR=10.0.0.1PREFIX=24DEFROUTE=noNAME=3_Internal-WorkstationsDEVICE=enp8s0ONBOOT=yesZONE=internal

b. 内部ワークステーションサブネットのルーティングルール設定を追加します。したがっ

第第22章章 代替ルートを定義するポリシーベースのルーティングの構成代替ルートを定義するポリシーベースのルーティングの構成

173

Page 178: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

b. 内部ワークステーションサブネットのルーティングルール設定を追加します。したがって、以下の内容で /etc/sysconfig/network-scripts/rule-3_Internal-Workstations ファイルを作成します。

pri 5 from 10.0.0.0/24 table 5000

この設定では、優先度 5 のルーティングルールを定義します。これは、すべてのトラフィックを 10.0.0.0/24 サブネットからテーブル 5000 にルーティングします。値が小さいほど優先度が高くなります。

c. 以下の内容を含む /etc/sysconfig/network-scripts/route-3_Internal-Workstations ファイルを作成し、ID 5000 のルーティングテーブルに静的ルートを追加します。

10.0.0.0/24 via 192.0.2.1 table 5000

この静的ルートは、RHEL が、ローカルネットワークインターフェースの IP への 10.0.0.0/24 サブネットから、プロバイダー B (192.0.2.1) にトラフィックを送信することを定義します。このインターフェースは、ルーティングテーブル 5000 に対するものであり、ネクストホップとして使用されます。

4. 以下の内容で /etc/sysconfig/network-scripts/ifcfg-4_Servers ファイルを作成して、ネットワークインターフェースの設定をサーバーのサブネットに追加します。

TYPE=EthernetIPADDR=203.0.113.1PREFIX=24DEFROUTE=noNAME=4_ServersDEVICE=enp9s0ONBOOT=yesZONE=internal

5. ネットワークを再起動します。

# systemctl restart network

検証手順検証手順

1. 内部ワークステーションサブネットの RHEL ホストで、以下を行います。

a. traceroute パッケージをインストールします。

# yum install traceroute

b. traceroute ユーティリティーを使用して、インターネットのホストへのルートを表示します。

# traceroute redhat.comtraceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 10.0.0.1 (10.0.0.1) 0.337 ms 0.260 ms 0.223 ms 2 192.0.2.1 (192.0.2.1) 0.884 ms 1.066 ms 1.248 ms ...

コマンドの出力には、プロバイダー B のネットワークである 192.0.2.1 経由でルーターが

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

174

Page 179: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

コマンドの出力には、プロバイダー B のネットワークである 192.0.2.1 経由でルーターがパケットを送信することが表示されます。

2. サーバーのサブネットの RHEL ホストで、以下を行います。

a. traceroute パッケージをインストールします。

# yum install traceroute

b. traceroute ユーティリティーを使用して、インターネットのホストへのルートを表示します。

# traceroute redhat.comtraceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 203.0.113.1 (203.0.113.1) 2.179 ms 2.073 ms 1.944 ms 2 198.51.100.2 (198.51.100.2) 1.868 ms 1.798 ms 1.549 ms ...

コマンドの出力には、ルーターがプロバイダー A のネットワークである 198.51.100.2 経由でパケットを送信することが表示されます。

トラブルシューティングの手順トラブルシューティングの手順

RHEL ルーターで以下を行います。

1. ルールの一覧を表示します。

# ip rule list0: from all lookup local5: from 10.0.0.0/24 lookup 500032766: from all lookup main32767: from all lookup default

デフォルトでは、RHEL には、local テーブル、main テーブル、および default テーブルのルールが含まれます。

2. テーブル 5000 のルートを表示します。

# ip route list table 5000default via 192.0.2.2 dev enp1s010.0.0.0/24 via 192.0.2.1 dev enp1s0

3. インターフェースとファイアウォールゾーンを表示します。

# firewall-cmd --get-active-zonesexternal interfaces: enp1s0 enp7s0internal interfaces: enp8s0 enp9s0

4. 外部外部 ゾーンでマスカレードが有効になっていることを確認します。

# firewall-cmd --info-zone=externalexternal (active) target: default

第第22章章 代替ルートを定義するポリシーベースのルーティングの構成代替ルートを定義するポリシーベースのルーティングの構成

175

Page 180: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

icmp-block-inversion: no interfaces: enp1s0 enp7s0 sources: services: ssh ports: protocols: masquerade: yes ...

関連情報関連情報

従来のネットワークスクリプトを使用する場合のポリシーベースのルーティングに関連する設定ファイルの概要

ip-route(8) man ページ

man ページの ip-rule(8)

従来のネットワークスクリプトの詳細は、/usr/share/doc/network-scripts/sysconfig.txt ファイルを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

176

Page 181: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第23章 ダミーインターフェースの作成Red Hat Enterprise Linux ユーザーは、デバッグおよびテストの目的でダミーネットワークインターフェースを作成および使用できます。ダミーインターフェースは、実際には送信せずにパケットをルーティングするデバイスを提供します。NetworkManager が管理する追加のループバックのようなデバイスを作成し、非アクティブな SLIP (Serial Line Internet Protocol) アドレスをローカルプログラムの実アドレスのようにすることができます。

23.1. NMCLI を使用して IPV4 アドレスと IPV6 アドレスの両方を使用したダミーインターフェースの作成

さまざまな設定でダミーインターフェースを作成できます。この手順では、IPv4 アドレスと IPv6 アドレスの両方でダミーインターフェースを作成する方法を説明します。ダミーインターフェースを作成すると、NetworkManager により自動的にデフォルトの public ファイアウォールゾーンに割り当てられます。

注記注記

IPv4 アドレスまたは IPv6 アドレスなしでダミーインターフェースを設定するには、ipv4.method パラメーターおよび ipv6.method パラメーターを disabled に設定します。それ以外の場合は、IP 自動設定が失敗し、NetworkManager が接続を無効にしてダミーデバイスを削除します。

手順手順

1. 静的な IPv4 アドレスおよび IPv6 アドレスで dummy0 という名前のダミーインターフェースを作成するには、次のコマンドを実行します。

# nmcli connection add type dummy ifname dummy0 ipv4.method manual ipv4.addresses 192.0.2.1/24 ipv6.method manual ipv6.addresses 2001:db8:2::1/64

2. 必要に応じて、ダミーインターフェースを表示するには、以下を入力します。

# nmcli connection showNAME UUID TYPE DEVICEenp1s0 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3dummy-dummy0 aaf6eb56-73e5-4746-9037-eed42caa8a65 dummy dummy0

関連情報関連情報

man ページの nm-settings(5)

第第23章章 ダミーインターフェースの作成ダミーインターフェースの作成

177

Page 182: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第24章 ネットワーク経由でカーネルメッセージをログに記録するNETCONSOLE の使用

netconsole カーネルモジュールと同じ名前のサービスを使用すると、ネットワーク経由でカーネルメッセージをログに記録して、ディスクへのログインに失敗したり、シリアルコンソールを使用しない場合にカーネルをデバッグできます。

24.1. カーネルメッセージをリモートホストに記録するようにNETCONSOLE サービスを設定

netconsole カーネルモジュールを使用すると、リモートシステムログサービスにカーネルメッセージを記録できます。

前提条件前提条件

rsyslog などのシステムログサービスがリモートホストにインストールされている。

リモートシステムログサービスは、このホストから受信ログエントリーを受け取るように設定されています。

手順手順

1. netconsole-service パッケージをインストールします。

# yum install netconsole-service

2. /etc/sysconfig/netconsole ファイルを編集し、SYSLOGADDR パラメーターをリモートホストの IP アドレスに設定します。

# SYSLOGADDR=192.0.2.1

3. netconsole サービスを有効にして起動します。

# systemctl enable --now netconsole

検証手順検証手順

リモートシステムログサーバーの /var/log/messages ファイルを表示します。

関連情報関連情報

リモートホストがログメッセージを受信できるようにする方法は、『基本的なシステム設定の『基本的なシステム設定の構成』構成』の「リモートロギングソリューションの設定」を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

178

Page 183: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第25章 SYSTEMD ネットワークターゲットおよびサービスNetworkManager は、システムの起動時にネットワークを設定します。ただし、root ディレクトリーがiSCSI デバイスに保存されている場合など、リモートルート (/) で起動すると、RHEL が起動する前に、ネットワーク設定が初期 RAM ディスク (initrd) に適用されます。たとえば、rd.neednet=1 を使用してカーネルコマンドラインでネットワーク設定を指定すると、リモートファイルシステムのマウントに設定を指定すると、ネットワーク設定が initrd に適用されます。

本セクションでは、ネットワーク設定の適用時に使用される network、network-online、NetworkManager-wait-online サービスなどの異なるターゲットと、network-online サービスの開始後に systemd サービスが開始するように設定する方法を説明します。

25.1. SYSTEMD ターゲット NETWORK と NETWORK-ONLINE の違い

Systemd は、ターゲットユニット network および network-online を維持します。NetworkManager-wait-online.service などの特殊ユニットは、WantedBy=network-online.target パラメーターおよび Before=network-online.target パラメーターを持ちます。有効にすると、このようなユニットは network-online.target で開始し、一部の形式のネットワーク接続が確立されるまでターゲットに到達させるよう遅延します。ネットワークが接続されるまで、network-online ターゲットが遅延します。

network-online ターゲットはサービスを開始します。これにより、実行の遅延が大幅に増加します。Systemd は、このターゲットユニットの Wants パラメーターおよび After パラメーターの依存関係を、$network ファシリティーを参照する Linux Standard Base (LSB) ヘッダーを持つすべての SystemV(SysV) init スクリプトサービスユニットに自動的に追加します。LSB ヘッダーは、init スクリプトのメタデータです。これを使用して依存関係を指定できます。これは systemd ターゲットに似ています。

network ターゲットは、起動プロセスの実行を大幅に遅らせません。network ターゲットに到達すると、ネットワークの設定を行うサービスが開始していることになります。ただし、ネットワークデバイスが設定されているわけではありません。このターゲットは、システムのシャットダウン時に重要です。たとえば、起動中に network ターゲットの後に順序付けされたサービスがあると、この依存関係はシャットダウン中に元に戻されます。サービスが停止するまで、ネットワークは切断されません。リモートネットワークファイルシステムのすべてのマウントユニットは、network-online ターゲットユニットを自動的に起動し、その後に自身を置きます。

注記注記

network-online ターゲットユニットは、システムの起動時にのみ役に立ちます。システムの起動が完了すると、このターゲットがネットワークのオンライン状態を追跡しなくなります。したがって、network-online を使用してネットワーク接続を監視することはできません。このターゲットは、1 回限りのシステム起動の概念を提供します。

25.2. NETWORKMANAGER-WAIT-ONLINE の概要

同期されたレガシーネットワークスクリプトは、すべての設定ファイルを繰り返してデバイスを設定します。ネットワーク関連の設定をすべて適用し、ネットワークがオンラインであることを確認します。

NetworkManager-wait-online サービスは、ネットワークを設定するタイムアウトで待機します。このネットワーク設定には、イーサネットデバイスへのプラグイン、Wi-Fi デバイスのスキャンなどが含まれます。NetworkManager は、自動的に起動するように設定された適切なプロファイルを自動的にアクティブにします。DHCP のタイムアウトや同様のイベントによる自動アクティベーションプロセスが失敗しても、NetworkManager が長時間ビジー状態を維持される可能性があります。設定によっては、NetworkManager は同じプロファイルまたは別のプロファイルのアクティブ化を再試行します。

起動が完了すると、すべてのプロファイルが非接続状態であるか、正常にアクティベートされます。プ

第第25章章 SYSTEMD ネットワークターゲットおよびサービスネットワークターゲットおよびサービス

179

Page 184: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

起動が完了すると、すべてのプロファイルが非接続状態であるか、正常にアクティベートされます。プロファイルを自動接続するように設定できます。以下は、タイムアウトを設定したり、接続がアクティブとみなされるタイミングを定義するいくつかのパラメーター例です。

connection.wait-device-timeout - ドライバーがデバイスを検出するためのタイムアウトを設定します。

ipv4.may-fail および ipv6.may-fail - 1 つの IP アドレスファミリーの準備ができている状態でアクティベーションを設定します。または、特定のアドレスファミリーが設定を完了しているかどうかを設定します。

ipv4.gateway-ping-timeout - アクティベーションを遅延します。

関連情報関連情報

man ページの nm-settings(5)

25.3. ネットワークの開始後に SYSTEMD サービスが起動する設定

Red Hat Enterprise Linux は、systemd サービスファイルを /usr/lib/systemd/system/ ディレクトリーにインストールします。以下の手順では、/etc/systemd/system/service_name.service.d/ にあるサービスファイル用のドロップインスニペットを作成し、/usr/lib/systemd/system/ にあるサービスファイルとともに、ネットワークがオンラインになった後に特定の サービスサービス を開始するために使用します。ドロップインスニペットの設定が、/usr/lib/systemd/system/ 内のサービスファイルにある値と重複する場合は、優先度が高くなります。

手順手順

1. エディターでサービスファイルを開くには、次のコマンドを実行します。# systemctl edit service_name

2. 以下を入力し、変更を保存します。

[Unit]After=network-online.target

3. systemd サービスを再読み込みします。# systemctl daemon-reload

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

180

Page 185: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第26章 LINUX トラフィックの制御Linux は、パケットの送信を管理および操作するためのツールを提供します。Linux Traffic Control (TC)サブシステムは、ネットワークトラフィックの規制、分類、成熟、およびスケジューリングに役立ちます。また、TC はフィルターとアクションを使用して分類中にパケットコンテンツをマスリングします。TC サブシステムは、TC アーキテクチャーの基本要素であるキューイング規則 (qdisc) を使用してこれを実現します。

スケジューリングメカニズムは、異なるキューに入るか、終了する前にパケットを構成または再編成します。最も一般的なスケジューラーは First-In-First-Out (FIFO) スケジューラーです。qdiscs 操作は、tc ユーティリティーを使用して一時的に行うことも、NetworkManager を使用して永続的に行うこともできます。

本セクションでは、キューイング規則を説明し、RHEL でデフォルトの qdiscs を更新する方法を説明します。

26.1. キュー規則の概要

グルーピング規則 (qdiscs) は、ネットワークインターフェースによるトラフィックのスケジューリング、後でキューに役に立ちます。qdisc には 2 つの操作があります。

パケットを後送信用にキューに入れるできるようにするキュー要求。

キューに置かれたパケットのいずれかを即時に送信できるように要求を解除します。

各 qdisc には、ハンドルハンドル と呼ばれる 16 ビットの 16 進数の識別番号があり、 1: や abcd: などのコロンが付けられています。この番号は qdisc メジャー番号と呼ばれます。qdisc にクラスがある場合、識別子はマイナー番号 (<major>:<minor>) の前にメジャー番号を持つ 2 つの数字のペア (abcd:1) として形成されます。マイナー番号の番号設定スキームは、qdisc タイプによって異なります。1 つ目のクラスには ID <major>:1、2 つ目の <major>:2 などが含まれる場合があります。一部の qdiscs では、クラスの作成時にクラスマイナー番号を任意に設定することができます。

分類的な分類的な qdiscsネットワークインターフェースへのパケット転送には、さまざまな qdiscs があり、そのタイプのqdiscs が存在します。root、親、または子クラスを使用して qdiscs を設定できます。子を割り当て可能なポイントはクラスと呼ばれます。qdisc のクラスは柔軟性があり、常に複数の子クラス、または 1つの子 qdisc を含めることができます。これは、クラスフルな qdisc 自体を含むクラスに対して禁止がないため、複雑なトラフィック制御シナリオが容易になります。分類的な qdiscs はパケットを格納しません。代わりに、qdisc 固有の基準に従って、子のいずれかに対してキューをキューに入れ、デキューします。最終的にこの再帰パケットが渡される場所は、パケットが格納される場所 (またはデキューの場合はから取得) となります。

クラスレスクラスレス qdiscs一部の qdiscs には子クラスがなく、クラスレス qdiscs と呼ばれます。クラスレス qdiscs は、クラスフル qdiscs と比較してカスタマイズが少なくなります。通常、インターフェースに割り当てるだけで十分です。

関連情報関連情報

クラスレスおよびクラスレスな qdiscs の詳細は、tc(8) の man ページを参照してください。

アクションの詳細は、actions および tc-actions.8 の man ページを参照してください。

26.2. RHEL で利用できる QDISCS

各 qdisc は、ネットワーク関連の固有の問題に対応します。以下は、RHEL で利用可能な qdiscs の一

第第26章章 LINUX トラフィックの制御トラフィックの制御

181

Page 186: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

各 qdisc は、ネットワーク関連の固有の問題に対応します。以下は、RHEL で利用可能な qdiscs の一覧です。以下の qdisc を使用して、ネットワーク要件に基づいてネットワークトラフィックを形成できます。

表表26.1 RHEL で利用可能なスケジューラーで利用可能なスケジューラー

qdisc 名名 以下に含まれる以下に含まれる オフロードサポートオフロードサポート

非同期転送モード (ATM) kernel-modules-extra

クラスベースのキューイング kernel-modules-extra

クレジットカードベースのシェーパー

kernel-modules-extra はい

応答フローを選択するおよびKeep、応答しないフロー(CHOKE) の場合は CHOose および Kill

kernel-modules-extra

Controlled Delay (CoDel) kernel-core

不足ラウンドロビン (DRR) kernel-modules-extra

Differentiated Services marker(DSMARK)

kernel-modules-extra

Enhanced Transmission Selection(ETS)

kernel-modules-extra はい

Fair Queue (FQ) kernel-core

FQ_CODel (Fair QueuingControlled Delay)

kernel-core

GRED (Generalized Random EarlyDetection)

kernel-modules-extra

階層化されたサービス曲線(HSFC)

kernel-core

負荷の高い永続フィルター (HHF) kernel-core

階層型トークンバケット (HTB) kernel-core

INGRESS kernel-core はい

MQPRIO (Multi Queue Priority) kernel-modules-extra はい

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

182

Page 187: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

マルチキュー (MULTIQ) kernel-modules-extra はい

ネットワークエミュレーター(NETEM)

kernel-modules-extra

Proportional Integral-controllerEnhanced (PIE)

kernel-core

PLUG kernel-core

Quick Fair Queueing (QFQ) kernel-modules-extra

ランダム初期値検出 (RED) kernel-modules-extra はい

SFB (Stochastic Fair Blue) kernel-modules-extra

SFQ (Stochastic FairnessQueueing)

kernel-core

トークンバケットフィルター(TBF)

kernel-core はい

TEQL (Trivial Link Equalizer) kernel-modules-extra

qdisc 名名 以下に含まれる以下に含まれる オフロードサポートオフロードサポート

重要重要

qdisc オフロードには、NIC でハードウェアとドライバーのサポートが必要です。

関連情報関連情報

qdiscs の設定に使用するパラメーターおよびフィルターの詳細は tc(8)、cbq、cbs、choke、CoDel、drr、fq、htb、mqprio、netem、pie、sfb、pfifo、tc-red、sfq、tbf、prio の man ページを参照してください。

26.3. TC ユーティリティーを使用したネットワークインターフェースのQDISC の検査

デフォルトでは、Red Hat Enterprise Linux システムは fq_codel qdisc を使用します。この手順では、qdisc カウンターを検証する方法を説明します。

手順手順

1. オプション: 現在の qdisc を表示します。# tc qdisc show dev enp0s1

2. 現在の qdisc カウンターを検査します。

第第26章章 LINUX トラフィックの制御トラフィックの制御

183

Page 188: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# tc -s qdisc show dev enp0s1qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecnSent 1008193 bytes 5559 pkt (dropped 233, overlimits 55 requeues 77)backlog 0b 0p requeues 0....

dropped: すべてのキューが満杯であるため、パケットがドロップされる回数

overlimits: 設定されたリンク容量が一杯になる回数

sent: デキューの数

26.4. デフォルトの QDISC の更新

現在の qdisc でネットワークパケットの損失を確認する場合は、ネットワーク要件に基づいて qdiscを変更できます。ネットワーク要件を満たす qdisc を選択できます。この手順では、Red HatEnterprise Linux でデフォルトの qdisc を変更する方法を説明します。

手順手順

1. 現在のデフォルト qdisc を表示します。

# sysctl -a | grep qdiscnet.core.default_qdisc = fq_codel

2. 現在のイーサネット接続の qdisc を表示します。

# tc -s qdisc show dev enp0s1qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecnSent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)backlog 0b 0p requeues 0maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0new_flows_len 0 old_flows_len 0

3. 既存の qdisc を更新します。# sysctl -w net.core.default_qdisc=pfifo_fast

4. 変更を適用するには、ネットワークドライバーを再読み込みします。# rmmod NETWORKDRIVERNAME

# modprobe NETWORKDRIVERNAME

5. ネットワークインターフェースを起動します。# ip link set enp0s1 up

検証手順検証手順

イーサネット接続の qdisc を表示します。

# tc -s qdisc show dev enp0s1qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 Sent 373186 bytes 5333 pkt (dropped 0, overlimits 0 requeues 0)

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

184

Page 189: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

backlog 0b 0p requeues 0....

関連情報関連情報

これらの変更を永続化する方法は、Red Hat Enterprise Linux の記事「How to set sysctlvariables on Red Hat Enterprise Linux」を参照してください。

26.5. TC ユーティリティーを使用して、ネットワークインターフェースの現在の QDISK を一時的に設定する

デフォルトの qdisc を変更せずに、現在の qdisc を更新できます。この手順では、Red Hat EnterpriseLinux で現在の qdisc を変更する方法を説明します。

手順手順

1. オプション: 現在の qdisc を表示します。# tc -s qdisc show dev enp0s1

2. 現在の qdisc を更新します。# tc qdisc replace dev enp0s1 root htb

検証手順検証手順

更新された現在の qdisc を表示します。

# tc -s qdisc show dev enp0s1qdisc htb 8001: root refcnt 2 r2q 10 default 0 direct_packets_stat 0 direct_qlen 1000Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)backlog 0b 0p requeues 0

26.6. NETWORKMANAGER を使用したネットワークインターフェースの現在の QDISK の永続的な設定

NetworkManager 接続の現行 qdisc 値を更新できます。

手順手順

1. オプション: 現在の qdisc を表示します。

# tc qdisc show dev enp0s1 qdisc fq_codel 0: root refcnt 2

2. 現在の qdisc を更新します。# nmcli connection modify enp0s1 tc.qdiscs ‘root pfifo_fast’

3. 必要に応じて、既存の qdisc に別の qdisc を追加するには、+tc.qdisc オプションを使用します。# nmcli connection modify enp0s1 +tc.qdisc ‘ingress handle ffff:’

4. 変更を有効にします。# nmcli connection up enp0s1

第第26章章 LINUX トラフィックの制御トラフィックの制御

185

Page 190: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

検証手順検証手順

ネットワークインターフェースの現在の qdisc を表示します。

# tc qdisc show dev enp0s1qdisc pfifo_fast 8001: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1qdisc ingress ffff: parent ffff:fff1 ----------------

関連情報関連情報

詳細は、nm-settings(5) の man ページを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

186

Page 191: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第27章 MULTIPATH TCP の使用

重要重要

Multipath TCP はテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらのプレビューは、近々発表予定の製品機能をリリースに先駆けてご提供します。これにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

Multipath TCP (MPTCP) は、Transmission Control Protoco (TCP) の拡張機能です。インターネットプロトコル (IP) を使用すると、ホストはパケットを宛先に送信することができます。TCP は、インターネットを介したデータの信頼できる配信を保証し、ネットワーク負荷に応じて帯域幅を自動的に調整します。

以下は、MPTCP の利点です。

これにより、2 つ以上のネットワークインターフェースを持つデバイスで TCP を使用できます。

ユーザーは、各種ネットワークインターフェースを同時に使用することも、ある接続から別の接続にシームレスに切り替えることもできます。

これはネットワーク内のリソース使用状況を改善し、ネットワーク障害に対する耐障害性を確保します。

本セクションでは、以下を行う方法を説明します。

新しい MPTCP コネクションを作成します。

iproute2 を使用して、新しいサブフローと IP アドレスを MPTCP 接続に追加します。

MPTCP 接続を使用するアプリケーションを回避するために、カーネルの MPTCP を無効にします。

27.1. MPTCP サポートを有効にするための RHEL の準備

いくつかのアプリケーションは MPTCP をネイティブにサポートしています。多くの場合、接続およびストリーム指向のソケットは、オペレーティングシステムへの socket() 呼び出しで TCP プロトコルを要求します。ネイティブ MPTCP 対応プログラムの sysctl ツールを使用して、RHEL で MPTCP サポートを有効にできます。MPTCP 実装は、カーネルへの IPPROTO_TCP 呼び出しを要求するアプリケーションに MPTCP プロトコルを使用できるように設計されています。

この手順では、MPTCP サポートを有効にし、SystemTap スクリプトを使用して MPTCP のシステム全体のを有効にするように RHEL を準備する方法を説明します。

前提条件前提条件

これにより、以下のパッケージがインストールされます。

kernel-debuginfo

第第27章章 MULTIPATH TCP の使用の使用

187

Page 192: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

kernel-debuginfo-common

systemtap

systemtap-devel

kernel-devel

nmap-ncat

手順手順

1. カーネルで MPTCP ソケットを有効にします。

# echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf# sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf

2. 以下の内容を含む mptcp.stap ファイルを作成します。

#!/usr/bin/env stap

%{#include <linux/in.h>#include <linux/ip.h>%}

/* according to [1], RSI contains 'type' and RDX * contains 'protocol'. * [1] https://github.com/torvalds/linux/blob/master/arch/x86/entry/entry_64.S#L79 */

function mptcpify () %{ if (CONTEXT->kregs->si == SOCK_STREAM && (CONTEXT->kregs->dx == IPPROTO_TCP || CONTEXT->kregs->dx == 0)) { CONTEXT->kregs->dx = IPPROTO_MPTCP; STAP_RETVALUE = 1; } else { STAP_RETVALUE = 0; }%}

probe kernel.function("__sys_socket") { if (mptcpify() == 1) { printf("command %16s mptcpified\n", execname()); }}

3. TCP ソケットを MPTCP に置き換えます。# stap -vg mptcp.stap

注記: Ctrl+C を使用して接続を MPTCP から TCP に変換します。

4. TCP ポート 4321 をリッスンするサーバーを起動します。# ncat -4 -l 4321

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

188

Page 193: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

5. サーバーに接続して、トラフィックを交換します。たとえば、クライアントは「Hello world」をサーバーに 5 回書き込み、接続を終了します。

# ncat -4 192.0.2.1 4321Hello world 1Hello world 2Hello world 3Hello world 4Hello world 5

Ctrl+D を押して終了します。

検証手順検証手順

1. MPTCP がカーネルで有効になっていることを確認します。

# sysctl -a | grep mptcp.enablednet.mptcp.enabled = 1

2. mptcp.stap スクリプトでカーネルプローブをインストールすると、以下の警告がカーネルの dmesg 出力に表示されます。

# dmesg...[ 1752.694072] Kprobes globally unoptimized[ 1752.730147] stap_1ade3b3356f3e68765322e26dec00c3d_1476: module_layout: kernel tainted.[ 1752.732162] Disabling lock debugging due to kernel taint[ 1752.733468] stap_1ade3b3356f3e68765322e26dec00c3d_1476: loading out-of-tree module taints kernel.[ 1752.737219] stap_1ade3b3356f3e68765322e26dec00c3d_1476: module verification failed: signature and/or required key missing - tainting kernel

3. 接続が確立されたら、ss 出力を確認し、サブフロー固有のステータスを確認します。

# ss -nti '( dport :4321 )' dst 192.0.2.1State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

ESTAB 0 0 192.0.2.2:60874 192.0.2.1:4321cubic wscale:7,7 rto:201 rtt:0.042/0.017 mss:1448 pmtu:1500 rcvmss:536 advmss:1448 cwnd:10 bytes_sent:64 bytes_$cked:65 segs_out:6 segs_in:5 data_segs_out:4 send 2758095238bps lastsnd:57 lastrcv:3054 lastack:57 pacing_rate 540361516$bps delivery_rate 413714280bps delivered:5 rcv_space:29200 rcv_ssthresh:29200 minrtt:0.009 tcp-ulp-mptcp flags:Mmec token:0000(id:0)/4bffe73d(id:0) seq:c11f40d6c5337463 sfseq:1 ssnoff:f7455705 maplen:0

4. tcpdump を使用してトラフィックをキャプチャーし、MPTCP サブオプションの使用をチェックします。

# tcpdump -tnni interface TCP ポート 4321client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [S], seq 3420255622, win 29200, options [mss 1460,sackOK,TS val 411 4539945 ecr 0,nop,wscale 7,mptcp capable v1], length 0client In IP 192.0.2.1.4321 > 192.0.2.2.60802: Flags [S.], seq 2619315374, ack 3420255623,

第第27章章 MULTIPATH TCP の使用の使用

189

Page 194: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

win 28960, options [mss 1460 sackOK,TS val 3241564233 ecr 4114539945,nop,wscale 7,mptcp capable v1 {0xb6f8dc721aee7f64}], length 0client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [.], ack 1, win 229, options [nop,nop,TS val 4114539945 ecr 3241564 233,mptcp capable v1 {0xcc58d5d632a32d13,0xb6f8dc721aee7f64}], length 0client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [P.], seq 1:17, ack 1, win 229, options [nop,nop,TS val 4114539945 ecr 3241564233,mptcp capable v1 {0xcc58d5d632a32d13,0xb6f8dc721aee7f64},nop,nop], length 16client In IP 192.0.2.1.4321 > 192.0.2.2.60802: Flags [.], ack 17, win 227, options [nop,nop,TS val 3241564233 ecr 411459945,mptcp dss ack 1105509586894558345], length 0client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [P.], seq 17:33, ack 1, win 229, options [nop,nop,TS val 4114540939 ecr 3241564233,mptcp dss ack 13265586846326199424 seq 105509586894558345 subseq 17 len 16,nop,nop], length 16

このコマンドを実行するには、tcpdump パッケージが必要です。

関連情報関連情報

詳細は、「RHEL システムで debuginfo パッケージをダウンロードまたはインストールする」を参照してください。

IPPROTO_TCP の詳細は、tcp(7) man ページを参照してください。

27.2. 複数の利用可能なパスについてアプリケーションに通知するためにIPROUTE2 を使用

デフォルトでは、MPTCP ソケットは単一のサブフローで起動しますが、初回作成時に接続に新しいサブフローと IP アドレスを追加できます。この手順では、サブフローおよび IP アドレスの接続制限を更新し、新しい IP アドレス (エンドポイント) を MPTCP 接続に追加する方法を説明します。

MPTCP は現在、同じソケットの IPv6 エンドポイントと IPv4 エンドポイントの組み合わせに対応していません。同じアドレスファミリーに属するエンドポイントを使用します。

手順手順

1. サーバーで、接続および IP アドレスの制限を 1 に設定します。# ip mptcp limits set subflow 1

2. クライアントの接続および IP アドレスの制限を 1 に設定します。# ip mptcp limits set subflow 1 add_addr_accepted 1

3. IP アドレス 198.51.100.1 を、サーバー上の新しい MPTCP エンドポイントとして追加します。# ip mptcp endpoint add 198.51.100.1 dev enp1s0 signal

重要重要

フラグの値を、subflow、backup、signalに設定することができます。フラグを以下に設定します。

signal。3 方向のハンドシェイクが完了した後に ADD_ADDR パケットを送信します。

subflow。クライアントによって MP_JOIN SYN を送信します。

backup。エンドポイントをバックアップアドレスとして設定します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

190

Page 195: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

4. 0.0.0.0 へのサーバーバインディングを -k 引数で開始し、最初の接続を受け入れて、クライアントによって行われた MP_JOIN SYN サーバーに拒否させた後に ncat がリスニングソケットを閉じないようにします。# ncat -4 0.0.0.0 -k -l 4321

5. クライアントを起動し、サーバーに接続してトラフィックを交換します。たとえば、クライアントは「Hello world」をサーバーに 5 回書き込み、接続を終了します。

# ncat -4 192.0.2.1 4321Hello world 1Hello world 2Hello world 3Hello world 4Hello world 5

Ctrl+D を押して終了します。

検証手順検証手順

1. 接続および IP アドレス制限を確認します。# ip mptcp limit show

2. 新たに追加されたエンドポイントを確認します。# ip mptcp endpoint show

3. tcpdump を使用してトラフィックをキャプチャーし、MPTCP サブオプションの使用をチェックします。

# tcpdump -tnni interface TCP ポート 4321client Out IP 192.0.2.2.56868 > 192.0.2.1.4321: Flags [S], seq 3107783947, win 29200, options [mss 1460,sackOK,TS val 2568752336 ecr 0,nop,wscale 7,mptcp capable v1], length 0client In IP 192.0.2.1.4321 > 192.0.2.2.56868: Flags [S.], seq 4222339923, ack 3107783948, win 28960, options [mss 1460,sackOK,TS val 1713130246 ecr 2568752336,nop,wscale 7,mptcp capable v1 {0xf51c07a47cc2ba75}], length 0client Out IP 192.0.2.2.56868 > 192.0.2.1.4321: Flags [.], ack 1, win 229, options [nop,nop,TS val 2568752336 ecr 1713130246,mptcp capable v1 {0xb243376cc5af60bd,0xf51c07a47cc2ba75}], length 0client Out IP 192.0.2.2.56868 > 192.0.2.1.4321: Flags [P.], seq 1:17, ack 1, win 229, options [nop,nop,TS val 2568752336 ecr 1713130246,mptcp capable v1 {0xb243376cc5af60bd,0xf51c07a47cc2ba75},nop,nop], length 16client In IP 192.0.2.1.4321 > 192.0.2.2.56868: Flags [.], ack 17, win 227, options [nop,nop,TS val 1713130246 ecr 2568752336,mptcp add-addr id 1 198.51.100.1 hmac 0xe445335073818837,mptcp dss ack 5562689076006296132], length 0client Out IP 198.51.100.2.42403 > 198.51.100.1.4321: Flags [S], seq 3356992178, win 29200, options [mss 1460,sackOK,TS val 4038525523 ecr 0,nop,wscale 7,mptcp join backup id 0 token 0xad58df1 nonce 0x74a8137f], length 0client In IP 198.51.100.1.4321 > 198.51.100.2.42403: Flags [S.], seq 1680863152, ack 3356992179, win 28960, options [mss 1460,sackOK,TS val 4213669942 ecr 4038525523,nop,wscale 7,mptcp join backup id 0 hmac 0x9eff7a1bf4e65937 nonce 0x77303fd8], length 0client Out IP 198.51.100.2.42403 > 198.51.100.1.4321: Flags [.], ack 1, win 229, options [nop,nop,TS val 4038525523 ecr 4213669942,mptcp join hmac 0xdfdc0129424f627ea774c094461328ce49d195bc], length 0

第第27章章 MULTIPATH TCP の使用の使用

191

Page 196: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

client In IP 198.51.100.1.4321 > 198.51.100.2.42403: Flags [.], ack 1, win 227, options [nop,nop,TS val 4213669942 ecr 4038525523,mptcp dss ack 5562689076006296132], length 0

このコマンドを実行するには、tcpdump パッケージが必要です。

関連情報関連情報

利用可能なエンドポイントフラグの詳細は、ip-mptcp(8) の man ページを参照してください。

27.3. カーネルでの MULTIPATH TCP の無効化

この手順では、カーネルの MPTCP オプションを無効にする方法を説明します。

手順手順

mptcp.enabled オプションを無効にします。

# echo "net.mptcp.enabled=0" > /etc/sysctl.d/90-enable-MPTCP.conf# sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf

検証手順検証手順

カーネルで mptcp.enabled が無効になっているかどうかを確認します。

# sysctl -a | grep mptcp.enablednet.mptcp.enabled = 0

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

192

Page 197: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第28章 DNS サーバーの順序の設定ほとんどのアプリケーションは、glibc ライブラリーの getaddrinfo() 関数を使用して DNS 要求を解決します。デフォルトでは、glibc はすべての DNS 要求を、 /etc/resolv.conf ファイルで指定された最初の DNS サーバーに送信します。このサーバーが応答しない場合、Red Hat Enterprise Linux はこのファイルの次のサーバーを使用します。

本セクションでは、DNS サーバーの順序をカスタマイズする方法を説明します。

28.1. NETWORKMANAGER が /ETC/RESOLV.CONF で DNS サーバーを順序付ける方法

NetworkManager は、以下のルールに基づいて /etc/resolv.conf ファイルの DNS サーバーの順序を付けます。

接続プロファイルが 1 つしか存在しない場合、NetworkManager は、その接続で指定されたIPv4 および IPv6 の DNS サーバーの順序を使用します。

複数の接続プロファイルがアクティベートされると、NetworkManager は DNS の優先度の値に基づいて DNS サーバーを順序付けます。DNS の優先度を設定すると、NetworkManager の動作は、dns パラメーターに設定した値によって異なります。このパラメーターは、/etc/NetworkManager/NetworkManager.conf ファイルの [main] セクションで設定できます。

dns=default または dns パラメーターが設定されていないと、以下のようになります。NetworkManager は、各接続の ipv4.dns-priority パラメーターおよび ipv6.dns-priority パラメーターに基づいて、複数の接続から DNS サーバーを順序付けます。

値を指定しない場合、または ipv4.dns-priority および ipv6.dns-priority を 0 に設定すると、NetworkManager はグローバルのデフォルト値を使用します。DNS 優先度パラメーターのデフォルト値 を参照してください。

dns=dnsmasq または dns=systemd-resolved:この設定のいずれかを使用すると、NetworkManager は dnsmasq の 127.0.0.1 に設定するか、127.0.0.53 を nameserver エントリーとして /etc/resolv.conf ファイルに設定します。

dnsmasq サービスおよび systemd-resolved サービスの両方で、NetworkManager 接続に設定された検索ドメインのクエリーをその接続で指定された DNS サーバーに転送し、その他のドメインへのクエリーをデフォルトのルートを持つ接続に転送します。複数の接続に同じ検索ドメインが設定されている場合は、dnsmasq および systemd-resolved が、このドメインのクエリーを、優先度の値が最も低い接続に設定された DNS サーバーへ転送します。

DNS 優先度パラメーターのデフォルト値優先度パラメーターのデフォルト値NetworkManager は、接続に以下のデフォルト値を使用します。

VPN 接続の場合は 50

他の接続の場合は 100

有効な有効な DNS 優先度の値優先度の値:グローバルのデフォルトおよび接続固有の ipv4.dns-priority パラメーターおよび ipv6.dns-priority パラメーターの両方を -2147483647 から 2147483647 までの値に設定できます。

値が小さいほど優先度が高くなります。

第第28章章 DNS サーバーの順序の設定サーバーの順序の設定

193

Page 198: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

負の値は、値が大きい他の設定を除外する特別な効果があります。たとえば、優先度が負の値の接続が 1 つでも存在する場合は、NetworkManager が、優先度が最も低い接続プロファイルで指定された DNS サーバーのみを使用します。

複数の接続の DNS の優先度が同じ場合、NetworkManager は以下の順番で DNS の優先順位を決定します。

a. VPN 接続。

b. アクティブなデフォルトルートとの接続。アクティブなデフォルトルートは、最も低いメトリックのデフォルトのルートです。

関連情報関連情報

NetworkManager が /etc/resolv.conf ファイルで DNS サーバーエントリーを順序付ける方法の詳細は、man ページの nm-settings(5) の ipv4 セクションおよび ipv6 セクションの dns-priority パラメーターの説明を参照してください。

systemd-resolved を使用して、異なるドメインに別の DNS サーバーを使用する方法は、36章異なるドメインでの各種 DNS サーバーの使用 を参照してください。

28.2. NETWORKMANAGER 全体でデフォルトの DNS サーバー優先度の値の設定

NetworkManager は、接続に以下の DNS 優先度のデフォルト値を使用します。

VPN 接続の場合は 50

他の接続の場合は 100

本セクションでは、このシステム全体のデフォルトを、IPv4 接続および IPv6 接続のカスタムデフォルト値で上書きする方法を説明します。

手順手順

1. /etc/NetworkManager/NetworkManager.conf ファイルを編集します。

a. [connection] セクションが存在しない場合は追加します。

[connection]

b. [connection] セクションにカスタムのデフォルト値を追加します。たとえば、IPv4 と IPv6の両方で新しいデフォルトを 200 に設定するには、以下を追加します。

ipv4.dns-priority=200ipv6.dns-priority=200

パラメーターは、-2147483647 から 2147483647 までの値に設定できます。パラメーターを 0 に設定すると、組み込みのデフォルト (VPN 接続の場合は 50、他の接続の場合は 100)が有効になります。

2. NetworkManager サービスを再読み込みします。

# systemctl reload NetworkManager

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

194

Page 199: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

NetworkManager のすべての接続にデフォルト値を設定する方法は、man ページの NetworkManager.conf(5) の Connection Section を参照してください。

28.3. NETWORKMANAGER 接続の DNS 優先度の設定

本セクションでは、NetworkManager が /etc/resolv.conf ファイルを作成または更新する際に DNS サーバーの順序を定義する方法を説明します。

DNS 優先度の設定は、異なる DNS サーバーが設定された複数の接続がある場合にのみ有効であることに注意してください。複数の DNS サーバーが設定された接続が 1 つしかない場合は、接続プロファイルで DNS サーバーを優先順に手動で設定します。

前提条件前提条件

システムに NetworkManager の接続が複数設定されている。

システムで、/etc/NetworkManager/NetworkManager.conf ファイルに dns パラメーターが設定されていないか、そのパラメーターが default に設定されている。

手順手順

1. 必要に応じて、利用可能な接続を表示します。

# nmcli connection showNAME UUID TYPE DEVICEExample_con_1 d17ee488-4665-4de2-b28a-48befab0cd43 ethernet enp1s0Example_con_2 916e4f67-7145-3ffa-9f7b-e7cada8f6bf7 ethernet enp7s0...

2. ipv4.dns-priority パラメーターおよび ipv6.dns-priority パラメーターを設定します。たとえば、Example_con_1 接続に対して、両方のパラメーターを 10 に設定するには、次のコマンドを実行します。

# nmcli connection modify Example_con_1 ipv4.dns-priority 10 ipv6.dns-priority 10

3. 必要に応じて、他のコネクションに対しても 1 つ前の手順を繰り返します。

4. 更新した接続を再度アクティブにします。

# nmcli connection up Example_con_1

検証手順検証手順

/etc/resolv.conf ファイルの内容を表示して、DNS サーバーの順序が正しいことを確認します。

# cat /etc/resolv.conf

第第28章章 DNS サーバーの順序の設定サーバーの順序の設定

195

Page 200: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第29章 IFCFG ファイルで IP ネットワークの設定本セクションでは、ifcfg ファイルを編集して、ネットワークインターフェースを手動で設定する方法を説明します。

インターフェース設定 (ifcfg) ファイルは、個々のネットワークデバイスのソフトウェアインターフェースを制御します。これは、システムの起動時に、このファイルを使用して、どのインターフェースを起動するかと、どのように設定するかを決定します。これらのファイルは、通常 ifcfg-name になります。接尾辞の name は、設定ファイルが制御するデバイスの名前を指します。規則により、ifcfgファイルのサフィックスは、設定ファイル自体の DEVICE ディレクティブが指定する文字列と同じです。

29.1. IFCFG ファイルの静的ネットワーク設定でインタフェースの設定

この手順では、ifcfg ファイルを使用して、ネットワークインターフェースを設定する方法を説明します。

手順手順

ifcfg ファイルを使用して、静的ネットワークで、インターフェース enp1s0 を設定するには、/etc/sysconfig/network-scripts/ ディレクトリー内に、以下のような内容で ifcfg-enp1s0という名前のファイルを作成します。

IPv4 設定の場合は、以下のようになります。

DEVICE=enp1s0BOOTPROTO=noneONBOOT=yesPREFIX=24IPADDR=10.0.1.27GATEWAY=10.0.1.1

IPv6 設定の場合は、以下のようになります。

DEVICE=enp1s0BOOTPROTO=noneONBOOT=yesIPV6INIT=yesIPV6ADDR=2001:db8:1::2/64

関連情報関連情報

接続のテストに関する詳細は、41章基本的なネットワーク設定のテスト を参照してください。

IPv6 の ifcfg 設定オプションの詳細は、nm-settings-ifcfg-rh(5) の man ページを参照してください。

29.2. IFCFG ファイルの動的ネットワーク設定でインタフェースの設定

この手順では、ifcfg ファイルを使用して、動的ネットワーク設定でネットワークインターフェースを設定する方法を説明します。

手順手順

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

196

Page 201: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. ifcfg ファイルの動的ネットワークを使用して、インターフェース em1 を設定するには、/etc/sysconfig/network-scripts/ ディレクトリーに、以下のような内容で、ifcfg-em1 という名前のファイルを作成します。

DEVICE=em1BOOTPROTO=dhcpONBOOT=yes

2. DHCP サーバーに、別のホスト名を送信するようにインターフェースを設定する場合は、ifcfgファイルに以下の行を追加します。

DHCP_HOSTNAME=hostname

3. DHCP サーバーに、別の完全修飾ドメイン名 (FQDN) を送信するようにインターフェースを設定する場合は、ifcfg ファイルに以下の行を追加します。

DHCP_FQDN=fully.qualified.domain.name

注記注記

指定した ifcfg ファイルでは、DHCP_HOSTNAME と DHCP_FQDN のいずれかのディレクティブだけを使用してください。DHCP_HOSTNAME と DHCP_FQDN の両方が指定される場合は、後者だけが使用されます。

4. 特定の DNS サーバーを使用するようにインターフェースを設定する場合は、ifcfg ファイルに以下の行を追加します。

PEERDNS=no DNS1=ip-address DNS2=ip-address

ip-address は、DNS サーバーのアドレスです。これにより、ネットワークサービスが、指定した DNS サーバーで /etc/resolv.conf を更新します。DNS サーバーアドレスは、1 つだけ必要です。もう 1 つは任意です。

29.3. IFCFG ファイルでシステム全体およびプライベート接続プロファイルの管理

この手順では、システム全体の接続プロファイルおよびプライベート接続プロファイルを管理するために、ifcfg ファイルを設定する方法を説明します。

手順手順

パーミッションは、ifcfg ファイルの USERS ディレクティブに対応します。USERS ディレクティブがない場合は、すべてのユーザーでそのネットワークプロファイルが利用できます。

たとえば、次の行で ifcfg ファイルを変更します。これにより、一覧表示されるユーザーにのみ接続が利用できるようにします。

USERS="joe bob alice"

第第29章章 IFCFG ファイルでファイルで IP ネットワークの設定ネットワークの設定

197

Page 202: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第30章 NETWORKMANAGER で特定接続の IPV6 の無効化本セクションは、NetworkManager を使用してネットワークインターフェースを管理するシステムで IPv6 プロトコルを無効にする方法を説明します。IPv6 を無効にすると、NetworkManager は、カーネルに対応する sysctl 値を自動的に設定します。

注記注記

カーネルの設定項目またはカーネルブートパラメーターを使用して IPv6 を無効にする場合は、システム設定に追加で配慮が必要です。詳細は、ナレッジベースの記事「How doI disable or enable the IPv6 protocol in RHEL?」を参照してください。

前提条件前提条件

システムが NetworkManager を使用してネットワークインターフェースを管理します。これは、Red Hat Enterprise Linux 8 のデフォルトです。

システムは Red Hat Enterprise Linux 8.1 以降を実行します。

30.1. NMCLI を使用した接続で IPV6 の無効化

この手順では、nmcli ユーティリティーを使用して IPv6 プロトコルを無効にする方法を説明します。

手順手順

1. 必要に応じて、ネットワーク接続の一覧を表示します。

# nmcli connection showNAME UUID TYPE DEVICEExample 7a7e0151-9c18-4e6f-89ee-65bb2d64d365 ethernet enp1s0...

2. 接続の ipv6.method パラメーターを disabled に設定します。

# nmcli connection modify Example ipv6.method "disabled"

3. ネットワーク接続が再起動します。

# nmcli connection up Example

検証手順検証手順

1. ip address show コマンドを実行して、デバイスの IP 設定を表示します。

# ip address show enp1s02: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:6b:74:be brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.10.2.255 scope global noprefixroute enp1s0 valid_lft forever preferred_lft forever

inet6 エントリーが表示されない場合は、デバイスで IPv6 が無効になります。

2. /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6 ファイルに値 1 が含まれていることを確認しま

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

198

Page 203: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6 ファイルに値 1 が含まれていることを確認します。

# cat /proc/sys/net/ipv6/conf/enp1s0/disable_ipv61

値が 1 の場合は、デバイスに対して IPv6 が無効になります。

第第30章章 NETWORKMANAGER で特定接続ので特定接続の IPV6 の無効化の無効化

199

Page 204: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第31章 /ETC/RESOLV.CONF ファイルの手動設定デフォルトでは、Red Hat Enterprise Linux (RHEL) 8 の NetworkManager は、アクティブなNetworkManager の接続プロファイルから DNS 設定を使用して、/etc/resolv.conf ファイルを動的に更新します。本セクションでは、この機能を無効にして、/etc/resolv.conf で DNS を手動で設定する方法を説明します。

31.1. NETWORKMANAGER 設定で DNS 処理の無効化

本セクションでは、/etc/resolv.conf ファイルを手動で設定するために、NetworkManager 設定で DNS処理を無効にする方法を説明します。

手順手順

1. root ユーザーとして、テキストエディターを使用して、以下の内容で /etc/NetworkManager/conf.d/90-dns-none.conf ファイルを作成します。

[main]dns=none

2. NetworkManager サービスを再読み込みします。

# systemctl reload NetworkManager

注記注記

サービスを再読み込みすると、NetworkManager は /etc/resolv.conf ファイルを更新しなくなります。ただし、ファイルの最後の内容は保持されます。

3. 必要に応じて、混乱を避けるために、NetworkManager により生成されたにより生成された コメントを /etc/resolv.conf から削除します。

検証手順検証手順

1. /etc/resolv.conf ファイルを編集し、設定を手動で更新します。

2. NetworkManager サービスを再読み込みします。

# systemctl reload NetworkManager

3. /etc/resolv.conf ファイルを表示します。

# cat /etc/resolv.conf

DNS 処理を無効にできた場合、NetworkManager は手動で構成した設定を上書きしませんでした。

関連情報関連情報

詳細は、man ページの NetworkManager.conf(5) の dns パラメーターの説明を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

200

Page 205: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

31.2. /ETC/RESOLV.CONF を、DNS 設定を手動で設定するシンボリックリンクに置き換え

/etc/resolv.conf がシンボリックリンクの場合、NetworkManager は DNS 設定を自動的に更新しません。本セクションでは、/etc/resolv.conf を、DNS 設定がある別のファイルへのシンボリックリンクに置き換える方法を説明します。

前提条件前提条件

rc-manager オプションは、ファイルファイル に設定されていません。検証には、NetworkManager --print-config コマンドを使用します。

手順手順

1. /etc/resolv.conf.manually-configured などのファイルを作成し、お使いの環境の DNS 設定を追加します。元の /etc/resolv.conf と同じパラメーターと構文を使用します。

2. /etc/resolv.conf ファイルを削除します。

# rm /etc/resolv.conf

3. /etc/resolv.conf.manually-configured を参照する /etc/resolv.conf という名前のシンボリックリンクを作成します。

# ln -s /etc/resolv.conf.manually-configured /etc/resolv.conf

関連情報関連情報

/etc/resolv.conf に設定できるパラメーターの詳細は、man ページの resolv.conf(5) を参照してください。

/etc/resolv.conf がシンボリックリンクの場合に、NetworkManager が DNS 設定を処理しない理由の詳細は、man ページの NetworkManager.conf(5) の rc-manager パラメーターの説明を参照してください。

第第31章章 /ETC/RESOLV.CONF ファイルの手動設定ファイルの手動設定

201

Page 206: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第32章 802.3 リンク設定の構成以下の設定パラメーターを修正して、イーサネット接続の 802.3 リンク設定を構成できます。

802-3-ethernet.auto-negotiate

802-3-ethernet.speed

802-3-ethernet.duplex

802.3 リンク設定を、以下のメインモードに設定できます。

リンクネゴシエーションを無視する

オートネゴシエーションを強制的にアクティブ化する

リンク設定 speed および duplex を手動で設定する

32.1. NMCLI ツールで 802.3 リンク設定の構成

この手順では、nmcli ツールを使用して、802.3 リンク設定を構成する方法を説明します。

前提条件前提条件

NetworkManager がインストールされており、実行している。

手順手順

1. リンクネゴシエーションを無視するには、次のようにパラメーターを設定します。

~]# nmcli connection modify connection_name 802-3-ethernet.auto-negotiate no 802-3-ethernet.speed 0 802-3-ethernet.duplex ""

speed パラメーターおよび duplex パラメーターが設定されておらず、auto-negotiation パラメーターが no に設定されていなくても、オートネゴシエーションパラメーターは無効になりません。

2. オートネゴシエーションを強制的にアクティブにするには、次のコマンドを実行します。

~]# nmcli connection modify connection_name 802-3-ethernet.auto-negotiate yes 802-3-ethernet.speed 0 802-3-ethernet.duplex ""

これにより、NIC で対応している利用可能な speed モードおよび duplex モードをすべてネゴシエートできます。

また、アドバタイズ中にオートネゴシエーションを有効にし、1 つの speed/duplex モードのみを許可することもできます。この場合は、標準の強制オートネゴシエーションが有効になっているため、イーサーネットリンク設定 1000BASE-T および 10GBASE-T を強制する場合に便利です。1000BASE-T 標準を有効にするには、次のコマンドを実行します。

~]# nmcli connection modify connection_name 802-3-ethernet.auto-negotiate yes 802-3-ethernet.speed 1000 802-3-ethernet.duplex full

3. リンク設定の speed および duplex を手動で設定するには、次のコマンドを実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

202

Page 207: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

~]# nmcli connection modify connection_name 802-3-ethernet.auto-negotiate no 802-3-ethernet.speed [speed in Mbit/s] 802-3-ethernet.duplex [full|half]

第第32章章 802.3 リンク設定の構成リンク設定の構成

203

Page 208: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第33章 ETHTOOL オフロード機能の設定ネットワークインターフェースカードは、TCP オフロードエンジン (TOE) を使用して、ネットワークコントローラーへの特定の操作をオフロードして、ネットワークのスループットを向上できます。

本項では、オフロード機能の設定方法について説明します。

33.1. NETWORKMANAGER で対応している機能のオフロード

NetworkManager を使用して、以下の ethtool オフロード機能を設定できます。

ethtool.feature-esp-hw-offload

ethtool.feature-esp-tx-csum-hw-offload

ethtool.feature-fcoe-mtu

ethtool.feature-gro

ethtool.feature-gso

ethtool.feature-highdma

ethtool.feature-hw-tc-offload

ethtool.feature-l2-fwd-offload

ethtool.feature-loopback

ethtool.feature-lro

ethtool.feature-macsec-hw-offload

ethtool.feature-ntuple

ethtool.feature-rx

ethtool.feature-rx-all

ethtool.feature-rx-fcs

ethtool.feature-rx-gro-hw

ethtool.feature-rx-gro-list

ethtool.feature-rx-udp_tunnel-port-offload

ethtool.feature-rx-udp-gro-forwarding

ethtool.feature-rx-vlan-filter

ethtool.feature-rx-vlan-stag-filter

ethtool.feature-rx-vlan-stag-hw-parse

ethtool.feature-rxhash

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

204

Page 209: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ethtool.feature-rxvlan

ethtool.feature-sg

ethtool.feature-tls-hw-record

ethtool.feature-tls-hw-rx-offload

ethtool.feature-tls-hw-tx-offload

ethtool.feature-tso

ethtool.feature-tx

ethtool.feature-tx-checksum-fcoe-crc

ethtool.feature-tx-checksum-ip-generic

ethtool.feature-tx-checksum-ipv4

ethtool.feature-tx-checksum-ipv6

ethtool.feature-tx-checksum-sctp

ethtool.feature-tx-esp-segmentation

ethtool.feature-tx-fcoe-segmentation

ethtool.feature-tx-gre-csum-segmentation

ethtool.feature-tx-gre-segmentation

ethtool.feature-tx-gso-list

ethtool.feature-tx-gso-partial

ethtool.feature-tx-gso-robust

ethtool.feature-tx-ipxip4-segmentation

ethtool.feature-tx-ipxip6-segmentation

ethtool.feature-tx-nocache-copy

ethtool.feature-tx-scatter-gather

ethtool.feature-tx-scatter-gather-fraglist

ethtool.feature-tx-sctp-segmentation

ethtool.feature-tx-tcp-ecn-segmentation

ethtool.feature-tx-tcp-mangleid-segmentation

ethtool.feature-tx-tcp-segmentation

ethtool.feature-tx-tcp6-segmentation

第第33章章 ETHTOOL オフロード機能の設定オフロード機能の設定

205

Page 210: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ethtool.feature-tx-tunnel-remcsum-segmentation

ethtool.feature-tx-udp-segmentation

ethtool.feature-tx-udp_tnl-csum-segmentation

ethtool.feature-tx-udp_tnl-segmentation

ethtool.feature-tx-vlan-stag-hw-insert

ethtool.feature-txvlan

個別のオフロード機能の詳細は、ethtool ユーティリティーとカーネルのドキュメントを参照してください。

33.2. NETWORKMANAGER を使用した ETHTOOL オフロード機能の設定

本セクションでは、NetworkManager を使用して ethtool オフロード機能を有効または無効にする方法と、NetworkManager 接続プロファイルから機能の設定を削除する方法を説明します。

手順手順

1. たとえば、RX オフロード機能を有効にし、enp1s0 接続プロファイルで TX オフロードを無効にするには、次のコマンドを実行します。

# nmcli con modify enp1s0 ethtool.feature-rx on ethtool.feature-tx off

このコマンドは、RX オフロードを明示的に有効にし、TX オフロードを無効にします。

2. 上で有効または無効にしたオフロード機能の設定を削除するには、この機能のパラメーターを ignore に設定します。たとえば、TX オフロードの設定を削除するには、次のコマンドを実行します。

# nmcli con modify enp1s0 ethtool.feature-tx ignore

3. ネットワークプロファイルを再度アクティブにします。

# nmcli connection up enp1s0

検証手順検証手順

ethtool -k コマンドを使用して、ネットワークデバイスの現在のオフロード機能を表示します。

# ethtool -k network_device

関連情報関連情報

NetworkManager がサポートする ethtool オフロード機能の一覧は、「NetworkManager で対応している機能のオフロード」 を参照してください。

33.3. システムロールを使用した ETHTOOL 機能の設定

networking の RHEL システムロールを使用して、NetworkManager 接続の ethtool 機能を設定できま

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

206

Page 211: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

networking の RHEL システムロールを使用して、NetworkManager 接続の ethtool 機能を設定できます。

重要重要

network の 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

ethtool 機能:

汎用受信オフロード(GRO): 無効

Generic segmentation offload(GSO): 有効化

TX stream control transmission protocol (SCTP) segmentation: 無効

前提条件前提条件

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/configure-ethernet-device-with-ethtool-features.yml Playbook を以下の内容で作成します。

---

第第33章章 ETHTOOL オフロード機能の設定オフロード機能の設定

207

Page 212: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

- name. Configure an Ethernet connection with ethtool features hosts: node.example.com become: true tasks: - include_role: name: linux-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 ethtool: feature: gro: "no" gso: "yes" tx_sctp_segmentation: "no" state: up

3. Playbook を実行します。

root ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。

# ansible-playbook -u root ~/configure-ethernet-device-with-ethtool-features.yml

管理ホストにユーザーとして接続するには、次のコマンドを実行します。

# ansible-playbook -u user_name --ask-become-pass ~/configure-ethernet-device-with-ethtool-features.yml

--ask-become-pass オプションは、ansible-playbook コマンドが -u user_name オプションで定義したユーザーの sudo パスワードを要求するようにします。

-u user_name オプションを指定しないと、ansible-playbook は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

ethtool の完全なリストと、network_connections で使用されるパラメーターの詳細、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

208

Page 213: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第34章 ETHTOOL コロケーターの設定割り込みコアレッシングを使用すると、システムはネットワークパケットを収集し、複数のパケットに対して割り込みを 1 つ生成します。これにより、1 つのハードウェア割り込みでカーネルに送信されたデータ量が増大し、割り込み負荷が減り、スループットを最大化します。

本セクションでは、ethtool 結合を設定するさまざまなオプションを説明します。

34.1. NETWORKMANAGER で対応している結合設定

NetworkManager を使用して、以下の ethtool 結合を設定できます。

coalesce-adaptive-rx

coalesce-adaptive-tx

coalesce-pkt-rate-high

coalesce-pkt-rate-low

coalesce-rx-frames

coalesce-rx-frames-high

coalesce-rx-frames-irq

coalesce-rx-frames-low

coalesce-rx-usecs

coalesce-rx-usecs-high

coalesce-rx-usecs-irq

coalesce-rx-usecs-low

coalesce-sample-interval

coalesce-stats-block-usecs

coalesce-tx-frames

coalesce-tx-frames-high

coalesce-tx-frames-irq

coalesce-tx-frames-low

coalesce-tx-usecs

coalesce-tx-usecs-high

coalesce-tx-usecs-irq

coalesce-tx-usecs-low

第第34章章 ETHTOOL コロケーターの設定コロケーターの設定

209

Page 214: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

34.2. NETWORKMANAGER を使用した ETHTOOL 結合の設定

本セクションでは、NetworkManager を使用して ethtool コアレッシングを設定する方法と、NetworkManager 接続プロファイルから設定を削除する方法を説明します。

手順手順

1. たとえば、enp1s0 接続プロファイルで受信パケットの最大数を 128 に設定するには、次のコマンドを実行します。

# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames 128

2. 結合設定を削除するには、設定を ignore に設定します。たとえば、ethtool.coalesce-rx-frames 設定を削除するには、次のコマンドを実行します。

# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames ignore

3. ネットワークプロファイルを再度アクティブにします。

# nmcli connection up enp1s0

検証手順検証手順

1. ethtool -c コマンドを使用して、ネットワークデバイスの現在のオフロード機能を表示します。

# ethtool -c network_device

関連情報関連情報

NetworkManager がサポートする ethtool のコアレッシングの設定の一覧は、「NetworkManager で対応している結合設定」 を参照してください。

34.3. システムロールを使用した ETHTOOL 結合の設定

networking の RHEL システムロールを使用して、NetworkManager 接続の ethtool 結合を設定できます。

重要重要

network の RHEL システムロールを使用するプレイを実行すると、設定がプレイで指定されたものにマッチしない場合に、システムロールは、既存の接続プロファイルを上書きして上書きします。したがって、IP 設定などがすでに存在している場合でも、常にネットワーク接続プロファイルの設定全体が指定されます。それ以外の場合は、ロールはこれらの値をデフォルト値にリセットします。

この手順では、すでに存在するかどうかに応じて、以下の設定で enp1s0 接続プロファイルを作成または更新します。

静的 IPv4 アドレス: /24 サブネットマスクを持つ 198.51.100.20

静的 IPv6 アドレス: 2001:db8:1::1 (/64 サブネットマスクあり)

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

210

Page 215: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

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

ethtool 結合の設定:

RX フレーム: 128

TX フレーム: 128

前提条件前提条件

ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。

Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

手順手順

1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

node.example.com

2. ~/configure-ethernet-device-with-ipareplicacoalesce-settings.yml Playbook を以下の内容で作成します。

---- name: Configure an Ethernet connection with ethtool coalesce settings hosts: node.example.com become: true tasks: - include_role: name: linux-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

第第34章章 ETHTOOL コロケーターの設定コロケーターの設定

211

Page 216: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

dns_search: - example.com ethtool: coalesce: rx_frames: 128 tx_frames: 128 state: up

3. Playbook を実行します。

root ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。

# ansible-playbook -u root ~/configure-ethernet-device-with-ethtoolcoalesce-settings.yml

管理ホストにユーザーとして接続するには、次のコマンドを実行します。

# ansible-playbook -u user_name --ask-become-pass ~/configure-ethernet-device-with-ethtoolcoalesce-settings.yml

--ask-become-pass オプションは、ansible-playbook コマンドが -u user_name オプションで定義したユーザーの sudo パスワードを要求するようにします。

-u user_name オプションを指定しないと、ansible-playbook は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

関連情報関連情報

ethtool の完全なリストと、network_connections で使用されるパラメーターの詳細、システムロール network に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md ファイルを参照してください。

ansible-playbook コマンドの詳細は、man ページの ansible-playbook(1) を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

212

Page 217: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第35章 MACSEC を使用した同じ物理ネットワーク内のレイヤー 2トラフィックの暗号化

本セクションでは、イーサネットリンクのすべてのトラフィックのセキュアな通信に MACsec を設定する方法を説明します。

Media Access Control Security(MACsec)は、イーサネットリンクで異なるトラフィックタイプを保護するレイヤー 2 プロトコルです。これには以下が含まれます。

DHCP(動的ホスト設定プロトコル)

アドレス解決プロトコル(ARP)

インターネットプロトコルのバージョン 4 / 6(IPv4 / IPv6)および

TCP や UDP などの IP 経由のトラフィック

MACsec は、LAN 内のすべてのトラフィックを、デフォルトで GCM-AES-128 アルゴリズムで暗号化および認証し、事前共有キーを使用して参加者ホスト間の接続を確立します。共有前の鍵を変更する場合は、MACsec を使用するネットワーク内のすべてのホストで NM 設定を更新する必要があります。

MACsec 接続は、親としてイーサネットネットワークカード、VLAN、トンネルデバイスなどのイーサネットデバイスを使用します。暗号化した接続のみを使用して他のホストと通信するように、MACsecデバイスでのみ IP 設定を設定するか、親デバイスに IP 設定を設定することもできます。後者の場合、親デバイスを使用して、暗号化されていない接続に MACsec デバイスを使用し、他のホストと通信できます。

MACsec には特別なハードウェアは必要ありません。たとえば、ホストとスイッチの間のトラフィックのみを暗号化する場合を除き、任意のスイッチを使用できます。このシナリオでは、スイッチがMACsec もサポートする必要があります。

つまり、MACsec を設定する方法は 2 つあります。

ホスト対ホスト

他のホストに切り替えるホスト

重要重要

MACsec は、同じ(物理または仮想)LAN のホスト間でのみ使用することができます。

以下の例は、共有前のキーを使用して 2 つのホスト間で MACsec を設定する方法を示しています。

35.1. NMCLI による MACSEC 接続の設定

nmcli ツールを使用して、MACsec を使用するようにイーサネットインターフェースを設定できます。この手順では、イーサネットインターフェースを使用してネットワークトラフィックを暗号化するMACsec 接続を作成する方法を説明します。

この MACsec で保護されるネットワークで通信する必要があるすべてのホストでこの手順を実行します。

手順手順

ホスト A の場合:

第第35章章 MACSEC を使用した同じ物理ネットワーク内のレイヤーを使用した同じ物理ネットワーク内のレイヤー 2 トラフィックの暗号化トラフィックの暗号化

213

Page 218: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

MACsec を設定する最初のホストで、事前共有鍵用の接続関連キー(CAK)および接続関連キー名(CKN)を作成します。

a. 16 バイトの 16 進数の CAK を作成します。

dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"'50b71a8ef0bd5751ea76de6d6c98c03a

b. 32 バイトの 16 進数の CKN を作成します。

dd if=/dev/urandom count=32 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"'f2b4297d39da7330910a74abc0449feb45b5c0b9fc23df1430e1898fcf1c4550

ホスト A および B の場合:

1. MACsec 接続を作成します。

# nmcli connection add type macsec con-name macsec0 ifname macsec0 connection.autoconnect yes macsec.parent enp1s0 macsec.mode psk macsec.mka-cak 50b71a8ef0bd5751ea76de6d6c98c03a macsec.mka-ckn f2b4297d39da7330910a7abc0449feb45b5c0b9fc23df1430e1898fcf1c4550

macsec.mka-cak パラメーターおよびパラメーターおよび macsec.mka- ckn パラメーターで、前の手順で生成さパラメーターで、前の手順で生成されたれた CAK およびおよび CKN をを 使用します。この値は、MACsec で保護されるネットワーク内のすべてのホストで同じである必要があります。

2. MACsec 接続で IP 設定を構成します。

a. IPv4 設定を構成します。たとえば、静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを macsec0 接続に設定するには、次接続に設定するには、次 のコマンドを実行します。

# nmcli connection modify macsec0 ipv4.method manual ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253'

b. IPv6 設定を構成します。たとえば、静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを macsec0 接続に設定するには、次接続に設定するには、次 のコマンドを実行します。

# nmcli connection modify macsec0 ipv6.method manual ipv6.addresses '2001:db8:1::7-42' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd'

3. 接続をアクティベートします。

# nmcli connection up macsec0

検証手順検証手順

1. トラフィックが暗号化されていることを確認するには、以下を入力します。

tcpdump -nn -i enp1s0

2. 暗号化されていないトラフィックを表示するには、次のコマンドを実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

214

Page 219: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

tcpdump -nn -i macsec0

3. MACsec の統計を表示するには、次のコマンドを実行します。

# ip macsec show

4. 各タイプの保護に対して個々のカウンターを表示するには、整合性のみ(encrypt off)および暗号化(encrypt on)

# ip -s macsec show

関連情報関連情報

MACsec およびそのアーキテクチャーの詳細は、MACsec: a different solution to encryptnetwork traffic blog を参照してください。

第第35章章 MACSEC を使用した同じ物理ネットワーク内のレイヤーを使用した同じ物理ネットワーク内のレイヤー 2 トラフィックの暗号化トラフィックの暗号化

215

Page 220: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第36章 異なるドメインでの各種 DNS サーバーの使用デフォルトでは、Red Hat Enterprise Linux (RHEL) は、すべての DNS リクエストを、/etc/resolv.confファイルで指定されている最初の DNS サーバーに送信します。このサーバーが応答しない場合、RHELは、このファイルに指定されている次のサーバーを使用します。

ある DNS サーバーがすべてのドメインを解決できない環境では、管理者は、特定のドメインの DNS 要求を選択した DNS サーバーに送信するように RHEL を設定できます。たとえば、DNS サーバーを 1 台設定し、example.com および別の DNS サーバーのクエリーを解決して、 example.net のクエリーを解決できます。その他の DNS 要求は、RHEL は、デフォルトゲートウェイとの接続に設定された DNSサーバーを使用します。

重要重要

systemd-resolved サービスは、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらのプレビューは、近々発表予定の製品機能をリリースに先駆けてご提供します。これにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

36.1. 選択した DNS サーバーへの特定ドメインの DNS 要求の送信

本セクションでは、systemd-resolved サービスおよび NetworkManager を設定して、特定のドメインの DNS クエリーを選択した DNS サーバーに送信します。

本セクションの手順を完了すると、RHEL は、/etc/resolv.conf ファイルの systemd-resolved が提供する DNS サービスを使用します。systemd-resolved サービスは、53 ポートの IP アドレス 127.0.0.53でリッスンする DNS サービスを起動します。サービスは、DNS 要求を、NetworkManager で指定された対応する DNS サーバーに動的にルーティングします。

注記注記

127.0.0.53 アドレスは、ローカルシステムからのみ到達でき、ネットワークからは到達できません。

前提条件前提条件

システムに NetworkManager の接続が複数設定されている。

DNS サーバーと検索ドメインは、特定のドメインを解決する NetworkManager 接続で設定されます。たとえば、VPN 接続で指定された DNS サーバーが example.com ドメインのクエリーを解決する必要がある場合は、VPN 接続プロファイルに以下が必要になります。

example.com を解決できる DNS サーバーの設定している。

ipv4.dns-search パラメーターおよび ipv6.dns-search パラメーターで、検索ドメインを example.com に設定している。

手順手順

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

216

Page 221: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. systemd-resolved サービスを開始して有効にします。

# systemctl --now enable systemd-resolved

2. /etc/NetworkManager/NetworkManager.conf ファイルを編集し、[main] セクションに以下のエントリーを設定します。

dns=systemd-resolved

3. NetworkManager サービスを再読み込みします。

# systemctl reload NetworkManager

検証手順検証手順

1. /etc/resolv.conf ファイルの nameserver エントリーが 127.0.0.53 を指していることを確認します。

# cat /etc/resolv.confnameserver 127.0.0.53

2. systemd-resolved サービスがローカルの IP アドレス 127.0.0.53 の 53 ポートでリッスンしていることを確認します。

# netstat -tulpn | grep "127.0.0.53:53"tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 1050/systemd-resolvudp 0 0 127.0.0.53:53 0.0.0.0:* 1050/systemd-resolv

関連情報関連情報

詳細は、man ページの NetworkManager.conf(5) の dns パラメーターの説明を参照してください。

第第36章章 異なるドメインでの各種異なるドメインでの各種 DNS サーバーの使用サーバーの使用

217

Page 222: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第37章 IPVLAN の使用ここでは、IPVLAN ドライバーを説明します。

37.1. IPVLAN の概要

IPVLAN は、仮想ネットワークデバイス用のドライバーで、コンテナ環境でホストネットワークにアクセスするのに使用できます。IPVLAN は外部ネットワークに対し、ホストネットワーク内で作成されたIPVLAN デバイスの数に関わらず、MAC アドレスを 1 つ公開します。つまり、ユーザーは複数コンテナーに複数の IPVLAN デバイスを持つことができますが、対応するスイッチは MAC アドレスを 1 つ読み込むということです。IPVLAN ドライバーは、ローカルスイッチで管理できる MAC アドレスの数に制限がある場合に役立ちます。

37.2. IPVLAN モード

IPVLANでは、次のモードが使用できます。

L2 モードモードIPVLAN の L2 モードモード では、仮想デバイスは アドレス解決プロトコル (ARP) リクエストを受信して応答します。netfilter フレームワークは、仮想デバイスを所有するコンテナー内でのみ動作します。netfilter チェーンは、コンテナー化したトラッフィクにあるデフォルトの名前空間では実行されません。L2 モードモードを使用すると、パフォーマンスは高くなりますが、ネットワークトラフィックの制御性は低下します。

L3 モードモードL3 モードモードでは、仮想デバイスは L3 以上のトラフィックのみを処理します。仮想デバイスはARP リクエストに応答せず、関連するピアの IPVLAN IP アドレスは、隣接エントリーをユーザーが手動で設定する必要があります。関連するコンテナーの送信トラフィックはデフォルトの名前空間の netfilter の POSTROUTING および OUTPUT チェーンに到達する一方、ingressトラフィックは L2 モードモード と同様にスレッド化されます。L3 モードモード を使用すると、制御性は高くなりますが、ネットワークトラフィックのパフォーマンスは低下します。

L3S モードモードL3S モードモード では、仮想デバイスは L3 モードモード と同様の処理をしますが、関連するコンテナーのegress トラフィックと ingress トラフィックの両方がデフォルトの名前空間の netfilter チェーンに到達する点が異なります。L3S モードモード は、L3 モードモード と同様の動作をしますが、ネットワークの制御が強化されます。

注記注記

IPVLAN 仮想デバイスは、L3 モードおよび L3S モードでは、ブロードキャストトラフィックおよびマルチキャストトラフィックを受信しません。

37.3. MACVLAN の概要

MACVLAN ドライバーを使用すると、1 つの NIC に複数の仮想ネットワークデバイスを作成することができます。各 NIC は、それぞれ固有の MAC アドレスで識別されます。物理 NIC に到達するパケットは、宛先の MAC アドレスから関連する MACVLAN デバイスに対して分割します。MacVLAN デバイスは、カプセル化のレベルを追加しません。

37.4. IPVLAN および MACVLAN の比較

以下の表は、MACVLAN と IPVLAN の主な相違点を示しています。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

218

Page 223: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

MACVLAN IPVLAN

各 MACVLAN デバイスに対して、MAC アドレスを使用します。スイッチの MAC テーブルの MAC アドレスの過剰制限により、接続が悪化する可能性があります。

IPVLAN デバイスの数を制限しないMAC アドレスを 1つ使用します。

グローバル名前空間の netfilter ルールは、子名前空間の MACVLAN デバイスへのトラフィックに影響を及ぼしません。

L3 モードモード および L3S モードモード の IPVLAN デバイスとのトラフィックを制御できます。

IPVLAN および MACVLAN の両方には、カプセル化のレベルは必要ありません。

37.5. IPROUTE2 を使用した IPVLAN デバイスの作成および設定

この手順では、iproute2 を使用して IPVLAN デバイスを設定する方法を説明します。

手順手順

1. IPVLAN デバイスを作成するには、次のコマンドを実行します。

~]# ip link add link real_NIC_device name IPVLAN_device type ipvlan mode l2

ネットワークインターフェースコントローラー (NIC) は、コンピューターをネットワークに接続するハードウェアコンポーネントです。

例例37.1 IPVLAN デバイスの作成デバイスの作成

~]# ip link add link enp0s31f6 name my_ipvlan type ipvlan mode l2~]# ip link47: my_ipvlan@enp0s31f6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether e8:6a:6e:8a:a2:44 brd ff:ff:ff:ff:ff:ff

2. IPv4 アドレスまたは IPv6 アドレスをインターフェースに割り当てるには、次のコマンドを実行します。

~]# ip addr add dev IPVLAN_device IP_address/subnet_mask_prefix

3. L3 モードモード または L3S モードモード の IPVLAN デバイスを設定する場合は、以下の設定を行います。

a. リモートホストのリモートピアのネイバー設定を行います。

~]# ip neigh add dev peer_device IPVLAN_device_IP_address lladdr MAC_address

MAC_address は、IPVLAN デバイスのベースである実際の NIC の MAC アドレスになります。

b. L3 モードモード の IPVLAN デバイスを設定する場合は、次のコマンドを実行します。

第第37章章 IPVLAN の使用の使用

219

Page 224: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

~]# ip neigh add dev real_NIC_device peer_IP_address lladdr peer_MAC_address

L3S モードモード の場合は、次のコマンドを実行します。

~]# ip route dev add real_NIC_device peer_IP_address/32

IP アドレスは、リモートピアのアドレスを使用します。

4. IPVLAN デバイスをアクティブに設定するには、次のコマンドを実行します。

~]# ip link set dev IPVLAN_device up

5. IPVLAN デバイスがアクティブであることを確認するには、リモートホストで次のコマンドを実行します。

~]# ping IP_address

IP_address には、IPVLAN デバイスの IP アドレスを使用します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

220

Page 225: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第38章 VRF (VIRTUAL ROUTING AND FORWARDING) の設定VRF (Virtual Routing and Forwarding) を使用すると、管理者は、同じホストで複数のルーティングテーブルを同時に使用できます。このため、VRF はレイヤー 3 でネットワークをパーティションで区切ります。これにより、管理者は、VRF ドメインごとに個別の独立したルートテーブルを使用してトラフィックを分離できるようになります。この技術は、レイヤー 2 でネットワークのパーティションを作成する仮想 LAN (VLAN) に類似しており、ここではオペレーティングシステムが異なる VLAN タグを使用して、同じ物理メディアを共有するトラフィックを分離させます。

レイヤー 2 のパーティションにある VRF の利点は、関与するピアの数に対して、ルーティングが適切にスケーリングすることです。

Red Hat Enterprise Linux は、各 VRF ドメインに仮想 vrt デバイスを使用し、既存のネットワークデバイスを VRF デバイスに追加して、VRF ドメインにルートを含めます。元のデバイスに接続していたアドレスとルートは、VRF ドメイン内に移動します。

各 VRF ドメインが互いに分離しているることに注意してください。

38.1. 別のインターフェースで同じ IP アドレスを永続的に再利用する

この手順では、VRF 機能を使用して、1 台のサーバーの異なるインターフェースで同じ IP アドレスを永続的に使用する方法を説明します。

重要重要

同じ IP アドレスを再利用しながら、リモートのピアが VRF インターフェースの両方に接続するようにするには、ネットワークインターフェースが異なるブロードキャストドメインに属する必要があります。ネットワークのブロードキャストドメインは、ノードのいずれかによって送信されたブロードキャストトラフィックを受信するノードセットです。ほとんどの設定では、同じスイッチに接続されているすべてのノードが、同じブロードキャストドメインに属するようになります。

前提条件前提条件

root ユーザーとしてログインしている。

ネットワークインターフェースが設定されていない。

手順手順

1. 最初の VRF デバイスを作成して設定します。

a. VRF デバイスの接続を作成し、ルーティングテーブルに割り当てます。たとえば、ルーティングテーブル 1001 に割り当てられた vrf0 という名前の VRF デバイスを作成するには、次のコマンドを実行します。

# nmcli connection add type vrf ifname vrf0 con-name vrf0 table 1001 ipv4.method disabled ipv6.method disabled

b. vrf0 デバイスを有効にします。

# nmcli connection up vrf0

c. 上記で作成した VRF にネットワークデバイスを割り当てます。たとえば、イーサネットデ

第第38章章 VRF (VIRTUAL ROUTING AND FORWARDING) の設定の設定

221

Page 226: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

c. 上記で作成した VRF にネットワークデバイスを割り当てます。たとえば、イーサネットデバイス enp1s0 を vrf0 VRF デバイスに追加し、IP アドレスとサブネットマスクを enp1s0に割り当てるには、次のコマンドを実行します。

# nmcli connection add type ethernet con-name vrf.enp1s0 ifname enp1s0 master vrf0 ipv4.method manual ipv4.address 192.0.2.1/24

d. vrf.enp1s0 接続をアクティベートします。

# nmcli connection up vrf.enp1s0

2. 次の VRF デバイスを作成して設定します。

a. VRF デバイスを作成し、ルーティングテーブルに割り当てます。たとえば、ルーティングテーブル 1002 に割り当てられた vrf1 という名前の VRF デバイスを作成するには、次のコマンドを実行します。

# nmcli connection add type vrf ifname vrf1 con-name vrf1 table 1002 ipv4.method disabled ipv6.method disabled

b. vrf1 デバイスをアクティベートします。

# nmcli connection up vrf1

c. 上記で作成した VRF にネットワークデバイスを割り当てます。たとえば、イーサネットデバイス enp7s0 を vrf1 VRF デバイスに追加し、IP アドレスとサブネットマスクを enp7s0に割り当てるには、次のコマンドを実行します。

# nmcli connection add type ethernet con-name vrf.enp7s0 ifname enp7s0 master vrf1 ipv4.method manual ipv4.address 192.0.2.1/24

d. vrf.enp7s0 デバイスをアクティベートします。

# nmcli connection up vrf.enp7s0

38.2. 複数のインターフェースで同じ IP アドレスを一時的に再利用

本セクションの手順では、VRF (Virtual Routing and Forwarding) 機能を使用して、1 台のサーバーの複数のインターフェースで同じ IP アドレスを一時的に使用する方法を説明します。この手順は、システムの再起動後に設定が一時的で失われてしまうため、テスト目的にのみ使用します。

重要重要

同じ IP アドレスを再利用しながら、リモートのピアが VRF インターフェースの両方に接続するようにするには、ネットワークインターフェースが異なるブロードキャストドメインに属する必要があります。ネットワークのブロードキャストドメインは、ノードのいずれかによって送信されたブロードキャストトラフィックを受信するノードセットです。ほとんどの設定では、同じスイッチに接続されているすべてのノードが、同じブロードキャストドメインに属するようになります。

前提条件前提条件

root ユーザーとしてログインしている。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

222

Page 227: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ネットワークインターフェースが設定されていない。

手順手順

1. 最初の VRF デバイスを作成して設定します。

a. VRF デバイスを作成し、ルーティングテーブルに割り当てます。たとえば、1001 ルーティングテーブルに割り当てられた blue という名前の VRF デバイスを作成するには、次のコマンドを実行します。

# ip link add dev blue type vrf table 1001

b. blue デバイスを有効にします。

# ip link set dev blue up

c. VRF デバイスにネットワークデバイスを割り当てます。たとえば、イーサネットデバイス enp1s0 を、VRF デバイス blue に追加するには、次のコマンドを実行します。

# ip link set dev enp1s0 master blue

d. enp1s0 デバイスを有効にします。

# ip link set dev enp1s0 up

e. IP アドレスとサブネットマスクを enp1s0 デバイスに割り当てます。たとえば、これを 192.0.2.1/24 に設定するには、次のコマンドを実行します。

# ip addr add dev enp1s0 192.0.2.1/24

2. 次の VRF デバイスを作成して設定します。

a. VRF デバイスを作成し、ルーティングテーブルに割り当てます。たとえば、ルーティングテーブル 1002 に割り当てられた red という名前の VRF デバイスを作成するには、次のコマンドを実行します。

# ip link add dev red type vrf table 1002

b. red デバイスを有効にします。

# ip link set dev red up

c. VRF デバイスにネットワークデバイスを割り当てます。たとえば、イーサネットデバイス enp7s0 を、VRF デバイス red に追加するには、次のコマンドを実行します。

# ip link set dev enp7s0 master red

d. enp7s0 デバイスを有効にします。

# ip link set dev enp7s0 up

e. VRF ドメイン blue の enp1s0 に使用したものと同じ IP アドレスとサブネットマスクを

第第38章章 VRF (VIRTUAL ROUTING AND FORWARDING) の設定の設定

223

Page 228: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

e. VRF ドメイン blue の enp1s0 に使用したものと同じ IP アドレスとサブネットマスクを enp7s0 デバイスに割り当てます。

# ip addr add dev enp7s0 192.0.2.1/24

3. 必要に応じて、上記のとおりに、VRF デバイスをさらに作成します。

38.3. 関連情報

https://www.kernel.org/doc/Documentation/networking/vrf.txt

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

224

Page 229: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第39章 システムのルーティングプロトコルの設定このセクションでは、Free Range Routing (FRRouting または FRR) 機能を使用して、システムに必要なルーティングプロトコルを有効にして設定する方法を説明します。

39.1. FRROUTING の概要

Free Range Routing (FRRouting または FRR) は、AppStream リポジトリーで利用可能な frr パッケージで提供されるルーティングプロトコルスタックです。

FRR は、以前のバージョンの RHEL で使用されていた Quagga に代わるものです。このように、FRRは、複数のルーティングプロトコル IPv4 および IPv6 に対応する TCP/IP ベースのルーティングサービスを提供します。

対応プロトコルは次のとおりです。

BGP (Border Gateway Protocol)

IS-IS (Intermediate System to Intermediate System)

OSPF (Open Shortest Path First)

PIM (Potocol-Independent Multicast)

RIP (Routing Information Protocol)

RIPng (Routing Information Protocol next generation)

EIGRP (Enhanced Interior Gateway Routing Protocol)

NHRP (Next Hop Resolution Protocol)

BFD (Bidirectional Forwarding Detection)

PBR (Policy-based Routing)

FRR には、以下のサービスが含まれます。

zebra

bgpd

isisd

ospfd

ospf6d

pimd

ripd

ripngd

eigrpd

nhrpd

第第39章章 システムのルーティングプロトコルの設定システムのルーティングプロトコルの設定

225

Page 230: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

bfdd

pbrd

staticd

fabricd

frr がインストールされている場合、システムは専用ルーターとして動作します。これにより、ルーティングプロトコルを使用する内部ネットワークまたは外部ネットワークのいずれかで、その他のルーターとルーティング情報を交換します。

39.2. FRROUTING の設定

前提条件前提条件

システムに frr パッケージがインストールされている。

# yum install frr

手順手順

1. /etc/frr/daemons 設定ファイルを編集し、システムに必要なデーモンを有効にします。たとえば、ripd デーモンを有効にするには、以下の行を追加します。

ripd=yes

警告警告

zebra デーモンは、常に有効にする必要があるため、zebra=yes に設定して FRR を使用できるようにする必要があります。

重要重要

デフォルトでは、/etc/frr/daemons には、すべてのデーモンの [daemon_name]=no エントリーが含まれます。したがって、すべてのデーモンが無効になり、システムを新規インストールした後に FRR を開始しても効果がありません。

2. frr サービスを起動します。

# systemctl start frr

3. 必要に応じて、FRR がシステムの起動時に自動的に開始されるように設定することもできます。

# systemctl enable frr

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

226

Page 231: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

39.3. FRR の設定の修正

本セクションでは、以下を説明します。

FRR の設定後に追加のデーモンを有効にする方法

FRR の設定後にデーモンを無効にする方法

追加のデーモンの有効化追加のデーモンの有効化

前提条件前提条件

FRR が、「FRRouting の設定」 に従って設定されている。

手順手順

追加のデーモンを 1 つ以上有効にするには、以下を実行します。

1. /etc/frr/daemons 設定ファイルを編集し、必要なデーモンの行を、no ではなく yes に変更します。たとえば、ripd デーモンを有効にするには、次のコマンドを実行します。

ripd=yes

2. frr サービスを再読み込みします。

# systemctl reload frr

デーモンの無効化デーモンの無効化

前提条件前提条件

FRR が、「FRRouting の設定」 に従って設定されている。

手順手順

複数のデーモンを無効にするには、以下を実行します。

1. /etc/frr/daemons 設定ファイルを編集し、必要なデーモンの行を、yes ではなく no に変更します。たとえば、ripd デーモンを無効にするには、次のコマンドを実行します。

ripd=no

2. frr サービスを再読み込みします。

# systemctl reload frr

39.4. 特定のデーモンの設定の修正

デフォルトの設定では、FRR のすべてのルーティングデーモンがプレーンルーターとしてのみ動作します。

デーモンの追加設定には、以下の手順を使用します。

第第39章章 システムのルーティングプロトコルの設定システムのルーティングプロトコルの設定

227

Page 232: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. /etc/frr/ ディレクトリーで、必要なデーモンの設定ファイルを作成し、次のようにファイルに名前を付けます。

[daemon_name].conf

たとえば、eigrpd デーモンをさらに設定する場合は、前述のディレクトリーに eigrpd.confファイルを作成します。

2. 必要な内容で新規ファイルを設定します。特定の FRR デーモンの設定例は、/usr/share/doc/frr/ ディレクトリーを参照してください。

3. frr サービスを再読み込みします。

# systemctl reload frr

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

228

Page 233: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第40章 RX リングバッファーの監視およびチューニング受信 (RX) リングバッファーは、デバイスドライバーとネットワークインターフェースカード (NIC) 間で共有バッファーで、デバイスドライバーが処理できるまで着信パケットを保存します。

パケットの破棄率によりアプリケーションが報告するようになる場合は、イーサネットデバイスの RXリングバッファーのサイズを増やすことができます。

データ損失

クラスターフェンス

パフォーマンスの低下

タイムアウト

バックアップの失敗

本セクションでは、破棄されたパケットの数を特定し、RX リングバッファーを増やして、パケットの高い破棄率を減らす方法を説明します。

40.1. 破棄されたパケット数の表示

ethtool ユーティリティーを使用すると、管理者はネットワークドライバーの設定をクエリー、設定、または制御できます。

RX リングバッファーを使い切ると、ethtool -S interface_name の出力の「discard」や「drop」などのカウンターにインクリメントが生じます。破棄されたパケットは、カーネルがパケットを処理できるよりも早く利用可能なバッファーが満杯になっていることを示しています。

この手順では、ethtool を使用してドロップカウンターを表示する方法を説明します。

手順手順

enp1s0 インターフェースのドロップカウンターを表示するには、次のコマンドを実行します。

$ ethtool -S enp1s0

40.2. パケットの破棄レートが高いのを減らすために RX リングバッファーを増やす

ethtool ユーティリティーは、パケットの破棄率を高くするために RX バッファーを増やすのに役立ちます。

手順手順

1. RX リングバッファーの最大サイズを表示するには、次のコマンドを実行します。

# ethtool -g enp1s0 Ring parameters for enp1s0: Pre-set maximums: RX: 4080 RX Mini: 0

第第40章章 RX リングバッファーの監視およびチューニングリングバッファーの監視およびチューニング

229

Page 234: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

RX Jumbo: 16320 TX: 255 Current hardware settings: RX: 255 RX Mini: 0 RX Jumbo: 0 TX: 255

2. Pre-set maximums セクションの値が Current hardware settings セクションの値よりも高い場合は、RX リングバッファーを増やします。

enp1s0 デバイスの RX リングバッファーを 4080 に一時的に変更するには、次のコマンドを実行します。

# ethtool -G enp1s0 rx 4080

RX リングバッファーを永続的に変更するには、NetworkManager の dispatcher スクリプトを作成します。詳細は「NIC ethtool 設定を永続化する (システムの起動時に自動的に適用する)」を参照して、ディスパッチャースクリプトを作成します。

重要重要

ネットワークインターフェースカードが使用するドライバーによっては、リングバッファーで変更したことでネットワーク接続がすぐに中断する可能性があります。

関連情報関連情報

不要なパケットを破棄する理由は、「「RHEL7 にアップグレードするとにアップグレードすると ifconfig パケットが落ちパケットが落ちたことが報告される」たことが報告される」を参照してください。

「パケットが破棄される割合が「パケットが破棄される割合が 0.05% の場合は問題がありますかの場合は問題がありますか?」」

ethtool(8) の man ページ

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

230

Page 235: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第41章 基本的なネットワーク設定のテスト本セクションでは、基本的なネットワークテストを実行する方法を説明します。

41.1. PING ユーティリティーを使用した他のホストへの IP 接続の検証

ping ユーティリティーは ICMP パケットをリモートホストに送信します。この機能を使用すると、別のホストへの IP 接続が機能するかどうかをテストできます。

手順手順

デフォルトゲートウェイなど、同じサブネット内のホストの IP アドレスに ping します。

# ping 192.0.2.3

コマンドが失敗した場合は、デフォルトのゲートウェイ設定を確認します。

リモートサブネット内のホストの IP アドレスに ping します。

# ping 198.162.3.1

コマンドが失敗した場合は、デフォルトのゲートウェイ設定を確認し、ゲートウェイが接続ネットワーク間のパケットを転送することを確認します。

41.2. HOST ユーティリティーを使用した名前解決の検証

この手順では、Red Hat Enterprise Linux 8 で名前解決を確認する方法を説明します。

手順手順

host ユーティリティーを使用して名前解決が機能することを確認します。たとえば、client.example.com のホスト名を IP アドレスに解決するには、次のコマンドを実行します。

# host client.example.com

connection timed out や no servers could be reached など、コマンドがエラーを返した場合は、DNS 設定を確認してください。

第第41章章 基本的なネットワーク設定のテスト基本的なネットワーク設定のテスト

231

Page 236: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第42章 NETWORKMANAGER のデバッグの概要すべてのドメインまたは特定のドメインのログレベルを増やすと、NetworkManager が実行する操作の詳細をログに記録するのに役立ちます。管理者は、この情報を使用して問題のトラブルシューティングを行うことができます。NetworkManager は、ロギング情報を生成するさまざまなレベルとドメインを提供します。/etc/NetworkManager/NetworkManager.conf ファイルは、NetworkManager の主な設定ファイルです。ログはジャーナルに保存されます。

本セクションでは、NetworkManager のデバッグロギングを有効にし、さまざまなロギングレベルおよびドメインを使用してロギングの詳細量を設定する方法を説明します。

42.1. デバッグレベルおよびドメイン

levels および domains パラメーターを使用して、NetworkManager のデバッグを管理できます。レベルは詳細レベルを定義しますが、ドメインは特定の重大度 (level) でログを記録するメッセージのカテゴリーを定義します。

ログレベルログレベル 説明説明

OFF NetworkManager に関するメッセージをログに記録しません。

ERR 重大なエラーのみのログ

WARN 操作を反映できる警告をログに記録します。

INFO 状態および操作の追跡に役立つさまざまな情報メッセージをログに記録します。

DEBUG デバッグの目的で詳細なログを有効にします。

TRACE DEBUG レベルよりも多くの詳細ロギングを有効にします。

後続のレベルでは、以前のレベルのすべてのメッセージをログに記録することに注意してください。たとえば、ログレベルを INFO に設定すると、ERR および WARN ログレベルに含まれるメッセージをログに記録します。

関連情報関連情報

domains の詳細は、NetworkManager.conf(5) の man ページを参照してください。

42.2. NETWORKMANAGER ログレベルの設定

デフォルトでは、すべてのログドメインは INFO ログレベルを記録します。デバッグログを収集する前にレート制限を無効にします。帯域制限により、systemd-journald は、短時間にメッセージが多すぎる場合にメッセージを破棄します。これは、ログレベルが TRACE の場合に発生する可能性があります。

この手順では、レート制限を無効にし、すべての (ALL) ドメインのデバッグログの記録を有効にします。

手順手順

1. レート制限を無効にするには、/etc/systemd/journald.conf ファイルを編集し、[Journal] セク

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

232

Page 237: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. レート制限を無効にするには、/etc/systemd/journald.conf ファイルを編集し、[Journal] セクションの RateLimitBurst パラメーターのコメントを解除し、その値を 0 に設定します。

RateLimitBurst=0

2. systemd-journald サービスを再起動します。

# systemctl restart systemd-journald

3. 以下の内容で /etc/NetworkManager/conf.d/95-nm-debug.conf ファイルを作成します。

[logging]domains=ALL:DEBUG

domains パラメーターには、複数のコンマ区切りの domain:level ペアを含めることができます。

4. NetworkManager サービスを再起動します。

# systemctl restart NetworkManager

42.3. NMCLI を使用して、ランタイム時にログレベルを一時的に設定

nmcli を使用すると、ランタイム時にログレベルを変更できます。ただし、Red Hat は、設定ファイルを使用してデバッグを有効にし、NetworkManager を再起動することを推奨します。.conf ファイルを使用してデバッグの levels および domains を更新すると、ブートの問題をデバッグし、初期状態からすべてのログをキャプチャーできます。

手順手順

1. 必要に応じて、現在のログ設定を表示します。

# nmcli general logging LEVEL DOMAINS INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DCB,DISPATCH

2. ログレベルおよびドメインを変更するには、以下のオプションを使用します。

すべてのドメインのログレベルを同じ LEVEL に設定するには、次のコマンドを実行します。

# nmcli general logging level LEVEL domains ALL

特定のドメインのレベルを変更するには、以下を入力します。

# nmcli general logging level LEVEL domains DOMAINS

このコマンドを使用してログレベルを更新すると、他のすべてのドメインのログが無効に

第第42章章 NETWORKMANAGER のデバッグの概要のデバッグの概要

233

Page 238: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

このコマンドを使用してログレベルを更新すると、他のすべてのドメインのログが無効になることに注意してください。

特定のドメインのレベルを変更し、他のすべてのドメインのレベルを保持するには、次のコマンドを実行します。

# nmcli general logging level KEEP domains DOMAIN:LEVEL,DOMAIN:LEVEL

42.4. NETWORKMANAGER ログの表示

トラブルシューティング用の NetworkManager ログを表示できます。

手順手順

ログを表示するには、以下を入力します。

# journalctl -u NetworkManager -b

関連情報関連情報

NetworkManager.conf(5) の man ページ

journalctl の man ページ

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

234

Page 239: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第43章 ネットワークパケットのキャプチャーネットワークの問題と通信をデバッグするには、ネットワークパケットをキャプチャーできます。以下のセクションでは、ネットワークパケットのキャプチャーに関する手順と追加情報を提供します。

43.1. XDP プログラムがドロップしたパケットを含むネットワークパケットをキャプチャーするために XDPDUMP を使用

xdpdump ユーティリティーは、ネットワークパケットをキャプチャーします。tcpdump ユーティリティーとは異なり、xdpdump はこのタスクに extended Berkeley Packet Filter(eBPF) プログラムを使用します。これにより、xdpdump は Express Data Path (XDP) プログラムによりドロップされたパケットをキャプチャーできます。tcpdump などのユーザー空間ユーティリティーは、この削除されたパッケージや、XDP プログラムによって変更された元のパケットをキャプチャーできません。

xdpdump を使用して、インターフェースにすでに割り当てられている XDP プログラムをデバッグすることができます。したがって、ユーティリティーは、XDP プログラムを起動し、終了する前にパケットをキャプチャーできます。後者の場合、xdpdump は XDP アクションもキャプチャーします。デフォルトでは、xdpdump は XDP プログラムのエントリーで着信パケットをキャプチャーします。

重要重要

AMD および Intel 64 ビット以外のアーキテクチャーでは、xdpdump ユーティリティーはテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらのプレビューは、近々発表予定の製品機能をリリースに先駆けてご提供します。これにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

xdpdump には、パケットフィルターまたはデコード機能がないことに注意してください。ただし、パケットのデコードに tcpdump と組み合わせて使用できます。

この手順では、enp1s0 インターフェース上のパケットをすべてキャプチャーして、/root/capture.pcap ファイルに書き込む方法を説明します。

前提条件前提条件

XDP プログラムをサポートするネットワークドライバー。

XDP プログラムが enp1s0 インターフェースに読み込まれている。プログラムが読み込まれていない場合は、xdpdump が後方互換性として tcpdump と同様にパケットを キャプチャーキャプチャー します。

手順手順

1. enp1s0 インターフェースでパケットをキャプチャーして、/root/capture.pcap ファイルに書き込むには、次のコマンドを実行します。

# xdpdump -i enp1s0 -w /root/capture.pcap

第第43章章 ネットワークパケットのキャプチャーネットワークパケットのキャプチャー

235

Page 240: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. パケットの取得を停止するには、Ctrl+C を押します。

関連情報関連情報

xdpdump の詳細は、xdpdump(8) の man ページを参照してください。

開発者であり、xdpdump のソースコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。

43.2. 関連情報

How to capture network packets with tcpdump? ナレッジベースソリューション

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

236

Page 241: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第44章 RHEL で特定のカーネルバージョンを使用カーネルは Linux オペレーティングシステムのコアコンポーネントで、システムリソースを管理し、ハードウェアアプリケーションおよびソフトウェアアプリケーション間のインターフェースを確立します。場合によっては、カーネルはネットワーク機能に影響する可能性があるため、常に最新バージョンのカーネルを使用することが推奨されます。必要に応じて、同じ x-stream カーネルの以前のバージョンにカーネルをダウングレードし、システムの起動中に特定のバージョンを選択することも可能です。

本セクションでは、カーネルをアップグレードまたはダウングレードする場合に備えて、GRUB ブートローダーでカーネルを選択する方法を説明します。

44.1. 以前のカーネルバージョンを使用した RHEL の起動

デフォルトでは、アップデート後、システムがカーネルの最新バージョンを起動します。Red HatEnterprise Linux では、同時に 3 つのカーネルバージョンをインストールできます。これは /etc/dnf/dnf.conf ファイルで定義されます (installonly_limit=3)。

システムが新しいカーネルで読み込まれたときに問題が発生した場合は、以前のカーネルで再起動し、実稼働マシンを復元できます。問題のトラブルシューティングは、サポートチームにお問い合わせください。

手順手順

1. システムを起動します。

2. GRUB ブートローダーにインストール済みカーネルが表示されます。↑ キーおよび ↓ キーを使用してカーネルを選択し、Enter を押して起動します。

関連情報関連情報

Changing the default kernel to boot using the grubby tool.

カーネルのインストールおよび更新の詳細は、「yum を使用したカーネルの更新」を参照してください。

第第44章章 RHEL で特定のカーネルバージョンを使用で特定のカーネルバージョンを使用

237

Page 242: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第45章 DHCP サービスの提供DHCP (Dynamic Host Configuration Protocol) は、クライアントに IP 情報を自動的に割り当てるネットワークプロトコルです。

本セクションでは、dhcpd サービスに関する一般情報と、DHCP サーバーおよび DHCP リレーの設定方法を説明します。

DHCP を提供する手順が、IPv4 および IPv6 のネットワークで異なる場合は、本章のセクションで、両方のプロトコルの手順を紹介します。

45.1. DHCPV4 および DHCPV6 で DHCPD を使用する場合の相違点

dhcpd サービスは、1 台のサーバーで DHCPv4 と DHCPv6 の両方を提供できます。ただし、各プロトコルに DHCP を提供するには、別に設定ファイルを使用する dhcpd のインスタンスがそれぞれ必要です。

DHCPv4

設定ファイル -/etc/dhcp/dhcpd.conf

systemd サービス名 - dhcpd

DHCPv6

設定ファイル - /etc/dhcp/dhcpd6.conf

systemd サービス名 - dhcpd6

45.2. DHCPD サービスのリースデータベース

DHCP リースは、dhcpd サービスがネットワークアドレスをクライアントに割り当てる期間です。dhcpd サービスは、DHCP リースを以下のデータベースに保存します。

DHCPv4 の場合 - /var/lib/dhcpd/dhcpd.leases

DHCPv6 の場合 - /var/lib/dhcpd/dhcpd6.leases

警告警告

データベースファイルを手動で更新すると、データベースが破損する可能性があります。

リースデータベースには、メディアアクセス制御 (MAC) アドレスに割り当てられた IP アドレス、リースが期限切れになる際のタイムスタンプなど、割り当てられたリースに関する情報が含まれます。リースデータベースのタイムスタンプはすべて、協定世界時 (UTC) であることに注意してください。

dhcpd サービスは、定期的にデータベースを再作成します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

238

Page 243: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. サービスは、既存のファイルの名前を変更します。

/var/lib/dhcpd/dhcpd.leases から /var/lib/dhcpd/dhcpd.leases~

/var/lib/dhcpd/dhcpd6.leases から /var/lib/dhcpd/dhcpd6.leases~

2. このサービスは、新たに作成された /var/lib/dhcpd/dhcpd.leases ファイルおよび /var/lib/dhcpd/dhcpd6.leases ファイルに、既知のリースをすべて書き込みます。

関連情報関連情報

リースデータベースに保存されている内容の詳細は、man ページの dhcpd.leases(5) を参照してください。

詳細は 「破損したリースデータベースの復元」 を参照してください。

45.3. DHCPV6 と RADVD の比較

IPv6 ネットワークでは、ルーター広告メッセージのみが IPv6 デフォルトゲートウェイに関する情報を提供します。これにより、デフォルトのゲートウェイ設定を必要とするサブネットで DHCPv6 を使用する場合は、ルーター通知デーモン (radvd) などのルーター広告サービスを追加で設定する必要があります。

radvd サービスは、ルーター通知パケットのフラグを使用して、DHCPv6 サーバーの可用性をアナウンスします。

本セクションでは、DHCPv6 および radvd を比較し、radvd の設定に関する情報を提供します。

DHCPv6 radvd

デフォルトゲートウェイに関する情報を提供する。 いいえ はい

プライバシーを保護するために、ランダムなアドレスを保証する。

はい いいえ

その他のネットワーク設定オプションを送信する。 はい いいえ

メディアアクセス制御 (MAC) アドレスを IPv6 アドレスにマッピングする。

はい いいえ

45.4. IPV6 ルーター用に RADVD サービスの設定

ルーター広告デーモン (radvd) は、IPv6 のステートレス自動設定に必要なルーター広告メッセージを送信します。これにより、ユーザーがアドレス、設定、ルートを自動的に構成し、そこから提供された情報に基づいてデフォルトのルーターを選択できます。

本セクションの手順では、radvd の設定方法を説明します。

前提条件前提条件

root ユーザーとしてログインしている。

手順手順

第第45章章 DHCP サービスの提供サービスの提供

239

Page 244: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. radvd パッケージをインストールします。

# yum install radvd

2. /etc/radvd.conf ファイルを編集し、以下の設定を追加します。

interface enp1s0{ AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on;

prefix 2001:db8:0:1::/64 { };};

この設定により、2001:db8:0:1::/64 サブネット用の enp1s0 デバイスにルーター広告メッセージを送信するように radvd を設定します。AdvManagedFlag on 設定は、クライアントが、DHCP サーバーから IP アドレスを受け取る必要があることを定義し、on に設定した AdvOtherConfigFlag パラメーターは、DHCP サーバーからもアドレス以外の情報を取得する必要があることを定義します。

3. 必要に応じて、システムの起動時に radvd が自動的に起動するように設定します。

# systemctl enable radvd

4. radvd サービスを起動します。

# systemctl start radvd

5. 必要に応じて、ルーター広告パッケージのコンテンツと、radvd が送信する設定値を表示します。

# radvdump

関連情報関連情報

radvd の設定方法は、man ページの radvd.conf(5) を参照してください。

radvd の設定例は、/usr/share/doc/radvd/radvd.conf.example ファイルを参照してください。

45.5. DHCP サーバーのネットワークインターフェースの設定

デフォルトでは、dhcpd サービスプロセスは、サービスの設定ファイルで定義されているサブネットにIP アドレスのあるネットワークインターフェースでのみ要求します。

たとえば、以下のシナリオでは、dhcpd は、enp0s1 ネットワークインターフェースでのみリッスンします。

/etc/dhcp/dhcpd.conf ファイルには、192.0.2.0/24 ネットワークの subnet 定義しかない。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

240

Page 245: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

enp0s1 ネットワークインターフェースが 192.0.2.0/24 サブネットに接続されている。

enp7s0 インターフェースが別のサブネットに接続されます。

DHCP サーバーに同じネットワークに接続された複数のネットワークインターフェイスが含まれているにもかかわらず、サービスが特定のインターフェイスでのみリッスンする必要がある場合にのみ、本セクションの手順に従ってください。

IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。

IPv4 ネットワーク

IPv6 ネットワーク

前提条件前提条件

root ユーザーとしてログインしている。

dhcp-server パッケージがインストールされている。

手順手順

IPv4 ネットワークの場合

1. /usr/lib/systemd/system/dhcpd.service ファイルを /etc/systemd/system/ ディレクトリーにコピーします。

# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/

/usr/lib/systemd/system/dhcpd.service ファイルは編集しないでください。dhcp-serverパッケージの今後の更新により、変更が上書きされます。

2. /etc/systemd/system/dhcpd.service ファイルを編集し、dhcpd が、ExecStart パラメーターのコマンドでリッスンする必要があるインターフェースの名前を追加します。

ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0

この例では、dhcpd が enp0s1 インターフェースおよび enp7s0 インターフェースでのみリッスンするように設定します。

3. systemd マネージャー設定を再読み込みします。

# systemctl daemon-reload

4. dhcpd サービスを再起動します。

# systemctl restart dhcpd.service

IPv6 ネットワークの場合

1. /usr/lib/systemd/system/dhcpd6.service ファイルを /etc/systemd/system/ ディレクトリーにコピーします。

第第45章章 DHCP サービスの提供サービスの提供

241

Page 246: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/

/usr/lib/systemd/system/dhcpd6.service ファイルは編集しないでください。dhcp-server パッケージの今後の更新により、変更が上書きされます。

2. /etc/systemd/system/dhcpd6.service ファイルを編集し、dhcpd は、ExecStart パラメーターのコマンドでリッスンする必要があるインターフェースの名前を追加します。

ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0

この例では、dhcpd が enp0s1 インターフェースおよび enp7s0 インターフェースでのみリッスンするように設定します。

3. systemd マネージャー設定を再読み込みします。

# systemctl daemon-reload

4. dhcpd6 サービスを再起動します。

# systemctl restart dhcpd6.service

45.6. DHCP サーバーに直接接続されたサブネット用の DHCP サービスの設定

DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続されている場合は、以下の手順を使用します。サーバーのネットワークインターフェースに、このサブネットの IP アドレスが割り当てられている場合は、以下のようになります。

IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。

IPv4 ネットワーク

IPv6 ネットワーク

前提条件前提条件

root ユーザーとしてログインしている。

dhcpd-server パッケージがインストールされている。

手順手順

IPv4 ネットワークの場合

1. /etc/dhcp/dhcpd.conf ファイルを編集します。

a. その他のディレクティブにこの設定がない場合は、dhcpd が使用するグローバルパラメーターをデフォルトとして追加します。

option domain-name "example.com";default-lease-time 86400;

この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトの

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

242

Page 247: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトのリース時間を 86400 秒 (1 日) に設定します。

b. authoritative ステートメントを新しい行に追加します。

authoritative;

重要重要

authoritative ステートメントがない場合、dhcpd サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK で DHCPREQUEST メッセージに応答することはありません。

c. サーバーのインターフェースに直接接続された各 IPv4 サブネットに、subnet 宣言を追加します。

subnet 192.0.2.0 netmask 255.255.255.0 { range 192.0.2.20 192.0.2.100; option domain-name-servers 192.0.2.1; option routers 192.0.2.1; option broadcast-address 192.0.2.255; max-lease-time 172800;}

この例では、192.0.2.0/24 ネットワークにサブネットの宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットから DHCP 要求を送信するクライアントに割り当てます。

range パラメーターで定義されている範囲からの空き IPv4 アドレス

このサブネットの DNS サーバーの IP - 192.0.2.1

このサブネットのデフォルトゲートウェイ - 192.0.2.1

このサブネットのブロードキャストアドレス - 192.0.2.255

このサブネットのクライアントが IP を解放し、サーバーに新しい要求を送信する最大リース時間 - 172800 秒 (2 日)

2. 必要に応じて、システムの起動時に dhcpd が自動的に起動するように設定します。

# systemctl enable dhcpd

3. dhcpd サービスを開始します。

# systemctl start dhcpd

IPv6 ネットワークの場合

1. /etc/dhcp/dhcpd6.conf ファイルを編集します。

a. その他のディレクティブにこの設定がない場合は、dhcpd が使用するグローバルパラメーターをデフォルトとして追加します。

第第45章章 DHCP サービスの提供サービスの提供

243

Page 248: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

option dhcp6.domain-search "example.com";default-lease-time 86400;

この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトのリース時間を 86400 秒 (1 日) に設定します。

b. authoritative ステートメントを新しい行に追加します。

authoritative;

重要重要

authoritative ステートメントがない場合、dhcpd サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK で DHCPREQUEST メッセージに応答することはありません。

c. サーバーのインターフェースに直接接続された各 IPv6 サブネットに、subnet 宣言を追加します。

subnet6 2001:db8:0:1::/64 { range6 2001:db8:0:1::20 2001:db8:0:1::100; option dhcp6.name-servers 2001:db8:0:1::1; max-lease-time 172800;}

以下の例では、 2001:db8:0:1::/64 ネットワークにサブネット宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットから DHCP 要求を送信するクライアントに割り当てます。

range6 パラメーターで定義されている範囲外の空き IPv6 アドレスです。

このサブネットの DNS サーバーの IP は 2001:db8:0:1::1 です。

このサブネットのクライアントが IP を解放し、サーバーに新しい要求を送信する最大リース時間は、172800 秒 (2 日) です。IPv6 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。

2. 必要に応じて、システムの起動時に dhcpd6 が自動的に開始するように設定します。

# systemctl enable dhcpd6

3. dhcpd6 サービスを起動します。

# systemctl start dhcpd6

関連情報関連情報

/etc/dhcp/dhcpd.conf および /etc/dhcp/dhcpd6.conf で設定したパラメーターの一覧は、manページの dhcp-options(5) を参照してください。

authoritative ステートメントの詳細は、man ページの dhcpd.conf(5) の The authoritative statement のセクションを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

244

Page 249: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

設定例は、/usr/share/doc/dhcp-server/dhcpd.conf.example ファイルおよび /usr/share/doc/dhcp-server/dhcpd6.conf.example ファイルを参照してください。

45.7. DHCP サーバーに直接接続していないサブネット用の DHCP サービスの設定

DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続していない場合は、以下の手順に従います。これは、DHCP リレーエージェントが DHCP サーバーに要求を転送する場合を指します。DHCPサーバーのインターフェイスが、サーバーが提供するサブネットに直接接続していないためです。

IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。

IPv4 ネットワーク

IPv6 ネットワーク

前提条件前提条件

root ユーザーとしてログインしている。

dhcpd-server パッケージがインストールされている。

手順手順

IPv4 ネットワークの場合

1. /etc/dhcp/dhcpd.conf ファイルを編集します。

a. その他のディレクティブにこの設定がない場合は、dhcpd が使用するグローバルパラメーターをデフォルトとして追加します。

option domain-name "example.com";default-lease-time 86400;

この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトのリース時間を 86400 秒 (1 日) に設定します。

b. authoritative ステートメントを新しい行に追加します。

authoritative;

重要重要

authoritative ステートメントがない場合、dhcpd サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK で DHCPREQUEST メッセージに応答することはありません。

c. 以下のように、サーバーのインターフェースに直接接続していない IPv4 サブネットに、shared-network 宣言を追加します。

shared-network example { option domain-name-servers 192.0.2.1; ...

第第45章章 DHCP サービスの提供サービスの提供

245

Page 250: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

subnet 192.0.2.0 netmask 255.255.255.0 { range 192.0.2.20 192.0.2.100; option routers 192.0.2.1; }

subnet 198.51.100.0 netmask 255.255.255.0 { range 198.51.100.20 198.51.100.100; option routers 198.51.100.1; } ...}

この例では、192.0.2.0/24 と 198.51.100.0/24 の両方のネットワークの subnet 宣言を含む、共有ネットワーク宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットのいずれかから DHCP 要求を送信するクライアントに割り当てます。

両方のサブネットにおけるクライアントの DNS サーバーの IP は 192.0.2.1 です。

クライアントがどのサブネットから要求を送信したかに応じて、range パラメーターで定義された範囲の 空き IPv4 アドレスです。

デフォルトゲートウェイは、クライアントがどのサブネットから要求を送信したかに応じて、192.0.2.1 または 198.51.100.1 のいずれかになります。

d. サーバーが直接接続し、上記の shared-network で指定したリモートのサブネットに到達するのに使用されるサブネットの subnet 宣言を追加します。

subnet 203.0.113.0 netmask 255.255.255.0 {}

注記注記

サーバーがこのサブネットに DHCP サービスを提供しない場合は、以下の例のように、subnet 宣言を空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd は起動しません。

2. 必要に応じて、システムの起動時に dhcpd が自動的に起動するように設定します。

# systemctl enable dhcpd

3. dhcpd サービスを開始します。

# systemctl start dhcpd

IPv6 ネットワークの場合

1. /etc/dhcp/dhcpd6.conf ファイルを編集します。

a. その他のディレクティブにこの設定がない場合は、dhcpd が使用するグローバルパラメーターをデフォルトとして追加します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

246

Page 251: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

option dhcp6.domain-search "example.com";default-lease-time 86400;

この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトのリース時間を 86400 秒 (1 日) に設定します。

b. authoritative ステートメントを新しい行に追加します。

authoritative;

重要重要

authoritative ステートメントがない場合、dhcpd サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK で DHCPREQUEST メッセージに応答することはありません。

c. 以下のように、サーバーのインターフェースに直接接続していない IPv6 サブネットに、shared-network 宣言を追加します。

shared-network example { option domain-name-servers 2001:db8:0:1::1:1 ...

subnet6 2001:db8:0:1::1:0/120 { range6 2001:db8:0:1::1:20 2001:db8:0:1::1:100 }

subnet6 2001:db8:0:1::2:0/120 { range6 2001:db8:0:1::2:20 2001:db8:0:1::2:100 } ...}

この例では、2001:db8:0:1::1:0/120 と 2001:db8:0:1::2:0/120 の両方のネットワークの subnet6 宣言を含む共有ネットワーク宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットのいずれかから DHCP 要求を送信するクライアントに割り当てます。

両方のサブネットからのクライアントに対する DNS サーバーの IP は 2001:db8:0:1::1:1 です。

クライアントがどのサブネットから要求を送信したかに応じて、range6 パラメーターで定義された範囲の 空き IPv6 アドレスです。IPv6 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。

d. サーバーが直接接続され、上記の shared-network で指定したリモートサブネットに到達するのに使用されるサブネットの subnet6 宣言を追加します。

subnet6 2001:db8:0:1::50:0/120 {}

注記注記

第第45章章 DHCP サービスの提供サービスの提供

247

Page 252: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

注記注記

サーバーがこのサブネットに DHCP サービスを提供しない場合、subnet6 宣言は以下の例のように空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd は起動しません。

2. 必要に応じて、システムの起動時に dhcpd6 が自動的に開始するように設定します。

# systemctl enable dhcpd6

3. dhcpd6 サービスを起動します。

# systemctl start dhcpd6

関連情報関連情報

/etc/dhcp/dhcpd.conf および /etc/dhcp/dhcpd6.conf で設定したパラメーターの一覧は、manページの dhcp-options(5) を参照してください。

authoritative ステートメントの詳細は、man ページの dhcpd.conf(5) の The authoritative statement のセクションを参照してください。

設定例は、/usr/share/doc/dhcp-server/dhcpd.conf.example ファイルおよび /usr/share/doc/dhcp-server/dhcpd6.conf.example ファイルを参照してください。

詳細は 「DHCP リレーエージェントの設定」 を参照してください。

45.8. DHCP を使用してホストに静的アドレスの割り当て

host 宣言を使用して、DHCP サーバーを設定して、ホストのメディアアクセス制御 (MAC) アドレスに固定 IP アドレスを割り当てることができます。たとえば、この方法を使用して、常に同じ IP アドレスをサーバーまたはネットワークデバイスに割り当てます。

重要重要

MAC アドレスの固定 IP アドレスを設定する場合、IP アドレスは、fixed-address パラメーターおよび fixed-address6 パラメーターで指定されたアドレスプールの外にある必要があります。

IPv4、IPv6、またはその両方のプロトコルに固定アドレスを設定するかどうかに応じて、以下の手順を参照してください。

IPv4 ネットワーク

IPv6 ネットワーク

前提条件前提条件

dhcpd サービスを設定し、実行している。

root ユーザーとしてログインしている。

手順手順

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

248

Page 253: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

IPv4 ネットワークの場合

1. /etc/dhcp/dhcpd.conf ファイルを編集します。

a. host 宣言を追加します。

host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 192.0.2.130;}

以下の例では、DHCP サーバーが、MAC アドレス 52:54:00:72:2f:6e を使用して、常に IP アドレス 192.0.2.130 をホストに割り当てるように設定します。

dhcpd サービスは、fixed-address パラメーターで指定された MAC アドレスでシステムを識別しますが、host 宣言の名前とは異なります。これにより、この名前を、他の host 宣言に一致しない任意の文字列に設定できます。複数のネットワークに同じシステムを設定するには、別の名前を使用します。同じ名前を使用すると、dhcpd が起動に失敗します。

b. 必要に応じて、このホストに固有の host 宣言にその他の設定を追加します。

2. dhcpd サービスを再起動します。

# systemctl start dhcpd

IPv6 ネットワークの場合

1. /etc/dhcp/dhcpd6.conf ファイルを編集します。

a. host 宣言を追加します。

host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address6 2001:db8:0:1::200;}

この例では、DHCP サーバーを設定して、IP アドレス 2001:db8:0:1::20 を常に MACアドレス 52:54:00:72:2f:6e を持つホストに割り当てます。

dhcpd サービスは、host 宣言の名前ではなく、fixed-address6 パラメーターで指定された MAC アドレスでシステムを識別します。これにより、他の host 宣言に固有である限り、この名前を任意の文字列に設定できます。複数のネットワークに同じシステムを設定する場合は、同じ名前を使用すると dhcpd が起動に失敗するため、別の名前を使用します。

b. 必要に応じて、このホストに固有の host 宣言にその他の設定を追加します。

2. dhcpd6 サービスを再起動します。

# systemctl start dhcpd6

関連情報関連情報

/etc/dhcp/dhcpd.conf および /etc/dhcp/dhcpd6.conf で設定したパラメーターの一覧は、manページの dhcp-options(5) を参照してください。

第第45章章 DHCP サービスの提供サービスの提供

249

Page 254: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

設定例は、/usr/share/doc/dhcp-server/dhcpd.conf.example ファイルおよび /usr/share/doc/dhcp-server/dhcpd6.conf.example ファイルを参照してください。

45.9. GROUP 宣言を使用して、パラメーターを複数のホスト、サブネット、および共有ネットワークを同時に適用

group 宣言を使用すると、同じパラメーターを複数のホスト、サブネット、および共有ネットワークに適用できます。

本セクションの手順では、ホストの group 宣言を使用する方法を説明しますが、手順はサブネットと共有ネットワークの場合と同じです。

IPv4、IPv6、またはその両方プロトコルにグループを設定するかどうかに応じて、以下の手順を参照してください。

IPv4 ネットワーク

IPv6 ネットワーク

前提条件前提条件

dhcpd サービスを設定し、実行している。

root ユーザーとしてログインしている。

手順手順

IPv4 ネットワークの場合

1. /etc/dhcp/dhcpd.conf ファイルを編集します。

a. group 宣言を追加します。

group { option domain-name-servers 192.0.2.1;

host server1.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 192.0.2.130; }

host server2.example.com { hardware ethernet 52:54:00:1b:f3:cf; fixed-address 192.0.2.140; }}

この group は、2 つの host エントリーを 1 つのグループにまとめます。dhcpd サービスは、option domain-name-servers パラメータに設定した値を、グループ内の両方のホストに適用します。

b. 必要に応じて、このホストに固有の group 宣言にその他の設定を追加します。

2. dhcpd サービスを再起動します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

250

Page 255: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# systemctl start dhcpd

IPv6 ネットワークの場合

1. /etc/dhcp/dhcpd6.conf ファイルを編集します。

a. group 宣言を追加します。

group { option dhcp6.domain-search "example.com";

host server1.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 2001:db8:0:1::200; }

host server2.example.com { hardware ethernet 52:54:00:1b:f3:cf; fixed-address 2001:db8:0:1::ba3; }}

この group は、2 つの host エントリーを 1 つのグループにまとめます。dhcpd サービスは、option dhcp6.domain-search パラメーターに設定された値をグループ内の両方のホストに適用します。

b. 必要に応じて、このホストに固有の group 宣言にその他の設定を追加します。

2. dhcpd6 サービスを再起動します。

# systemctl start dhcpd6

関連情報関連情報

/etc/dhcp/dhcpd.conf および /etc/dhcp/dhcpd6.conf で設定したパラメーターの一覧は、manページの dhcp-options(5) を参照してください。

設定例は、/usr/share/doc/dhcp-server/dhcpd.conf.example ファイルおよび /usr/share/doc/dhcp-server/dhcpd6.conf.example ファイルを参照してください。

45.10. 破損したリースデータベースの復元

DHCP サーバーが、リースデータベースに関連するエラー (Corrupt lease file - possible data loss! など) をログに記録すると、dhcpd サービスが作成するコピーからリースデータベースを復元できます。このコピーには、データベースの最新のステータスが反映されない場合があることに注意してください。

第第45章章 DHCP サービスの提供サービスの提供

251

Page 256: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

警告警告

リースデータベースをバックアップに置き換えるのではなく削除すると、現在割り当てられているリースに関する情報がすべて失われます。その結果、DHCP サーバーは、他のホストに割り当てられていて、まだ期限が切れていないクライアントにリースを割り当てることができます。これにより IP の競合が発生します。

DHCPv4、DHCPv6、またはその両方のデータベースを復元するかどうかに応じて、以下の手順を参照してください。

DHCPv4 リースデータベースの復元

DHCPv6 リースデータベースの復元

前提条件前提条件

root ユーザーとしてログインしている。

リースデータベースが破損している。

手順手順

DHCPv4 リースデータベースの復元

1. dhcpd サービスを停止します。

# systemctl stop dhcpd

2. 破損したリースデータベースの名前を変更します。

# mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corrupt

3. リースデータベースを更新する際に作成される dhcp サービスのリースデータベースのコピーを復元します。

# cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leases

重要重要

リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。

4. dhcpd サービスを開始します。

# systemctl start dhcpd

DHCPv6 リースデータベースの復元

1. dhcpd6 サービスを停止します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

252

Page 257: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# systemctl stop dhcpd6

2. 破損したリースデータベースの名前を変更します。

# mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corrupt

3. リースデータベースを更新する際に作成される dhcp サービスのリースデータベースのコピーを復元します。

# cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leases

重要重要

リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。

4. dhcpd6 サービスを起動します。

# systemctl start dhcpd6

関連情報関連情報

詳細は、「dhcpd サービスのリースデータベース」を参照してください。

45.11. DHCP リレーエージェントの設定

DHCP リレーエージェント (dhcrelay) は、DHCP サーバーを使用しないサブネットから、他のサブネットにある 1 台以上の DHCP サーバーで、DHCP 要求および BOOTP 要求のリレーを有効にします。DHCP クライアントが情報を要求すると、DHCP リレーエージェントは、指定した DHCP サーバーの一覧に要求を転送します。DHCP サーバーが応答を返すと、DHCP リレーエージェントはこの要求をクライアントに転送します。

IPv4、IPv6、またはその両方のプロトコルに DHCP リレーを設定するかどうかに応じて、以下の手順を参照してください。

IPv4 ネットワーク

IPv6 ネットワーク

前提条件前提条件

root ユーザーとしてログインしている。

手順手順

IPv4 ネットワークの場合

1. dhcp-relay パッケージをインストールします。

# yum install dhcp-relay

2. /lib/systemd/system/dhcrelay.service ファイルを /etc/systemd/system/ ディレクトリー

第第45章章 DHCP サービスの提供サービスの提供

253

Page 258: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. /lib/systemd/system/dhcrelay.service ファイルを /etc/systemd/system/ ディレクトリーにコピーします。

# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/

/usr/lib/systemd/system/dhcrelay.service ファイルは編集しないでください。dhcp-relayパッケージの今後の更新により、変更がオーバーライドされます。

3. /etc/systemd/system/dhcrelay.service ファイルを編集し、-i interface パラメーターと、サブネットに対応する DHCPv4 サーバーの IP アドレス一覧を追加します。

ExecStart=/usr/sbin/dhcrelay -d --no-pid -i enp1s0 192.0.2.1

dhcrelay は、この追加パラメーターを使用して、enp1s0 インターフェースの DHCPv4 要求をリッスンし、IP 192.0.2.1で DHCP サーバーに転送します。

4. systemd マネージャー設定を再読み込みします。

# systemctl daemon-reload

5. 必要に応じて、システムの起動時に dhcrelay サービスが開始するように設定します。

# systemctl enable dhcrelay.service

6. dhcrelay サービスを開始します。

# systemctl start dhcrelay.service

IPv6 ネットワークの場合

1. dhcp-relay パッケージをインストールします。

# yum install dhcp-relay

2. /lib/systemd/system/dhcrelay.service ファイルを /etc/systemd/system/ ディレクトリーにコピーして、dhcrelay6.service ファイルに名前を付けます。

# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service

/usr/lib/systemd/system/dhcrelay.service ファイルは編集しないでください。dhcp-relayパッケージの今後の更新により、変更がオーバーライドされます。

3. /etc/systemd/system/dhcrelay6.service ファイルを編集し、-l receiving_interface パラメーターおよび -u outgoing_interface パラメーターを追加します。

ExecStart=/usr/sbin/dhcrelay -d --no-pid -l enp1s0 -u enp7s0

これらの追加パラメーターを使用すると、dhcrelay は enp1s0 インターフェースのDHCPv6 要求をリッスンし、enp7s0 インターフェースに接続されたネットワークに転送します。

4. systemd マネージャー設定を再読み込みします。

# systemctl daemon-reload

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

254

Page 259: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

5. 必要に応じて、システムの起動時に dhcrelay6 サービスが開始するように設定します。

# systemctl enable dhcrelay6.service

6. dhcrelay6 サービスを開始します。

# systemctl start dhcrelay6.service

関連情報関連情報

dhcrelay の詳細は、man ページの dhcrelay(8) を参照してください。

第第45章章 DHCP サービスの提供サービスの提供

255

Page 260: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第46章 FIREWALLD の使用および設定ファイアウォールファイアウォール は、外部からの不要なトラフィックからマシンを保護する方法です。ファイアウォーファイアウォールルールルルール セットを定義することで、ホストマシンへの着信ネットワークトラフィックを制御できます。このようなルールは、着信トラフィックを分類して、拒否または許可するために使用されます。

firewalld は、D-Bus インターフェースを使用して、動的にカスタマイズできるホストベースのファイアウォールを提供するファイアウォールサービスデーモンです。ルールが変更するたびに、ファイアウォールデーモンを再起動しなくても、ルールの作成、変更、および削除を動的に可能にします。

firewalld は、ゾーンおよびサービスの概念を使用して、トラフィック管理を簡素化します。ゾーンは、事前定義したルールセットです。ネットワークインターフェースおよびソースをゾーンに割り当てることができます。許可されているトラフィックは、コンピューターが接続するネットワークと、このネットワークが割り当てられているセキュリティーレベルに従います。ファイアウォールサービスは、特定のサービスに着信トラフィックを許可するのに必要なすべての設定を扱う事前定義のルールで、ゾーンに適用されます。

サービスは、ネットワーク接続に 1 つ以上のポートまたはアドレスを使用します。ファイアウォールは、ポートに基づいて接続のフィルターを設定します。サービスに対してネットワークトラフィックを許可するには、そのポートを解放する必要があります。firewalld は、明示的に解放されていないポートのトラフィックをすべてブロックします。trusted などのゾーンでは、デフォルトですべてのトラフィックを許可します。

nftables バックエンドを使用した firewalld が、--direct オプションを使用して、カスタムの nftablesルールを firewalld に渡すことに対応していないことに注意してください。

46.1. FIREWALLD の使用

46.1.1. firewalld、nftables、または iptables を使用する場合

以下は、次のユーティリティーのいずれかを使用する必要があるシナリオの概要です。

firewalld: 簡単なファイアウォールのユースケースには、firewalld ユーティリティーを使用します。このユーティリティーは、使いやすく、このようなシナリオの一般的な使用例に対応しています。

nftables: nftables ユーティリティーを使用して、ネットワーク全体など、複雑なパフォーマンスに関する重要なファイアウォールを設定します。

iptables: Red Hat Enterprise Linux 8 の iptables ユーティリティーは、レガシーレガシー バックエンドの代わりに nf_tables カーネル API を使用します。nf_tables API は、 iptables コマンドを使用するスクリプトが、Red Hat Enterprise Linux 8 で引き続き動作するように、後方互換性を提供します。新しいファイアウォールスクリプトの場合には、Red Hat は nftables を使用することを推奨します。

重要重要

異なるファイアウォールサービスが相互に影響することを回避するには、RHEL ホストでそのうちの 1 つだけを実行し、他のサービスを無効にします。

46.1.2. ゾーン

firewalld は、インターフェースに追加する信頼レベルと、そのネットワークのトラフィックに従っ

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

256

Page 261: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

firewalld は、インターフェースに追加する信頼レベルと、そのネットワークのトラフィックに従って、複数のネットワークを複数のゾーンに分類できます。接続は、1 つのゾーンにしか指定できませんが、ゾーンは多くのネットワーク接続に使用できます。

NetworkManager は、firewalld にインターフェースのゾーンを通知します。以下を使用して、ゾーンをインターフェースに割り当てることができます。

NetworkManager

firewall-config ツール

firewall-cmd コマンドラインツール

RHEL Web コンソール

後者の 3 つは、適切な NetworkManager 設定ファイルの編集のみを行います。Web コンソールを使用してインターフェースのゾーンを変更する (firewall-cmd または firewall-config) と、リクエストが NetworkManager に転送され、 firewalld では処理されません。

事前定義したゾーンは /usr/lib/firewalld/zones/ ディレクトリーに保存され、利用可能なネットワークインターフェースに即座に適用されます。このファイルは、修正しないと /etc/firewalld/zones/ ディレクトリーにコピーされません。事前定義したゾーンのデフォルト設定は以下のようになります。

block

IPv4 の場合は icmp-host-prohibited メッセージ、 IPv6 の場合は icmp6-adm-prohibited メッセージで、すべての着信ネットワーク接続が拒否されます。システムで開始したネットワーク接続のみが可能です。

dmz

公開アクセスは可能ですが、内部ネットワークへのアクセスに制限がある非武装地帯にあるコンピューター向けです。選択した着信接続のみが許可されます。

drop

着信ネットワークパケットは、通知なしで遮断されます。発信ネットワーク接続だけが可能です。

external

マスカレードをルーター用に特別に有効にした外部ネットワークでの使用向けです。自分のコンピューターを保護するため、ネットワーク上の他のコンピューターを信頼しません。選択した着信接続のみが許可されます。

home

そのネットワークでその他のコンピューターをほぼ信頼できる自宅での使用向けです。選択した着信接続のみが許可されます。

internal

そのネットワークでその他のコンピューターをほぼ信頼できる内部ネットワーク向けです。選択した着信接続のみが許可されます。

public

そのネットワークでその他のコンピューターを信頼できないパブリックエリア向けです。選択した着信接続のみが許可されます。

trusted

すべてのネットワーク接続が許可されます。

work

そのネットワークで、その他のコンピューターをほぼ信頼できる職場での使用向けです。選択した着信接続のみが許可されます。

第第46章章 FIREWALLD の使用および設定の使用および設定

257

Page 262: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

このゾーンのいずれかを デフォルトデフォルト ゾーンに設定できます。インターフェース接続を NetworkManager に追加すると、デフォルトゾーンに割り当てられます。firewalld のデフォルトゾーンは、インストール時に public ゾーンに設定されます。デフォルトゾーンは変更できます。

注記注記

ネットワークゾーン名は、分かりやすく、ユーザーが妥当な決定をすばやく下せるような名前が付けられています。セキュリティー問題を回避するために、ニーズおよびリスク評価に合わせて、デフォルトゾーンの設定の見直しを行ったり、不要なサービスを無効にしてください。

関連情報関連情報

firewalld.zone(5) の man ページ

46.1.3. 事前定義サービス

サービスが、ローカルポート、プロトコル、ソースポート、宛先、そしてサービスが有効になると自動的に読み込まれるファイアウォールのヘルパーモジュールの一覧を指す場合があります。サービスを使用すると、ポートのオープン、プロトコルの定義、パケット転送の有効化などを 1 つ 1 つ行うのではなく、1 回のステップで定義できます。

サービス設定オプションと、一般的なファイル情報は、firewalld.service(5) の man ページで説明されています。サービスは、個々の XML 設定ファイルを使用して指定し、名前は、service-name.xml のような形式になります。プロトコル名は、firewalld のサービス名またはアプリケーション名よりも優先されます。

サービスは、グラフィカルな firewall-config ツールと、firewall-cmd および firewall-offline-cmd を使用して追加または削除できます。

または、/etc/firewalld/services/ ディレクトリーの XML ファイルを変更できます。ユーザーがサービスを追加または変更しないと、/etc/firewalld/services/ には、対応する XML ファイルが記載されません。/usr/lib/firewalld/services/ ディレクトリーのファイルは、サービスを追加または変更する場合にテンプレートとして使用できます。

関連情報関連情報

firewalld.service(5) の man ページ

46.2. FIREWALLD の現在の状況および設定の表示

46.2.1. firewalld の現在の状況の表示

ファイアウォールサービス firewalld は、システムにデフォルトでインストールされています。CLI インターフェース firewalld を使用して、サービスが実行していることを確認します。

手順手順

1. サービスの状況を表示するには、次のコマンドを実行します。

# firewall-cmd --state

2. サービスの状況の詳細は、systemctl status サブコマンドを実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

258

Page 263: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# systemctl status firewalldfirewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor pr Active: active (running) since Mon 2017-12-18 16:05:15 CET; 50min ago Docs: man:firewalld(1) Main PID: 705 (firewalld) Tasks: 2 (limit: 4915) CGroup: /system.slice/firewalld.service └─705 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid

関連情報関連情報

設定を編集する前に、firewalld の設定方法と、強制するルールを確認することが重要です。ファイアウォール設定を表示するには、root ユーザーで firewall-cmd --list-all を使用します。

46.2.2. GUI を使用して許可されるサービスの表示

グラフィカルの firewall-config ツールを使用してサービスの一覧を表示する場合は、Super キーを押してアクティビティーの概要を開き、firewall と入力して Enter を押します。firewall-config ツールが表示されます。Services タブの下にサービスの一覧が表示されます。

グラフィカルなファイアウォール設定ツールは、コマンドラインを使用して起動できます。

手順手順

コマンドラインを使用してグラフィカルなファイアウォール設定ツールを起動するには、次のコマンドを実行します。

$ firewall-config

Firewall Configuration ウィンドウが開きます。このコマンドは通常のユーザーとして実行できますが、監理者パスワードが求められる場合もあります。

46.2.3. CLI を使用した firewalld 設定の表示

CLI クライアントで、現在のファイアウォール設定を、複数の方法で表示できます。--list-all オプションは、firewalld 設定の完全概要を表示します。

firewalld は、ゾーンを使用してトラフィックを管理します。--zone オプションでゾーンを指定しないと、コマンドは、アクティブネットワークインターフェースおよび接続に割り当てたデフォルトゾーンに対して有効になります。

手順手順

デフォルトゾーンに関連する情報をすべて表示するには、次のコマンドを実行します。

# firewall-cmd --list-allpublic target: default icmp-block-inversion: no interfaces: sources: services: ssh dhcpv6-client ports:

第第46章章 FIREWALLD の使用および設定の使用および設定

259

Page 264: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

設定を表示するゾーンを指定するには、たとえば、--zone=zone-name 引数を firewall-cmd --list-all コマンドに指定します。

# firewall-cmd --list-all --zone=homehome target: default icmp-block-inversion: no interfaces: sources: services: ssh mdns samba-client dhcpv6-client... [trimmed for clarity]

サービス、ポートなど、特定情報の設定を確認するには、特定のオプションを使用します。firewalld の man ページか、コマンドの help でオプションの一覧を表示します。

# firewall-cmd --help

現在のゾーンで許可されているサービスを表示するには、次のコマンドを実行します。

# firewall-cmd --list-servicesssh dhcpv6-client

注記注記

CLI ツールを使用して一覧表示した特定のサブパートの設定は、解釈が難しいことがしばしばあります。たとえば、firewalld で SSH サービスを許可し、そのサービスに必要なポート (22) を開くことができます。許可されたサービスを一覧表示すると、一覧には SSH サービスが表示されますが、開いているポートを一覧表示しても、何も表示されません。したがって、--list-all オプションを使用して、完全な情報を取得することが推奨されます。

46.3. FIREWALLD でネットワークトラフィックの制御

46.3.1. 緊急時に CLI を使用してすべてのトラフィックの無効化

システムへの攻撃などの緊急な状態にあるとき、すべてのネットワークトラフィックを無効にし、攻撃を遮断できます。

手順手順

1. ネットワークトラフィックを直ちに無効にするには、パニックモードをオンにします。

# firewall-cmd --panic-on

重要重要

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

260

Page 265: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

重要重要

パニックモードを有効にすると、ネットワークトラフィックがすべて停止します。したがって、そのマシンへの物理アクセスがある場合、またはシリアルコンソールを使用してログインする場合に限り使用してください。

2. パニックモードをオフにし、ファイアウォールを永続設定に戻します。パニックモードを無効にするには、次のコマンドを実行します。

# firewall-cmd --panic-off

検証検証

パニックモードを有効または無効にするには、次のコマンドを実行します。

# firewall-cmd --query-panic

46.3.2. CLI を使用して事前定義されたサービスでトラフィックの制御

トラフィックを制御する最も簡単な方法は、事前定義したサービスを firewalld に追加する方法です。これにより、必要なすべてのポートが開き、service definition file に従ってその他の設定が変更されます。

手順手順

1. サービスが許可されていないことを確認します。

# firewall-cmd --list-servicesssh dhcpv6-client

2. 事前定義したサービスの一覧を表示します。

# firewall-cmd --get-servicesRH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry ...[trimmed for clarity]

3. サービスを、許可されたサービスに追加します。

# firewall-cmd --add-service=<service-name>

4. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

46.3.3. GUI を使用して事前定義サービスでトラフィックを制御

この手順では、グラフィカルユーザーインターフェースを使用して、事前定義サービスでネットワークトラフィックを制御する方法を説明します。

第第46章章 FIREWALLD の使用および設定の使用および設定

261

Page 266: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. 事前定義したサービスまたはカスタマイズしたサービスを有効または無効にするには、以下を行います。

a. firewall-config ツールを起動して、サービスを設定するネットワークゾーンを選択します。

b. Services タブを選択します。

c. 信頼するサービスタイプのチェックボックスを選択してください。ブロックするサービスタイプのチェックボックスの選択は解除してください。

2. サービスを編集するには、以下を行います。

a. firewall-config ツールを起動します。

b. Configuration メニューから Permanent を選択します。Services ウィンドウの下部に、その他のアイコンおよびメニューボタンが表示されます。

c. 設定するサービスを選択します。

Ports、Protocols、Source Port のタブでは、選択したサービスのポート、プロトコル、およびソースポートの追加、変更、ならびに削除が可能です。モジュールタブは、Netfilter ヘルパーモジュールの設定を行います。Destination タブは、特定の送信先アドレスとインターネットプロトコル (IPv4 または IPv6) へのトラフィックが制限できます。

注記注記

ランタイムランタイム モードでは、サービス設定を変更できません。

46.3.4. 新しいサービスの追加

サービスは、グラフィカルな firewall-config ツールと、firewall-cmd および firewall-offline-cmd を使用して追加または削除できます。または、/etc/firewalld/services/ にある XML ファイルを編集できます。ユーザーがサービスを追加または変更しないと、対応する XML ファイルが /etc/firewalld/services/ に作成されません。/usr/lib/firewalld/services/ のファイルは、サービスを追加または変更する際にテンプレートとして使用できます。

注記注記

サービス名は英数字にする必要があります。_ (下線) 文字および - (ハイフン) 文字も使用できます。

手順手順

firewalld がアクティブでない場合に、ターミナルで新しいサービスを追加するには、firewall-cmd または firewall-offline-cmd を使用します。

1. 新しい、空のサービスを追加するには、次のコマンドを実行します。

$ firewall-cmd --new-service=service-name --permanent

2. ローカルファイルを使用して新規サービスを追加するには、次のコマンドを使用します。

$ firewall-cmd --new-service-from-file=service-name.xml --permanent

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

262

Page 267: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

追加オプション --name=service-name を指定して、サービス名を変更できます。

3. サービス設定を変更すると、直ちにサービスの更新コピーが /etc/firewalld/services/ に作成できます。root で次のコマンドを実行して、サービスを手動でコピーします。

# cp /usr/lib/firewalld/services/service-name.xml /etc/firewalld/services/service-name.xml

firewalld は、最初に /usr/lib/firewalld/services のファイルを読み込みます。ファイルは /etc/firewalld/services に置かれ、そのファイルが有効な場合は、/usr/lib/firewalld/services で一致するファイルを上書きします。/usr/lib/firewalld/services で上書きしたファイルは、/etc/firewalld/services で一致するファイルが削除されるとすぐに、もしくはサービスのデフォルトを読み込むように firewalld が求められた場合に使用されます。これに該当するのは永続環境のみです。ランタイム環境でフォールバックさせるには、再読み込みが必要です。

46.3.5. GUI を使用してポートを開く

ファイアウォールを経由して特定のポートに向かうトラフィックを許可するには、以下を行います。

1. firewall-config ツールを起動して、設定を変更するネットワークゾーンを選択します。

2. 右側の Ports タブを選択し、Add ボタンをクリックします。Port and Protocol ウィンドウが開きます。

3. 許可するポート番号またはポートの範囲を入力します。

4. リストから tcp または udp を選択します。

46.3.6. GUI を使用してプロトコルを使用したトラフィックの制御

特定のプロトコルを使用してファイアウォールを経由したトラフィックを許可するには、以下を行います。

1. firewall-config ツールを起動して、設定を変更するネットワークゾーンを選択します。

2. 右側で Protocols タブを選択し、Add ボタンをクリックします。Protocol ウィンドウが開きます。

3. リストからプロトコルを選択するか、Other Protocol チェックボックスを選択し、そのフィールドにプロトコルを入力します。

46.3.7. GUI を使用してソースポートを開く

特定ポートからファイアウォールを経由したトラフィックを許可するには、以下を行います。

1. firewall-config ツールを起動し、設定を変更するネットワークゾーンを選択します。

2. 右側の Source Port タブを選択し、Add ボタンをクリックします。Source Port ウィンドウが開きます。

3. 許可するポート番号またはポートの範囲を入力します。リストから tcp または udp を選択します。

第第46章章 FIREWALLD の使用および設定の使用および設定

263

Page 268: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

46.4. CLI を使用したポートの制御

ポートは、オペレーティングシステムが、ネットワークトラフィックを受信し、区別し、システムサービスに従って転送する論理デバイスです。これは、通常、ポートをリッスンするデーモンにより示されますが、このポートに入るトラフィックを待ちます。

通常、システムサービスは、サービスに予約されている標準ポートでリッスンします。httpd デーモンは、たとえば、ポート 80 をリッスンします。ただし、デフォルトでは、システム管理者は、セキュリティーを強化するため、またはその他の理由により、別のポートをリッスンするようにデーモンを設定します。

46.4.1. ポートを開く

開かれたポートを介して、システムが外部からアクセスできます。これはセキュリティーリスクでもあります。一般的に、ポートを閉じたままにし、特定サービスに要求される場合に限り開きます。

手順手順

現在のゾーンで開かれたポートの一覧を表示するには、以下を行います。

1. 許可されているポートの一覧を表示します。

# firewall-cmd --list-ports

2. 許可されているポートにポートを追加して、着信トラフィックに対してそのポートを開きます。

# firewall-cmd --add-port=port-number/port-type

ポートタイプは、tcp、udp、sctp、または dccp になります。このタイプは、ネットワーク接続の種類と一致させる必要があります。

3. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

ポートタイプは、tcp、udp、sctp、または dccp になります。このタイプは、ネットワーク接続の種類と一致させる必要があります。

46.4.2. ポートを閉じる

開しているポートが必要なくなった場合に、firewalld のポートを閉じます。ポートをそのままにするとセキュリティーリスクとなるため、使用されなくなったらすぐに不要なポートを閉じることが強く推奨されます。

手順手順

ポートを閉じるには、許可されているポートの一覧からそれを削除します。

1. 許可されているポートの一覧を表示します。

# firewall-cmd --list-ports

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

264

Page 269: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

警告警告

このコマンドにより、ポートとして開かれているポートのみが表示されます。サービスとして開いているポートは表示されません。したがって、--list-ports ではなく --list-all オプションの使用を検討してください。

2. 「許可されているポート」からポートを削除し、着信トラフィックに対して閉じます。

# firewall-cmd --remove-port=port-number/port-type

3. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

46.5. ファイアウォールゾーンでの作業

ゾーンは、着信トラフィックをより透過的に管理する概念を表しています。ゾーンはネットワークインターフェースに接続されているか、ソースアドレスの範囲に割り当てられます。各ゾーンは個別にファイアウォールルールを管理しますが、これにより、複雑なファイアウォール設定を定義してトラフィックに割り当てることができます。

46.5.1. ゾーンの一覧

この手順では、コマンドラインでゾーンの一覧を表示する方法を説明します。

手順手順

1. システムで利用可能なゾーンを確認するには、次のコマンドを実行します。

# firewall-cmd --get-zones

firewall-cmd --get-zones コマンドは、システムで利用可能な全てのゾーンを表示し、特定ゾーンの詳細は表示しません。

2. すべてのゾーンで詳細情報を表示する場合は、次のコマンドを実行します。

# firewall-cmd --list-all-zones

3. 特定ゾーンに関する詳細情報を表示する場合は、次のコマンドを実行します。

# firewall-cmd --zone=zone-name --list-all

46.5.2. 特定ゾーンに対する firewalld 設定の修正

「CLI を使用して事前定義されたサービスでトラフィックの制御」 および 「CLI を使用したポートの制御」 は、現在作業中のゾーンの範囲にサービスを追加するか、またはゾーンの範囲にあるポートを修正する方法を説明します。別のゾーンへのルールの設定が必要になる場合もあります。

手順手順

第第46章章 FIREWALLD の使用および設定の使用および設定

265

Page 270: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

別のゾーンに指定するには、--zone=zone-name オプションを使用します。たとえば、publicゾーンで SSH サービスを許可するには、次のコマンドを実行します。

# firewall-cmd --add-service=ssh --zone=public

46.5.3. デフォルトゾーンの変更

システム管理者は、設定ファイルのネットワークインターフェースにゾーンを割り当てます。特定のゾーンに割り当てられないインターフェースは、デフォルトゾーンに割り当てられます。firewalldサービスを再起動するたびに、firewalld は、デフォルトゾーンの設定を読み込み、それをアクティブにします。

手順手順

デフォルトゾーンを設定するには、以下を行います。

1. 現在のデフォルトゾーンを表示します。

# firewall-cmd --get-default-zone

2. 新しいデフォルトゾーンを設定します。

# firewall-cmd --set-default-zone zone-name

注記注記

この手順では、--permanent オプションを使用しなくても、設定は永続化します。

46.5.4. ゾーンへのネットワークインターフェースの割り当て

複数のゾーンに複数のルールセットを定義して、使用されているインターフェースのゾーンを変更することで、迅速に設定を変更できます。各インターフェイスに特定のゾーンを設定して、そのゾーンを通過するトラフィックを設定できます。

手順手順

特定インターフェースにゾーンを割り当てるには、以下を行います。

1. アクティブゾーン、およびそのゾーンに割り当てられているインターフェースを一覧表示します。

# firewall-cmd --get-active-zones

2. 別のゾーンにインターフェースを割り当てます。

# firewall-cmd --zone=zone_name --change-interface=interface_name --permanent

46.5.5. nmcliを使用して接続にゾーンを割り当て

この手順では、nmcli ユーティリティーを使用して、firewalld ゾーンを NetworkManager 接続に追加する方法を説明します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

266

Page 271: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. ゾーンを NetworkManager 接続プロファイルに割り当てます。

# nmcli connection modify profile connection.zone zone_name

2. 接続の再読み込みを行います。

# nmcli connection up profile

46.5.6. ifcfg ファイルでゾーンをネットワーク接続に手動で割り当て

NetworkManager で接続を管理する場合は、NetworkManager が使用するゾーンを認識する必要があります。すべてのネットワーク接続にゾーンを指定できます。これにより、ポータブルデバイスを使用したコンピューターの場所に従って、様々なファイアウォールを柔軟に設定できるようになります。したがって、ゾーンおよび設定には、会社または自宅など、様々な場所を指定できます。

手順手順

接続のゾーンを設定するには、/etc/sysconfig/network-scripts/ifcfg-connection_name ファイルを変更して、この接続にゾーンを割り当てる行を追加します。

ZONE=zone_name

46.5.7. 新しいゾーンの作成

カスタムゾーンを使用するには、新しいゾーンを作成したり、事前定義したゾーンなどを使用したりします。新しいゾーンには --permanent オプションが必要となり、このオプションがなければコマンドは動作しません。

手順手順

1. 新しいゾーンを作成します。

# firewall-cmd --new-zone=zone-name

2. 作成したゾーンが永続設定に追加されたかどうかを確認します。

# firewall-cmd --get-zones

3. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

46.5.8. ゾーンの設定ファイル

また、ゾーンの設定ファイルゾーンの設定ファイル を使用してゾーンを作成できます。このアプローチは、新しいゾーンを作成する必要がある場合に、別のゾーンの設定を変更して利用する場合に便利です。

firewalld ゾーン設定ファイルには、ゾーンに対する情報があります。これは、XML ファイル形式で、ゾーンの説明、サービス、ポート、プロトコル、icmp-block、マスカレード、転送ポート、およびリッチ言語ルールです。ファイル名は zone-name.xml となります。zone-name の長さは 17 文字に制限さ

第第46章章 FIREWALLD の使用および設定の使用および設定

267

Page 272: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

れます。ゾーンの設定ファイルは、/usr/lib/firewalld/zones/ ディレクトリーおよび /etc/firewalld/zones/ ディレクトリーに置かれています。

以下の例は、TCP プロトコルまたは UDP プロトコルの両方に、1 つのサービス (SSH) および 1 つのポート範囲を許可する設定を示します。

<?xml version="1.0" encoding="utf-8"?><zone> <short>My Zone</short> <description>Here you can describe the characteristic features of the zone.</description> <service name="ssh"/> <port protocol="udp" port="1025-65535"/> <port protocol="tcp" port="1025-65535"/></zone>

そのゾーンの設定を変更するには、セクションを追加または削除して、ポート、転送ポート、サービスなどを追加します。

関連情報関連情報

詳細は、man ページの firewalld.zone を参照してください。

46.5.9. 着信トラフィックにデフォルトの動作を設定するゾーンターゲットの使用

すべてのゾーンに対して、特に指定されていない着信トラフィックを処理するデフォルト動作を設定できます。そのような動作は、ゾーンのターゲットを設定することで定義されます。オプションは、default、ACCEPT、REJECT、および DROP の 4 つになります。ターゲットを ACCEPT に設定すると、特定ルールで無効にした着信パケット以外のパケットをすべて許可します。REJECT または DROP にターゲットを設定すると、特定のルールで許可したパケット以外の着信パケットがすべて無効になります。パケットが拒否されるとソースマシンに通知されますが、パケットが破棄される時は情報が送信されません。

手順手順

ゾーンにターゲットを設定するには、以下を行います。

1. 特定ゾーンに対する情報を一覧表示して、デフォルトゾーンを確認します。

$ firewall-cmd --zone=zone-name --list-all

2. ゾーンに新しいターゲットを設定します。

# firewall-cmd --permanent --zone=zone-name --set-target=<default|ACCEPT|REJECT|DROP>

46.6. ゾーンを使用し、ソースに応じた着信トラフィックの管理

46.6.1. ゾーンを使用し、ソースに応じた着信トラフィックの管理

ゾーンを使用して、そのソースに基づいて着信トラフィックを管理するゾーンを使用できます。これにより、着信トラフィックを分類し、複数のゾーンに向け、トラフィックにより到達できるサービスを許可または拒否できます。

ソースをゾーンに追加する場合は、ゾーンがアクティブになり、そのソースからの着信トラフィック

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

268

Page 273: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

は、それを介して行われます。各ゾーンに異なる設定を指定できますが、それは指定したソースから順次トラフィックに適用されます。ネットワークインターフェースが 1 つしかない場合でも、複数のゾーンを使用できます。

46.6.2. ソースの追加

着信トラフィックを特定のソースに転送する場合は、そのゾーンにソースを追加します。ソースは、CIDR (Classless Inter-domain Routing) 表記法の IP アドレスまたは IP マスクになります。

注記注記

ネットワーク範囲が重複している複数のゾーンを追加する場合は、ゾーン名で順序付けされ、最初のゾーンのみが考慮されます。

現在のゾーンにソースを設定するには、次のコマンドを実行します。

# firewall-cmd --add-source=<source>

特定ゾーンのソース IP アドレスを設定するには、次のコマンドを実行します。

# firewall-cmd --zone=zone-name --add-source=<source>

以下の手順は、信頼される信頼される ゾーンで 192.168.2.15 からのすべての着信トラフィックを許可します。

手順手順

1. 利用可能なゾーンの一覧を表示します。

# firewall-cmd --get-zones

2. 永続化モードで、信頼ゾーンにソース IP を追加します。

# firewall-cmd --zone=trusted --add-source=192.168.2.15

3. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

46.6.3. ソースの削除

ゾーンからソースを削除すると、そのゾーンからのトラフィックを遮断します。

手順手順

1. 必要なゾーンに対して許可されているソースの一覧を表示します。

# firewall-cmd --zone=zone-name --list-sources

2. ゾーンからソースを永続的に削除します。

# firewall-cmd --zone=zone-name --remove-source=<source>

第第46章章 FIREWALLD の使用および設定の使用および設定

269

Page 274: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

46.6.4. ソースポートの追加

発信源となるポートに基づいたトラフィックの分類を有効にするには、--add-source-port オプションを使用してソースポートを指定します。--add-source オプションと組み合わせて、トラフィックを特定の IP アドレスまたは IP 範囲に制限できます。

手順手順

ソースポートを追加するには、次のコマンドを実行します。

# firewall-cmd --zone=zone-name --add-source-port=<port-name>/<tcp|udp|sctp|dccp>

46.6.5. ソースポートの削除

ソースポートを削除して、送信元ポートに基づいてトラフィックの分類を無効にします。

手順手順

ソースポートを削除するには、次のコマンドを実行します。

# firewall-cmd --zone=zone-name --remove-source-port=<port-name>/<tcp|udp|sctp|dccp>

46.6.6. ゾーンおよびソースを使用して特定ドメインのみに対してサービスの許可

特定のネットワークからのトラフィックを許可して、マシンのサービスを使用するには、ゾーンおよびソースを使用します。以下の手順では、他のトラフィックがブロックされている間に 192.0.2.0/24 ネットワークからの HTTP トラフィックのみを許可します。

警告警告

このシナリオを設定する場合は、デフォルトデフォルト のターゲットを持つゾーンを使用します。ターゲットが ACCEPT に設定されたゾーンを使用することは、192.0.2.0/24からのトラフィックでは、ネットワーク接続がすべて許可されるため、セキュリティー上のリスクになります。

手順手順

1. 利用可能なゾーンの一覧を表示します。

# firewall-cmd --get-zonesblock dmz drop external home internal public trusted work

2. IP 範囲を 内部内部 ゾーンに追加し、ゾーンを介してソースから発信されるトラフィックをルーティングします。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

270

Page 275: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# firewall-cmd --zone=internal --add-source=192.0.2.0/24

3. http サービスを 内部内部 ゾーンに追加します。

# firewall-cmd --zone=internal --add-service=http

4. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

検証検証

内部内部 ゾーンがアクティブで、サービスが許可されていることを確認します。

# firewall-cmd --zone=internal --list-allinternal (active) target: default icmp-block-inversion: no interfaces: sources: 192.0.2.0/24 services: cockpit dhcpv6-client mdns samba-client ssh http ...

関連情報関連情報

ゾーンの詳細は、man ページの firewalld.zones(5) を参照してください。

46.7. FIREWALLD を使用した NAT の設定

firewalld では、以下のネットワークアドレス変換 (NAT) タイプを設定できます。

マスカレーディング

ソース NAT (SNAT)

宛先 NAT (DNAT)

redirect

46.7.1. 異なる NAT タイプ - マスカレード、ソース NAT、宛先 NAT、リダイレクト

以下は、ネットワークアドレス変換 (NAT) タイプになります。

マスカレードおよびソースのマスカレードおよびソースの NAT (SNAT)

この NAT タイプのいずれかを使用して、パケットのソース IP アドレスを変更します。たとえば、インターネットサービスプロバイダーはプライベート IP 範囲( 10.0.0.0/8 など)をルーティングしません。ネットワークでプライベート IP 範囲を使用し、ユーザーがインターネット上のサーバーにアクセスできるようにする必要がある場合は、この範囲のパケットのソース IP アドレスをパブリックIP アドレスにマップします。マスカレードおよび SNAT の両方は非常に似ています。相違点は次のとおりです。

マスカレードは、出力インターフェースの IP アドレスを自動的に使用します。したがっ

第第46章章 FIREWALLD の使用および設定の使用および設定

271

Page 276: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

マスカレードは、出力インターフェースの IP アドレスを自動的に使用します。したがって、出力インターフェースが動的 IP アドレスを使用する場合は、マスカレードを使用します。

SNAT は、パケットのソース IP アドレスを指定された IP に設定し、出力インターフェースの IP アドレスを動的に検索しません。そのため、SNAT の方がマスカレードよりも高速です。出力インターフェースが固定 IP アドレスを使用する場合は、SNAT を使用します。

宛先宛先 NAT (DNAT)

この NAT タイプを使用して、受信パケットの宛先アドレスとポートを書き換えます。たとえば、Web サーバーがプライベート IP 範囲の IP アドレスを使用しているため、インターネットから直接アクセスできない場合は、ルーターに DNAT ルールを設定し、着信トラフィックをこのサーバーにリダイレクトできます。

redirect

このタイプは、チェーンフックに応じてパケットをローカルマシンにリダイレクトする DNAT の特殊なケースです。たとえば、サービスが標準ポートとは異なるポートで実行する場合は、標準ポートからこの特定のポートに着信トラフィックをリダイレクトすることができます。

46.7.2. IP アドレスのマスカレードの設定

以下の手順では、システムで IP マスカレードを有効にする方法を説明します。IP マスカレードは、インターネットにアクセスする際にゲートウェイの向こう側にある個々のマシンを隠します。

手順手順

1. external ゾーンなどで IP マスカレーディングが有効かどうかを確認するには、 root で次のコマンドを実行します。

# firewall-cmd --zone=external --query-masquerade

このコマンドでは、有効な場合は yes と出力され、終了ステータスは 0 になります。無効の場合は no と出力され、終了ステータスは 1 になります。zone を省略すると、デフォルトのゾーンが使用されます。

2. IP マスカレードを有効にするには、root で次のコマンドを実行します。

# firewall-cmd --zone=external --add-masquerade

3. この設定を永続的にするには、--permanent オプションを追加してコマンドを繰り返します。

IP マスカレードを無効にするには、root で次のコマンドを実行します。

# firewall-cmd --zone=external --remove-masquerade --permanent

46.8. ポート転送

この方法を使用するポートのリダイレクトは、IPv4 ベースのトラフィックでのみ機能します。IPv6 リダイレクト設定には、リッチルールを使用する必要があります。

外部システムにリダイレクトするには、マスカレードを有効にする必要があります。詳細は、「IP アドレスのマスカレードの設定」を参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

272

Page 277: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

46.8.1. リダイレクトするポートの追加

firewalld を使用して、システムで特定のポートを到達するための着信トラフィックが、選択した別の内部ポート、または別のマシンの外部ポートに配信されるようにポートのリダイレクトを設定できます。

前提条件前提条件

あるポートから別のポートにトラフィックをリダイレクトする前に、パケットが到達するポート、使用されるプロトコル、リダイレクト先を確認しておく必要があります。

手順手順

1. ポートを別のポートにリダイレクトする場合は、次のコマンドを実行します。

# firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp|sctp|dccp:toport=port-number

2. 別の IP アドレスで、別のポートにポートをリダイレクトする場合は、次のコマンドを実行します。

a. 転送するポートを追加します。

# firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp:toport=port-number:toaddr=IP

b. マスカレードを有効にします。

# firewall-cmd --add-masquerade

46.8.2. 同一マシンで TCP ポート 80 からポート 88 へのリダイレクト

TCP ポート 80 をポート 88 にリダイレクトするには、以下の手順に従います。

手順手順

1. TCP トラフィックに対して、ポート 80 からポート 88 へリダイレクトします。

# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=88

2. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

3. そのポートがリダイレクトされていることを確認します。

# firewall-cmd --list-all

46.8.3. リダイレクトしているポートの削除

この手順では、リダイレクトしたポートを削除する方法を説明します。

第第46章章 FIREWALLD の使用および設定の使用および設定

273

Page 278: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. リダイレクトしているポートを削除するには、次のコマンドを実行します。

# firewall-cmd --remove-forward-port=port=port-number:proto=<tcp|udp>:toport=port-number:toaddr=<IP>

2. 別のアドレスにリダイレクトした転送ポートを削除するには、以下を実行します。

a. 転送したポートを削除するには、以下を行います。

# firewall-cmd --remove-forward-port=port=port-number:proto=<tcp|udp>:toport=port-number:toaddr=<IP>

b. マスカレードを無効にするには、次のコマンドを実行します。

# firewall-cmd --remove-masquerade

46.8.4. 同じマシンで TCP ポート 88 に転送されるポート 80 の削除

この手順では、ポートのリダイレクト設定を削除する方法を説明します。

手順手順

1. リダイレクトしたポートの一覧を表示します。

~]# firewall-cmd --list-forward-portsport=80:proto=tcp:toport=88:toaddr=

2. ファイアウォールからリダイレクトしたポートを削除します。

~]# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=88:toaddr=

3. 新しい設定を永続化します。

~]# firewall-cmd --runtime-to-permanent

46.9. ICMP リクエストの管理

Internet Control Message Protocol (ICMP) は、接続問題 (要求されているサービスが利用できないなど) を示すエラーメッセージと運用情報を送信するために、様々なネットワークデバイスにより使用されているサポート対象のプロトコルです。ICMP は、システム間でデータを交換するのに使用されていないため、TCP、UDP などの転送プロトコルとは異なります。

ただし、ICMP メッセージ (特に echo-request および echo-reply) を利用して、ネットワークに関する情報を明らかにし、その情報をさまざまな不正行為に悪用することが可能です。したがって、firewalldは、ネットワーク情報を保護するため、ICMP リクエストをブロックできます。

46.9.1. ICMP リクエストの一覧表示およびブロック

ICMP リクエストの一覧表示リクエストの一覧表示

ICMP リクエストは、/usr/lib/firewalld/icmptypes/ ディレクトリーにある各 XML ファイルで説明され

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

274

Page 279: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ICMP リクエストは、/usr/lib/firewalld/icmptypes/ ディレクトリーにある各 XML ファイルで説明されています。リクエストの説明は、このファイルを参照してください。firewall-cmd コマンドは、ICMPリクエストの操作を制御します。

利用可能な ICMP タイプの一覧を表示するには、次のコマンドを実行します。

# firewall-cmd --get-icmptypes

ICMP リクエストは、IPv4、IPv6、またはその両方のプロトコルで使用できます。ICMP リクエストが使用されているプロトコルを表示するには、次のコマンドを実行します。

# firewall-cmd --info-icmptype=<icmptype>

ICMP リクエストのステータスは、リクエストが現在ブロックされている場合は yes、ブロックされていない場合は no となります。ICMP リクエストが現在ブロックされているかどうかを確認するには、次のコマンドを実行します。

# firewall-cmd --query-icmp-block=<icmptype>

ICMP リクエストのブロックまたはブロックの解除リクエストのブロックまたはブロックの解除

サーバーが ICMP リクエストをブロックした場合は、通常の情報が提供されません。ただし、情報が全く提供されないというわけではありません。クライアントは、特定の ICMP リクエストがブロックされている (拒否されている) 情報を受け取ります。ICMP リクエストは、特に IPv6 トラフィックを使用すると、接続問題が発生することがあるため、注意深く検討する必要があります。

ICMP リクエストが現在ブロックされているかどうかを確認するには、次のコマンドを実行します。

# firewall-cmd --query-icmp-block=<icmptype>

ICMP リクエストをブロックするには、次のコマンドを実行します。

# firewall-cmd --add-icmp-block=<icmptype>

ICMP リクエストのブロックを削除するには、次のコマンドを実行します。

# firewall-cmd --remove-icmp-block=<icmptype>

情報をまったく指定せずに情報をまったく指定せずに ICMP リクエストのブロックリクエストのブロック

通常、ICMP リクエストをブロックすると、ブロックしていることをクライアントは認識します。したがって、ライブの IP アドレスを傍受している潜在的な攻撃者は、IP アドレスがオンラインであることを確認できます。この情報を完全に非表示にするには、ICMP リクエストをすべて破棄する必要があります。

すべての ICMP リクエストをブロックして破棄するには、次のコマンドを実行します。

ゾーンのターゲットを DROP に設定します。

# firewall-cmd --permanent --set-target=DROP

これで、明示的に許可されるトラフィックを除き、ICMP リクエストを含むすべてのトラフィックが破棄されます。

第第46章章 FIREWALLD の使用および設定の使用および設定

275

Page 280: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

特定の ICMP リクエストをブロックして破棄し、その他のリクエストを許可するには、以下を行います。

1. ゾーンのターゲットを DROP に設定します。

# firewall-cmd --permanent --set-target=DROP

2. すべての ICMP リクエストを一度にブロックする、ICMP ブロックの反転を追加します。

# firewall-cmd --add-icmp-block-inversion

3. 許可する ICMP リクエストに ICMP ブロックを追加する場合は、次のコマンドを実行します。

# firewall-cmd --add-icmp-block=<icmptype>

4. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

ブロックの反転ブロックの反転 は、ICMP リクエストブロックの設定を反転します。そのため、ゾーンのターゲットが DROP に変更されたため、ブロックされていないリクエストはすべてブロックされます。ブロックされているリクエストはブロックされません。これは、リクエストのブロックを解除する場合は、ブロックコマンドを使用する必要があることを示しています。

ブロックの反転を、完全許可の設定に戻すには、以下を行います。

1. ゾーンのターゲットを default または ACCEPT に戻すには、次のコマンドを設定します。

# firewall-cmd --permanent --set-target=default

2. ICMP リクエストに追加したすべてのブロックを削除します。

# firewall-cmd --remove-icmp-block=<icmptype>

3. ICMP ブロックの反転を削除します。

# firewall-cmd --remove-icmp-block-inversion

4. 新しい設定を永続化します。

# firewall-cmd --runtime-to-permanent

46.9.2. GUI を使用した ICMP フィルターの設定

ICMP フィルターを有効または無効にするには、firewall-config ツールを起動して、フィルターをかけるメッセージのネットワークゾーンを選択します。ICMP フィルターフィルター タブを選択し、フィルターをかける ICMP メッセージの各タイプのチェックボックスを選択します。フィルターを無効にするには、チェックボックスの選択を外します。これは方向ごとに設定され、デフォルトではすべてが許可されます。

ICMP タイプを編集するには、firewall-config ツールを起動してから 設定設定 ラベルのあるメニューで 永続永続 モードを選択します。サービスサービス ウィンドウの下部に新たなアイコンが表示されます。以下のダイアログで はいはい を選択し、マスカレーディングを有効にし、動作している別の

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

276

Page 281: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

マシンに転送します。

ICMP フィルターフィルター の反転を有効にするには、右側の フィルターの反転フィルターの反転 チェックボックスをクリックします。マークがついた ICMP タイプだけが許可され、その他はすべて拒否されます。DROP ターゲットを使用するゾーンでは破棄されます。

46.10. FIREWALLD を使用した IP セットの設定および制御

firewalld で対応する IP セットタイプの一覧を表示するには、root で次のコマンドを実行します。

~]# firewall-cmd --get-ipset-typeshash:ip hash:ip,mark hash:ip,port hash:ip,port,ip hash:ip,port,net hash:mac hash:net hash:net,iface hash:net,net hash:net,port hash:net,port,net

46.10.1. CLI を使用した IP セットオプションの設定

IP セットは、firewalld ゾーンでソースとして使用でき、リッチルールでソースとして使用できます。Red Hat Enterprise Linux で推奨される方法は、ダイレクトルールで firewalld を使用して作成した IPセットを使用する方法です。

永続的な環境で firewalld に認識されている IP セットの一覧を表示するには、次のコマンドを root で実行します。

# firewall-cmd --permanent --get-ipsets

新しい IP セットを追加するには、永続化環境を使用し、root で次のコマンドを実行します。

# firewall-cmd --permanent --new-ipset=test --type=hash:netsuccess

上記のコマンドは、名前 test とタイプ hash:net で、IPv4 の新しい IP セットを作成します。IPv6 で使用する IP セットを作成する場合は、 --option=family=inet6 オプションを追加します。ランタイム環境で新しい設定を有効にするには、firewalld を再読み込みします。

root で次のコマンドを実行して、新しい IP セットの一覧を表示します。

# firewall-cmd --permanent --get-ipsetstest

IP セットの詳細は、root で次のコマンドを実行します。

# firewall-cmd --permanent --info-ipset=testtesttype: hash:netoptions:entries:

この時点では IP セットにエントリーがありません。

IP セット test にエントリーを追加するには、root で次のコマンドを実行します。

# firewall-cmd --permanent --ipset=test --add-entry=192.168.0.1success

第第46章章 FIREWALLD の使用および設定の使用および設定

277

Page 282: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

上記のコマンドは、IP アドレス 192.168.0.1 を IP セットに追加します。

IP セットの現在のエントリーを一覧表示するには、root で次のコマンドを実行します。

# firewall-cmd --permanent --ipset=test --get-entries192.168.0.1

IP アドレスの一覧を含むファイルを生成します。以下に例を示します。

# cat > iplist.txt <<EOL192.168.0.2192.168.0.3192.168.1.0/24192.168.2.254EOL

IP セットの IP アドレスの一覧が含まれるファイルには、行ごとにエントリーが含まれている必要があります。ハッシュ、セミコロン、また空の行から始まる行は無視されます。

iplist.txt ファイルからアドレスを追加するには、root で次のコマンドを実行します。

# firewall-cmd --permanent --ipset=test --add-entries-from-file=iplist.txtsuccess

拡張された IP セットのエントリー一覧を表示するには、root で次のコマンドを実行します。

# firewall-cmd --permanent --ipset=test --get-entries192.168.0.1192.168.0.2192.168.0.3192.168.1.0/24192.168.2.254

IP セットからアドレスを削除し、更新したエントリー一覧を確認するには、root で次のコマンドを実行します。

# firewall-cmd --permanent --ipset=test --remove-entries-from-file=iplist.txtsuccess# firewall-cmd --permanent --ipset=test --get-entries192.168.0.1

IP セットをゾーンへのソースとして追加し、ゾーンを使用して、IP セットに記載されるアドレスから受信するすべてのトラフィックを処理します。たとえば、IP セットの test をソースとして drop ゾーンに追加し、IP セットの test の一覧に表示されるすべてのエントリーから発信されるパケットをすべて破棄するには、root で次のコマンドを実行します。

# firewall-cmd --permanent --zone=drop --add-source=ipset:testsuccess

ソースの ipset: プレフィックスは、ソースが IP セットで、IP アドレスまたはアドレス範囲ではない firewalld を示しています。

IP セットの作成および削除は、永続環境に限定されますが、その他の IP セットオプションは、--permanent オプションを使用しないランタイム環境で使用できます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

278

Page 283: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

警告警告

Red Hat は、firewalld を介して管理していない IP セットを使用することは推奨しません。このような IP セットを使用すると、そのセットを参照する永続的なダイレクトルールが必要で、IP セットを作成するカスタムサービスを追加する必要があります。このサービスは、firewalld を起動する前に起動する必要があります。先に起動しておかないと、firewalld が、このセットを使用してダイレクトルールを追加できません。/etc/firewalld/direct.xml ファイルを使用して、永続的なダイレクトルールを追加できます。

46.11. リッチルールの優先度設定

デフォルトでは、リッチルールはルールアクションに基づいて構成されます。たとえば、許可許可 ルールよりも 拒否拒否 ルールが優先されます。リッチルールで priority パラメーターを使用すると、管理者はリッチルールとその実行順序をきめ細かく制御できます。

46.11.1. priority パラメーターを異なるチェーンにルールを整理する方法

リッチルールの priority パラメーターは、-32768 ~ 32767 の任意の数値に設定でき、値が小さい方が優先されます。

firewalld サービスは、優先度の値に基づいて、ルールを異なるチェーンに整理します。

優先度が 0 未満 - ルールは _pre 接尾辞が付いたチェーンにリダイレクトされます。

優先度が 0 を超える - ルールは _post 接尾辞が付いたチェーンにリダイレクトされます。

優先度が 0 - アクションに基づいて、ルールは、_log、_deny、または _allow のアクションを使用してチェーンにリダイレクトされます。

このサブチェーンでは、firewalld は優先度の値に基づいてルールを分類します。

46.11.2. リッチルールの優先度の設定

この手順では、priority パラメーターを使用して、他のルールで許可または拒否されていないすべてのトラフィックをログに記録するリッチルールを作成する方法を説明します。このルールを使用して、予期しないトラフィックにフラグを付けることができます。

手順手順

1. 優先度が非常に低いルールを追加して、他のルールと一致していないすべてのトラフィックをログに記録します。

# firewall-cmd --add-rich-rule='rule priority=32767 log prefix="UNEXPECTED: " limit value="5/m"'

このコマンドでは、ログエントリーの数を、毎分 5 に制限します。

2. 必要に応じて、前の手順のコマンドで作成した nftables ルールを表示します。

第第46章章 FIREWALLD の使用および設定の使用および設定

279

Page 284: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nft list chain inet firewalld filter_IN_public_posttable inet firewalld { chain filter_IN_public_post { log prefix "UNEXPECTED: " limit rate 5/minute }}

46.12. ファイアウォールロックダウンの設定

ローカルのアプリケーションやサービスは、root で実行していれば、ファイアウォール設定を変更できます (たとえば libvirt)。管理者は、この機能を使用してファイアウォール設定をロックし、すべてのアプリケーションでファイアウォール変更を要求できなくするか、ロックダウンの許可リストに追加されたアプリケーションのみがファイアウォール変更を要求できるようにすることが可能になります。ロックダウン設定はデフォルトで無効になっています。これを有効にすると、ローカルのアプリケーションやサービスによるファイアウォールへの望ましくない設定変更を確実に防ぐことができます。

46.12.1. CLI を使用したロックダウンの設定

この手順では、コマンドラインでロックダウンを有効または無効にする方法を説明します。

ロックダウンが有効になっているかどうかを確認するには、root で次のコマンドを使用します。

# firewall-cmd --query-lockdown

ロックダウンが有効な場合は、yes と出力され、終了ステータスは 0 になります。無効の場合は no と出力され、終了ステータスは 1 になります。

ロックダウンを有効にするには、root で次のコマンドを実行します。

# firewall-cmd --lockdown-on

ロックダウンを無効にするには、root で次のコマンドを実行します。

# firewall-cmd --lockdown-off

46.12.2. CLI を使用したロックダウン許可リストオプションの設定

ロックダウンの許可リストには、コマンド、セキュリティーのコンテキスト、ユーザー、およびユーザー ID を追加できます。許可リストのコマンドエントリーがアスタリスク「*」で終了している場合は、そのコマンドで始まるすべてのコマンドラインが一致することになります。「*」がなければ、コマンドと引数が完全に一致する必要があります。

ここでのコンテキストは、実行中のアプリケーションやサービスのセキュリティー (SELinux)コンテキストです。実行中のアプリケーションのコンテキストを確認するには、次のコマンドを実行します。

$ ps -e --context

このコマンドは、実行中のアプリケーションをすべて返します。grep ツールを使用して、出力から目的のアプリケーションをパイプ処理します。以下に例を示します。

$ ps -e --context | grep example_program

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

280

Page 285: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

許可リストにあるコマンドラインの一覧を表示するには、root で次のコマンドを実行します。

# firewall-cmd --list-lockdown-whitelist-commands

許可リストに command コマンドを追加するには、root で次のコマンドを実行します。

# firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python3 -Es /usr/bin/command'

許可リストから command コマンドを削除するには、root で次のコマンドを実行します。

# firewall-cmd --remove-lockdown-whitelist-command='/usr/bin/python3 -Es /usr/bin/command'

command コマンドが許可リストに含まれるかどうかを確認するには、root で次のコマンドを実行します。

# firewall-cmd --query-lockdown-whitelist-command='/usr/bin/python3 -Es /usr/bin/command'

このコマンドでは、含まれる場合は yes が出力され、終了ステータスは 0 になります。無効の場合は no と出力され、終了ステータスは 1 になります。

許可リストにあるセキュリティーコンテキストの一覧を表示するには、root で次のコマンドを実行します。

# firewall-cmd --list-lockdown-whitelist-contexts

許可リストに context コンテキストを追加するには、root で次のコマンドを実行します。

# firewall-cmd --add-lockdown-whitelist-context=context

許可リストから context コンテキストを削除するには、root で次のコマンドを実行します。

# firewall-cmd --remove-lockdown-whitelist-context=context

context コンテキストが許可リストに含まれるかどうかを確認するには、root で次のコマンドを実行します。

# firewall-cmd --query-lockdown-whitelist-context=context

含まれる場合は、yes と出力され、終了ステータスは 0 になります。含まれない場合は、no が出力され、終了ステータスは 1 になります。

許可リストにあるユーザー ID すべての一覧を表示するには、root で次のコマンドを実行します。

# firewall-cmd --list-lockdown-whitelist-uids

許可リストにユーザー ID (uid) を追加するには、root で次のコマンドを実行します。

# firewall-cmd --add-lockdown-whitelist-uid=uid

第第46章章 FIREWALLD の使用および設定の使用および設定

281

Page 286: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

許可リストからユーザー ID (uid) を削除するには、root で次のコマンドを実行します。

# firewall-cmd --remove-lockdown-whitelist-uid=uid

許可リストにユーザー ID (uid) があるかどうかを確認するには、次のコマンドを実行します。

$ firewall-cmd --query-lockdown-whitelist-uid=uid

含まれる場合は、yes と出力され、終了ステータスは 0 になります。含まれない場合は、no が出力され、終了ステータスは 1 になります。

許可リストにある全ユーザー名の一覧を表示するには、root で次のコマンドを実行します。

# firewall-cmd --list-lockdown-whitelist-users

許可リストにユーザー名 (user) を追加するには、root で次のコマンドを実行します。

# firewall-cmd --add-lockdown-whitelist-user=user

許可リストからユーザー名 (user) を削除するには、root で次のコマンドを実行します。

# firewall-cmd --remove-lockdown-whitelist-user=user

ユーザー名 (user) が許可リストに含まれるかどうかを確認するには、次のコマンドを実行します。

$ firewall-cmd --query-lockdown-whitelist-user=user

含まれる場合は、yes と出力され、終了ステータスは 0 になります。含まれない場合は、no が出力され、終了ステータスは 1 になります。

46.12.3. 設定ファイルを使用したロックダウンの許可リストオプションの設定

デフォルトの許可リスト設定ファイルには、NetworkManager コンテキストと、libvirt のデフォルトコンテキストが含まれます。リストには、ユーザー ID (0) もあります。

<?xml version="1.0" encoding="utf-8"?> <whitelist> <selinux context="system_u:system_r:NetworkManager_t:s0"/> <selinux context="system_u:system_r:virtd_t:s0-s0:c0.c1023"/> <user id="0"/> </whitelist>

以下の許可リスト設定ファイルの例では、firewall-cmd ユーティリティーのコマンドと、ユーザー IDが 815 である user のコマンドをすべて有効にしています。

<?xml version="1.0" encoding="utf-8"?> <whitelist> <command name="/usr/libexec/platform-python -s /bin/firewall-cmd*"/> <selinux context="system_u:system_r:NetworkManager_t:s0"/> <user id="815"/> <user name="user"/> </whitelist>

この例では、user id と user name の両方が使用されていますが、実際にはどちらか一方のオプション

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

282

Page 287: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

この例では、user id と user name の両方が使用されていますが、実際にはどちらか一方のオプションだけが必要です。Python はインタープリターとしてコマンドラインに追加されています。または、以下のような明確なコマンドも使用できます。

/usr/bin/python3 /bin/firewall-cmd --lockdown-on

この例では、--lockdown-on コマンドだけが許可されます。

Red Hat Enterprise Linux では、すべてのユーティリティーが /usr/bin/ ディレクトリーに格納されており、/bin/ ディレクトリーは /usr/bin/ ディレクトリーへのシンボリックリンクとなります。つまり、root で firewall-cmd へのパスを実行すると /bin/firewall-cmd に対して解決しますが、/usr/bin/firewall-cmd が使用できるようになっています。新たなスクリプトは、すべて新しい格納場所を使用する必要があります。ただし、root で実行するスクリプトが /bin/firewall-cmd へのパスを使用するようになっているのであれば、これまでは root 以外のユーザーにのみ使用されていた /usr/bin/firewall-cmd パスに加え、このコマンドのパスも許可リストに追加する必要があります。

コマンドの名前属性の最後にある * は、その名前で始まるすべてのコマンドが一致することを意味します。* がなければ、コマンドと引数が完全に一致する必要があります。

46.13. 関連情報

以下の資料は、firewalld の関連情報を提供します。

インストールされているドキュメントインストールされているドキュメント

man ページの firewalld(1) - firewalld のコマンドオプションが説明されています。

man ページの firewalld.conf(5) - firewalld を設定する情報が含まれます。

man ページの firewall-cmd(1) - firewalld コマンドラインクライアントのコマンドオプションが説明されています。

man ページの firewall-config(1) - firewall-config ツールのデフォルト設定が説明されています。

man ページの firewall-offline-cmd(1) - firewalld オフラインコマンドラインクライアントのコマンドオプションが説明されています。

man ページの firewalld.icmptype(5) - ICMP フィルタリングの XML 設定ファイルが説明されています。

man ページの firewalld.ipset(5) - firewalld IP セットの XML 設定ファイルが説明されています。

man ページの firewalld.service(5) - firewalld service 用の XML 設定ファイルが説明されています。

man ページの firewalld.zone(5) - firewalld ゾーン設定の XML 設定ファイルが説明されています。

man ページの firewalld.direct(5) - firewalld ダイレクトインターフェースの設定ファイルが説明されています。

firewalld.lockdown-whitelist(5) の man ページ: firewalld ロックダウン許可リストの設定ファイルが説明されています。

man ページの firewalld.richlanguage(5) - firewalld リッチ言語のルール構文が説明されていま

第第46章章 FIREWALLD の使用および設定の使用および設定

283

Page 288: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

man ページの firewalld.richlanguage(5) - firewalld リッチ言語のルール構文が説明されています。

man ページの firewalld.zones(5) - ゾーンの全般的な説明と設定方法が説明されています。

man ページの firewalld.dbus(5) - firewalld の D-Bus インターフェースが説明されています。

オンラインドキュメントオンラインドキュメント

http://www.firewalld.org/ - firewalld ホームページ

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

284

Page 289: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第47章 NFTABLES の使用nftables フレームワークは、パケットの分類機能を提供し、iptables ツール、ip6tables ツール、arptables ツール、ebtables ツール、および ipset ツールの後継となります。利便性、機能、パフォーマンスにおいて、以前のパケットフィルタリングツールに多くの改良が追加されました。以下に例を示します。

線形処理の代わりに組み込みルックアップテーブル

IPv4 プロトコルおよび IPv6 プロトコルに対する 1 つのフレームワーク

完全ルールセットのフェッチ、更新、および保存を行わず、すべてアトミックに適用されるルール

ルールセットにおけるデバッグおよびトレースへの対応 (nftrace) およびトレースイベントの監視 (nft ツール)

より統一されたコンパクトな構文、プロトコル固有の拡張なし

サードパーティーのアプリケーション用 Netlink API

iptables と同様、nftables は、チェーンを保存するテーブルを使用します。このチェーンには、アクションを実行する個々のルールが含まれます。nft ツールは、以前のパケットフィルタリングフレームワークのツールをすべて置き換えます。libnftnl ライブラリーは、libmnl ライブラリーの Netlink API のnftables で、低レベルの対話のために使用できます。

ルールセット変更が適用されていることを表示するには、nft list ruleset コマンドを使用します。これらのツールは、テーブル、チェーン、ルール、セットなどのオブジェクトを nftables ルールセットに追加するため、nft flush ruleset コマンドなどの nftables ルールセット操作は、先に別の従来のコマンドを使用してインストールしたルールセットに影響を及ぼす可能性があることに注意してください。

47.1. IPTABLES から NFTABLES への移行

サーバーを RHEL 8 にアップグレードしたり、ファイアウォール設定が iptables ルールを使用している場合は、iptables ルールを nftables に移行できます。

47.1.1. firewalld、nftables、または iptables を使用する場合

以下は、次のユーティリティーのいずれかを使用する必要があるシナリオの概要です。

firewalld: 簡単なファイアウォールのユースケースには、firewalld ユーティリティーを使用します。このユーティリティーは、使いやすく、このようなシナリオの一般的な使用例に対応しています。

nftables: nftables ユーティリティーを使用して、ネットワーク全体など、複雑なパフォーマンスに関する重要なファイアウォールを設定します。

iptables: Red Hat Enterprise Linux 8 の iptables ユーティリティーは、レガシーレガシー バックエンドの代わりに nf_tables カーネル API を使用します。nf_tables API は、 iptables コマンドを使用するスクリプトが、Red Hat Enterprise Linux 8 で引き続き動作するように、後方互換性を提供します。新しいファイアウォールスクリプトの場合には、Red Hat は nftables を使用することを推奨します。

重要重要

第第47章章 NFTABLES の使用の使用

285

Page 290: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

重要重要

異なるファイアウォールサービスが相互に影響することを回避するには、RHEL ホストでそのうちの 1 つだけを実行し、他のサービスを無効にします。

47.1.2. iptables のルールを nftables ルールに変換

Red Hat Enterprise Linux 8 は、既存の iptables ルールまたは ip6tables ルールを、nftables で同等のルールに変換する iptables-translate ツールおよび ip6tables-translate ツールが追加されました。

拡張機能によっては変換機能がない場合もあります。対応する機能がない拡張機能が存在する場合は、ツールにより、その前に # 記号が付いた未変換ルールが出力されます。以下に例を示します。

# iptables-translate -A INPUT -j CHECKSUM --checksum-fillnft # -A INPUT -j CHECKSUM --checksum-fill

また、ユーザーは、iptables-restore-translate ツールおよび ip6tables-restore-translate ツールを使用して、ルールのダンプを変換できます。その前に、iptables-save コマンドまたは ip6tables-save コマンドを使用して、現在のルールのダンプを出力できます。以下に例を示します。

# iptables-save >/tmp/iptables.dump# iptables-restore-translate -f /tmp/iptables.dump

# Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018add table ip nat...

詳細と、設定可能なオプションおよび値の一覧は、iptables-translate --help コマンドで確認できます。

47.1.3. 一般的な iftables コマンドおよび nftables コマンドの比較

以下は、一般的な iptables コマンドと nftables コマンドの比較です。

全ルールを一覧表示します。

iptables nftables

iptables-save nft list ruleset

特定のテーブルおよびチェーンを一覧表示します。

iptables nftables

iptables -L nft list table ip filter

iptables -L INPUT nft list chain ip filter INPUT

iptables -t nat -L PREROUTING nft list chain ip nat PREROUTING

nft コマンドは、事前作成のテーブルやチェーンは作成しません。これは、ユーザーが手動で作成した場合にのみ存在します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

286

Page 291: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

例:例: firewalld が生成するルールの一覧表示が生成するルールの一覧表示

# nft list table inet firewalld# nft list table ip firewalld# nft list table ip6 firewalld

47.2. NFTABLES スクリプトの作成および実行

nftables フレームワークは、シェルスクリプトを使用してファイアウォールルールを維持するための主な利点を提供するネイティブのスクリプト環境を提供します。スクリプトの実行はアトミックです。つまり、システムがスクリプト全体を適用するか、エラーが発生した場合には実行を阻止することを意味します。これにより、ファイアウォールは常に一貫した状態になります。

さらに、管理者は、nftables スクリプト環境で以下を行うことができます。

コメントの追加

変数の定義

他のルールセットファイルの組み込み

本セクションでは、この機能を使用する方法と、nftables スクリプトの作成方法と実行方法を説明します。

nftables パッケージをインストールすると、Red Hat Enterprise Linux が自動的に *.nft スクリプトを /etc/nftables/ ディレクトリーに作成します。このスクリプトは、さまざまな目的でテーブルと空のチェーンを作成するコマンドが含まれます。

47.2.1. 対応している nftables スクリプトの形式

nftables スクリプト環境は、次の形式でスクリプトに対応します。

nft list ruleset コマンドが、ルールセットを表示するのと同じ形式でスクリプトを作成できます。

#!/usr/sbin/nft -f

# Flush the rule setflush ruleset

table inet example_table { chain example_chain { # Chain for incoming packets that drops all packets that # are not explicitly allowed by any rule in this chain type filter hook input priority 0; policy drop;

# Accept connections to port 22 (ssh) tcp dport ssh accept }}

nft コマンドと同じ構文を使用できます。

#!/usr/sbin/nft -f

第第47章章 NFTABLES の使用の使用

287

Page 292: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# Flush the rule setflush ruleset

# Create a tableadd table inet example_table

# Create a chain for incoming packets that drops all packets# that are not explicitly allowed by any rule in this chainadd chain inet example_table example_chain { type filter hook input priority 0 ; policy drop ; }

# Add a rule that accepts connections to port 22 (ssh)add rule inet example_table example_chain tcp dport ssh accept

47.2.2. nftables スクリプトの実行

nftables スクリプトを実行するには、nft ユーティリティーに渡すか、スクリプトを直接実行します。

前提条件前提条件

このセクションの手順では、nftables スクリプトを /etc/nftables/example_firewall.nft ファイルに保存していることを前提としています。

手順手順

nftables スクリプトを nft ユーティリティーに渡して実行するには、次のコマンドを実行します。

# nft -f /etc/nftables/example_firewall.nft

nftables スクリプトを直接実行するには、次のコマンドを実行します。

a. 以下の手順は、一度だけ必要です。

i. スクリプトが以下のシバンシーケンスで始まることを確認します。

#!/usr/sbin/nft -f

重要重要

-f パラメーターを指定しないと、nft ユーティリティーはスクリプトを読み取らず、エラー:エラー: syntax error, unexpected newline, expecting string.

ii. 必要に応じて、スクリプトの所有者を root に設定します。

# chown root /etc/nftables/example_firewall.nft

iii. 所有者のスクリプトを実行ファイルに変更します。

# chmod u+x /etc/nftables/example_firewall.nft

b. スクリプトを実行します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

288

Page 293: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# /etc/nftables/example_firewall.nft

出力が表示されない場合は、システムがスクリプトを正常に実行します。

重要重要

nft はスクリプトを正常に実行しますが、ルールの配置やパラメーター不足、またはスクリプト内のその他の問題により、ファイアウォールが期待通りの動作を起こさない可能性があります。

関連情報関連情報

ファイルの所有者の設定は、man ページの chown(1) を参照してください。

ファイルのパーミッション設定の詳細は、man ページの chmod(1) を参照してください。

システム起動時に nftables ルールを読み込む方法は、「システムの起動時に nftables ルールの自動読み込み」 を参照してください。

47.2.3. nftables スクリプトでコメントの使用

nftables スクリプト環境は、# 文字の右側にあるすべてをコメントとして解釈します。

例例47.1 nftables スクリプトのコメントスクリプトのコメント

コメントは、コマンドの横だけでなく、行の先頭からも開始できます。

...# Flush the rule setflush ruleset

add table inet example_table # Create a table...

47.2.4. nftables スクリプトで変数の使用

nftables スクリプトで変数を定義するには、define キーワードを使用します。シングル値および匿名セットを変数に保存できます。より複雑なシナリオの場合は、セットまたは決定マップを使用します。

値を値を 1 つ持つ変数つ持つ変数以下の例は、値が enp1s0 の INET_DEV という名前の変数を定義します。

define INET_DEV = enp1s0

スクリプトで変数を使用するには、$ 記号と、それに続く変数名を指定します。

...add rule inet example_table example_chain iifname $INET_DEV tcp dport ssh accept...

匿名セットを含む変数匿名セットを含む変数以下の例では、匿名セットを含む変数を定義します。

第第47章章 NFTABLES の使用の使用

289

Page 294: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

define DNS_SERVERS = { 192.0.2.1, 192.0.2.2 }

スクリプトで変数を使用するには、$ 記号と、それに続く変数名を指定します。

add rule inet example_table example_chain ip daddr $DNS_SERVERS accept

注記注記

中括弧は、変数がセットを表していることを示すため、ルールで使用する場合は、特別なセマンティクスを持つことに注意してください。

関連情報関連情報

セットの詳細は、「nftables コマンドを使用したセットの使用」 を参照してください。

決定マップの詳細は、「nftables コマンドにおける決定マップの使用」 を参照してください。

47.2.5. nftables スクリプトへのファイルの追加

nftables スクリプト環境を使用すると、管理者は include ステートメントを使用して他のスクリプトを追加できます。

絶対パスまたは相対パスのないファイル名のみを指定すると、nftables には、デフォルトの検索パスのファイルが含まれます。これは、Red Hat Enterprise Linux では /etc に設定されています。

例例47.2 デフォルト検索ディレクトリーからのファイルを含むデフォルト検索ディレクトリーからのファイルを含む

デフォルトの検索ディレクトリーからファイルを指定するには、次のコマンドを実行します。

include "example.nft"

例例47.3 ディレクトリーのディレクトリーの *.nft ファイルをすべて含むファイルをすべて含む

*.nft で終わるすべてのファイルを /etc/nftables/rulesets/ ディレクトリーに保存するには、次のコマンドを実行します。

include "/etc/nftables/rulesets/*.nft"

include ステートメントは、ドットで始まるファイルに一致しないことに注意してください。

関連情報関連情報

詳細は、man ページの nft(8) の Include files セクションを参照してください。

47.2.6. システムの起動時に nftables ルールの自動読み込み

systemd サービス nftables は、/etc/sysconfig/nftables.conf ファイルに含まれるファイアウォールスクリプトを読み込みます。本セクションでは、システムの起動時にファイアウォールルールを読み込む方法を説明します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

290

Page 295: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

前提条件前提条件

nftables スクリプトは、/etc/nftables/ ディレクトリーに保存されます。

手順手順

1. /etc/sysconfig/nftables.conf ファイルを編集します。

nftables パッケージをインストールしたときに /etc/nftables/ に作成された *.nft スクリプトを拡張する場合は、そのスクリプトの include ステートメントのコメントを解除します。

スクリプトを新規に作成する場合は、そのスクリプトを含む include ステートメントを追加します。たとえば、nftables サービスの起動時に /etc/nftables/example.nft スクリプトを読み込むには、以下を追加します。

include "/etc/nftables/example.nft"

2. 必要に応じて、nftables サービスを開始して、システムを再起動せずにファイアウォールルールを読み込みます。

# systemctl start nftables

3. nftables サービスを有効にします。

# systemctl enable nftables

関連情報関連情報

詳細は 「対応している nftables スクリプトの形式」 を参照してください。

47.3. NFTABLES テーブル、チェーン、およびルールの作成および管理

本セクションでは、nftables ルールセットを表示する方法と、その管理方法を説明します。

47.3.1. 標準のチェーン優先度の値およびテキスト名

チェーンを作成する場合は、priority で、同じ hook 値を持つチェーンが通過する順番を指定する、整数値または標準名を設定できます。

名前と値は、デフォルトのチェーンの登録時に xtables が使用する優先度に基づいて定義されます。

注記注記

nft list chains コマンドは、デフォルトで文字列の優先順位の値を表示します。-y オプションをコマンドに渡すことで、数値を表示できます。

例例47.4 テキスト値を使用した優先順位の設定テキスト値を使用した優先順位の設定

以下のコマンドは、標準の優先度 50 を使用して example_table に example_chain という名前のチェーンを作成します。

# nft add chain inet example_table example_chain { type filter hook input priority 50 \; policy

第第47章章 NFTABLES の使用の使用

291

Page 296: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nft add chain inet example_table example_chain { type filter hook input priority 50 \; policy accept \; }

優先度は標準の値であるため、テキスト値を使用することもできます。

# nft add chain inet example_table example_chain { type filter hook input priority security \; policy accept \; }

表表47.1 標準優先順位名、ファミリー、およびフックの互換性マトリックス標準優先順位名、ファミリー、およびフックの互換性マトリックス

名前名前 値値 ファミリーファミリー フックフック

raw -300 ip、ip6、inet all

mangle -150 ip、ip6、inet all

dstnat -100 ip、ip6、inet prerouting

filter 0 ip、ip6、inet、arp、netdev all

security 50 ip、ip6、inet all

srcnat 100 ip、ip6、inet postrouting

すべてのファミリーは同じ値を使用しますが、bridge ファミリーは以下の値を使用します。

表表47.2 ブリッジファミリーの標準的な優先順位名およびフックの互換性ブリッジファミリーの標準的な優先順位名およびフックの互換性

名前名前 値値 フックフック

dstnat -300 prerouting

filter -200 all

out 100 出力

srcnat 300 postrouting

関連情報関連情報

チェーンで実行できるその他のアクションの詳細は、nft(8) man ページの Chains セクションを参照してください。

47.3.2. nftables ルールセットの表示

nftables のルールセットには、テーブル、チェーン、およびルールが含まれます。本セクションでは、ルールセットを表示する方法を説明します。

手順手順

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

292

Page 297: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

ルールセットを表示するには、次のコマンドを実行します。

# nft list rulesettable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport http accept tcp dport ssh accept }}

注記注記

デフォルトで、nftables は事前作成のテーブルではありません。したがって、テーブルがないホストに設定したルールを表示すると、nft list ruleset コマンドが出力を表示しません。

47.3.3. nftables テーブルの作成

nftables の表は、チェーン、ルール、セットなどのオブジェクトを含む名前空間です。本セクションでは、テーブルの作成方法を説明します。

各テーブルには、アドレスファミリーが定義されている必要があります。テーブルのアドレスファミリーは、テーブルプロセスのアドレスタイプを定義します。テーブルを作成する際に、以下のいずれかのアドレスファミリーを設定できます。

ip - IPv4 パケットのみと一致します。アドレスファミリーを指定しないと、これがデフォルトになります。

ip6 - IPv6 パケットのみと一致します。

inet - IPv4 パケットと IPv6 パケットの両方と一致します。

arp- IPv4 アドレス解決プロトコル (ARP) パケットと一致します。

bridge - ブリッジデバイスを通過するパケットと一致します。

netdev ingress からのパケットに一致します。

手順手順

1. nft add table コマンドを使用してテーブルを新規作成します。たとえば、IPv4 パケットおよびIPv6 パケットを処理する example_table という名前のテーブルを作成するには、次のコマンドを実行します。

# nft add table inet example_table

2. 必要に応じて、ルールセットのテーブルを一覧表示します。

# nft list tablestable inet example_table

関連情報関連情報

第第47章章 NFTABLES の使用の使用

293

Page 298: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

アドレスファミリーの詳細は、man ページの nft(8) の Address families セクションを参照してください。

テーブルで実行可能なその他のアクションの詳細は、man ページの nft(8) の Tables セクションを参照してください。

47.3.4. nftables チェーンの作成

チェーンは、ルールのコンテナーです。次の 2 つのルールタイプが存在します。

ベースチェーン - ネットワークスタックからのパケットのエントリーポイントとしてベースチェーンを使用できます。

通常のチェーン - ジャンプジャンプ ターゲットとして通常のチェーンを使用し、ルールをより適切に整理できます。

この手順では、既存のテーブルにベースチェーンを追加する方法を説明します。

前提条件前提条件

新しいチェーンを追加するテーブルが存在する。

手順手順

1. nft add chain コマンドを使用してチェーンを新規作成します。たとえば、example_tableに、example_chain という名前のチェーンを作成するには、次のコマンドを実行します。

# nft add chain inet example_table example_chain { type filter hook input priority 0 \; policy accept \; }

重要重要

シェルでセミコロンがコマンドの最後として解釈されるのを回避するには、セミコロンの前に \ エスケープ文字を付けます。

このチェーンは、着信パケットをフィルタリングします。priority パラメーターは、nftablesプロセスが同じフック値を持つチェーンを処理する順序を指定します。優先度の値が低いほど優先されます。policy パラメーターは、このチェーン内のルールのデフォルトアクションを設定します。サーバーにリモートでログインし、デフォルトのポリシーを drop に設定すると、他のルールでリモートアクセスが許可されていなければ、すぐに切断されることに注意してください。

2. 必要に応じて、すべてのチェーンを表示します。

# nft list chainstable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; }}

関連情報関連情報

アドレスファミリーの詳細は、man ページの nft(8) の Address families セクションを参照し

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

294

Page 299: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

アドレスファミリーの詳細は、man ページの nft(8) の Address families セクションを参照してください。

チェーンで実行できるその他のアクションの詳細は、man ページの nft(8) の Chains セクションを参照してください。

47.3.5. nftables チェーンの最後に対するルールの追加

本セクションでは、既存の nftables チェーンの最後にルールを追加する方法を説明します。

前提条件前提条件

ルールを追加するチェーンが存在する。

手順手順

1. 新規ルールを追加するには、nft add rule コマンドを使用します。たとえば、example_tableの example_chain に、ポート 22 の TCP トラフィックを許可するルールを追加するには、次のコマンドを実行します。

# nft add rule inet example_table example_chain tcp dport 22 accept

ポート番号の代わりに、サービス名を指定することもできます。この例では、ポート番号 22 の代わりに ssh を使用できます。サービス名は、/etc/services ファイルのエントリーに基づいてポート番号に解決されることに注意してください。

2. 必要に応じて、example_table ですべてのチェーンとそのルールを表示します。

# nft list table inet example_tabletable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; ... tcp dport ssh accept }}

関連情報関連情報

アドレスファミリーの詳細は、man ページの nft(8) の Address families セクションを参照してください。

ルールを実行できるその他のアクションの詳細は、man ページの nft(8) の Rules セクションを参照してください。

47.3.6. nftables チェーンの先頭へのルールの挿入

本セクションでは、既存の nftables チェーンの先頭にルールを追加する方法を説明します。

前提条件前提条件

ルールを追加するチェーンが存在する。

手順手順1. 新しいルールを追加するには、nft insert rule コマンドを使用します。たとえば、ポート 22 で

第第47章章 NFTABLES の使用の使用

295

Page 300: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

1. 新しいルールを追加するには、nft insert rule コマンドを使用します。たとえば、ポート 22 でTCP トラフィックを許可するルールを example_table の example_chain に追加するには、次のコマンドを実行します。

# nft insert rule inet example_table example_chain tcp dport 22 accept

代わりに、ポート番号の代わりにサービスの名前を指定することもできます。この例では、ポート番号 22 の代わりに ssh を使用できます。サービス名は、/etc/services ファイルのエントリーに基づいてポート番号に解決されることに注意してください。

2. 必要に応じて、example_table ですべてのチェーンとそのルールを表示します。

# nft list table inet example_tabletable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport ssh accept ... }}

関連情報関連情報

アドレスファミリーの詳細は、man ページの nft(8) の Address families セクションを参照してください。

ルールを実行できるその他のアクションの詳細は、man ページの nft(8) の Rules セクションを参照してください。

47.3.7. nftables チェーンの特定の位置へのルールの挿入

本セクションでは、nftables チェーンで、既存のルールの前後にルールを追加する方法を説明します。これにより、正しい場所に新しいルールを配置することができます。

前提条件前提条件

ルールを追加するチェーンが存在する。

手順手順

1. nft -a list ruleset コマンドを使用して、ハンドルなど、example_table 内のすべてのチェーンとそのルールを表示します。

# nft -a list table inet example_tabletable inet example_table { # handle 1 chain example_chain { # handle 1 type filter hook input priority filter; policy accept; tcp dport 22 accept # handle 2 tcp dport 443 accept # handle 3 tcp dport 389 accept # handle 4 }}

-a を使用すると、ハンドルが表示されます。次の手順で新しいルールを配置するときに、この

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

296

Page 301: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

-a を使用すると、ハンドルが表示されます。次の手順で新しいルールを配置するときに、この情報が必要です。

2. example_table の example_chain チェーンに新しいルールを挿入します。

ハンドル 3 の前に、ポート 636 で TCP トラフィックを許可するルールを挿入するには、次のコマンドを実行します。

# nft insert rule inet example_table example_chain position 3 tcp dport 636 accept

ハンドル 3 の後ろに、ポート 80 で TCP トラフィックを許可するルールを追加するには、次のコマンドを実行します。

# nft add rule inet example_table example_chain position 3 tcp dport 80 accept

3. 必要に応じて、example_table ですべてのチェーンとそのルールを表示します。

# nft -a list table inet example_tabletable inet example_table { # handle 1 chain example_chain { # handle 1 type filter hook input priority filter; policy accept; tcp dport 22 accept # handle 2 tcp dport 636 accept # handle 5 tcp dport 443 accept # handle 3 tcp dport 80 accept # handle 6 tcp dport 389 accept # handle 4 }}

関連情報関連情報

アドレスファミリーの詳細は、man ページの nft(8) の Address families セクションを参照してください。

ルールを実行できるその他のアクションの詳細は、man ページの nft(8) の Rules セクションを参照してください。

47.4. NFTABLES を使用した NAT の設定

nftables を使用すると、以下のネットワークアドレス変換 (NAT) タイプを設定できます。

マスカレーディング

ソース NAT (SNAT)

宛先 NAT (DNAT)

redirect

47.4.1. 異なる NAT タイプ - マスカレード、ソース NAT、宛先 NAT、リダイレクト

以下は、ネットワークアドレス変換 (NAT) タイプになります。

マスカレードおよびソースのマスカレードおよびソースの NAT (SNAT)

第第47章章 NFTABLES の使用の使用

297

Page 302: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

この NAT タイプのいずれかを使用して、パケットのソース IP アドレスを変更します。たとえば、インターネットサービスプロバイダーはプライベート IP 範囲( 10.0.0.0/8 など)をルーティングしません。ネットワークでプライベート IP 範囲を使用し、ユーザーがインターネット上のサーバーにアクセスできるようにする必要がある場合は、この範囲のパケットのソース IP アドレスをパブリックIP アドレスにマップします。マスカレードおよび SNAT の両方は非常に似ています。相違点は次のとおりです。

マスカレードは、出力インターフェースの IP アドレスを自動的に使用します。したがって、出力インターフェースが動的 IP アドレスを使用する場合は、マスカレードを使用します。

SNAT は、パケットのソース IP アドレスを指定された IP に設定し、出力インターフェースの IP アドレスを動的に検索しません。そのため、SNAT の方がマスカレードよりも高速です。出力インターフェースが固定 IP アドレスを使用する場合は、SNAT を使用します。

宛先宛先 NAT (DNAT)

この NAT タイプを使用して、受信パケットの宛先アドレスとポートを書き換えます。たとえば、Web サーバーがプライベート IP 範囲の IP アドレスを使用しているため、インターネットから直接アクセスできない場合は、ルーターに DNAT ルールを設定し、着信トラフィックをこのサーバーにリダイレクトできます。

redirect

このタイプは、チェーンフックに応じてパケットをローカルマシンにリダイレクトする DNAT の特殊なケースです。たとえば、サービスが標準ポートとは異なるポートで実行する場合は、標準ポートからこの特定のポートに着信トラフィックをリダイレクトすることができます。

47.4.2. nftables を使用したマスカレードの設定

マスカレードを使用すると、ルーターは、インターフェースを介して送信されるパケットのソース IPを、インターフェースの IP アドレスに動的に変更できます。これは、インターフェースに新しい IP が割り当てられている場合に、nftables はソース IP の置き換え時に新しい IP を自動的に使用することを意味します。

次の手順では、ens3 インターフェイスを介して、ホストから ens3 の IP セットに送信されるパケットのソース IP を置き換える方法を説明します。

手順手順

1. テーブルを作成します。

# nft add table nat

2. テーブルに、prerouting チェーンおよび postrouting チェーンを追加します。

# nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }# nft add chain nat postrouting { type nat hook postrouting priority 100 \; }

重要重要

prerouting チェーンにルールを追加しなくても、nftables フレームワークでは、着信パケット返信に一致するようにこのチェーンが必要になります。

nft コマンドに -- オプションを渡すと、シェルが優先度の負の値を nft コマンドのオプションとして解釈する必要がなくなります。

3. postrouting チェーンに、ens3 インターフェースの出力パケットに一致するルールを追加しま

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

298

Page 303: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. postrouting チェーンに、ens3 インターフェースの出力パケットに一致するルールを追加します。

# nft add rule nat postrouting oifname "ens3" masquerade

47.4.3. nftables を使用したソース NAT の設定

ルーターでは、ソース NAT (SNAT) を使用して、インターフェースを介して特定の IP アドレスに送信するパケットの IP を変更できます。

次の手順では、ens3 インターフェイスを介して、ルーターから 192.0.2.1 に送信されるパケットのソース IP を置き換える方法を説明します。

手順手順

1. テーブルを作成します。

# nft add table nat

2. テーブルに、prerouting チェーンおよび postrouting チェーンを追加します。

# nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }# nft add chain nat postrouting { type nat hook postrouting priority 100 \; }

重要重要

postrouting チェーンにルールを追加しなくても、nftables フレームワークでは、このチェーンが発信パケット返信に一致するようにする必要があります。

nft コマンドに -- オプションを渡すと、シェルが優先度の負の値を nft コマンドのオプションとして解釈する必要がなくなります。

3. ens3 を介した発信パケットのソース IP を 192.0.2.1 に置き換えるルールを postroutingチェーンに追加します。

# nft add rule nat postrouting oifname "ens3" snat to 192.0.2.1

関連情報関連情報

詳細は 「特定のローカルポートで着信パケットを別のホストに転送」 を参照してください。

47.4.4. nftables を使用した宛先 NAT の設定

宛先 NAT により、ルーター上のトラフィックをインターネットから直接アクセスできないホストにリダイレクトできます。

以下の手順では、ルーターの 80 ポートおよび 443 ポートに送信される着信トラフィックを、IP アドレス 192.0.2.1 のホストにリダイレクトする方法を説明します。

手順手順

1. テーブルを作成します。

第第47章章 NFTABLES の使用の使用

299

Page 304: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nft add table nat

2. テーブルに、prerouting チェーンおよび postrouting チェーンを追加します。

# nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }# nft add chain nat postrouting { type nat hook postrouting priority 100 \; }

重要重要

postrouting チェーンにルールを追加しなくても、nftables フレームワークでは、このチェーンが発信パケット返信に一致するようにする必要があります。

nft コマンドに -- オプションを渡すと、シェルが優先度の負の値を nft コマンドのオプションとして解釈する必要がなくなります。

3. prerouting チェーンに、80 ポートおよび 443 ポートに送信された ens3 インターフェースの着信トラフィックを、IP アドレスが 192.0.2.1 であるホストにリダイレクトするルールを追加します。

# nft add rule nat prerouting iifname ens3 tcp dport { 80, 443 } dnat to 192.0.2.1

4. 環境に応じて、SNAT ルールまたはマスカレードルールを追加して、ソースアドレスを変更します。

a. ens3 インターフェースが動的 IP アドレスを使用している場合は、マスカレードルールを追加します。

# nft add rule nat postrouting oifname "ens3" masquerade

b. ens3 インターフェースが静的 IP アドレスを使用する場合は、SNAT ルールを追加します。たとえば、ens3 が IP アドレス 198.51.100.1 を使用している場合は、以下のようになります。

# nft add rule nat postrouting oifname "ens3" snat to 198.51.100.1

関連情報関連情報

詳細は、を参照してください。 「異なる NAT タイプ - マスカレード、ソース NAT、宛先NAT、リダイレクト」

47.4.5. nftables を使用したリダイレクトの設定

リダイレクトリダイレクト 機能は、チェーンフックに応じてパケットをローカルマシンにリダイレクトする宛先ネットワークアドレス変換(DNAT)の特別なケースです。

以下の手順では、ローカルホストのポート 22 に送信される着信トラフィックおよび転送されたトラフィックをポート 2222 にリダイレクトする方法を説明します。

手順手順

1. テーブルを作成します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

300

Page 305: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nft add table nat

2. テーブルに prerouting チェーンを追加します。

# nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }

nft コマンドに -- オプションを渡すと、シェルが優先度の負の値を nft コマンドのオプションとして解釈する必要がなくなります。

3. ポート 22 で着信トラフィックをポート 2222 にリダイレクトするルールを prerouting チェーンに追加します。

# nft add rule nat prerouting tcp dport 22 redirect to 2222

関連情報関連情報

詳細は、を参照してください。 「異なる NAT タイプ - マスカレード、ソース NAT、宛先NAT、リダイレクト」

47.5. NFTABLES コマンドを使用したセットの使用

nftables フレームワークは、セットをネイティブに対応します。たとえば、ルールが複数の IP アドレス、ポート番号、インターフェース、またはその他の一致基準に一致する必要がある場合など、セットを使用できます。

47.5.1. nftables での匿名セットの使用

匿名セットには、ルールで直接使用する { 22, 80, 443 } などの中括弧で囲まれたコンマ区切りの値が含まれます。IP アドレスやその他の一致基準に匿名セットを使用することもできます。

匿名セットの欠点は、セットを変更する場合はルールを置き換える必要があることです。動的なソリューションの場合は、「nftables で名前付きセットの使用」 に従って名前付きセットを使用します。

前提条件前提条件

inet ファミリーに example_chain チェーンおよび example_table テーブルがある。

手順手順

1. たとえば、ポート 22、80、および 443 に着信トラフィックを許可するルールを、example_table の example_chain に追加するには、次のコマンドを実行します。

# nft add rule inet example_table example_chain tcp dport { 22, 80, 443 } accept

2. 必要に応じて、example_table ですべてのチェーンとそのルールを表示します。

# nft list table inet example_tabletable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport { ssh, http, https } accept }}

第第47章章 NFTABLES の使用の使用

301

Page 306: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

47.5.2. nftables で名前付きセットの使用

nftables フレームワークは、変更可能な名前付きセットに対応します。名前付きセットは、テーブル内の複数のルールで使用できる要素の一覧または範囲です。匿名セットに対する別の利点として、セットを使用するルールを置き換えることなく、名前付きセットを更新できます。

名前付きセットを作成する場合は、セットに含まれる要素のタイプを指定する必要があります。以下のタイプを設定できます。

192.0.2.1 や 192.0.2.0/24 など、IPv4 アドレスまたは範囲を含むセットの場合は ipv4_addr。

2001:db8:1::1 や 2001:db8:1::1/64 など、IPv6 アドレスまたは範囲を含むセットの場合は ipv6_addr。

52:54:00:6b:66:42 など、メディアアクセス制御 (MAC) アドレスの一覧を含むセットの場合は ether_addr。

tcp など、インターネットプロトコルタイプの一覧が含まれるセットの場合は inet_proto。

ssh など、インターネットサービスの一覧を含むセットの場合は inet_service。

パケットマークの一覧を含むセットの場合は mark。パケットマークは、任意の正の 32 ビット値(0 ~ 2147483647)にできます。

前提条件前提条件

example_chain チェーンと example_table テーブルが存在する。

手順手順

1. 空のファイルを作成します。以下の例では、IPv4 アドレスのセットを作成します。

複数の IPv4 アドレスを格納することができるセットを作成するには、次のコマンドを実行します。

# nft add set inet example_table example_set { type ipv4_addr \; }

IPv4 アドレス範囲を保存できるセットを作成するには、次のコマンドを実行します。

# nft add set inet example_table example_set { type ipv4_addr \; flags interval \; }

重要重要

シェルで、セミコロンがコマンドの最後として解釈されないようにするには、セミコロンをバックスラッシュでエスケープする必要があります。

2. 必要に応じて、セットを使用するルールを作成します。たとえば、次のコマンドは、example_set の IPv4 アドレスからのパケットをすべて破棄するルールを、example_tableの example_chain に追加します。

# nft add rule inet example_table example_chain ip saddr @example_set drop

example_set が空のままなので、ルールには現在影響がありません。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

302

Page 307: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

3. IPv4 アドレスを example_set に追加します。

個々の IPv4 アドレスを保存するセットを作成する場合は、次のコマンドを実行します。

# nft add element inet example_table example_set { 192.0.2.1, 192.0.2.2 }

IPv4 範囲を保存するセットを作成する場合は、次のコマンドを実行します。

# nft add element inet example_table example_set { 192.0.2.0-192.0.2.255 }

IP アドレス範囲を指定する場合は、上記の例の 192.0.2.0/24 のように、CIDR (ClasslessInter-Domain Routing) 表記を使用することもできます。

47.5.3. 関連情報

セットの詳細は、man ページの nft(8) の Sets セクションを参照してください。

47.6. NFTABLES コマンドにおける決定マップの使用

ディクショナリーとしても知られている決定マップにより、nft は一致基準をアクションにマッピングすることで、パケット情報に基づいてアクションを実行できます。

47.6.1. nftables での匿名マップの使用

匿名マップは、ルールで直接使用する { match_criteria : action } ステートメントです。ステートメントには、複数のカンマ区切りマッピングを含めることができます。

匿名マップの欠点は、マップを変更する場合には、ルールを置き換える必要があることです。動的なソリューションの場合は、「nftables で名前付きマップの使用」 の説明に従って名前付きマップを使用します。

この例では、匿名マップを使用して、IPv4 プロトコルおよび IPv6 プロトコルの TCP パケットと UDPパケットの両方を別のチェーンにルーティングし、着信 TCP パケットと UDP パケットを個別にカウントする方法を説明します。

手順手順

1. example_table を作成します。

# nft add table inet example_table

2. example_table に tcp_packets チェーンを作成します。

# nft add chain inet example_table tcp_packets

3. このチェーンのトラフィックをカウントする tcp_packets にルールを追加します。

# nft add rule inet example_table tcp_packets counter

4. example_table で udp_packets チェーンを作成します。

# nft add chain inet example_table udp_packets

第第47章章 NFTABLES の使用の使用

303

Page 308: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

5. このチェーンのトラフィックをカウントする udp_packets にルールを追加します。

# nft add rule inet example_table udp_packets counter

6. 着信トラフィックのチェーンを作成します。たとえば、example_table に、着信トラフィックをフィルタリングする incoming_traffic という名前のチェーンを作成するには、次のコマンドを実行します。

# nft add chain inet example_table incoming_traffic { type filter hook input priority 0 \; }

7. 匿名マップのルールを incoming_traffic に追加します。

# nft add rule inet example_table incoming_traffic ip protocol vmap { tcp : jump tcp_packets, udp : jump udp_packets }

匿名マップはパケットを区別し、プロトコルに基づいて別のカウンターチェーンに送信します。

8. トラフィックカウンターの一覧を表示する場合は、example_table を表示します。

# nft list table inet example_tabletable inet example_table { chain tcp_packets { counter packets 36379 bytes 2103816 }

chain udp_packets { counter packets 10 bytes 1559 }

chain incoming_traffic { type filter hook input priority filter; policy accept; ip protocol vmap { tcp : jump tcp_packets, udp : jump udp_packets } }}

tcp_packets チェーンおよび udp_packets チェーンのカウンターは、受信パケットとバイトの両方を表示します。

47.6.2. nftables で名前付きマップの使用

nftables フレームワークは、名前付きマップに対応します。テーブルの複数のルールでこのマップを使用できます。匿名マップに対するもう 1 つの利点は、それを使用するルールを置き換えることなく名前付きマップを更新できることです。

名前付きマップを作成する場合は、要素のタイプを指定する必要があります。

一致する部分に 192.0.2.1 などの IPv4 アドレスが含まれるマップの場合は ipv4_addr。

一致する部分に 2001:db8:1::1 などの IPv6 アドレスが含まれるマップの場合は ipv6_addr。

52:54:00:6b:66:42 などのメディアアクセス制御 (MAC) アドレスを含むマップの場合は ether_addr。

一致する部分に tcp などのインターネットプロトコルタイプが含まれるマップの場合は

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

304

Page 309: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

一致する部分に tcp などのインターネットプロトコルタイプが含まれるマップの場合は inet_proto。

一致する部分に ssh や 22 などのインターネットサービス名のポート番号が含まれるマップの場合は inet_service。

一致する部分にパケットマークが含まれるマップの場合は mark。パケットマークは、任意の正の 32 ビットの整数値 (0 ~ 2147483647) にできます。

一致する部分にカウンターの値が含まれるマップの場合は counter。カウンター値は、正の値の 64 ビットであれば任意の値にすることができます。

一致する部分にクォータ値が含まれるマップの場合は quota。クォータの値は、64 ビットの整数値にできます。

この例では、送信元の IP アドレスに基づいて着信パケットを許可または破棄する方法を説明します。名前付きマップを使用する場合は、IP アドレスとアクションがマップに動的に保存される間、このシナリオを設定するために単一のルールのみが必要になります。この手順では、マップからエントリーを追加および削除する方法を説明します。

手順手順

1. テーブルを作成します。たとえば、IPv4 パケットを処理する example_table という名前のテーブルを作成するには、次のコマンドを実行します。

# nft add table ip example_table

2. チェーンを作成します。たとえば、example_table に、example_chain という名前のチェーンを作成するには、次のコマンドを実行します。

# nft add chain ip example_table example_chain { type filter hook input priority 0 \; }

重要重要

シェルで、セミコロンがコマンドの最後として解釈されないようにするには、セミコロンをバックスラッシュでエスケープする必要があります。

3. 空のマップを作成します。たとえば、IPv4 アドレスのマッピングを作成するには、次のコマンドを実行します。

# nft add map ip example_table example_map { type ipv4_addr : verdict \; }

4. マップを使用するルールを作成します。たとえば、次のコマンドは、両方とも example_mapで定義されている IPv4 アドレスにアクションを適用するルールを、example_table の example_chain に追加します。

# nft add rule example_table example_chain ip saddr vmap @example_map

5. IPv4 アドレスと対応するアクションを example_map に追加します。

# nft add element ip example_table example_map { 192.0.2.1 : accept, 192.0.2.2 : drop }

以下の例では、IPv4 アドレスのアクションへのマッピングを定義します。上記で作成したルー

第第47章章 NFTABLES の使用の使用

305

Page 310: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

以下の例では、IPv4 アドレスのアクションへのマッピングを定義します。上記で作成したルールと組み合わせて、ファイアウォールは 192.0.2.1 からのパケットを許可し、192.0.2.2 からのパケットを破棄します。

6. 必要に応じて、別の IP アドレスおよび action ステートメントを追加してマップを拡張します。

# nft add element ip example_table example_map { 192.0.2.3 : accept }

7. 必要に応じて、マップからエントリーを削除します。

# nft delete element ip example_table example_map { 192.0.2.1 }

8. 必要に応じて、ルールセットを表示します。

# nft list rulesettable ip example_table { map example_map { type ipv4_addr : verdict elements = { 192.0.2.2 : drop, 192.0.2.3 : accept } }

chain example_chain { type filter hook input priority filter; policy accept; ip saddr vmap @example_map }}

47.6.3. 関連情報

決定マップの詳細は、man ページの nft(8) の Maps セクションを参照してください。

47.7. NFTABLES を使用したポート転送の設定

ポート転送を使用すると、管理者は特定の宛先ポートに送信されたパケットを、別のローカルまたはリモートポートに転送できます。

たとえば、Web サーバーにパブリック IP アドレスがない場合は、ファイアウォールの 80 ポートおよび443 ポートの着信パケットを Web サーバーに転送するファイアウォールのポート転送ルールを設定できます。このファイアウォールルールを使用すると、インターネットのユーザーは、ファイアウォールの IP またはホスト名を使用して Web サーバーにアクセスできます。

47.7.1. 着信パケットの別のローカルポートへの転送

本セクションでは、8022 ポートの着信 IPv4 パケットを、ローカルシステムの 22 ポートに転送する例を説明します。

手順手順

1. ip アドレスファミリーを使用して、nat という名前のテーブルを作成します。

# nft add table ip nat

2. テーブルに、prerouting チェーンおよび postrouting チェーンを追加します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

306

Page 311: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nft -- add chain ip nat prerouting { type nat hook prerouting priority -100 \; }

注記注記

nft コマンドに -- オプションを渡して、シェルが優先度の負の値を nft コマンドのオプションとして解釈しないようにします。

3. 8022 ポートの着信パケットを、ローカルポート 22 にリダイレクトするルールを preroutingチェーンに追加します。

# nft add rule ip nat prerouting tcp dport 8022 redirect to :22

47.7.2. 特定のローカルポートで着信パケットを別のホストに転送

宛先ネットワークアドレス変換 (DNAT) ルールを使用して、ローカルポートの着信パケットをリモートホストに転送できます。これにより、インターネット上のユーザーは、プライベート IP アドレスを持つホストで実行しているサービスにアクセスできるようになります。

この手順では、ローカルポート 443 の着信 IPv4 パケットを、IP アドレス 192.0.2.1 を持つリモートシステムの同じポート番号に転送する方法を説明します。

前提条件前提条件

パケットを転送するシステムに root ユーザーとしてログインしている。

手順手順

1. ip アドレスファミリーを使用して、nat という名前のテーブルを作成します。

# nft add table ip nat

2. テーブルに、prerouting チェーンおよび postrouting チェーンを追加します。

# nft -- add chain ip nat prerouting { type nat hook prerouting priority -100 \; }# nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }

注記注記

nft コマンドに -- オプションを渡して、シェルが優先度の負の値を nft コマンドのオプションとして解釈しないようにします。

3. 443 ポートの着信パケットを 192.0.2.1 上の同じポートにリダイレクトするルールを prerouting チェーンに追加します。

# nft add rule ip nat prerouting tcp dport 443 dnat to 192.0.2.1

4. 出力トラフィックをマスカレードするルールを postrouting チェーンに追加します。

# nft add rule ip daddr 192.0.2.1 masquerade

5. パケット転送を有効にします。

第第47章章 NFTABLES の使用の使用

307

Page 312: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf# sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

47.8. NFTABLES を使用した接続の量の制限

nftables を使用して、接続の数を制限したり、一定の数の接続の確立を試みる IP アドレスをブロックして、システムリソースを過剰に使用されないようにします。

47.8.1. nftables を使用した接続数の制限

nft ユーティリティーの ct count パラメーターを使用すると、管理者は接続数を制限できます。この手順では、受信接続を制限する方法の基本的な例を説明します。

前提条件前提条件

example_table にベースの example_chain が存在する。

手順手順

1. IPv4 アドレスから SSH ポート (22) への 2 つの同時接続のみを許可し、同じ IP からのすべての接続を拒否するルールを追加します。

# nft add rule ip example_table example_chain tcp dport ssh meter example_meter { ip saddr ct count over 2 } counter reject

2. 必要に応じて、前の手順で作成した meter を表示します。

# nft list meter ip example_table example_metertable ip example_table { meter example_meter { type ipv4_addr size 65535 elements = { 192.0.2.1 : ct count over 2 , 192.0.2.2 : ct count over 2 } }}

elements エントリーは、現在のルールに一致するアドレスを表示します。この例では、elements は、SSH ポートへのアクティブな接続がある IP アドレスの一覧を表示します。出力には、アクティブな接続の数を表示しないため、接続が拒否された場合は表示されないことに注意してください。

47.8.2. 1 分以内に新しい着信 TCP 接続を 11 個以上試行する IP アドレスのブロック

nftables フレームワークにより、管理者はセットを動的に更新できます。このセクションでは、この機能を使用して、1 分以内に 11 個以上の IPv4 TCP 接続を確立しているホストを一時的にブロックする方法を説明します。nftables は、5 分経つと自動的にその IP アドレスを拒否リストから削除します。

手順手順

1. ip アドレスファミリーを使用して filter テーブルを作成します。

# nft add table ip filter

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

308

Page 313: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. input チェーンを filter テーブルに追加します。

# nft add chain ip filter input { type filter hook input priority 0 \; }

3. denylist という名前のセットを filter テーブルに追加します。

# nft add set ip filter denylist { type ipv4_addr \; flags dynamic, timeout \; timeout 5m \; }

このコマンドは、IPv4 アドレスの動的セットを作成します。timeout 5m パラメーターは、nftables がセットから 5 分後にエントリーを自動的に削除することを定義します。

4. 1 分以内に 11 個以上の新しい TCP 接続を確立しようとするホストのソース IP アドレスを denylist セットに自動的に追加するルールを追加します。

# nft add rule ip filter input ip protocol tcp ct state new, untracked limit rate over 10/minute add @denylist { ip saddr }

5. denylist セットの IP アドレスからの接続をすべて破棄するルールを追加します。

# nft add rule ip filter input ip saddr @denylist drop

関連情報関連情報

詳細は 「nftables で名前付きセットの使用」 を参照してください。

47.9. NFTABLES ルールのデバッグ

nftables フレームワークは、管理者がルールをデバッグし、パケットがそれに一致するかどうかを確認するためのさまざまなオプションを提供します。本セクションでは、3 つのオプションを説明します。

47.9.1. カウンターによるルールの作成

ルールが一致しているかどうかを確認するには、カウンターを使用できます。本セクションでは、カウンターを使用して新しいルールを作成する方法を説明します。

既存のルールにカウンターを追加する手順は、「既存のルールへのカウンターの追加」 を参照してください。

前提条件前提条件

ルールを追加するチェーンが存在する。

手順手順

1. counter パラメーターで、新しいルールをチェーンに追加します。以下の例では、ポート 22 でTCP トラフィックを許可し、このルールに一致するパケットとトラフィックをカウントするカウンターを使用するルールを追加します。

# nft add rule inet example_table example_chain tcp dport 22 counter accept

2. カウンター値を表示するには、次のコマンドを実行します。

第第47章章 NFTABLES の使用の使用

309

Page 314: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# nft list rulesettable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport ssh counter packets 6872 bytes 105448565 accept }}

47.9.2. 既存のルールへのカウンターの追加

ルールが一致しているかどうかを確認するには、カウンターを使用できます。本セクションでは、既存のルールにカウンターを追加する方法を説明します。

カウンターの新しいルールを追加する手順は、「カウンターによるルールの作成」 を参照してください。

前提条件前提条件

カウンターを追加するルールがある。

手順手順

1. チェーンのルール (ハンドルを含む) を表示します。

# nft --handle list chain inet example_table example_chaintable inet example_table { chain example_chain { # handle 1 type filter hook input priority filter; policy accept; tcp dport ssh accept # handle 4 }}

2. ルールの代わりに、counter パラメーターを使用してカウンターを追加します。以下の例は、前の手順で表示したルールの代わりに、カウンターを追加します。

# nft replace rule inet example_table example_chain handle 4 tcp dport 22 counter accept

3. カウンター値を表示するには、次のコマンドを実行します。

# nft list rulesettable inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport ssh counter packets 6872 bytes 105448565 accept }}

47.9.3. 既存のルールに一致するパケットの監視

nftables のトレース機能と、nft monitor コマンドを組み合わせることにより、管理者はルールに一致するパケットを表示できます。この手順では、ルールのトレースと、このルールに一致するパケットの監視を有効にする方法を説明します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

310

Page 315: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

前提条件前提条件

カウンターを追加するルールがある。

手順手順

1. チェーンのルール (ハンドルを含む) を表示します。

# nft --handle list chain inet example_table example_chaintable inet example_table { chain example_chain { # handle 1 type filter hook input priority filter; policy accept; tcp dport ssh accept # handle 4 }}

2. ルールの代わりに meta nftrace set 1 パラメーターを使用して、トレース機能を追加します。以下の例は、前の手順で表示したルールの代わりに、トレースを有効にします。

# nft replace rule inet example_table example_chain handle 4 tcp dport 22 meta nftrace set 1 accept

3. nft monitor コマンドを使用して、トレースを表示します。以下の例は、コマンドの出力をフィルタリングして、inet example_table example_chain が含まれるエントリーのみを表示します。

# nft monitor | grep "inet example_table example_chain"trace id 3c5eb15e inet example_table example_chain packet: iif "enp1s0" ether saddr 52:54:00:17:ff:e4 ether daddr 52:54:00:72:2f:6e ip saddr 192.0.2.1 ip daddr 192.0.2.2 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 49710 ip protocol tcp ip length 60 tcp sport 56728 tcp dport ssh tcp flags == syn tcp window 64240trace id 3c5eb15e inet example_table example_chain rule tcp dport ssh nftrace set 1 accept (verdict accept)...

警告警告

nft monitor コマンドは、トレースが有効になっているルールの数と、一致するトラフィックの量に応じて、大量の出力を表示できます。grep などのユーティリティーを使用して出力をフィルタリングします。

47.10. NFTABLES ルールセットのバックアップおよび復元

本セクションでは、nftables ルールのバックアップをファイルに作成し、ファイルからのルールを復元する方法を説明します。

管理者は、ルールを持つファイルを使用して、たとえば、ルールを別のサーバーに転送できます。

47.10.1. ファイルへの nftables ルールセットのバックアップ

第第47章章 NFTABLES の使用の使用

311

Page 316: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

本セクションでは、nftables ルールセットをファイルにバックアップする方法を説明します。

手順手順

nftables ルールのバックアップを作成するには、次のコマンドを実行します。

nft list ruleset 形式の場合は、以下のようになります。

# nft list ruleset > file.nft

JSON 形式の場合は、以下のようになります。

# nft -j list ruleset > file.json

47.10.2. ファイルからの nftables ルールセットの復元

本セクションでは、nftables ルールセットを復元する方法を説明します。

手順手順

nftables ルールを復元するには、以下を行います。

復元するファイルが nft list ruleset 形式であるか、nft コマンドが含まれている場合は、次のコマンドを実行します。

# nft -f file.nft

復元するファイルが JSON 形式の場合は、次のコマンドを実行します。

# nft -j -f file.json

47.11. 関連情報

ブログ投稿の「Using nftables in Red Hat Enterprise Linux 8」には、nftables 機能の使用に関する概要が記載されています。

「What comes after iptables?Its successor, of course: nftables」では、nftables が iptables の代替になった理由が説明されています。

「Firewalld: The Future is nftables」 の記事では、firewalld でデフォルトのバックエンドとなるnftables に関する追加情報が提供されます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

312

Page 317: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第48章 DDOS 攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで XDP-FILTER を使用

nftables と比べて、Express Data Path (XDP) は、パネットワークインターフェースでネットワークパケットを処理して破棄します。したがって、XDP は、ファイアウォールやその他のアプリケーションに到達する前に、パッケージの次のステップを決定します。その結果、XDP フィルターは必要なリソースが少なく、DDoS (Distributed Denial of Service) 攻撃に備えるために、従来のパケットフィルターよりもはるかに高いレートでネットワークパケットを処理できます。たとえば、テスト時に、Red Hat は、1つのコア上で 1 秒あたり 26 のネットワークパケットを破棄します。これは、同じハードウェアの nftables ドロップレートよりもはるかに高くなります。

xdp-filter ユーティリティーは、XDP を使用して着信ネットワークパケットを許可または破棄します。特定のトラフィックに対するトラフィックのフィルターを行うルールを作成できます。

IP アドレス

MAC アドレス

ポート

xdp-filter にパケット処理速度が大幅に高くなりますが、nftables など、nftables は同じ機能がないことに注意してください。XDP を使用したパケットのフィルタリングを例示します。xdp-filter は、XDPを使用したパケットのフィルタリングを実証します。また、独自の XDP アプリケーションを作成する方法を理解するために、ユーティリティーのコードを使用できます。

重要重要

AMD および Intel 64 ビット以外のアーキテクチャーでは、xdp-filter ユーティリティーはテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらのプレビューは、近々発表予定の製品機能をリリースに先駆けてご提供します。これにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

48.1. XDP-FILTER ルールに一致するネットワークパケットの削除

本セクションでは、xdp-filter を使用してネットワークパケットをドロップする方法を説明します。

特定の宛先ポートへの特定の宛先ポート

特定の IP アドレスの使用

特定の MAC アドレスの使用

xdp-filter の allow ポリシーは、すべてのトラフィックが許可され、フィルターが特定のルールに一致するネットワークパケットのみをドロップするように定義します。たとえば、ドロップするパケットのソース IP アドレスを知っている場合は、この方法を使用します。

前提条件前提条件

xdp-tools パッケージがインストールされている。

第第48章章 DDOS 攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで XDP-FILTER を使用を使用

313

Page 318: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

XDP プログラムをサポートするネットワークドライバー。

手順手順

1. xdp-filter を読み込み、enp1s0 などの特定のインターフェースの着信パケットを処理します。

# xdp-filter load enp1s0

デフォルトでは、xdp-filter は allow ポリシーを使用し、ユーティリティーはすべてのルールに一致するトラフィックのみを破棄します。

オプションで、-f feature オプションを使用して、tcp、ipv4、ethernet などの特定の機能のみを有効にします。すべてではなく必要な機能のみを読み込むと、パッケージ処理の速度が向上します。複数の機能を有効にするには、コンマで区切ります。

コマンドがエラーで失敗した場合、ネットワークドライバーは XDP プログラムをサポートしません。

2. ルールを追加して、それに一致するパケットをドロップします。以下に例を示します。

受信パケットをポート 22 に破棄するには、次のコマンドを実行します。

# xdp-filter port 22

このコマンドは、TCP および UDP トラフィックに一致するルールを追加します。特定のプロトコルのみと一致する場合は、-p protocol オプションを使用します。

192.0.2.1 から着信パケットを破棄するには、次のコマンドを実行します。

# xdp-filter ip 192.0.2.1 -m src

xdp-filter は IP 範囲に対応していないことに注意してください。

MAC アドレス 00:53:00:AA:07:BE から着信パケットを破棄するには、次のコマンドを実行します。

# xdp-filter ether 00:53:00:AA:07:BE -m src

検証手順検証手順

以下のコマンドを使用して、破棄されたパケットおよび許可されるパケットに関する統計を表示します。

# xdp-filter status

関連情報関連情報

xdp-filter の詳細は、xdp-filter(8) の man ページを参照してください。

開発者であり、xdp-filter のコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。

48.2. XDP-FILTER ルールに一致するネットワークパケット以外のネット

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

314

Page 319: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

48.2. XDP-FILTER ルールに一致するネットワークパケット以外のネットワークパケットをすべて削除

本セクションでは、xdp-filter を使用して、ネットワークパケットだけを許可する方法を説明します。

特定の宛先ポートから、あるいは指定された宛先ポートへ

特定の IP アドレスから、あるいは特定の IP アドレスへ

特定の MAC アドレスから、あるいは特定の MAC アドレスまで

これを行うには、特定のルールに一致するネットワークパケット以外のネットワークパケットをすべて破棄する xdp-filter の deny ポリシーを使用します。たとえば、ドロップするパケットのソース IP アドレスがわからない場合は、この方法を使用します。

警告警告

インターフェースで xdp-filter を読み込む際にデフォルトのポリシーを deny に設定すると、特定のトラフィックを許可するルールを作成するまで、カーネルはこのインターフェースからのパケットをすべて直ちに破棄します。システムからロックアウトしないようにするには、ローカルにコマンドを入力するか、別のネットワークインターフェースからホストに接続します。

前提条件前提条件

xdp-tools パッケージがインストールされている。

ホストにローカルにログインするか、トラフィックのフィルタリングを予定しないネットワークインターフェースを使用してホストにログインします。

XDP プログラムをサポートするネットワークドライバー。

手順手順

1. xdp-filter を読み込み、enp1s0 などの特定のインターフェースのパケットを処理します。

# xdp-filter load enp1s0 -p deny

オプションで、-f feature オプションを使用して、tcp、ipv4、ethernet などの特定の機能のみを有効にします。すべてではなく必要な機能のみを読み込むと、パッケージ処理の速度が向上します。複数の機能を有効にするには、コンマで区切ります。

コマンドがエラーで失敗した場合、ネットワークドライバーは XDP プログラムをサポートしません。

2. ルールを追加して、一致するパケットを許可します。以下に例を示します。

ポート 22 を対象としたパケットを許可するには、次のコマンドを実行します。

# xdp-filter port 22

第第48章章 DDOS 攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで攻撃を防ぐために、高パフォーマンストラフィックのフィルタリングで XDP-FILTER を使用を使用

315

Page 320: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

このコマンドは、TCP および UDP トラフィックに一致するルールを追加します。特定のプロトコルのみと一致するように、-p protocol オプションをコマンドに渡します。

192.0.2.1 からのパケットを許可するには、次のコマンドを実行します。

# xdp-filter ip 192.0.2.1

xdp-filter は IP 範囲に対応していないことに注意してください。

MAC アドレス 00:53:00:AA:07:BE からのパケットを許可するには、次のコマンドを実行します。

# xdp-filter ether 00:53:00:AA:07:BE

重要重要

xdp-filter ユーティリティーは、ステートフルパケットの検査に対応していません。これには、-m mode オプションでモードを設定せず、マシンが送信トラフィックに応答して受信トラフィックを許可する明示的なルールを追加する必要があります。

検証手順検証手順

以下のコマンドを使用して、破棄されたパケットおよび許可されるパケットに関する統計を表示します。

# xdp-filter status

関連情報関連情報

xdp-filter の詳細は、xdp-filter(8) の man ページを参照してください。

開発者であり、xdp-filter のコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

316

Page 321: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第49章 DPDK の使用Data Plane Development Kit (DPDK) は、ユーザー領域でパッケージ処理を加速する、ライブラリーとネットワークドライバーを提供します。

管理者は、たとえば仮想マシンで、SR-IOV (Single Root I/O Virtualization) を使用して、レイテンシーを減らして I/O スループットを増やします。

注記注記

Red Hat は、実験的な DPDK API に対応していません。

49.1. DPDK パッケージのインストール

このセクションでは、dpdk パッケージのインストール方法を説明します。

前提条件前提条件

Red Hat Enterprise Linux をインストールしている。

有効なサブスクリプションがホストに割り当てられている。

手順手順

yum ユーティリティーを使用して dpdk パッケージをインストールします。

# yum install dpdk

49.2. 関連情報

Red Hat Enterprise Linux 8 で SR-IOV に対応するネットワークアダプターの一覧は、「NetworkAdapter Fast Datapath Feature Support Matrix」を参照してください。

第第49章章 DPDK の使用の使用

317

Page 322: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第50章 RHEL の EBPF ネットワーク機能についてeBPF (extended Berkeley Packet Filter) は、カーネル領域でのコード実行を可能にするカーネル内の仮想マシンです。このコードは、限られた一連の関数にのみアクセスできる制限付きサンドボックス環境で実行されます。

ネットワークでは、eBPF を使用してカーネルパケット処理を補完したり、置き換えることができます。使用するフックに応じて、eBPF プログラムには以下のような記述があります。

パケットデータおよびメタデータへの読み取りおよび書き込みアクセス

ソケットとルートを検索できる

ソケットオプションを設定できる

パケットをリダイレクト可能

50.1. RHEL におけるネットワーク EBPF 機能の概要

eBPF (extended Berkeley Paket Filter) ネットワークプログラムは、RHEL の以下のフックに割り当てることができます。

eXpress Data Path (XDP): カーネルネットワークスタックが受信したパケットを処理する前に、このパケットへの早期アクセスを提供します。

tc eBPF 分類子 (direct-action フラグ): ingress および egress で強力なパケット処理を提供します。

Control Groups version 2 (cgroup v2): コントロールグループ内のプログラムが実行するソケットベースの操作のフィルタリングおよび上書きを有効にします。

ソケットフィルタリング: ソケットから受信したパケットのフィルタリングを有効にします。この機能は、従来の Berkeley Packet Filter (cBPF) でも利用できますが、eBPF プログラムに対応するために拡張されました。

ストリームパーサー :個別のメッセージへのストリームの分散、フィルタリング、ソケットへのリダイレクトを有効にします。

SO_REUSEPORT ソケットの選択: reuseport ソケットグループから受信したソケットをプログラム可能な選択を提供します。

flow dissector: 特定の状況でカーネルがパケットヘッダーを解析する方法をオーバーライドします。

TCP 輻輳制御コールバック: カスタム TCP 輻輳制御アルゴリズムの実装を有効にします。

カプセル化によるルート: カスタムのトンネルカプセル化の作成を有効にします。

Red Hat は、RHEL で利用可能な eBPF 機能をすべてサポートせず、ここで説明するすべての eBPF 機能をサポートしているわけではないことに注意してください。詳細と、個別のフックのサポート状況は、RHEL 8 リリースノート と、次の概要を参照してください。

XDPBPF_PROG_TYPE_XDP タイプのプログラムはネットワークインターフェースに割り当てることができます。次にカーネルは、カーネルネットワークスタックが処理を開始する前に受信したパケットでプログラムを実行します。これにより、高速パケットドロップなど、特定の状況で高速なパケット転送が

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

318

Page 323: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

可能になり、負荷分散シナリオにおいて DDoS (Distributed Denial of Service) 攻撃や高速パケットリダイレクトを防ぐことができます。

さまざまな形式のパケット監視やサンプリングに XDP を使用することもできます。カーネルは、XDPプログラムはパケットを変更し、カーネルネットワークスタックへのさらなる処理を可能にします。

以下の XDP モードを使用できます。

ネイティブ (ドライバー) XDP: カーネルは、パケット受信時に最速の可能点からプログラムを実行します。この時点で、カーネルはパケットを解析しなかったため、カーネルが提供するメタデータは利用できません。このモードでは、ネットワークインターフェースドライバーがXDP をサポートしている必要がありますが、すべてのドライバーがこのネイティブモードをサポートするわけではありません。

汎用 XDP: カーネルネットワークスタックは、処理の初期段階で XDP プログラムを実行します。この時点で、カーネルデータ構造が割り当てられ、パケットを事前に処理しています。パケットをドロップまたはリダイレクトする必要がある場合は、ネイティブモードと比較して大きなオーバーヘッドが必要になります。ただし、汎用モードはネットワークインターフェースドライバーのサポートを必要とせず、すべてのネットワークインターフェースで機能します。

オフロードされた XDP: カーネルは、ホストの CPU 上ではなく、ネットワークインターフェースで XDP プログラムを実行します。これには特定のハードウェアが必要で、特定の eBPF 機能のみがこのモードで使用できることに注意してください。

RHEL で、libxdp ライブラリーを使用してすべての XDP プログラムを読み込みます。このライブラリーは、XDP のシステム制御を可能にします。

注記注記

現在、XDP プログラムにはシステム設定に制限があります。たとえば、受信側インターフェースで特定のハードウェアオフロード機能を無効にする必要があります。また、ネイティブモードをサポートするすべてのドライバーで利用可能なわけではありません。

Red Hat は、RHEL 8.4 では、以下の条件がすべて適用されている場合に限り、XDP 機能をサポートします。

AMD または Intel 64 ビットアーキテクチャーに XDP プログラムを読み込みます。

libxdp ライブラリーを使用して、カーネルにプログラムを読み込む。

XDP プログラムが XDP ハードウェアオフロードを使用しない

さらに、Red Hat は、サポート対象外のテクノロジープレビューとして以下の XDP の使用を提供します。

AMD および Intel 64 ビット以外のアーキテクチャーで XDP プログラムを読み込む。libxdp ライブラリーは、AMD および Intel 64 ビット以外のアーキテクチャーでは使用できません。

XDP ハードウェアオフロード。

AF_XDP指定した AF_XDP ソケットにパケットをフィルターしてリダイレクトする XDP プログラムを使用すると、AF_XDP プロトコルファミリーから 1 つ以上のソケットを使用して、カーネルからユーザー空間にパケットを高速にコピーできます。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供していま

第第50章章 RHEL のの EBPF ネットワーク機能についてネットワーク機能について

319

Page 324: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

トラフィック制御トラフィック制御Traffic Control (tc) サブシステムは、以下のタイプの eBPF プログラムを提供します。

BPF_PROG_TYPE_SCHED_CLS

BPF_PROG_TYPE_SCHED_ACT

これらのタイプを使用すると、カスタム tc 分類子と tc アクションを eBPF に記述できます。これは、tc エコシステムの一部とともに、強力なパケット処理機能を提供します。また、複数のコンテナーネットワークオーケストレーションソリューションの中核となります。

多くの場合、direct-action フラグと同様に、eBPF 分類子は、同じ eBPF プログラムから直接アクションを実行できます。clsact Queueing Discipline (qdisc) は、Ingress 側でこれを有効にするように設計されています。

flow dissector の eBPF プログラムは、flower などのその他の qdiscs や tc 分類子の操作に影響を与える可能性があることに注意してください。

tc 機能の eBPF は、RHEL 8.2 以降で完全にサポートされています。

ソケットフィルターソケットフィルター複数のユーティリティーは、ソケットで受信されるパケットのフィルタリングに、従来の BerkeleyPacket Filter (cBPF) を使用または使用しています。たとえば、tcpdump ユーティリティーを使用すると、ユーザーは、どの tcpdump を cBPF コードに変換するか、式を指定できます。

cBPF の代替として、カーネルは、同じ目的で BPF_PROG_TYPE_SOCKET_FILTER タイプの eBPFプログラムを許可します。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

コントロールグループコントロールグループRHEL では、cgroup に割り当てられる eBPF プログラムを複数使用できます。カーネルは、指定のcgroup のプログラムが操作を実行する際に、これらのプログラムを実行します。cgroups バージョン 2のみを使用できます。

RHEL では、以下のネットワーク関連の cgroup eBPF プログラムが利用できます。

BPF_PROG_TYPE_SOCK_OPS: カーネルは、TCP connect 中にこのプログラムを呼び出して、ソケットごとの TCP 操作の設定を可能にします。

BPF_PROG_TYPE_CGROUP_SOCK_ADDR: カーネルは、connect、bind、sendto、および recvmsg 操作中にこのプログラムを呼び出します。このプログラムは、IP アドレスとポートを変更できます。

BPF_PROG_TYPE_CGROUP_SOCKOPT: カーネルは、setsockopt および getsockopt 操作時にこのプログラムを呼び出して、オプションの変更を可能にします。

BPF_PROG_TYPE_CGROUP_SOCK: カーネルは、ソケットの作成、ソケット解放、およびアドレスへのバインディング中にこのプログラムを呼び出します。これらのプログラムを使用して操作を許可または拒否するか、統計のソケット作成の検査のみを行います。

BPF_PROG_TYPE_CGROUP_SKB: このプログラムは ingress および egress の個別のパケットをフィルターし、パケットを受信または拒否できます。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

320

Page 325: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

BPF_PROG_TYPE_CGROUP_SYSCTL: このプログラムはシステム制御 (sysctl) へのアクセスをフィルタリングできます。

BPF_CGROUP_INET4_GETPEERNAME、、 BPF_CGROUP_INET6_GETPEERNAME、、 BPF_CGROUP_INET4_GETSOCKNAME、、 および BPF_CGROUP_INET6_GETSOCKNAME:これらのプログラムを使用して、getsockname およびおよび getpeername システムシステム コールの結果をオーバーライドできます。これは、ソケットベースのネットワークアドレス変換(NAT)を eBPFに実装する場合に便利です。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

ストリームパーサーストリームパーサーストリームパーサーは、特別な eBPF マップに追加されるソケットのグループで動作します。次に、eBPF プログラムは、カーネルがこれらのソケットで受信または送信するパケットを処理します。

RHEL では、以下のストリームパーサー eBPF プログラムを利用できます。

BPF_PROG_TYPE_SK_SKB: eBPF プログラムは、ソケットから受信したパケットを個別のメッセージに解析したり、それらのメッセージをドロップしたり、グループ内の別のソケットに送信するようにカーネルに指示します。

BPF_PROG_TYPE_SK_MSG: このプログラムは egress メッセージをフィルタリングします。eBPF プログラムは、パケットを個別のメッセージを解析し、そのパケットを承認または拒否します。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

SO_REUSEPORT ソケットの選択ソケットの選択このソケットオプションを使用することで、複数のソケットを同じ IP アドレスとポートにバインドできます。eBPF がない場合、カーネルは接続ハッシュに基づいて受信ソケットを選択します。BPF_PROG_TYPE_SK_REUSEPORT プログラムを使用すると、受信ソケットの選択が完全にプログラム可能になります。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

Flow dissectorプロトコルの完全なデコードを待たずにカーネルがパケットヘッダーを処理する必要がある場合、これらは破棄されます破棄されます。たとえば、これは、tc サブシステム、ボンディングのルーティング、またはパケットのハッシュを計算する際に発生します。この場合、カーネルはパケットヘッダーを解析し、パケットヘッダーからの情報を使って内部構造を埋めます。この内部解析は、BPF_PROG_TYPE_FLOW_DISSECTOR プログラムを使用して置き換えることができます。RHEL の eBPF では、TCP および UDP を IPv4 および IPv6 上でのみ破棄できます。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

TCP 輻輳制御輻輳制御struct tcp_congestion_oops コールバックを実装するBPF_PROG_TYPE_STRUCT_OPS プログラムのグループを使用して、カスタム TCP 輻輳制御アルゴリズムを作成できます。この方法を実装するアルゴリズムは、ビルトインのカーネルアルゴリズムとともにシステムで利用できます。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

第第50章章 RHEL のの EBPF ネットワーク機能についてネットワーク機能について

321

Page 326: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

カプセル化によるルートカプセル化によるルート以下のいずれかの eBPF プログラムタイプは、トンネルのカプセル化属性として、ルーティングテーブルのルートに割り当てることができます。

BPF_PROG_TYPE_LWT_IN

BPF_PROG_TYPE_LWT_OUT

BPF_PROG_TYPE_LWT_XMIT

このような eBPF プログラムの機能は特定のトンネル設定に限定され、汎用のカプセル化またはデシリアライズソリューションの作成はできません。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

ソケットルックアップソケットルックアップbind システムコールの制限を迂回するには、BPF_PROG_TYPE_SK_LOOKUP タイプのタイプの eBPF プログプログラムを使用しラムを使用し ます。このようなプログラムは、新しい受信 TCP 接続のリスニングソケットまたは UDPパケットの接続されていないソケットを選択できます。

Red Hat は、RHEL 8.4 では、この機能をサポート対象外のテクノロジープレビューとして提供しています。

50.2. ネットワークカードによる XDP 機能の概要

以下は、XDP 対応ネットワークカードと、それらで使用できる XDP 機能の概要です。

Network カードカード ドライバードライバー ベーベーシックシック

redirect

ターターゲットゲット

HW オオフローフロードド

Zero-copy

Amazon Elastic Network Adapter ena はい いいえ

いいえ

いいえ

いいえ

Broadcom NetXtreme-C/E10/25/40/50 gigabit Ethernet

bnxt_en はい はい はい[a] [b]

いいえ

いいえ

Cavium Thunder Virtual function nicvf はい いいえ

いいえ

いいえ

いいえ

Intel® Ethernet Controller XL710 ファミリー

i40e はい はい 必須[a] [b]

いいえ

はい

Intel® Ethernet Connection E800Series

ice はい はい 必須[a] [b]

いいえ

はい

Intel® 10GbE PCI Express アダプター ixgbe はい はい 必須[a] [b]

いいえ

はい

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

322

Page 327: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Intel® 10GbE PCI Express VirtualFunction Ethernet

ixgbevf はい いいえ

いいえ

いいえ

いいえ

Mellanox Technologies 1/10/40GbitEthernet

mlx4_en はい いいえ

いいえ

いいえ

いいえ

Mellanox 5th generation ネットワークアダプター(ConnectX シリーズ)

mlx5_core はい はい 必須[b]

いいえ

はい

Netronome® NFP4000/NFP6000NIC

nfp はい いいえ

いいえ

はい いいえ

QLogic QED 25/40/100Gb EthernetNIC

qede はい はい はい いいえ

いいえ

SolarflareSFC9000/SFC9100/EF100-family

sfc はい はい 必須[b]

いいえ

はい

Microsoft Hyper-V 仮想ネットワーク hv_netvsc はい いいえ

いいえ

いいえ

いいえ

Universal TUN/TAP デバイス tun はい はい はい いいえ

いいえ

仮想イーサネットペアデバイス veth はい はい はい[c]

いいえ

いいえ

QEMU Virtio ネットワーク virtio_net はい はい 必須[a] [b]

いいえ

いいえ

[a] XDP プログラムがインターフェースで読み込まれている場合にのみします。

[b] 最大 CPU インデックスが大きい XDP TX キューが多数必要です。

[c] XDP プログラムがピアデバイスに読み込まれている場合に限ります。

Network カードカード ドライバードライバー ベーベーシックシック

redirect

ターターゲットゲット

HW オオフローフロードド

Zero-copy

説明:

Basic: 基本的な戻りコード( DROP、PASS、ABORTED、および TX )をサポートします。

redirect: REDIRECT の戻りコードをサポートします。

target: REDIRECT の戻りコードのターゲットにすることができます。

HW オフロード: XDP ハードウェアオフロードをサポートします。

第第50章章 RHEL のの EBPF ネットワーク機能についてネットワーク機能について

323

Page 328: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

zero-copy: AF_XDP プロトコルファミリーの zero-copy モードをサポートします。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

324

Page 329: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第51章 BPF コンパイラーコレクションを使用したネットワークトレース

このセクションでは、BCC (BPF Compiler Collection) の概要、BCC のインストール方法、および bcc-tools パッケージが提供する事前作成されたスクリプトを使用して異なるネットワークトレース操作を実行する方法を説明します。これらのスクリプトはすべて、--ebpf パラメーターをサポートして、ユーティリティーがカーネルにアップロードする eBPF コードを表示します。eBPF スクリプトの作成に関する詳細は、このコードを使用します。

51.1. BCC の概要

BPF コンパイラーコレクション (BCC) は、eBPF (extended Berkeley Packet Filter) プログラムの作成を容易にするライブラリーです。この主なユーティリティーは、オーバーヘッドやセキュリティー上の問題が発生することなく、OS のパフォーマンスおよびネットワークパフォーマンスを分析するものです。

BCC により、ユーザーは eBPF の技術詳細を把握する必要がなくなり、事前に作成した eBPF プログラムを含む bcc-tools パッケージなど、多くの標準スタートポイントを利用できます。

注記注記

eBPF プログラムは、ディスク I/O、TCP 接続、プロセス作成などのイベントでトリガーされます。プログラムがカーネルのセーフ仮想マシンで実行するため、カーネルがクラッシュしたり、ループしたり、応答しなくなることはあまりありません。

51.2. BCC-TOOLS パッケージのインストール

このセクションでは、BCC (BPF コンパイラーコレクション) ライブラリーを含む bcc-tools パッケージをインストールする方法を説明します。

前提条件前提条件

アクティブな Red Hat Enterprise Linux サブスクリプションサブスクリプション

bcc-tools パッケージを含む有効なリポジトリー有効なリポジトリー

更新済みのカーネル

root 権限

手順手順

1. bcc-tools をインストールします。

# yum install bcc-tools

BCC ツールは、/usr/share/bcc/tools/ ディレクトリーにインストールされます。

2. 必要に応じて、ツールを検証します。

# ll /usr/share/bcc/tools/...-rwxr-xr-x. 1 root root 4198 Dec 14 17:53 dcsnoop

第第51章章 BPF コンパイラーコレクションを使用したネットワークトレースコンパイラーコレクションを使用したネットワークトレース

325

Page 330: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

-rwxr-xr-x. 1 root root 3931 Dec 14 17:53 dcstat-rwxr-xr-x. 1 root root 20040 Dec 14 17:53 deadlock_detector-rw-r--r--. 1 root root 7105 Dec 14 17:53 deadlock_detector.cdrwxr-xr-x. 3 root root 8192 Mar 11 10:28 doc-rwxr-xr-x. 1 root root 7588 Dec 14 17:53 execsnoop-rwxr-xr-x. 1 root root 6373 Dec 14 17:53 ext4dist-rwxr-xr-x. 1 root root 10401 Dec 14 17:53 ext4slower...

上記の一覧にある doc ディレクトリーには、各ツールのドキュメントが含まれます。

51.3. カーネルの受け入れキューに追加された TCP 接続の表示

カーネルは、TCP 3 方向ハンドシェイクで ACK パケットを受け取ると、カーネルは接続の状態が ESTABLISHED に変更された後に SYN キューから accept キューに移動します。そのため、正常なTCP 接続だけがこのキューに表示されます。

tcpaccept ユーティリティーは、eBPF 機能を使用して、カーネルが accept キューに追加するすべての接続を表示します。このユーティリティーは、パケットをキャプチャーしてフィルタリングする代わりにカーネルの accept() 関数を追跡するため、軽量です。たとえば、一般的なトラブルシューティングには tcpaccept を使用して、サーバーが許可した新しい接続を表示します。

手順手順

1. 次のコマンドを実行して、カーネルの 許可許可 キューの追跡を開始します。

# /usr/share/bcc/tools/tcpacceptPID COMM IP RADDR RPORT LADDR LPORT843 sshd 4 192.0.2.17 50598 192.0.2.1 221107 ns-slapd 4 198.51.100.6 38772 192.0.2.1 3891107 ns-slapd 4 203.0.113.85 38774 192.0.2.1 389...

カーネルが接続を受け入れるたびに、tcpaccept は接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcpaccept(8) を参照してください。

tcpaccept および例の詳細 は、 /usr/share/bcc/tools/doc/tcpaccept_example.txt ファイルを参照してください。

tcpaccept8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpaccept --ebpf コマンドを使用します。

51.4. 発信 TCP 接続試行の追跡

tcpconnect ユーティリティーは、eBPF 機能を使用して発信 TCP 接続の試行を追跡します。ユーティリティーの出力には、失敗した接続も含まれます。

tcpconnect ユーティリティーは、パケットを取得してフィルタリングするのではなく、カーネルの connect() 関数などを追跡するため、軽量です。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

326

Page 331: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

手順手順

1. 以下のコマンドを入力し、すべての発信接続を表示する追跡プロセスを開始します。

# /usr/share/bcc/tools/tcpconnectPID COMM IP SADDR DADDR DPORT31346 curl 4 192.0.2.1 198.51.100.16 8031348 telnet 4 192.0.2.1 203.0.113.231 2331361 isc-worker00 4 192.0.2.1 192.0.2.254 53...

カーネルが発信接続を処理するたびに、tcpconnect は、接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcpconnect(8) を参照してください。

tcpconnect および例の詳細は、/usr/share/bcc/tools/doc/tcpconnect_example.txt ファイルを参照してください。

tcpconnect(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpconnect --ebpf コマンドを実行します。

51.5. 発信 TCP 接続のレイテンシーの測定

TCP 接続のレイテンシーは、接続を確立するのにかかった時間です。通常、これには、アプリケーションのランタイムではなく、カーネル TCP/IP 処理およびネットワークのラウンドトリップタイムが含まれます。

tcpconnlat ユーティリティーは、eBPF 機能を使用して、送信した SYN パケットと受信した応答パケットの時間を測定します。

手順手順

1. 発信接続のレイテンシーの測定を開始します。

# /usr/share/bcc/tools/tcpconnlatPID COMM IP SADDR DADDR DPORT LAT(ms)32151 isc-worker00 4 192.0.2.1 192.0.2.254 53 0.6032155 ssh 4 192.0.2.1 203.0.113.190 22 26.3432319 curl 4 192.0.2.1 198.51.100.59 443 188.96...

カーネルが発信接続を処理するたびに、tcpconnlat は、カーネルが応答パケットを受信すると接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcpconnlat(8) を参照してください。

tcpconnlat および例の詳細は、/usr/share/bcc/tools/doc/tcpconnlat_example.txt ファイルを

第第51章章 BPF コンパイラーコレクションを使用したネットワークトレースコンパイラーコレクションを使用したネットワークトレース

327

Page 332: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

tcpconnlat および例の詳細は、/usr/share/bcc/tools/doc/tcpconnlat_example.txt ファイルを参照してください。

eBPF スクリプト tcpconnlat(8) をカーネルにアップロードするには、/usr/share/bcc/tools/tcpconnlat --ebpf コマンドを使用します。

51.6. カーネルによって破棄された TCP パケットおよびセグメントの詳細の表示

tcpdrop ユーティリティーを使用すると、管理者はカーネルによって破棄された TCP パケットおよびセグメントの詳細を表示できます。このユーティリティーを使用して、リモートシステムがタイマーベースの再送信を送信する可能性がある破棄されたパケットの高レートをデバッグします。ドロップされたパケットおよびセグメントの高レートは、サーバーのパフォーマンスに影響を与える可能性があります。

リソース集約型のパケットを取得およびフィルタリングする代わりに、tcpdrop ユーティリティーはeBPF 機能を使用してカーネルから直接情報を取得します。

手順手順

1. 以下のコマンドを入力して、破棄された TCP パケットおよびセグメントの詳細表示を開始します。

# /usr/share/bcc/tools/tcpdropTIME PID IP SADDR:SPORT > DADDR:DPORT STATE (FLAGS)13:28:39 32253 4 192.0.2.85:51616 > 192.0.2.1:22 CLOSE_WAIT (FIN|ACK) b'tcp_drop+0x1' b'tcp_data_queue+0x2b9' ...

13:28:39 1 4 192.0.2.85:51616 > 192.0.2.1:22 CLOSE (ACK) b'tcp_drop+0x1' b'tcp_rcv_state_process+0xe2' ...

カーネルが TCP パケットとセグメントを破棄するたびに、tcpdrop は、破棄されたパッケージにつながるカーネルスタックトレースを含む接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcpdrop(8) を参照してください。

tcpdrop および例の詳細は、/usr/share/bcc/tools/doc/tcpdrop_example.txt ファイルを参照してください。

tcpdrop(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpdrop --ebpf コマンドを使用します。

51.7. TCP セッションのトレース

tcplife ユーティリティーは eBPF を使用して、開いて閉じる TCP セッションを追跡し、出力を 1 行で

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

328

Page 333: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

tcplife ユーティリティーは eBPF を使用して、開いて閉じる TCP セッションを追跡し、出力を 1 行で出力してそれぞれを要約します。管理者は tcplife を使用して、接続と転送されたトラフィック量を特定できます。

本セクションの例では、ポート 22 (SSH) への接続を表示して以下の情報を取得する方法を説明します。

ローカルプロセス ID (PID)

ローカルプロセス名

ローカルの IP アドレスおよびポート番号

リモートの IP アドレスおよびポート番号

受信および送信トラフィックの量 (KB 単位)

接続がアクティブであった時間 (ミリ秒単位)

手順手順

1. 次のコマンドを実行して、ローカルポート 22 への接続の追跡を開始します。

/usr/share/bcc/tools/tcplife -L 22PID COMM LADDR LPORT RADDR RPORT TX_KB RX_KB MS19392 sshd 192.0.2.1 22 192.0.2.17 43892 53 52 6681.9519431 sshd 192.0.2.1 22 192.0.2.245 43902 81 249381 7585.0919487 sshd 192.0.2.1 22 192.0.2.121 43970 6998 7 16740.35...

接続が閉じられるたびに、tcplife は接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcplife(8) を参照してください。

tcplife および例の詳細は、/usr/share/bcc/tools/doc/tcplife_example.txt ファイルを参照してください。

tcplife(8) がカーネルにアップロードする eBPF スクリプト表示するには、/usr/share/bcc/tools/tcplife --ebpf コマンドを使用します。

51.8. TCP 再送信の追跡

tcpretrans ユーティリティーは、ローカルおよびリモート IP アドレスおよびポート番号、再送信時のTCP 状態などの TCP 再送信の詳細を表示します。

このユーティリティーは eBPF 機能を使用するため、オーバーヘッドが非常に低くなります。

手順手順

1. 以下のコマンドを使用して、TCP 再送信の詳細を表示します。

第第51章章 BPF コンパイラーコレクションを使用したネットワークトレースコンパイラーコレクションを使用したネットワークトレース

329

Page 334: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

# /usr/share/bcc/tools/tcpretransTIME PID IP LADDR:LPORT T> RADDR:RPORT STATE00:23:02 0 4 192.0.2.1:22 R> 198.51.100.0:26788 ESTABLISHED00:23:02 0 4 192.0.2.1:22 R> 198.51.100.0:26788 ESTABLISHED00:45:43 0 4 192.0.2.1:22 R> 198.51.100.0:17634 ESTABLISHED...

カーネルが TCP 再送信関数を呼び出すたびに、tcpretrans は、接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcpretrans(8) を参照してください。

tcpretrans および例の詳細は、/usr/share/bcc/tools/doc/tcpretrans_example.txt ファイルを参照してください。

tcpretrans(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpretrans --ebpf コマンドを使用します。

51.9. TCP 状態変更情報の表示

TCP セッション時に、TCP の状態が変わります。tcpstates ユーティリティーは、eBPF 関数を使用してこれらの状態の変更を追跡し、各状態の期間を含む詳細を出力します。たとえば、tcpstates を使用して、接続の初期化に時間がかかりすぎるかどうかを特定します。

手順手順

1. 以下のコマンドを使用して、TCP 状態変更の追跡を開始します。

# /usr/share/bcc/tools/tcpstatesSKADDR C-PID C-COMM LADDR LPORT RADDR RPORT OLDSTATE -> NEWSTATE MSffff9cd377b3af80 0 swapper/1 0.0.0.0 22 0.0.0.0 0 LISTEN -> SYN_RECV 0.000ffff9cd377b3af80 0 swapper/1 192.0.2.1 22 192.0.2.45 53152 SYN_RECV -> ESTABLISHED 0.067ffff9cd377b3af80 818 sssd_nss 192.0.2.1 22 192.0.2.45 53152 ESTABLISHED -> CLOSE_WAIT 65636.773ffff9cd377b3af80 1432 sshd 192.0.2.1 22 192.0.2.45 53152 CLOSE_WAIT -> LAST_ACK 24.409ffff9cd377b3af80 1267 pulseaudio 192.0.2.1 22 192.0.2.45 53152 LAST_ACK -> CLOSE 0.376...

接続の状態が変更されるたびに、tcpstates は、更新された接続の詳細を含む新しい行を表示します。

複数の接続が状態を同時に変更する場合は、最初の列 (SKADDR) のソケットアドレスを使用して、同じ接続に属するエントリーを判断します。

2. Ctrl+C を押して、追跡プロセスを停止します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

330

Page 335: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

詳細は、man ページの tcpstates(8) を参照してください。

tcpstates および例の詳細は、/usr/share/bcc/tools/doc/tcpstates_example.txt ファイルを参照してください。

tcpstates(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpstates --ebpf コマンドを使用します。

51.10. 特定のサブネットに送信された TCP トラフィックの要約および集計

tcpsubnet ユーティリティーは、ローカルホストがサブネットに送信する IPv4 TCP トラフィックを要約し、固定の間隔で出力を表示します。このユーティリティーは、eBPF 機能を使用してデータを収集および要約して、オーバーヘッドを削減します。

デフォルトでは、tcpsubnet は以下のサブネットのトラフィックを要約します。

127.0.0.1/32

10.0.0.0/8

172.16.0.0/12

192.0.2.0/24/16

0.0.0.0/0

最後のサブネット (0.0.0.0/0) は catch-all オプションであることに注意してください。tcpsubnet ユーティリティーは、この catch-all エントリーの最初の 4 つとは異なるサブネットのトラフィックをすべてカウントします。

192.0.2.0/24 および 198.51.100.0/24 サブネットのトラフィックをカウントするには、以下の手順に従います。他のサブネットへのトラフィックは 0.0.0.0/0 catch-all subnet entry で追跡されます。

手順手順

1. 192.0.2.0/24、198.51.100.0/24、および他のサブネットに送信するトラフィック量の監視を開始します。

# /usr/share/bcc/tools/tcpsubnet 192.0.2.0/24,198.51.100.0/24,0.0.0.0/0Tracing... Output every 1 secs. Hit Ctrl-C to end[02/21/20 10:04:50]192.0.2.0/24 856198.51.100.0/24 7467[02/21/20 10:04:51]192.0.2.0/24 1200198.51.100.0/24 87630.0.0.0/0 673...

このコマンドは、指定したサブネットのトラフィックを 1 秒ごとに 1 回ずつバイト単位で表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

第第51章章 BPF コンパイラーコレクションを使用したネットワークトレースコンパイラーコレクションを使用したネットワークトレース

331

Page 336: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

関連情報関連情報

詳細は、man ページの tcpsubnet(8) を参照してください。

tcpsubnet および例の詳細は、/usr/share/bcc/tools/doc/tcpsubnet.txt ファイルを参照してください。

tcpsubnet(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpsubnet --ebpf コマンドを使用します。

51.11. IP アドレスとポートによるネットワークスループットの表示

tcptop ユーティリティーは、ホストがキロバイト単位で送受信する TCP トラフィックを表示します。レポートは自動的に更新され、アクティブな TCP 接続のみが含まれます。このユーティリティーはeBPF 機能を使用するため、オーバーヘッドは非常に低くなります。

手順手順

1. 送受信トラフィックを監視するには、次のコマンドを実行します。

# /usr/share/bcc/tools/tcptop13:46:29 loadavg: 0.10 0.03 0.01 1/215 3875

PID COMM LADDR RADDR RX_KB TX_KB3853 3853 192.0.2.1:22 192.0.2.165:41838 32 1026261285 sshd 192.0.2.1:22 192.0.2.45:39240 0 0...

コマンドの出力には、アクティブな TCP 接続のみが含まれます。ローカルシステムまたはリモートシステムが接続を閉じると、接続が出力に表示されなくなります。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcptop(8) を参照してください。

tcptop および例の詳細は、/usr/share/bcc/tools/doc/tcptop.txt ファイルを参照してください。

tcptop(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcptop --ebpf コマンドを使用します。

51.12. 確立された TCP 接続の追跡

tcptracer ユーティリティーは、TCP 接続を接続、許可、および閉じるカーネル機能を追跡します。このユーティリティーは eBPF 機能を使用するため、オーバーヘッドが非常に低くなります。

手順手順

1. 次のコマンドを実行して、トレースプロセスを開始します。

# /usr/share/bcc/tools/tcptracerTracing TCP established connections. Ctrl-C to end.T PID COMM IP SADDR DADDR SPORT DPORT

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

332

Page 337: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

A 1088 ns-slapd 4 192.0.2.153 192.0.2.1 0 65535A 845 sshd 4 192.0.2.1 192.0.2.67 22 42302X 4502 sshd 4 192.0.2.1 192.0.2.67 22 42302...

カーネルが接続を開始し、受け入れ、または閉じるたびに、tcptracer は、接続の詳細を表示します。

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの tcptracer(8) を参照してください。

tcptracer および例の詳細は、/usr/share/bcc/tools/doc/tcptracer_example.txt ファイルを参照してください。

tcptracer(8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcptracer --ebpf コマンドを使用します。

51.13. IPV4 および IPV6 リッスン試行の追跡

solisten ユーティリティーは、すべての IPv4 および IPv6 のリッスン試行を追跡します。最終的に失敗したり、接続を許可しないリスニングプログラムなど、リッスン試行を追跡します。このユーティリティーは、プログラムが TCP 接続をリッスンする場合にカーネルが呼び出される関数を追跡します。

手順手順

1. 次のコマンドを実行して、リッスンする TCP 試行をすべて表示するトレースプロセスを開始します。

# /usr/share/bcc/tools/solistenPID COMM PROTO BACKLOG PORT ADDR3643 nc TCPv4 1 4242 0.0.0.03659 nc TCPv6 1 4242 2001:db8:1::14221 redis-server TCPv6 128 6379 ::4221 redis-server TCPv4 128 6379 0.0.0.0....

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの solisten を参照してください。

solisten の詳細および例は、/usr/share/bcc/tools/doc/solisten_example.txt ファイルを参照してください。

solisten がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/solisten --ebpf コマンドを使用します。

51.14. ソフト割り込みのサービス時間の要約

softirqs ユーティリティーは、ソフト割り込み (ソフト IRQ) に費やした時間を要約し、この時間を合計

第第51章章 BPF コンパイラーコレクションを使用したネットワークトレースコンパイラーコレクションを使用したネットワークトレース

333

Page 338: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

またはヒストグラムのディストリビューションとして表示します。このユーティリティーは、安定したトレースメカニズムであるカーネルトレースポイント irq:softirq_enter および irq:softirq_exit を使用します。

手順手順

1. 以下のコマンドを実行して、soft irq イベント時間を追跡します。

# /usr/share/bcc/tools/softirqsTracing soft irq event time... Hit Ctrl-C to end.^CSOFTIRQ TOTAL_usecstasklet 166block 9152net_rx 12829rcu 53140sched 182360timer 306256

2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報関連情報

詳細は、man ページの softirqs を参照してください。

softirqs の詳細および例は、/usr/share/bcc/tools/doc/softirqs_example.txt ファイルを参照してください。

solisten がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/softirqs --ebpf コマンドを使用します。

mpstat がこの情報を使用する方法は、man ページの mpstat(1) を参照してください。

51.15. 関連情報

BCC の詳細は、/usr/share/doc/bcc/README.md ファイルを参照してください。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

334

Page 339: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

第52章 TIPC の使用Cluster Domain Sockets とも呼ばれる TIPC (Trans-process Communication)は、クラスター全体の操作の IPC (Inter-process Communication)サービスです。

高可用性環境および動的クラスター環境で実行されているアプリケーションには、特別なニーズがあります。クラスター内のノード数は異なる可能性があります。また、ルーターに障害が発生する可能性があります。負荷分散についての考慮事項により、クラスター内の異なるノードに機能が移行する可能性があります。TIPC は、アプリケーション開発者がこのような状況に対応する作業を最小限に抑え、適切かつ最適方法で処理される機会を最大化します。さらに、TIPC は TCP などの一般的なプロトコルよりも効率的で耐障害性のある通信を提供します。

52.1. TIPC のアーキテクチャー

TIPC は、TIPC とパケットトランスポートサービス (bearer) を使用してアプリケーション間のレイヤーで、トランスポート、ネットワーク、およびシグナル側のリンク層を結び付けます。しかし、TIPC は異なるトランスポートプロトコルをベアラーとして使用することができるため、たとえば TCP 接続はTIPC シグナルリンクのベアラーとして機能できます。

TIPC は以下のベアラーをサポートします。

イーサネット

Infiniband

UDP プロトコル

TIPC は、すべての TIPC 通信のエンドポイントである TIPC ポート間で、信頼できるメッセージの転送を提供します。

以下は TIPC アーキテクチャーの図です。

Node A

TIPC address

TIPC application

TIPC

52.2. システムの起動時の TIPC モジュールの読み込み

TIPC プロトコルを使用するには、tipc カーネルモジュールを読み込みます。本セクションでは、システムの起動時に RHEL がこのモジュールを自動的に読み込むように設定する方法を説明します。

手順手順

1. 以下の内容で /etc/modules-load.d/tipc.conf ファイルを作成します。

tipc

2. systemd-modules-load サービスを再起動して、システムを再起動せずにモジュールを読み込

第第52章章 TIPC の使用の使用

335

Page 340: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

2. systemd-modules-load サービスを再起動して、システムを再起動せずにモジュールを読み込みます。

# systemctl start systemd-modules-load

検証手順検証手順

1. 以下のコマンドを使用して、RHEL が tipc モジュールをロードしていることを確認します。

# lsmod | grep tipctipc 311296 0

このコマンドに、tipc モジュールのエントリーが表示されない場合は、RHEL がそのモジュールの読み込みに失敗しました。

関連情報関連情報

システムの起動時にモジュールの読み込みの詳細は、modules-load.d(5) の man ページを参照してください。

52.3. TIPC ネットワークの作成

本項では、TIPC ネットワークを作成する方法を説明します。

重要重要

コマンドは、TIPC ネットワークを一時的に設定します。ノードに TIPC を永続的に設定するには、スクリプトでこの手順のコマンドを使用し、RHEL がシステムの起動時にそのスクリプトを実行するように設定します。

前提条件前提条件

tipc モジュールがロードされている。詳細は「システムの起動時に tipc モジュールの読み込み」を参照してください。

手順手順

1. オプション: UUID またはノードのホスト名などの一意のノード ID を設定します。

# tipc node set identity host_name

アイデンティティーには、最大 16 文字と数字で構成される一意の文字列を使用できます。

2. ベアラーを追加します。たとえば、イーサネットを media として、enp0s1 デバイスを物理ベアラーデバイスとして使用するには、次のコマンドを実行します。

# tipc bearer enable media eth device enp1s0

3. 必要に応じて、冗長性とパフォーマンスを向上させるには、前の手順でコマンドを使用してさらにベアラーをアタッチします。最高 3 つのベアラーを設定できますが、同じメディアでは 2つ以上のビギナーを設定することができます。

4. TIPC ネットワークに参加する必要のある各ノードで直前の手順を繰り返します。

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

336

Page 341: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

検証手順検証手順

1. クラスターメンバーのリンクステータスを表示します。

# tipc link listbroadcast-link: up5254006b74be:enp1s0-525400df55d1:enp1s0: up

この出力は、ノード 5254006b74be のベアラー enp1s0 とノード 525400df55d1 のベアラー enp1s0 間の接続が up になっていることを示します。

2. TIPC 公開テーブルを表示します。

# tipc nametable showType Lower Upper Scope Port Node0 1795222054 1795222054 cluster 0 5254006b74be0 3741353223 3741353223 cluster 0 525400df55d11 1 1 node 2399405586 5254006b74be2 3741353223 3741353223 node 0 5254006b74be

サービスタイプ 0 の 2 つのエントリーは、2 つのノードがこのクラスターのメンバーであることを示しています。

サービスタイプ 1 のエントリーは、組み込みのトポロジーサービス追跡サービスを表します。

サービスタイプ 2 のエントリーには、発行したノードから表示されるリンクが表示されます。範囲の上限 3741353223 は、ピアエンドポイントのアドレス (ノード ID に基づく一意の 32 ビットハッシュ値) を 10 進数の形式で表します。

関連情報関連情報

使用できるその他のベアラーの詳細と、対応するコマンドラインパラメーターの詳細は、tipc-bearer(8) の man ページを参照してください。

tipc namespace コマンドの詳細は、tipc-namespace(8) の man ページを参照してください。

52.4. 関連情報

Red Hat は、他のベアラーレベルのプロトコルを使用して、トランスポートメディアに基づいてノード間の通信を暗号化することを推奨します。以下に例を示します。

MACsec: 詳細は 35章MACsec を使用した同じ物理ネットワーク内のレイヤー 2 トラフィックの暗号化 を参照してください。

IPsec: 詳細は、『ネットワークのセキュリティー保護ネットワークのセキュリティー保護』の「IPsec を使用した VPNの設定」を参照してください。

TIPC の使用例の例として、git clone git://git.code.sf.net/p/tipc/tipcutils コマンドを使用してアップストリームの GIT リポジトリーのクローンを作成します。このリポジトリーには、デモのソースコードと TIPC 機能を使用するプログラムが同梱されています。このリポジトリーはRed Hat では提供していないことに注意してください。

TIPC プロトコルの詳細は、http://tipc.io/protocol.html を参照してください。

TIPC プログラミングの詳細は、http://tipc.io/protocol.html を参照してください。

第第52章章 TIPC の使用の使用

337

Page 342: Red Hat Enterprise Linux 8 ネットワークの設定および管理...Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d

Red Hat Enterprise Linux 8 ネットワークの設定および管理ネットワークの設定および管理

338