ネットワークの設定および管理
Red Hat Enterprise Linux 8 におけるネットワークの設定と管理に関するガイド
概要
オープンソースをより包摂的に
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社 の CTO、Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ)
ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。改善点を報告する場合は、以下のように行います。
特定の文章に簡単なコメントを記入する場合は、以下の手順を行います。
- ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上端に Feedback ボタンがあることを確認してください。
- マウスカーソルで、コメントを追加する部分を強調表示します。
- そのテキストの下に表示される Add Feedback ポップアップをクリックします。
- 表示される手順に従ってください。
より詳細なフィードバックを行う場合は、Bugzilla のチケットを作成します。
- Bugzilla の Web サイトにアクセスします。
- Component で Documentation を選択します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
- Submit Bug をクリックします。
第1章 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 サーバーの設定に関する詳細は、43章DHCP サービスの提供 を参照してください。
1.3. DHCP トランザクションフェーズ
DHCP は、Discovery、Offer、Request、Acknowledgement の 4 つのフェーズで機能します。DHCP はこのプロセスを使用してクライアントに IP アドレスを提供します。
Discovery
DHCP クライアントがメッセージを送信して、ネットワーク上にある DHCP サーバーを検出します。このメッセージは、ネットワークおよびデータリンク層でブロードキャストされます。
Offer
DHCP サーバーはクライアントからメッセージを受け取り、DHCP クライアントに IP アドレスを提供します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。
Request
DHCP クライアントは、提供される IP アドレスを DHCP サーバーに要求します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。
Acknowledgment
DHCP サーバーは、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
が表示されます。 -
コマンドラインユーティリティーの
nmcli
-
グラフィカルユーザーインターフェースツールの
GNOME GUI
-
テキストユーザーインターフェース
NetworkManager のツールおよびアプリケーションを使用せずにネットワークインターフェースを設定するには、以下を行います。
-
ifcfg
ファイルを手動で編集する。ファイルを直接編集しても、NetworkManager は RHEL のデフォルトで、そのファイルを処理することに注意してください。非推奨の従来のネットワークスクリプトをインストールして有効にした場合にのみ、これらのスクリプトはifcfg
ファイルを処理します。
-
root ファイルシステムがローカルにない場合にネットワーク設定を行う方法は、次のとおりです。
- カーネルのコマンドラインを使用する。
第2章 一貫性のあるネットワークインターフェースデバイスの命名
Red Hat Enterprise Linux 8 は、ネットワークインターフェース用に一貫した予測可能なデバイスの命名方法を提供します。このような機能により、ネットワークインターフェースの検出と区別が容易になります。
カーネルは、固定接頭辞と、カーネルがネットワークデバイスを初期化する際に増加する数を連結させて、ネットワークインターフェースに名前を割り当てます。たとえば、eth0
は、システムの起動時にプローブされる最初のデバイスを表します。ただし、この名前がシャーシのラベルに対応しているとは限りません。複数のネットワークアダプターを使用する最新のサーバープラットフォームでは、このインターフェースの非決定論的および反直感的な命名が行われています。これは、システムボードに組み込まれたネットワークアダプターと、アドインアダプターの両方に影響します。
Red Hat Enterprise Linux 8 では、udev
デバイスマネージャーは、さまざまな命名スキームに対応します。デフォルトでは、udev
は、ファームウェア、トポロジー、場所の情報に基づいて固定名を割り当てます。これには、次の利点があります。
- デバイス名は完全に予測可能です。
- ハードウェアを追加または削除しても、再列挙は行われないため、デバイス名は固定されたままになります。
- 不具合のあるハードウェアをシームレスに交換できます。
2.1. ネットワークインターフェースのデバイス命名階層
一貫性のあるデバイスの命名が有効になっている場合 (Red Hat Enterprise Linux 8 のデフォルト) は、udev
デバイスマネージャーが、以下のスキームに基づいてデバイス名を生成します。
スキーム | 説明 | 例 |
---|---|---|
1 |
デバイス名には、ファームウェアまたは BIOS が提供するオンボードデバイスのインデックス番号が含まれます。この情報が利用できない、または該当しない場合は、 |
|
2 |
デバイス名には、ファームウェアまたは BIOS が提供する PCI Express (PCIe) ホットプラグインスロットのインデックス番号が含まれます。この情報が利用できない、または該当しない場合は、 |
|
3 |
デバイス名には、ハードウェアのコネクターの物理的な場所が含まれます。この情報が利用できない、または該当しない場合は、 |
|
4 | デバイス名には MAC アドレスが含まれます。Red Hat Enterprise Linux では、デフォルトではこのスキームが使用されません。管理者は、必要に応じて使用できます。 |
|
5 |
従来の、予測できないカーネル命名スキーム。 |
|
Red Hat Enterprise Linux では、デフォルトでは、/usr/lib/systemd/network/99-default.link
ファイルの NamePolicy
設定に基づいてデバイス名が選択されます。NamePolicy
の値の順序は重要です。Red Hat Enterprise Linux では、そのファイルで指定され、udev
が生成した最初のデバイス名が使用されます。
udev
ルールを手動で設定し、カーネルデバイス名を変更すると、このルールが優先されます。
2.2. ネットワークデバイスの名前変更の仕組み
デフォルトでは、一貫性のあるデバイスの命名が Red Hat Enterprise Linux 8 で有効になっています。udev
デバイスマネージャーは、デバイスの名前を変更するさまざまなルールを処理します。以下の一覧では、udev
がルールを処理する順番と、ルールを実行するアクションを説明します。
-
/usr/lib/udev/rules.d/60-net.rules
ファイルは、/lib/udev/rename_device
ヘルパーユーティリティーが、/etc/sysconfig/network-scripts/ifcfg-*
ファイルのHWADDR
パラメーターを検索することを定義します。変数に設定した値がインターフェースの MAC アドレスに一致すると、ヘルパーユーティリティーは、インターフェースの名前を、ファイルのDEVICE
パラメーターに設定した名前に変更します。 -
/usr/lib/udev/rules.d/71-biosdevname.rules
ファイルは、biosdevname
ユーティリティーが直前の手順で名前が変更されていない場合に、命名ポリシーに従ってインターフェースの名前を変更することを定義します。 -
/usr/lib/udev/rules.d/75-net-description.rules
ファイルは、udev
がネットワークインターフェースデバイスを検査し、udev
の内部変数のプロパティーが次の手順で処理されることを定義します。このプロパティーの一部は未定義である可能性があることに注意してください。 /usr/lib/udev/rules.d/80-net-setup-link.rules
ファイルはnet_setup_link
udev
のビルトインを呼び出し、ポリシーを適用します。以下は、/usr/lib/systemd/network/99-default.link
ファイルに保存されているデフォルトポリシーです。[Link] NamePolicy=kernel database onboard slot path MACAddressPolicy=persistent
このポリシーでは、カーネルが永続名を使用すると、
udev
がインターフェースの名前を変更します。カーネルが永続名を使用しないと、udev
はインターフェースを、udev
のハードウェアデータベースが提供する名前に変更します。このデータベースが利用できない場合、Red Hat Enterprise Linux は上記のメカニズムにフォールバックします。別の方法では、メディアアクセス制御 (MAC) アドレスベースのインターフェース名に対して、このファイルの
NamePolicy
パラメーターをmac
に設定します。/usr/lib/udev/rules.d/80-net-setup-link.rules
ファイルは、udev
が、以下の順番でudev
内のパラメーターに基づいてインターフェースの名前を変更することを定義します。-
ID_NET_NAME_ONBOARD
-
ID_NET_NAME_SLOT
-
ID_NET_NAME_PATH
あるパラメーターが設定されていないと、
udev
は次のパラメーターを使用します。パラメーターが設定されていないと、インターフェースの名前が変更されません。-
ステップ 3 および 4 は、「ネットワークインターフェースのデバイス命名階層」 に記載されている命名スキーム 1 から 4 を実装します。
関連情報
- 一貫性のある命名にカスタム接頭辞を設定する方法は、「イーサネットネットワークインターフェースの命名に 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
接頭辞が付いたデバイス番号です。ここで n
は、サブチャンネルのセット ID です。
イーサネットインターフェースの名前は enccw0.0.1234
などになります。SLIP (Serial Line Internet Protocol) の CTC (Channel-to-Channel) ネットワークデバイスの名前は、slccw0.0.1234
などになります。
znetconf -c
コマンドまたは lscss -a
コマンドを使用して、利用可能なネットワークデバイスとそのバス ID を表示します。
2.5. インストール時の一貫性のあるインターフェースデバイスの命名の無効化
本セクションは、インストール時に、一貫性のあるインターフェースデバイスの命名を無効にする方法を説明します。
Red Hat は、一貫性のあるデバイスの命名を無効にしないことを推奨します。一貫性のあるデバイスの命名を無効にすると、さまざまな問題が発生する可能性があります。たとえば、別のネットワークインターフェースカードをシステムに追加する場合は、eth0
などのカーネルデバイス名の割り当てが修正されなくなります。したがって、システムの再起動後に、カーネルに別の名前を付けることができます。
手順
- Red Hat Enterprise Linux 8 インストールメディアを起動します。
-
ブートマネージャーで
Red Hat Enterprise Linux 8 のインストール
を選択し、 キーを押してエントリーを編集します。 net.ifnames=0
パラメーターをカーネルコマンドラインに追加します。vmlinuz... net.ifnames=0
- を押してインストールを開始します。
2.6. インストール済みのシステムでのインターフェースデバイスへの一貫性のある命名の無効化
本セクションでは、既にインストールされているシステムで、一貫性のあるインターフェースデバイスの命名を無効にする方法を説明します。
Red Hat は、一貫性のあるデバイスの命名を無効にしないことを推奨します。一貫性のあるデバイスの命名を無効にすると、さまざまな問題が発生する可能性があります。たとえば、別のネットワークインターフェースカードをシステムに追加する場合は、eth0
などのカーネルデバイス名の割り当てが修正されなくなります。したがって、システムの再起動後に、カーネルに別の名前を付けることができます。
前提条件
- システムが、一貫性のあるインターフェースデバイスの命名を使用している (デフォルト)。
手順
/etc/default/grub
ファイルを編集し、net.ifnames=0
パラメーターをGRUB_CMDLINE_LINUX
変数に追加します。GRUB_CMDLINE_LINUX="... *net.ifnames=0
grub.cfg
ファイルを再構築します。システムで UEFI ブートモードを使用している場合は、次のコマンドを実行します。
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
システムでレガシーブートモードを使用している場合は、次のコマンドを実行します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
- 設定ファイルまたはスクリプトでインターフェース名を使用する場合は、手動で更新する必要があります。
ホストを再起動します。
# reboot
2.7. イーサネットネットワークインターフェースの命名に prefixdevname を使用
本ドキュメントは、このようなインターフェースのデフォルト命名スキームを使用しない場合は、イーサーネットネットワークインターフェースに、一貫性のある命名規則の接頭辞を設定する方法を説明します。ただし、Red Hat は、デフォルトの命名スキームを使用することを推奨します。このスキームの詳細は、2章一貫性のあるネットワークインターフェースデバイスの命名 を参照してください。
2.7.1. prefixdevname の概要
prefixdevname
ツールは、イーサーネットネットワークインターフェースの命名に使用した接頭辞を定義する udev ヘルパーユーティリティーです。
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 アドレスを持つインターフェースにその名前を適用します。この設定は、システムを再起動しても持続します。
第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
と入力します。 -
control-center
: デスクトップユーザー用に GNOME シェルによって提供される GUI。このアプリケーションはnm-connection-editor
よりも対応している機能が少ないことに注意してください。 -
GNOME Shell の
network connection icon
- このアイコンは、ネットワーク接続の状態を表し、使用している接続の種類を視覚的に表示します。
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/
に保存されます。
デフォルトでは、RHEL は NetworkManager を使用してネットワーク接続を設定および管理し、/usr/sbin/ifup
スクリプトおよび /usr/sbin/ifdown
スクリプトは NetworkManager を使用して /etc/sysconfig/network-scripts/
ディレクトリー内の ifcfg
ファイルを処理します。
ネットワーク設定を管理するためにレガシーネットワークスクリプトが必要な場合は、手動でインストールできます。詳細は、「RHEL における従来のネットワークスクリプトのサポート」 を参照してください。ただし、従来のネットワークスクリプトは非推奨となり、RHEL の今後のバージョンで削除されます。
手順
新しい設定ファイルを読み込むには、次のコマンドを実行します。
#
nmcli connection load /etc/sysconfig/network-scripts/ifcfg-connection_name
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
コマンドについて簡単に説明しています。
第4章 特定のデバイスを無視するように NetworkManager の設定
デフォルトでは、NetworkManager は lo
(loopback) デバイス以外のすべてのデバイスを管理します。ただし、特定のデバイスを unmanaged
に設定すると、NetworkManager がこのデバイスを無視するように設定できます。この設定では、スクリプトなどを使用して、このデバイスを手動で管理できます。
4.1. NetworkManager でデバイスを管理対象外として永続的に設定
インターフェース名、MAC アドレス、デバイスタイプなど、複数の基準に基づいてデバイスを 管理対象外
として設定できます。この手順では、NetworkManager で、enp1s0
インターフェースを 管理対象外
として永続的に設定する方法を説明します。
一時的にネットワークデバイスを 管理対象外
として設定するには、「NetworkManager でデバイスを管理対象外として一時的に設定」 を参照してください。
手順
必要に応じて、デバイスの一覧を表示して、
管理対象外
に設定するデバイスを特定します。#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ...以下の内容で
/etc/NetworkManager/conf.d/99-unmanaged-devices.conf
ファイルを作成します。[keyfile] unmanaged-devices=interface-name:enp1s0
複数のデバイスを管理対象外に設定するには、
unmanaged-devices
パラメーターのエントリーをセミコロンで区切ります。[keyfile] unmanaged-devices=interface-name:interface_1;interface-name:interface_2;...
NetworkManager
サービスを再読み込みします。#
systemctl reload NetworkManager
検証手順
デバイスの一覧を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...enp1s0
デバイスの横にある管理対象外
状態は、NetworkManager がこのデバイスを管理していないことを示しています。
関連情報
-
デバイスを非管理対象と、対応する構文に設定するのに使用できる基準の一覧は、man ページの
NetworkManager.conf(5)
のDevice List Format
セクションを参照してください。
4.2. NetworkManager でデバイスを管理対象外として一時的に設定
インターフェース名、MAC アドレス、デバイスタイプなど、複数の基準に基づいてデバイスを 管理対象外
として設定できます。この手順では、NetworkManager で、enp1s0
インターフェースを 管理対象外
として一時的に設定する方法を説明します。
この方法は、たとえば、テスト目的で使用します。ネットワークデバイスを 管理対象外
として永続的に設定する場合は、「NetworkManager でデバイスを管理対象外として永続的に設定」 を参照してください。
この方法は、たとえば、テスト目的で使用します。unmanaged
としてネットワークデバイスを永続的に設定するには、Configuring and managing networking
の「NetworkManager でデバイスを管理対象外として永続的に設定」を参照してください。
手順
必要に応じて、デバイスの一覧を表示して、
管理対象外
に設定するデバイスを特定します。#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ...enp1s0
デバイスを管理対象外
の状態に設定します。#
nmcli device set enp1s0
managed no
検証手順
デバイスの一覧を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...enp1s0
デバイスの横にある管理対象外
状態は、NetworkManager がこのデバイスを管理していないことを示しています。
関連情報
-
デバイスを非管理対象と、対応する構文に設定するのに使用できる基準の一覧は、man ページの
NetworkManager.conf(5)
のDevice List Format
セクションを参照してください。
第5章 nmtui の使用
nmtui
アプリケーションは、NetworkManager
のテキストユーザーインターフェース (TUI) です。本章では、nmtui
を使用してネットワークインターフェースを設定する方法を説明します。
nmtui アプリケーションは、すべての接続タイプに対応していません。特に、802.1X 認証を必要とする VPN 接続またはイーサネット接続を追加または変更することはできません。
5.1. nmtui ユーティリティーの起動
この手順では、NetworkManager テキストユーザーインターフェース nmtui
を起動する方法を説明します。
前提条件
-
NetworkManager-tui
パッケージがインストールされている。
手順
nmtui
を起動するには、次のコマンドを実行します。#
nmtui
以下に移動します。
- カーソルを使用するか Tab を押して次に進むか、Shift+Tab を押して前に戻ります。
- Enter を押してオプションを選択します。
- Space バーを使用して、チェックボックスのステータスを切り替えます。
5.2. nmtui を使用した接続プロファイルの追加
nmtui
アプリケーションで、NetworkManager へのテキストユーザーインターフェースが含まれます。この手順では、新しい接続プロファイルを追加する方法を説明します。
前提条件
-
NetworkManager-tui
パッケージがインストールされている。
手順
NetworkManager のテキストユーザーインターフェースユーティリティーを起動します。
#
nmtui
-
接続の編集
メニューエントリーを選択し、Enter を押します。 - Enter を押します。 ボタンを選択し、
-
Ethernet
を選択し、Enter を押します。 フィールドにコネクションの詳細を入力します。
- をクリックして変更を保存します。
-
Back
を選択してメインメニューに戻ります。 -
Activate a connection
を選択し、Enter を押します。 - 新しい接続エントリーを選択し、Enter を押して接続をアクティベートします。
- を選択してメインメニューに戻ります。
-
Quit
を選択します。
検証手順
デバイスおよび接続の状態を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected Example-Connection接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example-Connection
connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp1s0 ...
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
-
nmtui
アプリケーションの詳細は、nmtui(1)
のman ページを参照してください。 - ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
5.3. nmtui で編集済み接続への変更の適用
nmtui
で接続を修正したら、接続を再度アクティブにする必要があります。nmtui
で接続を再有効にすると、一時的に接続が非アクティブになることに注意してください。
手順
メインメニューで、
Activate a connection
メニューエントリーを選択します。- 修正した接続を選択します。
右側で
Deactivate
ボタンを選択し、Enter を押します。- 接続を再度選択します。
右側で
Activate
ボタンを選択し、Enter を押します。
第6章 nmcli の使用
本セクションでは、nmcli
ユーティリティーに関する一般的な情報を説明します。
6.1. nmcli における出力形式
nmcli
ユーティリティーは、nmcli
コマンドの出力を修正するさまざまなオプションに対応します。このオプションを使用すると、必要な情報のみを表示できます。これにより、スクリプトの出力の処理が容易になります。
デフォルトでは、nmcli
ユーティリティーは、出力をテーブルのような形式で表示します。
# nmcli device
DEVICE TYPE STATE CONNECTION
enp1s0 ethernet connected enp1s0
lo loopback unmanaged --
-f
オプションを使用すると、特定の列をカスタム順序で表示できます。たとえば、DEVICE
列および STATE
列のみを表示するには、次のコマンドを実行します。
# nmcli -f DEVICE,STATE device
DEVICE STATE
enp1s0 connected
lo unmanaged
-t
オプションを指定すると、出力の個別のフィールドをコロンで区切って表示できます。
# nmcli -t device
enp1s0:ethernet:connected:enp1s0
lo:loopback:unmanaged:
-f
と-t
を組み合わせて、コロン区切り形式で特定のフィールドのみを表示すると、スクリプトで出力を処理する場合に便利です。
# nmcli -f DEVICE,STATE -t device
enp1s0:connected
lo:unmanaged
6.2. nmcli でタブ補完の使用
ホストに bash-completion
パッケージがインストールされている場合は、nmcli
ユーティリティーがタブ補完に対応します。これにより、オプション名を自動補完し、可能なオプションおよび値を特定できます。
たとえば、nmcli con
と入力して Tab を押すと、シェルが自動的に nmcli connection
に対してコマンドを完了します。
補完では、入力したオプションまたは値が一意である必要があります。一意でない場合は、nmcli
がすべての可能性を表示します。たとえば、nmcli connection d
と入力して Tab を押すと、コマンドが、可能なオプションとして delete
および down
を表示します。
タブ補完を使用して、接続プロファイルに設定できるプロパティーをすべて表示することもできます。たとえば、nmcli connection modify connection_name
と入力して Tab を押すと、利用可能なプロパティーの完全リストが表示されます。
6.3. nmcli でよく使用されるコマンド
頻繁に使用する nmcli
コマンドの概要を以下に示します。
リスト接続プロファイルを表示するには、次のコマンドを実行します。
#
nmcli connection show
NAME UUID TYPE DEVICE enp1s0 45224a39-606f-4bf7-b3dc-d088236c15ee ethernet enp1s0特定の接続プロファイルの設定を表示するには、次のコマンドを実行します。
#
nmcli connection show connection_name
connection.id: enp1s0 connection.uuid: 45224a39-606f-4bf7-b3dc-d088236c15ee connection.stable-id: -- connection.type: 802-3-ethernet ...接続のプロパティーを変更するには、次のコマンドを実行します。
#
nmcli connection modify connection_name
property value複数の
プロパティー 値
の組み合わせをコマンドに渡すと、1 つのコマンドを使用して複数のプロパティーを変更できます。ネットワークデバイスの一覧、その状態、およびデバイスを使用する接続プロファイルを表示するには、次のコマンドを実行します。
#
nmcli device
DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected enp1s0 enp8s0 ethernet disconnected -- enp7s0 ethernet unmanaged -- ...接続を有効にするには、次のコマンドを実行します。
#
nmcli connection up connection_name
接続を無効にするには、次のコマンドを実行します。
#
nmcli connection down connection_name
第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 設定などの特定の設定が必要な場合には、接続プロファイルがすでに作成されています。
手順
デスクトップ右上隅のネットワーク接続アイコンをクリックします。
接続タイプに応じて、
Wired
エントリーまたはWi-Fi
エントリーを選択します。-
有線接続の場合は、
Connect
を選択してネットワークに接続します。 -
Wi-Fi 接続の場合は、
Select network
をクリックして、接続するネットワークを選択し、パスワードを入力します。
-
有線接続の場合は、
第8章 イーサネット接続の設定
本セクションでは、静的および動的の IP アドレスでイーサネット接続を構成するさまざまな方法を説明します。
8.1. nmcli を使用した静的イーサネット接続の設定
この手順では、nmcli
ユーティリティーを使用して、以下の設定でイーサネット接続を追加する方法を説明します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
手順
Ethernet 接続の NetworkManager 接続プロファイルを新たに追加します。
#
nmcli connection add con-name Example-Connection
ifname enp7s0 type ethernet以下の手順は、作成した
Example-Connection
接続プロファイルを変更します。IPv4 アドレスを設定します。
#
nmcli connection modify Example-Connection
ipv4.addresses 192.0.2.1/24IPv6 アドレスを設定します。
#
nmcli connection modify Example-Connection
ipv6.addresses 2001:db8:1::1/64IPv4 および IPv6 接続メソッドを
manual
に設定します。#
nmcli connection modify Example-Connection
ipv4.method manual #nmcli connection modify Example-Connection
ipv6.method manualIPv4 および IPv6 のデフォルトゲートウェイを設定します。
#
nmcli connection modify Example-Connection
ipv4.gateway 192.0.2.254 #nmcli connection modify Example-Connection
ipv6.gateway 2001:db8:1::fffeIPv4 および IPv6 DNS サーバーアドレスを設定します。
#
nmcli connection modify Example-Connection
ipv4.dns "192.0.2.200" #nmcli connection modify Example-Connection
ipv6.dns "2001:db8:1::ffbb"複数の DNS サーバーを設定するには、空白で区切って引用符で囲みます。
IPv4 および IPv6 接続の DNS 検索ドメインを設定します。
#
nmcli connection modify Example-Connection
ipv4.dns-search example.com #nmcli connection modify Example-Connection
ipv6.dns-search example.com接続プロファイルをアクティベートします。
#
nmcli connection up Example-Connection
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)
検証手順
デバイスおよび接続の状態を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example-Connection
connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
#
ping 192.0.2.3
IPv6 の場合:
#
ping 2001:db8: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
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。#
host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
トラブルシューティングの手順
接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。
- ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。
- リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。
- ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。
関連情報
-
接続プロファイルのプロパティーとその設定の詳細は、man ページの
nm-settings(5)
を参照してください。 -
nmcli
ユーティリティーの詳細は、nmcli(1)
の man ページを参照してください。 - ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
8.2. nmcli インタラクティブエディターを使用した静的イーサネット接続の設定
この手順では、nmcli
対話モードを使用して、以下の設定でイーサネット接続を追加する方法を説明します。
-
静的 IPv4 アドレス:
/24
サブネットマスクを持つ192.0.2.1
-
静的 IPv6 アドレス:
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ:
192.0.2.254
-
IPv6 デフォルトゲートウェイ:
2001:db8:1::fffe
-
IPv4 DNS サーバー:
192.0.2.200
-
IPv6 DNS サーバー:
2001:db8:1::ffbb
-
DNS 検索ドメイン:
example.com
手順
イーサネット接続に新しい NetworkManager 接続プロファイルを追加して、対話モードを開始するには、次のコマンドを実行します。
#
nmcli connection edit type ethernet con-name Example-Connection
ネットワークインターフェースを設定します。
nmcli>
set connection.interface-name enp7s0
IPv4 アドレスを設定します。
nmcli>
set ipv4.addresses 192.0.2.1/24
IPv6 アドレスを設定します。
nmcli>
set ipv6.addresses 2001:db8:1::1/64
IPv4 および IPv6 接続メソッドを
manual
に設定します。nmcli>
set ipv4.method manual
nmcli>set ipv6.method manual
IPv4 および IPv6 のデフォルトゲートウェイを設定します。
nmcli>
set ipv4.gateway 192.0.2.254
nmcli>set ipv6.gateway 2001:db8:1::fffe
IPv4 および IPv6 DNS サーバーアドレスを設定します。
nmcli>
set ipv4.dns 192.0.2.200
nmcli>set ipv6.dns 2001:db8:1::ffbb
複数の DNS サーバーを設定するには、空白で区切って引用符で囲みます。
IPv4 および IPv6 接続の DNS 検索ドメインを設定します。
nmcli>
set ipv4.dns-search example.com
nmcli>set ipv6.dns-search example.com
接続をアクティベートして保存します。
nmcli>
save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (yes/no) [yes]yes
インタラクティブモードを終了します。
nmcli>
quit
検証手順
デバイスおよび接続の状態を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example-Connection
connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
#
ping 192.0.2.3
IPv6 の場合:
#
ping 2001:db8: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
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。#
host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
トラブルシューティングの手順
接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。
- ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。
- リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。
- ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。
関連情報
-
接続プロファイルのプロパティーとその設定の詳細は、man ページの
nm-settings(5)
を参照してください。 -
nmcli
ユーティリティーの詳細は、nmcli(1)
の man ページを参照してください。 - ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
8.3. 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
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - ホストは NetworkManager を使用してネットワークを設定している。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-static-IP.yml
ファイルを以下の内容で作成します。--- - name: Configure an Ethernet connection with static IP hosts: node.example.com become: true tasks: - include_role: name: 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
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
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
network_connections
で使用されるパラメーターの詳細と、システムロールnetwork
に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルを参照してください。 -
ansible-playbook
コマンドの詳細は、man ページのansible-playbook(1)
を参照してください。
8.4. nmcli で動的イーサネット接続の設定
この手順では、nmcli
ユーティリティーを使用して、動的イーサネット接続を追加する方法を説明します。この設定では、NetworkManager はこの接続の IP 設定を DHCP サーバーから要求します。
前提条件
- DHCP サーバーはネットワークで使用できる。
手順
Ethernet 接続の NetworkManager 接続プロファイルを新たに追加します。
#
nmcli connection add con-name Example-Connection
ifname enp7s0 type ethernet必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が DHCP サーバーに送信するホスト名を変更します。#
nmcli connection modify Example-Connection
ipv4.dhcp-hostname Example ipv6.dhcp-hostname Example必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が IPv4 DHCP サーバーに送信するクライアント ID を変更します。#
nmcli connection modify Example-Connection
ipv4.dhcp-client-id client-IDIPv6 には
dhcp-client-id
パラメーターがないことに注意してください。IPv6 の識別子を作成するには、dhclient
サービスを構成します。
検証手順
デバイスおよび接続の状態を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example-Connection
connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
#
ping 192.0.2.3
IPv6 の場合:
#
ping 2001:db8: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
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 を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
8.5. nmcli インタラクティブエディターで動的イーサネット接続の設定
この手順では、nmcli
ユーティリティーのインタラクティブエディターを使用して、動的イーサネット接続を追加する方法を説明します。この設定では、NetworkManager はこの接続の IP 設定を DHCP サーバーから要求します。
前提条件
- DHCP サーバーはネットワークで使用できる。
手順
イーサネット接続に新しい NetworkManager 接続プロファイルを追加して、対話モードを開始するには、次のコマンドを実行します。
#
nmcli connection edit type ethernet con-name Example-Connection
ネットワークインターフェースを設定します。
nmcli>
set connection.interface-name enp7s0
必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が DHCP サーバーに送信するホスト名を変更します。nmcli>
set ipv4.dhcp-hostname Example
nmcli>set ipv6.dhcp-hostname Example
必要に応じて、
Example-Connection
プロファイルを使用するときに NetworkManager が IPv4 DHCP サーバーに送信するクライアント ID を変更します。nmcli>
set ipv4.dhcp-client-id client-ID
IPv6 には
dhcp-client-id
パラメーターがないことに注意してください。IPv6 の識別子を作成するには、dhclient
サービスを構成します。接続をアクティベートして保存します。
nmcli>
save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (yes/no) [yes]yes
インタラクティブモードを終了します。
nmcli>
quit
検証手順
デバイスおよび接続の状態を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example-Connection
connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
#
ping 192.0.2.3
IPv6 の場合:
#
ping 2001:db8: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
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 を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
8.6. RHEL システムロールを使用した動的イーサネット接続の設定
この手順では、RHEL システムロールを使用して、Ansible Playbook を実行して enp7s0
インターフェースの動的イーサネット接続をリモートに追加する方法を説明します。この設定により、ネットワーク接続は、DHCP サーバーからこの接続の IP 設定を要求するようになりました。Ansible コントロールノードで以下の手順を実行します。
前提条件
- DHCP サーバーはネットワークで使用できる。
-
ansible
パッケージおよびrhel-system-roles
パッケージがコントロールノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - ホストは NetworkManager を使用してネットワークを設定している。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-dynamic-IP.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with dynamic IP hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。#
ansible-playbook -u root ~/ethernet-dynamic-IP.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
#
ansible-playbook -u user_name
--ask-become-pass ~/ethernet-dynamic-IP.yml--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
network_connections
で使用されるパラメーターの詳細と、システムロールnetwork
に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルを参照してください。 -
ansible-playbook
コマンドの詳細は、man ページのansible-playbook(1)
を参照してください。
8.7. control-center によるイーサネット接続の設定
イーサネット接続は、物理サーバーまたは仮想マシンで最も頻繁に使用される接続タイプになります。本セクションでは、GNOME control-center
でこの接続タイプを設定する方法を説明します。
control-center
は、nm-connection-editor
アプリケーションまたは nmcli
ユーティリティーほど多くの設定オプションに対応していないことに注意してください。
前提条件
- サーバーに、物理または仮想のイーサネットデバイスが設定されている。
- GNOME がインストールされている。
手順
-
Super キーを押して
Settings
を入力し、Enter を押します。 -
左側のナビゲーションにある
Network
を選択します。 -
Wired
エントリーの横にある ボタンをクリックして、新規プロファイルを作成します。 -
必要に応じて、
Identity
タブで接続の名前を設定します。 IPv4
タブで、IPv4 設定を構成します。たとえば、Manual
メソッドを選択し、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。IPv6
タブで、IPv6 設定を構成します。たとえば、Manual
メソッドを選択し、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。-
control-center
は、接続を自動的にアクティブにします。 ボタンをクリックして接続を保存します。GNOME の
検証手順
デバイスおよび接続の状態を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection接続プロファイルのすべての設定を表示するには、次のコマンドを実行します。
#
nmcli connection show Example-Connection
connection.id: Example-Connection connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
#
ping 192.0.2.3
IPv6 の場合:
#
ping 2001:db8: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
host
ユーティリティーを使用して名前解決が機能することを確認します。以下に例を示します。#
host client.example.com
connection timed out
やno servers could be reached
など、コマンドがエラーを返した場合は、DNS 設定を確認してください。
トラブルシューティングの手順
接続に失敗するか、ネットワークインターフェースが up と down の状態の間で切り替わる場合は、以下を行います。
- ネットワークケーブルがホストとスイッチにプラグインされていることを確認します。
- リンクの失敗がこのホストのみに存在するか、またはサーバーの接続先と同じスイッチに接続されている他のホストでも存在するかどうかを確認します。
- ネットワークケーブルとネットワークインターフェースが予想どおりに機能していることを確認します。ハードウェア診断手順を実施して、不具合ケーブルとネットワークインターフェースカードを置き換えます。
関連資料
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
8.8. nm-connection-editor を使用したイーサネット接続の設定
イーサネット接続は、物理サーバーまたは仮想サーバーで最も頻繁に使用される接続タイプになります。本セクションでは、nm-connection-editor
アプリケーションを使用して接続タイプを設定する方法を説明します。
前提条件
- サーバーに、物理または仮想のイーサネットデバイスが設定されている。
- GNOME がインストールされている。
手順
端末を開き、次のコマンドを入力します。
$ nm-connection-editor
- ボタンをクリックして、新しい接続を追加します。
-
イーサネット
接続タイプを選択し、 をクリックします。 全般
タブで、以下を行います。システムの起動時または
NetworkManager
サービスを再起動する際にこの接続を自動的に有効にするには、以下を行います。-
Connect automatically with priority
を選択します。 必要に応じて、
Connect automatically with priority
の横にある優先度の値を変更します。同じデバイスに複数の接続プロファイルが存在する場合は、NetworkManager はプロファイルを 1 つだけ有効にします。デフォルトでは、NetworkManager は、自動接続が有効になっている最後のプロファイルをアクティブにします。ただし、プロファイルに優先度の値を設定すると、NetworkManager は、最も優先度が高いプロファイルをアクティブにします。
-
-
プロファイルが、この接続プロファイルを作成したユーザーに対してのみ利用可能になる場合は、
All users may connect to this network
チェックボックスの選択を解除します。
-
イーサネット
タブで、デバイスを選択します。必要に応じて、イーサネット関連の設定をさらに選択します。 -
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。 -
IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。 - 接続を読み込みます。
-
nm-connection-editor
を閉じます。
検証手順
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。
IPv4 の場合:
# ping 192.0.2.3
IPv6 の場合:
# ping 2001:db8: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 の設定」 」を参照してください。
8.9. NetworkManager 接続の DHCP 動作の設定
DHCP (Dynamic Host Configuration Protocol) クライアントは、クライアントがネットワークに接続するたびに、動的 IP アドレスと対応する設定情報を DHCP サーバーに要求します。
DHCP サーバーから IP アドレスを取得するように接続を設定すると、NetworkManager は DHCP サーバーから IP アドレスを要求します。デフォルトでは、クライアントはこのリクエストが完了するまで 45 秒待機します。dhcp クライアントは、DHCP
接続が開始する際に、DHCP
サーバーに IP アドレスを要求します。
前提条件
- DHCP を使用する接続がホストに設定されている。
手順
ipv4.dhcp-timeout
およびipv6.dhcp-timeout
プロパティーを設定します。たとえば、両方のオプションを30
秒に設定するには、次のコマンドを実行します。#
nmcli connection modify connection_name
ipv4.dhcp-timeout 30 ipv6.dhcp-timeout 30パラメーターを
infinity
に設定すると、成功するまで NetworkManager が IP アドレスのリクエストおよび更新を停止しないようにします。必要に応じて、タイムアウト前に NetworkManager が IPv4 アドレスを受信しない場合にこの動作を設定します。
#
nmcli connection modify connection_name
ipv4.may-fail valueipv4.may-fail
オプションを以下のように設定します。はい
、接続の状態は IPv6 設定により異なります。- IPv6 設定が有効になり、成功すると、NetworkManager は IPv6 接続をアクティブにし、IPv4 接続のアクティブ化を試みなくなります。
- IPv6 設定が無効であるか、または設定されていないと、接続は失敗します。
いいえ
、接続は非アクティブになります。この場合は、以下のようになります。-
接続の
autoconnect
プロパティーが有効になっている場合、NetworkManager は、autoconnect-retries
プロパティーに設定された回数だけ、接続のアクティベーションを再試行します。デフォルト値は4
です。 - それでも接続が DHCP アドレスを取得できないと、自動アクティベーションは失敗します。5 分後に自動接続プロセスが再開され、DHCP サーバーから IP アドレスを取得するようになりました。
-
接続の
必要に応じて、タイムアウト前に NetworkManager が IPv6 アドレスを受信しない場合にこの動作を設定します。
#
nmcli connection modify connection_name
ipv6.may-fail value
関連情報
-
本セクションで説明するプロパティーの詳細は、
nm-settings(5)
man ページを参照してください。
第9章 Wi-Fi 接続の管理
本セクションでは、Wi-Fi 接続を設定し、管理する方法を説明します。
9.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)
ページ - ワイヤレスデバイスおよびその設定を表示または操作します。
9.2. nmcli による Wi-Fi 接続の設定
この手順では、nmcli を使用して Wi-fi 接続プロファイルを設定する方法を説明します。
前提条件
- nmcli ユーティリティーがインストールされている。
WiFi ラジオボタンがオンになっている (デフォルト)。
~]$
nmcli radio wifi on
手順
静的な
IP
設定で Wi-Fi 接続プロファイルを作成するには、次のコマンドを実行します。~]$
nmcli con add con-name MyCafe
ifname wlan0 type wifi ssid MyCafe ` `ip4 192.168.100.101/24 gw4 192.168.100.1DNS サーバーを設定します。たとえば、
192.160.100.1
を DNS サーバーとして設定するには、次のコマンドを実行します。~]$
nmcli con modify con-name MyCafe
ipv4.dns "192.160.100.1"必要に応じて、DNS 検索ドメインを設定します。たとえば、検索ドメインを
example.com
に設定するには、次のコマンドを実行します。~]$
nmcli con modify con-name MyCafe
ipv4.dns-search "example.com"特定のプロパティー (例:
mtu
) を確認するには、次のコマンドを実行します。~]$
nmcli connection show id MyCafe
| grep mtu 802-11-wireless.mtu: auto設定のプロパティーを変更するには、次のコマンドを実行します。
~]$
nmcli connection modify id MyCafe
802-11-wireless.mtu 1350変更を確認するには、次のコマンドを実行します。
~]$
nmcli connection show id MyCafe
| grep mtu 802-11-wireless.mtu: 1350
検証手順
ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。同じサブネットの IP アドレスに ping します。以下に例を示します。
# ping 192.168.100.103
コマンドが失敗した場合は、IP およびサブネットの設定を確認します。
リモートサブネットの IP アドレスに ping します。以下に例を示します。
# ping 198.51.16.3
コマンドが失敗した場合は、デフォルトゲートウェイに ping して設定を確認します。
# ping 192.168.100.1
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 service」を参照してください。
9.3. control-center による Wi-Fi 接続の設定
Wi-Fi
に接続すると、現在のネットワーク接続に応じてネットワーク設定が事前に入力されます。これは、インターフェースがネットワークに接続すると、設定が自動的に検出されることを意味します。
この手順では、control-center を使用して、Wi-Fi
設定を手動で設定する方法を説明します。
手順
-
Super キーを押して
アクティビティーの概要
を表示し、Wi-Fi
と入力して Enter キーを押します。左側のメニューエントリーでは、利用可能なネットワークの一覧が表示されます。 編集する
Wi-Fi
接続名の右側にある歯車アイコンを選択すると、接続の編集ダイアログが表示されます。Details メニューウィンドウには、詳細な設定が可能となる接続の詳細が表示されます。オプション
-
Connect automatically
を選択すると、その接続が利用可能であることを NetworkManager が検出すると、NetworkManager をこの接続に自動接続します。NetworkManager が自動的に接続しないようにする場合は、チェックボックスの選択を解除します。チェックボックスの選択を解除した場合は、ネットワーク接続のアイコンメニューでその接続を手動で選択すると、その接続が接続するようになります。 -
他のユーザーも接続を利用できるようにするには、
Make available to other users
チェックボックスを選択します。 バックグラウンドデータの使用を制御することもできます。
Restrict background data usage
を選択しない (デフォルト) ままにしておくと、NetworkManager は、活発に使用しているデータをダウンロードしようとします。そうしない場合は、チェックボックスを選択し、NetworkManager が接続をメーター制に設定し、バックグラウンドデータ使用に制限を適用します。注記Wi-Fi
接続を削除するには、赤いForget Connection
をクリックします。
-
Identity メニューエントリーを選択して、基本的な設定オプションを表示します。
SSID
- アクセスポイント (AP) の SSID (Service Set Identifier)BSSID
- Basic Service Set Identifier (BSSID) は、インフラストラクチャー
モードで接続する特定のワイヤレスアクセスポイントの MAC アドレスです (ハードウェアアドレス とも呼ばれています)。このフィールドはデフォルトで空白になっており、BSSID
を指定せずにSSID
によりワイヤレスアクセスポイントに接続できます。BSSID を指定している場合は、システムによる特定のアクセスポイントのみへの関連付けが強制的に実行されます。アドホックネットワークが生成されるときに、BSSID
が、mac80211 サブシステムにより無作為に生成されます。NetworkManager では表示されません。MAC アドレス
- MAC アドレス により、特定のワイヤレスアダプターを特定の接続 (1 つまたは複数) に関連付けることができます。Cloned Address
- 実際のハードウェアアドレスの代わりに使用する、クローンを作成した MAC アドレス必要でない限り、空白のままにします。さらに IP アドレスを設定するには、メニューエントリーの IPv4 および IPv6 を選択します。
デフォルトでは、現在のネットワーク設定に応じて、
IPv4
とIPv6
の両方が自動設定に指定されています。つまり、ローカルの IP アドレス、DNS アドレスなどのアドレスは、インターフェースがネットワークに接続すると自動的に検出されます。DHCP サーバーがこのネットワークの IP 設定を割り当てるだけで十分ですが、IPv4
設定およびIPv6
設定に静的な構成を指定することもできます。IPv4 メニューエントリーおよび IPv6 メニューエントリーでは、以下の設定を確認できます。IPv4 Method
-
Automatic (DHCP)
- 接続しているネットワークがルーター通知 (RA) またはDHCP
サーバーを使用して動的 IP アドレスを割り当てる場合は、このオプションを選択します。割り当てた IP アドレスは、詳細 メニューエントリーで確認できます。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞169.254/16
付きのランダムなアドレスが、RFC 3927 に従って割り当てられます。 -
Manual
- IP アドレスを手動で割り当てる場合は、このオプションを選択します。 -
Disable
- この接続ではIPv4
は無効です。
-
DNS
自動
がON
で、この接続に DNS サーバーを割り当てる DHCP サーバーがない場合は、これをOFF
に切り替えて、使用する DNS サーバーの IP アドレスを入力します。IP アドレスはコンマで区切ります。Routes
Routes
セクションでは、Automatic
がON
になっている場合は、ルート通知 (RA) または使用する DHCP からのルートが使用されますが、他の静的ルートを追加することもできることに注意してください。OFF
の場合は、静的ルートだけが使用されます。-
Address
- リモートネットワーク、サブネット、またはホストのIP
アドレスを入力します。 -
Netmask
- 上に入力した IP アドレスのネットマスクまたはプレフィックス長。 -
Gateway
- 上に入力したリモートネットワーク、サブネット、またはホストにつながるゲートウェイの IP アドレス。 -
Metric
- このルートに付与する優先値であるネットワークコスト。数値が低い方が優先されます。
-
Use this connection only for resources on its network (この接続はネットワーク上のリソースのためだけに使用)
このチェックボックスを選択すると、この接続はデフォルトルートになりません。
また、
Wi-Fi
接続にIPv6
設定するには、 メニューエントリーを選択します。IPv6 Method
-
Automatic
-IPv6
ステートレスアドレス自動設定 (SLAAC) を使用して、ハードウェアのアドレスとルーター通知 (RA) に基づくステートレスの自動設定を作成するには、このオプションを選択します。 -
Automatic, DHCP only
- RA を使用せず、直接DHCPv6
に情報を要求してステートフルな設定を作成する場合は、このオプションを選択します。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞FE80::0
付きのランダムなアドレスが、RFC 4862 に従って割り当てられます。 -
Manual
- IP アドレスを手動で割り当てる場合は、このオプションを選択します。 -
Disable
- この接続ではIPv6
は無効です。
-
-
DNS
、Routes
、Use this connection only for resources on its network
フィールドが、一般的なIPv4
設定です。
Wi-Fi
接続のセキュリティー
を設定する場合は、Security メニューエントリーを選択します。以下の設定オプションが利用できます。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 - 認証プロセスで使用するパスワードを入力します。
- 設定が完了したら、 ボタンをクリックして保存します。
NetworkManager により、その接続用の新しい設定が作成され、既存の接続の編集に使用するのと同じダイアログが表示されます。このダイアログの違いは、既存の接続プロファイルに Details メニューエントリーがあることです。
ボタンをクリックして新しい接続を追加する場合は、9.4. nmcli による Wi-Fi ネットワークへの接続
この手順では、nmcli ユーティリティーを使用して ワイヤレス
接続に接続する方法を説明します。
前提条件
- nmcli ユーティリティーがインストールされている。
WiFi ラジオボタンがオンになっている (デフォルト)。
~]$
nmcli radio wifi on
手順
利用可能な Wi-Fi 接続リストを更新するには、次のコマンドを実行します。
~]$
nmcli device wifi rescan
利用可能な Wi-Fi アクセスポイントを表示するには、次のコマンドを実行します。
~]$
nmcli dev wifi list
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY ... MyCafe Infra 3 405 Mbit/s 85 ▂▄▆█ WPA1 WPA2nmcli を使用して 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
9.6. GNOME GUI による Wi-Fi ネットワークへの接続
この手順では、ワイヤレスネットワークに接続してインターネットにアクセスする方法を説明します。
手順
- 画面右上にある GNOME Shell ネットワーク接続アイコンメニュー を開きます。
-
Wi-Fi Not Connected
を選択します。 -
Select Network
オプションをクリックします。 接続するネットワークの名前をクリックし、
Connect
をクリックします。ネットワークが表示されない場合は、ネットワークが表示されなくなります。
ネットワークがパスワードまたは暗号鍵で保護されている場合は、パスワードを入力し、
Connect
をクリックします。パスワードが分からない場合は、Wi-Fi ネットワークの管理者に連絡してください。
- 接続に成功すると、接続アイコンメニューでネットワーク名が表示され、ワイヤレスインジケーターが画面の右上隅に表示されます。
第10章 VLAN タグの設定
本セクションでは、仮想ローカルエリアネットワーク (VLAN) を設定する方法を説明します。VLAN は、物理ネットワーク内の論理ネットワークです。VLAN インターフェースは、インターフェースを通過する際に VLAN ID でパケットをタグ付けし、返信パケットのタグを削除します。
VLAN インターフェースを、イーサネット、ボンド、チーム、ブリッジデバイスなどの別のインターフェースに作成します。このインターフェースは、親インターフェース
と呼ばれます。
10.1. nmcli コマンドによる VLAN タグ付けの設定
本セクションでは、nmcli
ユーティリティーを使用して、仮想ローカルエリアネットワーク (VLAN) のタグ付けを設定する方法を説明します。
前提条件
- 仮想 VLAN インターフェースに対する親として使用するインターフェースが VLAN タグに対応している。
ボンドインターフェースに VLAN を設定する場合は、以下のようになります。
- ボンディングのポートが起動している。
-
ボンドが、
fail_over_mac=follow
オプションで設定されていない。VLAN 仮想デバイスは、親の新規 MAC アドレスに一致する MAC アドレスを変更できません。このような場合、トラフィックは間違ったソースの MAC アドレスで送信されます。
- ホストが接続するスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。
手順
ネットワークインターフェースを表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected enp1s0 bridge0 bridge connected bridge0 bond0 bond connected bond0 ...VLAN インターフェースを作成します。たとえば、VLAN インターフェース
vlan10
を作成し、enp1s0
を親インターフェースとして使用し、VLAN ID10
のタグパケットを作成するには、次のコマンドを実行します。#
nmcli connection add type vlan con-name vlan10
ifname vlan10 vlan.parent enp1s0 vlan.id 10VLAN は、
0
から4094
の範囲内に存在する必要があります。デフォルトでは、VLAN 接続は、親インターフェースから最大伝送単位 (MTU) を継承します。必要に応じて、別の MTU 値を設定します。
#
nmcli connection modify vlan10 802-3-ethernet.mtu 2000
VLAN デバイスの IP 設定を構成します。この VLAN デバイスを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
vlan10
接続に設定するには、次のコマンドを実行します。#
nmcli connection modify vlan10 ipv4.addresses '192.0.2.1/24
' #nmcli connection modify vlan10 ipv4.gateway '192.0.2.254
' #nmcli connection modify vlan10 ipv4.dns '192.0.2.253
' #nmcli connection modify vlan10 ipv4.method manual
IPv6 設定を構成します。たとえば、静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
vlan10
接続に設定するには、次のコマンドを実行します。#
nmcli connection modify vlan10 ipv6.addresses '2001:db8:1::1/32
' #nmcli connection modify vlan10 ipv6.gateway '2001:db8:1::fffe
' #nmcli connection modify vlan10 ipv6.dns '2001:db8:1::fffd
' #nmcli connection modify vlan10 ipv6.method manual
接続をアクティベートします。
#
nmcli connection up vlan10
検証手順
設定を確認します。
#
ip -d addr show vlan10
4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00: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
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
-
nmcli
の例は、man ページのnmcli-examples(7)
を参照してください。 -
設定可能なすべての vlan プロパティーは、man ページの
nm-settings (5)
のvlan setting
セクションを参照してください。
10.2. nm-connection-editor による VLAN タグの設定
本セクションでは、nm-connection-editor
アプリケーションを使用して、仮想ローカルエリアネットワーク (VLAN) のタグ付けを設定する方法を説明します。
前提条件
- 仮想 VLAN インターフェースに対する親として使用するインターフェースが VLAN タグに対応している。
ボンドインターフェースに VLAN を設定する場合は、以下のようになります。
- ボンディングのポートが起動している。
-
ボンドが、
fail_over_mac=follow
オプションで設定されていない。VLAN 仮想デバイスは、親の新規 MAC アドレスに一致する MAC アドレスを変更できません。このような場合、トラフィックは間違ったソースの MAC アドレスで送信されます。
- ホストが接続するスイッチは、VLAN タグに対応するように設定されています。詳細は、スイッチのドキュメントを参照してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- ボタンをクリックして、新しい接続を追加します。
-
VLAN
接続タイプを選択し、 をクリックします。 VLAN
タブで、以下を行います。- 親インターフェースを選択します。
-
VLAN id を選択します。VLAN は、
0
から4094
の範囲内に存在する必要があります。 - デフォルトでは、VLAN 接続は、親インターフェースから最大伝送単位 (MTU) を継承します。必要に応じて、別の MTU 値を設定します。
必要に応じて、VLAN インターフェースの名前および VLAN 固有のオプションを設定します。
VLAN デバイスの IP 設定を構成します。この VLAN デバイスを他のデバイスのポートとして使用する場合は、この手順を省略します。
-
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。 -
IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを設定します。
-
- をクリックして VLAN 接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
設定を確認します。
#
ip -d addr show vlan10
4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:d5:e0:fb brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute vlan10 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::8dd7:9030:6f8e:89e6/64 scope link noprefixroute valid_lft forever preferred_lft forever
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
10.3. システムロールを使用した VLAN タグの設定
networking
の RHEL システムロールを使用して、VLAN タグ付けを設定できます。この手順では、イーサネット接続と、このイーサネット接続を使用する ID 10
の VLAN を追加する方法を説明します。親デバイスとして、VLAN 接続には IP、デフォルトゲートウェイ、および DNS 設定が含まれます。
環境に応じて、プレイを適宜調整します。以下に例を示します。
-
ボンディングなどの他の接続で VLAN をポートとして使用するには、
ip
属性を省略し、親設定で IP 設定を設定します。 -
VLAN でチーム、ブリッジ、またはボンディングデバイスを使用するには、
interface_name
と VLAN で使用するポートのtype
属性を調整します。
前提条件
-
ansible
パッケージおよびrhel-system-roles
パッケージがコントロールノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/vlan-ethernet.yml
Playbook を以下の内容で作成します。--- - name: Configure a VLAN that uses an Ethernet connection hosts: node.example.com become: true tasks: - include_role: name: 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 を設定します。Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。#
ansible-playbook -u root ~/vlan-ethernet.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
#
ansible-playbook -u user_name
--ask-become-pass ~/vlan-ethernet.yml--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
network_connections
で使用されるパラメーターの詳細と、システムロールnetwork
に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルを参照してください。 -
ansible-playbook
コマンドの詳細は、man ページのansible-playbook(1)
を参照してください。
第11章 ネットワークブリッジの設定
ネットワークブリッジは、MAC アドレスのテーブルに基づいてネットワーク間のトラフィックを転送するリンク層デバイスです。ブリッジは、ネットワークトラフィックをリッスンし、どのホストが各ネットワークに接続しているかを把握して、MAC アドレステーブルを構築します。たとえば、Red Hat Enterprise Linux 8 ホスト上のソフトウェアブリッジを使用して、ハードウェアブリッジや仮想化環境で仮想マシンをホストと同じネットワークに統合できます。
ブリッジには、ブリッジが接続する必要がある各ネットワークにネットワークデバイスが必要です。ブリッジを設定する場合、ブリッジは controller
と呼ばれ、ポート
を使用するデバイスです。
ブリッジは、以下のような異なるデバイスに作成できます。
- 物理および仮想イーサネットデバイス
- ネットワークボンド
- ネットワークチーム
- VLAN デバイス
Wi-Fi で効率的に使用するために、Wi-Fi で 3-address フレームの使用を指定する IEEE 802.11 規格により、Ad-Hoc モードまたは Infrastructure モードで稼働している Wi-Fi ネットワークにはブリッジを設定できません。
11.1. nmcli コマンドによるネットワークブリッジの設定
本セクションは、nmcli
ユーティリティーを使用してネットワークブリッジを設定する方法を説明します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
ブリッジのポートにチーム、ボンディング、または VLAN デバイスを使用するには、ブリッジの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
ブリッジインターフェースを作成します。
#
nmcli connection add type bridge con-name bridge0
ifname bridge0このコマンドにより
bridge0
という名前のブリッジが作成されます。以下を入力します。ネットワークインターフェースを表示し、ブリッジに追加するインターフェースの名前を書き留めます。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bond0 bond connected bond0 bond1 bond connected bond1 ...この例では、以下のように設定されています。
-
enp7s0
およびenp8s0
は設定されません。これらのデバイスをポートとして使用するには、次の手順に接続プロファイルを追加します。 -
bond0
およびbond1
には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
-
インターフェースをブリッジに割り当てます。
ブリッジに割り当てるインターフェースが設定されていない場合は、それらのブリッジに新しい接続プロファイルを作成します。
#
nmcli connection add type ethernet slave-type bridge con-name bridge0-port1
ifname enp7s0 master bridge0 #nmcli connection add type ethernet slave-type bridge con-name bridge0-port2
ifname enp8s0 master bridge0これらのコマンドにより、
enp7s0
およびenp8s0
のプロファイルが作成され、それらをbridge0
接続に追加します。既存の接続プロファイルをブリッジに割り当てる場合は、以下の接続の
master
パラメーターをbridge0
に設定します。#
nmcli connection modify bond0
master bridge0 #nmcli connection modify bond1
master bridge0これらのコマンドは、
bond0
およびbond1
という名前の既存の接続プロファイルをbridge0
接続に割り当てます。
ブリッジの IP 設定を構成します。このブリッジを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、
bridge0
接続の静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。#
nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24
' #nmcli connection modify bridge0 ipv4.gateway '192.0.2.254
' #nmcli connection modify bridge0 ipv4.dns '192.0.2.253
' #nmcli connection modify bridge0 ipv4.dns-search 'example.com
' #nmcli connection modify bridge0 ipv4.method manual
IPv6 設定を構成します。たとえば、
bridge0
接続の静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定するには、次のコマンドを実行します。#
nmcli connection modify bridge0 ipv6.addresses '2001:db8:1::1/64
' #nmcli connection modify bridge0 ipv6.gateway '2001:db8:1::fffe
' #nmcli connection modify bridge0 ipv6.dns '2001:db8:1::fffd
' #nmcli connection modify bridge0 ipv6.dns-search 'example.com
' #nmcli connection modify bridge0 ipv6.method manual
必要に応じて、ブリッジのその他のプロパティーを設定します。たとえば、
bridge0
の STP (Spanning Tree Protocol) の優先度を16384
に設定するには、次のコマンドを実行します。#
nmcli connection modify bridge0 bridge.priority '16384'
デフォルトでは STP が有効になっています。
接続をアクティベートします。
#
nmcli connection up bridge0
ポートが接続され、
CONNECTION
コラムにポートの接続名が表示されることを確認します。#
nmcli device
DEVICE TYPE STATE CONNECTION ... enp7s0 ethernet connected bridge0-port1 enp8s0 ethernet connected bridge0-port2Red Hat Enterprise Linux は、システムの起動時にコントローラーとポートをアクティベートします。ポート接続をアクティベートすると、コントローラーもアクティベートされます。ただし、この場合は、1 つのポート接続のみがアクティベートされます。デフォルトでは、コントローラーを有効にしても、ポートは自動的にアクティブになりません。ただし、この動作は、以下の設定で有効にできます。
ブリッジ接続の
connection.autoconnect-slaves
パラメーターを有効にします。#
nmcli connection modify bridge0 connection.autoconnect-slaves 1
ブリッジを再度アクティブにします。
#
nmcli connection up bridge0
検証手順
特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。
#
ip link show master bridge0
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ffブリッジデバイスのポートであるイーサネットデバイスのステータスを表示します。
#
bridge link show
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100 5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100 6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100 ...特定のイーサネットデバイスのステータスを表示するには、
bridge link show dev ethernet_device_name
コマンドを使用します。
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための 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 NetworkManager service」を参照してください。
11.2. nm-connection-editor によるネットワークブリッジの設定
本セクションでは、nm-connection-editor
アプリケーションを使用してネットワークブリッジを設定する方法を説明します。
nm-connection-editor
は、新しいポートのみをブリッジに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドによるネットワークブリッジの設定」 の説明に従って nmcli
ユーティリティーを使用してブリッジを作成します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ブリッジのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
- ブリッジのポートとしてチーム、ボンディング、または VLAN デバイスを使用するには、これらのデバイスがまだ設定されていないことを確認してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- ボタンをクリックして、新しい接続を追加します。
-
接続タイプ
Bridge
を選択し、 をクリックします。 Bridge
タブで以下を行います。-
必要に応じて、
Interface name
フィールドに、ブリッジインターフェースの名前を設定します。 -
インターフェースの接続タイプを選択します。たとえば、有線接続に
Ethernet
を選択します。 - 必要に応じて、ポートデバイスの接続名を設定します。
-
イーサネットデバイスの接続プロファイルを作成する場合は、
Ethernet
タブを開き、Device
フィールドで、ブリッジにポートとして追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。 - をクリックします。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
ブリッジに追加する各インターフェースに、直前の手順を繰り返します。
-
必要に応じて、
- 必要に応じて、スパニングツリープロトコル (STP) オプションなどの追加のブリッジ設定を行います。
ブリッジの IP 設定を構成します。このブリッジを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。
- ブリッジ接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。
#
ip link show master bridge0
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ffブリッジデバイスのポートであるイーサネットデバイスのステータスを表示します。
#
bridge link show
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100 4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100 5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100 6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100 ...特定のイーサネットデバイスのステータスを表示するには、
bridge link show dev ethernet_device_name
コマンドを使用します。
関連情報
- 「nm-connection-editor によるネットワークボンディングの設定」
- 「nm-connection-editor によるネットワークチームの設定」
- 「nm-connection-editor による VLAN タグの設定」
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
第12章 ネットワークチーミングの設定
本セクションでは、ネットワークボンディングの基本、ボンディングとチーミングの相違点、Red Hat Enterprise Linux 8 にネットワークチームを設定する方法を説明します。
ネットワークチームは、以下のような異なるタイプのデバイスに作成できます。
- 物理および仮想イーサネットデバイス
- ネットワークボンド
- ネットワークブリッジ
- VLAN デバイス
12.1. ネットワークチーミングの理解
ネットワークチーミングとは、ネットワークインターフェースを統合または集約し、より高いスループットまたは冗長性のある論理インターフェースを提供する機能です。
ネットワークチーミングでは、カーネルドライバーを使用してパケットフローの高速処理や、他のタスク用のユーザー空間ライブラリーおよびサービスを実装します。これにより、ネットワークチーミングは、負荷分散および冗長性の要件に対して、簡単に拡張可能でスケーラブルなソリューションとなります。
特定のネットワークチーミング機能 (例: フェイルオーバーメカニズム) は、ネットワークスイッチのないダイレクトケーブル接続に対応していません。詳細は、「ボンディングは、クロスオーバーケーブルを使用したダイレクトコレクションをサポートしますか?」を参照してください。
12.2. コントローラーおよびポートインターフェースのデフォルト動作について
NetworkManager
サービスを使用してチームまたはボンディングのポートインターフェースを管理またはトラブルシューティングする場合は、以下のデフォルトの動作を考慮してください。
- コントローラーインターフェースを起動しても、ポートインターフェースは自動的に起動しません。
- ポートインターフェースを起動すると、常にコントローラーインターフェースが起動します。
- コントローラーインターフェースを停止すると、ポートインターフェースも停止します。
- ポートのないコントローラーは、静的 IP 接続を開始できます。
- ポートのないコントローラーは、DHCP 接続の開始時にポートを待機します。
- DHCP 接続でポートを待機中のコントローラーは、キャリアのあるポートを追加する際に完了します。
- DHCP 接続でポートを待機中のコントローラーは、キャリアなしでポートを追加する際に待機を継続します。
12.3. ネットワークチーミングとボンディング機能の比較
ネットワークチームおよびネットワークボンディングでサポートされている機能について説明します。
機能 | ネットワークボンド | ネットワークチーム |
---|---|---|
ブロードキャストの Tx ポリシー | はい | はい |
ラウンドロビンの Tx ポリシー | はい | はい |
アクティブバックアップの Tx ポリシー | はい | はい |
LACP (802.3ad) への対応 | あり (アクティブのみ) | はい |
ハッシュベースの Tx ポリシー | はい | はい |
ユーザーによるハッシュ機能の設定 | いいえ | はい |
Tx 負荷分散への対応 (TLB) | はい | はい |
LACP ハッシュポートの選択 | はい | はい |
LACP 対応の負荷分散 | いいえ | はい |
Ethtool リンク監視 | はい | はい |
ARP リンク監視 | はい | はい |
NS/NA (IPv6) リンク監視 | いいえ | はい |
ポートのアップ/ダウンの遅延 | はい | はい |
ポートの優先度および持続性 (スティッキネス) (「プライマリー」のオプション強化) | いいえ | はい |
ポートごとに個別のリンク監視の設定 | いいえ | はい |
複数のリンク監視の設定 | 限定的 | はい |
ロックなしの Tx/Rx パス | なし (rwlock) | あり (RCU) |
VLAN への対応 | はい | はい |
ユーザー空間のランタイム制御 | 限定的 | はい |
ユーザー空間での論理 | いいえ | はい |
拡張性 | 困難 | 容易 |
モジュラー設計 | いいえ | はい |
パフォーマンスのオーバーヘッド | 低 | 非常に低い |
D-Bus インターフェース | いいえ | はい |
複数デバイスのスタッキング | はい | はい |
LLDP を使用したゼロ設定 | いいえ | (計画中) |
NetworkManager への対応 | はい | はい |
12.4. teamd サービス、ランナー、およびリンク監視の理解
チームサービス teamd
は、チームドライバーのインスタンスを制御します。このドライバーのインスタンスは、ハードウェアデバイスドライバーのインスタンスを追加して、ネットワークインターフェースのチームを形成します。チームドライバーは、ネットワークインターフェース (team0
など) をカーネルに提示します。
teamd
サービスは、チーミングのすべてのメソッドに共通のロジックを実装します。この関数は、ラウンドロビンなどの異なる負荷分散とバックアップメソッドに一意で、ランナー
と呼ばれる別のコードのユニットにより実装されます。管理者は、JSON (JavaScript Object Notation) 形式でランナーを指定します。インスタンスの作成時に、JSON コードが teamd
のインスタンスにコンパイルされます。または、NetworkManager
を使用する場合は、team.runner
パラメーターにランナーを設定でき、対応する JSON コードを NetworkManager
が自動的に作成します。
以下のランナーが利用できます。
-
broadcast
- すべてのポートでデータを送信します。 -
roundrobin
- 次に、すべてのポートでデータを送信します。 -
activebackup
- 1 つのポートにデータを送信します。もう 1 つのポートはバックアップとして維持されます。 -
loadbalance
- アクティブな Tx 負荷分散と Berkeley Packet Filter (BPF) ベースの Tx ポートセレクターを持つすべてのポートでデータを送信します。 -
random
- 無作為に選択されたポートでデータを送信します。 -
lacp
- 802.3ad リンクアグリゲーション制御プロトコル (LACP) を実装します。
teamd
サービスはリンク監視を使用して、下位デバイスの状態を監視します。さらに、以下のリンク監視が利用可能です。
-
ethtool
-libteam
ライブラリーは、ethtool
ユーティリティーを使用してリンク状態の変更を監視します。これはデフォルトのリンク監視です。 -
arp_ping
-libteam
ライブラリーは、arp_ping
ユーティリティーでアドレス解決プロトコル (ARP) を使用して、遠端のハードウェアアドレスの存在を監視します。 -
nsna_ping
- IPv6 接続では、libteam
ライブラリーが IPv6 neighbor Discovery プロトコルの Neighbor Advertisement 機能と Neighbor Solicitation 機能を使用して、近くのインターフェースの存在を監視します。
各ランナーは、lacp
を除くリンク監視を使用できます。このランナーは、ethtool
リンク監視のみを使用できます。
12.5. teamd サービスのインストール
NetworkManager
にネットワークチームを設定するには、teamd
サービスと、NetworkManager
のチームプラグインが必要です。デフォルトでは、いずれも Red Hat Enterprise Linux 8 にインストールされます。本セクションでは、削除する場合に必要なパッケージをインストールする方法を説明します。
前提条件
- 有効な Red Hat サブスクリプションがホストに割り当てられている。
手順
teamd
パッケージおよびNetworkManager-team
パッケージをインストールします。# yum install teamd NetworkManager-team
12.6. nmcli コマンドによるネットワークチームの設定
本セクションは、nmcli
ユーティリティーを使用して、ネットワークチームを設定する方法を説明します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- チームのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされ、スイッチに接続されている必要があります。
チームのポートにボンディング、ブリッジ、または VLAN デバイスを使用するには、チームの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
チームインターフェースを作成します。
#
nmcli connection add type team con-name team0
ifname team0 team.runner activebackupこのコマンドは、
activebackup
ランナーを使用するteam0
という名前のネットワークチームを作成します。必要に応じて、リンク監視を設定します。たとえば、
team0
接続プロファイルのethtool
リンク監視を設定するには、次のコマンドを実行します。#
nmcli connection modify team0 team.link-watchers "name=ethtool
"リンク監視は、さまざまなパラメーターに対応します。リンク監視にパラメーターを設定するには、
name
プロパティーでスペースで区切って指定します。name プロパティーは引用符で囲む必要があることに注意してください。たとえば、ethtool
リンク監視を使用し、delay-up
パラメーターを2500
ミリ秒 (2.5 秒) で設定するには、次のコマンドを実行します。#
nmcli connection modify team0 team.link-watchers "name=ethtool
delay-up=2500"複数のリンク監視および各リンク監視を、特定のパラメーターで設定するには、リンク監視をコンマで区切る必要があります。以下の例では、
delay-up
パラメーターでethtool
リンク監視を設定します。arp_ping
リンク監視は、source-host
パラメーターおよびtarget-host
パラメーターで設定します。#
nmcli connection modify team0 team.link-watchers "name=ethtool
delay-up=2, name=arp_ping source-host=192.0.2.1 target-host=192.0.2.2"ネットワークインターフェースを表示し、次のステップでチームに追加するインターフェースの名前を書き留めておきます。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bond0 bond connected bond0 bond1 bond connected bond1 ...この例では、以下のように設定されています。
-
enp7s0
およびenp8s0
は設定されません。これらのデバイスをポートとして使用するには、次の手順に接続プロファイルを追加します。いずれの接続にも割り当てられていないチームでネットワークインターフェースのみを使用できます。 -
bond0
およびbond1
には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
-
ポートインターフェースをチームに割り当てます。
チームに割り当てるインターフェースが設定されていない場合は、それらの接続プロファイルを新たに作成します。
#
nmcli connection add type ethernet slave-type team con-name team0-port1 ifname enp7s0 master team0
#nmcli connection add type ethernet slave-type team con-name team0-port2 ifname enp8s0 master team0
.これらのコマンドは、
enp7s0
およびenp8s0
にプロファイルを作成し、team0
接続に追加します。既存の接続プロファイルをチームに割り当てるには、以下の接続の
master
パラメーターをteam0
に設定します。#
nmcli connection modify bond0
master team0 #nmcli connection modify bond1
master team0これらのコマンドは、
bond0
およびbond1
という名前の既存の接続プロファイルをteam0
接続に割り当てます。
チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、
team0
接続の静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。#
nmcli connection modify team0 ipv4.addresses '192.0.2.1/24
' #nmcli connection modify team0 ipv4.gateway '192.0.2.254
' #nmcli connection modify team0 ipv4.dns '192.0.2.253
' #nmcli connection modify team0 ipv4.dns-search 'example.com
' #nmcli connection modify team0 ipv4.method manual
IPv6 設定を構成します。たとえば、
team0
接続の静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定するには、次のコマンドを実行します。#
nmcli connection modify team0 ipv6.addresses '2001:db8:1::1/64
' #nmcli connection modify team0 ipv6.gateway '2001:db8:1::fffe
' #nmcli connection modify team0 ipv6.dns '2001:db8:1::fffd
' #nmcli connection modify team0 ipv6.dns-search 'example.com
' #nmcli connection modify team0 ipv6.method manual
接続をアクティベートします。
#
nmcli connection up team0
検証手順
チームのステータスを表示します。
#
teamdctl team0 state
setup: runner: activebackup ports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp7s0この例では、両方のポートが起動しています。
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
- 「teamd サービス、ランナー、およびリンク監視の理解」.
-
nmcli
の例は、man ページのnmcli-examples(7)
を参照してください。 -
設定可能なすべてのチームプロパティーは、man ページの
nm-settings (5)
のteam
セクションを参照してください。 -
JSON 設定や JSON の例で設定できるパラメーターは、man ページの
teamd.conf (5)
を参照してください。
12.7. nm-connection-editor によるネットワークチームの設定
本セクションでは、nm-connection-editor
アプリケーションを使用してネットワークチームを設定する方法を説明します。
nm-connection-editor
は、新しいポートのみをチームに追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドによるネットワークチームの設定」 の説明に従って nmcli
ユーティリティーを使用してチームを作成します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- イーサネットデバイスをチームのポートとして使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
- チーム、ボンディング、または VLAN デバイスをチームのポートとして使用するには、これらのデバイスがまだ設定されていないことを確認してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- ボタンをクリックして、新しい接続を追加します。
-
接続タイプ
Team
を選択し、 をクリックします。 Team
タブで、以下を行います。-
必要に応じて、
Interface name
フィールドにチームインターフェースの名前を設定します。 -
インターフェースの接続タイプを選択します。たとえば、有線接続に
Ethernet
を選択します。 - 必要に応じて、ポートの接続名を設定します。
-
イーサネットデバイスの接続プロファイルを作成する場合は、
Ethernet
タブを開き、Device
フィールドで、チームにポートとして追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。いずれの接続にも割り当てられていないチームでネットワークインターフェースのみを使用できます。 - をクリックします。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
チームに追加する各インターフェースに直前の手順を繰り返します。
-
Runner
タブで、ランナーを選択します。 -
Link Watcher
で、リンク監視と、そのオプションを設定します。 - をクリックします。
-
-
必要に応じて、
チームの IP 設定を構成します。このチームを他のデバイスのポートとして使用する場合は、この手順を省略します。
-
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。 -
IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。
-
- チーム接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
チームのステータスを表示します。
#
teamdctl team0 state
setup: runner: activebackup ports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp7s0
関連情報
- 「nm-connection-editor によるネットワークボンディングの設定」
- 「nm-connection-editor によるネットワークブリッジの設定」
- 「nm-connection-editor による VLAN タグの設定」
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
- 「teamd サービス、ランナー、およびリンク監視の理解」.
- ディスクの設定がデバイスの設定と一致しない場合は、NetworkManager を起動するか再起動して、インメモリー接続を作成することで、デバイスの設定を反映します。詳細と、この問題を回避する方法は、「NetworkManager duplicates a connection after restart of NetworkManager service」を参照してください。
第13章 ネットワークボンディングの設定
本セクションでは、ネットワークボンディングの基本、ボンディングとチーミングの相違点、Red Hat Enterprise Linux 8 でネットワークボンディングを設定する方法を説明します。
以下のような異なるタイプのデバイスにボンディングを作成できます。
- 物理および仮想イーサネットデバイス
- ネットワークブリッジ
- ネットワークチーム
- VLAN デバイス
13.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 メカニズム) は、ネットワークスイッチなしでのダイレクトケーブル接続に対応していません。詳細は、「ボンディングは、クロスオーバーケーブルを使用したダイレクトコレクションをサポートしますか?」を参照してください。を参照してください。
13.2. コントローラーおよびポートインターフェースのデフォルト動作について
NetworkManager
サービスを使用してチームまたはボンディングのポートインターフェースを管理またはトラブルシューティングする場合は、以下のデフォルトの動作を考慮してください。
- コントローラーインターフェースを起動しても、ポートインターフェースは自動的に起動しません。
- ポートインターフェースを起動すると、常にコントローラーインターフェースが起動します。
- コントローラーインターフェースを停止すると、ポートインターフェースも停止します。
- ポートのないコントローラーは、静的 IP 接続を開始できます。
- ポートのないコントローラーは、DHCP 接続の開始時にポートを待機します。
- DHCP 接続でポートを待機中のコントローラーは、キャリアのあるポートを追加する際に完了します。
- DHCP 接続でポートを待機中のコントローラーは、キャリアなしでポートを追加する際に待機を継続します。
13.3. ネットワークチーミングとボンディング機能の比較
ネットワークチームおよびネットワークボンディングでサポートされている機能について説明します。
機能 | ネットワークボンド | ネットワークチーム |
---|---|---|
ブロードキャストの Tx ポリシー | はい | はい |
ラウンドロビンの Tx ポリシー | はい | はい |
アクティブバックアップの Tx ポリシー | はい | はい |
LACP (802.3ad) への対応 | あり (アクティブのみ) | はい |
ハッシュベースの Tx ポリシー | はい | はい |
ユーザーによるハッシュ機能の設定 | いいえ | はい |
Tx 負荷分散への対応 (TLB) | はい | はい |
LACP ハッシュポートの選択 | はい | はい |
LACP 対応の負荷分散 | いいえ | はい |
Ethtool リンク監視 | はい | はい |
ARP リンク監視 | はい | はい |
NS/NA (IPv6) リンク監視 | いいえ | はい |
ポートのアップ/ダウンの遅延 | はい | はい |
ポートの優先度および持続性 (スティッキネス) (「プライマリー」のオプション強化) | いいえ | はい |
ポートごとに個別のリンク監視の設定 | いいえ | はい |
複数のリンク監視の設定 | 限定的 | はい |
ロックなしの Tx/Rx パス | なし (rwlock) | あり (RCU) |
VLAN への対応 | はい | はい |
ユーザー空間のランタイム制御 | 限定的 | はい |
ユーザー空間での論理 | いいえ | はい |
拡張性 | 困難 | 容易 |
モジュラー設計 | いいえ | はい |
パフォーマンスのオーバーヘッド | 低 | 非常に低い |
D-Bus インターフェース | いいえ | はい |
複数デバイスのスタッキング | はい | はい |
LLDP を使用したゼロ設定 | いいえ | (計画中) |
NetworkManager への対応 | はい | はい |
13.4. ボンディングモードに依存するアップストリームのスイッチ設定
以下の表は、ボンディングモードに応じて、どの設定をアップストリームのスイッチに適用する必要があるかを示しています。
ボンディングモード | スイッチの設定 |
---|---|
| (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。 |
| 自動ポートが必要です。 |
| (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。 |
| (LACP がネゴシエートされたものではなく) 静的な Etherchannel を有効にする必要があります。 |
| LACP がネゴシエートされた Etherchannel が有効になっている必要があります。 |
| 自動ポートが必要です。 |
| 自動ポートが必要です。 |
スイッチの設定は、スイッチのドキュメントを参照してください。
13.5. nmcli コマンドによるネットワークボンディングの設定
本セクションは、nmcli
コマンドを使用して、ネットワークボンディングを設定する方法を説明します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ボンディングのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
ボンディングのポートにチーム、ブリッジ、または VLAN デバイスを使用するには、ボンディングの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。
手順
ボンドインターフェースを作成します。
#
nmcli connection add type bond con-name bond0
ifname bond0 bond.options "mode=active-backup"このコマンドは、
active-backup
モードを使用するbond0
という名前のボンディングを作成します。Media Independent Interface (MII) 監視間隔も設定する場合は、
miimon=interval
オプションをbond.options
プロパティーに追加します。たとえば、同じコマンドで、さらに MII 監視間隔を1000
ミリ秒 (1 秒) に設定するには、次のコマンドを入力します。#
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup
,miimon=1000"ネットワークインターフェースを表示して、ボンドに追加する予定のインターフェース名を書き留めます。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bridge0 bridge connected bridge0 bridge1 bridge connected bridge1 ...この例では、以下のように設定されています。
-
enp7s0
およびenp8s0
は設定されません。これらのデバイスをポートとして使用するには、次の手順に接続プロファイルを追加します。 -
bridge0
およびbridge1
には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
-
インターフェースをボンディングに割り当てます。
ボンディングに割り当てるインターフェースが設定されていない場合は、インターフェース用に新しい接続プロファイルを作成します。
#
nmcli connection add type ethernet slave-type bond con-name bond0-port1
ifname enp7s0 master bond0 #nmcli connection add type ethernet slave-type bond con-name bond0-port2
ifname enp8s0 master bond0これらのコマンドは、
enp7s0
およびenp8s0
のプロファイルを作成し、bond0
接続に追加します。既存の接続プロファイルをボンディングに割り当てるには、以下の接続の
master
パラメーターをbond0
に設定します。#
nmcli connection modify bridge0
master bond0 #nmcli connection modify bridge1
master bond0これらのコマンドは、
bridge0
およびbridge1
という名前の既存の接続プロファイルをbond0
接続に割り当てます。
ボンディングの IP 設定を構成します。このボンディングを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 設定を構成します。たとえば、
bond0
接続の静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。#
nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24
' #nmcli connection modify bond0 ipv4.gateway '192.0.2.254
' #nmcli connection modify bond0 ipv4.dns '192.0.2.253
' #nmcli connection modify bond0 ipv4.dns-search 'example.com
' #nmcli connection modify bond0 ipv4.method manual
IPv6 設定を構成します。たとえば、
bond0
接続の静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを設定するには、次のコマンドを実行します。#
nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64
#nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe
' #nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd
' #nmcli connection modify bond0 ipv6.dns-search 'example.com
' #nmcli connection modify bond0 ipv6.method manual
接続をアクティベートします。
#
nmcli connection up bond0
ポートが接続され、
CONNECTION
コラムにポートの接続名が表示されることを確認します。#
nmcli device
DEVICE TYPE STATE CONNECTION ... enp7s0 ethernet connected bond0-port1 enp8s0 ethernet connected bond0-port2Red Hat Enterprise Linux は、システムの起動時にコントローラーおよびポートデバイスをアクティブにします。ポート接続をアクティベートすると、コントローラーもアクティベートされます。ただし、この場合は、1 つのポート接続のみがアクティベートされます。デフォルトでは、コントローラーを有効にしても、ポートは自動的にアクティブになりません。ただし、この動作は、以下の設定で有効にできます。
ボンディングの接続で
connection.autoconnect-slaves
パラメーターを有効にします。#
nmcli connection modify bond0 connection.autoconnect-slaves 1
ブリッジを再度アクティブにします。
#
nmcli connection up bond0
検証手順
ボンドのステータスを表示します。
#
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: enp7s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:d5:e0:fb Slave queue ID: 0 Slave Interface: enp8s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:b2:e2:63 Slave queue ID: 0この例では、両方のポートが起動しています。
ボンディングフェイルオーバーが機能することを確認するには、以下を行います。
- ホストからネットワークケーブルを一時的に削除します。コマンドラインでリンク障害イベントを適切にテストする方法がないことに注意してください。
ボンドのステータスを表示します。
#
cat /proc/net/bonding/bond0
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
-
nmcli
の例は、man ページのnmcli-examples(7)
を参照してください。 -
ボンディングを作成する際に
nmcli
コマンドのbond.options
パラメーターに設定できるオプションの一覧は、https://www.kernel.org/doc/Documentation/networking/bonding.txt を参照してください。
13.6. nm-connection-editor によるネットワークボンディングの設定
本セクションでは、nm-connection-editor
アプリケーションを使用してネットワークボンディングを設定する方法を説明します。
nm-connection-editor
は、ボンドに新しいポートのみを追加できることに注意してください。既存の接続プロファイルをポートとして使用するには、「nmcli コマンドによるネットワークボンディングの設定」 の説明に従って nmcli
ユーティリティーを使用してボンディングを作成します。
前提条件
- サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
- ボンディングのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされている。
- ボンディングのポートとしてチーム、ボンディング、または VLAN デバイスを使用するには、これらのデバイスがまだ設定されていないことを確認してください。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- ボタンをクリックして、新しい接続を追加します。
-
接続タイプ
Bond
を選択し、 をクリックします。 Bond
タブで、以下を行います。-
必要に応じて、
Interface name
フィールドにボンドインターフェースの名前を設定します。 -
インターフェースの接続タイプを選択します。たとえば、有線接続に
Ethernet
を選択します。 - 必要に応じて、ポートの接続名を設定します。
-
イーサネットデバイスの接続プロファイルを作成する場合は、
Ethernet
タブを開き、Device
フィールドで、ボンドにポートとして追加するネットワークインターフェースを選択します。別のデバイスタイプを選択した場合は、それに応じて設定します。イーサネットインターフェースは、設定されていないボンディングでのみ使用できることに注意してください。 - をクリックします。
-
インターフェースの接続タイプを選択します。たとえば、有線接続に
ボンディングに追加する各インターフェースで直前の手順を繰り返します。
- 必要に応じて、Media Independent Interface (MII) の監視間隔などの他のオプションを設定します。
-
必要に応じて、
ボンディングの IP 設定を構成します。このボンディングを他のデバイスのポートとして使用する場合は、この手順を省略します。
IPv4 Settings
タブで、IPv4 設定を構成します。たとえば、静的な IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。IPv6 設定
タブで、IPv6 設定を構成します。たとえば、静的な IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、DNS 検索ドメインを設定します。
- をクリックして、ボンド接続を保存します。
-
nm-connection-editor
を閉じます。
検証手順
ボンディングのステータスを表示します。
$
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: enp7s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:d5:e0:fb Slave queue ID: 0 Slave Interface: enp8s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:b2:e2:63 Slave queue ID: 0この例では、両方のポートが起動しています。
関連情報
- 「nm-connection-editor によるネットワークチームの設定」
- 「nm-connection-editor によるネットワークブリッジの設定」
- 「nm-connection-editor による VLAN タグの設定」
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
- コネクションにデフォルトゲートウェイがない場合は、「 「特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定」 」を参照してください。
13.7. RHEL システムロールを使用したネットワークボンディングの設定
network
の RHEL システムロールを使用して、ネットワークボンディングを設定できます。この手順では、2 つのイーサネットデバイスを使用し、IPv4 と IPv6 アドレス、デフォルトゲートウェイ、および DNS 設定を行う active-backup モードでボンディングを設定する方法を説明します。
Linux ブリッジのポートではなく、ブリッジに IP 設定を設定します。
前提条件
-
ansible
パッケージおよびrhel-system-roles
パッケージがコントロールノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが付与される。 - サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/bond-ethernet.yml
Playbook を以下の内容で作成します。--- - name: Configure a network bond that uses two Ethernet ports hosts: node.example.com become: true tasks: - include_role: name: 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 interface_name: enp7s0 type: ethernet master: bond0 state: up # Add a second Ethernet profile to the bond - name: bond0-port2 interface_name: enp8s0 type: ethernet master: bond0 state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。#
ansible-playbook -u root ~/bond-ethernet.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
#
ansible-playbook -u user_name
--ask-become-pass ~/bond-ethernet.yml--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
network_connections
で使用されるパラメーターの詳細と、システムロールnetwork
に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルを参照してください。 -
ansible-playbook
コマンドの詳細は、man ページのansible-playbook(1)
を参照してください。
13.8. VPN を中断せずにイーサネットとワイヤレス接続間の切り替えを可能にするネットワークボンディングの作成
ワークステーションを会社のネットワークに接続する RHEL ユーザーは、通常、リモートリソースにアクセスするのに VPN を使用します。ただし、イーサネット接続と Wi-Fi 接続間のワークステーションスイッチ (たとえば、イーサネット接続のあるドッキングステーションからノート PC を解放した場合など) は、VPN 接続が中断されます。この問題を回避するには、active-backup
モードでイーサネット接続および Wi-Fi 接続を使用するネットワークボンディングを作成します。
前提条件
- ホストに、イーサネットデバイスと Wi-Fi デバイスが含まれている。
イーサネットおよび Wi-Fi NetworkManager 接続プロファイルが作成され、両方の接続が独立して機能します。
この手順では、以下の接続プロファイルを使用して
bond0
という名前のネットワークボンディングを作成します。-
enp11s0u1
イーサネットデバイスに関連付けられたDocking_station
-
wlp61s0
Wi-Fi デバイスに関連付けられたWi-Fi
-
手順
active-backup
モードでボンドインターフェースを作成します。#
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
このコマンドは、インターフェースおよび接続プロファイル
bond0
の両方に名前を付けます。ボンディングの IPv4 設定を構成します。
- ネットワークの DHCP サーバーが IPv4 アドレスをホストに割り当てる場合は、何もする必要はありません。
ローカルネットワークに静的 IPv4 アドレスが必要な場合は、アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを
bond0
接続に設定します。#
nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24
' #nmcli connection modify bond0 ipv4.gateway '192.0.2.254
' #nmcli connection modify bond0 ipv4.dns '192.0.2.253
' #nmcli connection modify bond0 ipv4.dns-search 'example.com
' #nmcli connection modify bond0 ipv4.method manual
ボンディングの IPv6 設定を構成します。
- ネットワークのルーターまたは DHCP サーバーが IPv6 アドレスをホストに割り当てる場合、アクションは必要ありません。
ローカルネットワークに静的 IPv6 アドレスが必要な場合は、アドレス、ネットワークマスク、デフォルトゲートウェイ、DNS サーバー、および DNS 検索ドメインを
bond0
接続に設定します。#
nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64
' #nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe
' #nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd
' #nmcli connection modify bond0 ipv6.dns-search 'example.com
' #nmcli connection modify bond0 ipv6.method manual
接続プロファイルを表示します。
# nmcli connection show NAME UUID TYPE DEVICE Docking_station 256dd073-fecc-339d-91ae-9834a00407f9 ethernet enp11s0u1 Wi-Fi 1f1531c7-8737-4c60-91af-2d21164417e8 wifi wlp61s0 ...
次のステップでは、接続プロファイルとイーサネットデバイス名が必要です。
イーサネット接続の接続プロファイルをボンドに割り当てます。
#
nmcli connection modify Docking_station
master bond0Wi-Fi 接続の接続プロファイルをボンディングに割り当てます。
#
nmcli connection modify Wi-Fi
master bond0Wi-Fi ネットワークが MAC フィルタリングを使用して、許可リストの MAC アドレスのみがネットワークにアクセスできるようにする場合は、NetworkManager がアクティブなポートの MAC アドレスをボンドに動的に割り当てるように設定します。
#
nmcli connection modify bond0 +bond.options fail_over_mac=1
この設定では、イーサネットデバイスと Wi-Fi デバイスの両方の MAC アドレスの代わりに、Wi-Fi デバイスの MAC アドレスのみを allow リストに設定する必要があります。
イーサネット接続に関連付けられたデバイスを、ボンドのプライマリーデバイスとして設定します。
#
nmcli con modify bond0 +bond.options "primary=enp11s0u1"
この設定では、ボンディングが利用可能な場合は、イーサネット接続を常に使用します。
bond0
デバイスがアクティブになると、NetworkManager がポートを自動的にアクティブになるように設定します。#
nmcli connection modify bond0 connection.autoconnect-slaves 1
bond0
接続をアクティベートします。#
nmcli connection up bond0
検証手順
現在アクティブなデバイス、ボンドおよびそのポートのステータスを表示します。
#
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active) Primary Slave: enp11s0u1 (primary_reselect always) Currently Active Slave: enp11s0u1 MII Status: up MII Polling Interval (ms): 1 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0 Slave Interface: enp11s0u1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:53:00:59:da:b7 Slave queue ID: 0 Slave Interface: wlp61s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 2 Permanent HW addr: 00:53:00:b3:22:ba Slave queue ID: 0
第14章 VPN 接続の設定
本セクションでは、仮想プライベートネットワーク (VPN) 接続を設定する方法を説明します。
VPN は、インターネットを介してローカルネットワークに接続する方法です。Libreswan
が提供する IPsec
は、VPN を作成するのに推奨される方法です。Libreswan
は、VPN 用のオープンソースで、ユーザー空間の IPsec
実装です。VPN は、インターネットなどの中間ネットワークにトンネルを設定して、LAN と別のリモート LAN との間の通信を可能にします。セキュリティー上の理由から、VPN トンネルは常に認証と暗号化を使用します。暗号化操作では、Libreswan
は NSS
ライブラリーを使用します。
14.1. control-center による VPN 接続の確立
この手順では、control-center
を使用して VPN 接続を設定する方法を説明します。
前提条件
-
NetworkManager-libreswan-gnome
パッケージがインストールされている。
手順
-
Super キーを押して
Settings
と入力し、Enter を押してcontrol-center
アプリケーションを開きます。 -
左側の
Network
エントリーを選択します。 - + アイコンをクリックします。
-
VPN
を選択します。 Identity
メニューエントリーを選択して、基本的な設定オプションを表示します。一般
Gateway
- リモート VPN ゲートウェイの名前またはIP
アドレスです。認証
Type
-
IKEv2 (証明書)
- クライアントは、証明書により認証されます。これはより安全です (デフォルト)。 IKEv1(XAUTH)
: クライアントは、ユーザー名とパスワード、または事前共有キー (PSK) で認証されます。Advanced
セクションでは、以下の設定が可能です。図14.1 VPN 接続の詳細なオプション
警告gnome-control-center
アプリケーションを使用して IPsec ベースの VPN 接続を設定すると、Advanced
ダイアログには設定が表示されますが、変更することはできません。したがって、詳細な IPsec オプションを変更できません。nm-connection-editor
ツールまたはnmcli
ツールを使用して、詳細なプロパティーの設定を実行します。識別
Domain
- 必要な場合は、ドメイン名を入力します。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
です。
-
IPv4 Method
-
Automatic (DHCP)
- 接続しているネットワークがルーター通知 (RA) またはDHCP
サーバーを使用して動的IP
アドレスを割り当てる場合は、このオプションを選択します。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP
アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞169.254/16
付きのランダムなアドレスが、RFC 3927 に従って割り当てられます。 -
Manual
-IP
アドレスを手動で割り当てる場合は、このオプションを選択します。 Disable
- この接続ではIPv4
は無効です。DNS
DNS
セクションでは、Automatic
がON
になっているときに、これをOFF
に切り替えて、使用する DNS サーバーの IP アドレスを入力します。IP アドレスはコンマで区切ります。Routes
Routes
セクションでは、Automatic
がON
になっている場合は、DHCP からのルートが使用されますが、他の静的ルートを追加することもできることに注意してください。OFF
の場合は、静的ルートだけが使用されます。-
Address
- リモートネットワークまたはホストのIP
アドレスを入力します。 -
Netmask
- 上に入力したIP
アドレスのネットマスクまたはプレフィックス長。 -
Gateway
- 上に入力したリモートネットワーク、またはホストにつながるゲートウェイのIP
アドレス。 Metric
- このルートに付与する優先値であるネットワークコスト。数値が低い方が優先されます。Use this connection only for resources on its network (この接続はネットワーク上のリソースのためだけに使用)
このチェックボックスを選択すると、この接続はデフォルトルートになりません。このオプションを選択すると、この接続で自動的に学習したルートを使用することが明確なトラフィックか、手動で入力したトラフィックのみがこの接続を経由します。
-
VPN
接続のIPv6
設定を構成するには、 メニューエントリーを選択します。IPv6 Method
-
Automatic
-IPv6
ステートレスアドレス自動設定 (SLAAC) を使用して、ハードウェアのアドレスとルーター通知 (RA) に基づくステートレスの自動設定を作成するには、このオプションを選択します。 -
Automatic, DHCP only
- RA を使用せず、直接DHCPv6
に情報を要求してステートフルな設定を作成する場合は、このオプションを選択します。 -
Link-Local Only
- 接続しているネットワークにDHCP
サーバーがなく、IP
アドレスを手動で割り当てない場合は、このオプションを選択します。接頭辞FE80::0
付きのランダムなアドレスが、RFC 4862 に従って割り当てられます。 -
Manual
-IP
アドレスを手動で割り当てる場合は、このオプションを選択します。 Disable
- この接続ではIPv6
は無効です。DNS
、Routes
、Use this connection only for resources on its network
が、一般的なIPv4
設定となることに注意してください。
-
-
VPN
接続の編集が終了したら、 ボタンをクリックして設定をカスタマイズするか、 ボタンをクリックして、既存の接続に保存します。 -
プロファイルを
ON
に切り替え、VPN
接続をアクティブにします。
関連情報
-
対応している
Libreswan
パラメーターの詳細は、man ページのnm-settings-libreswan(5)
を参照してください。
14.2. nm-connection-editor による VPN 接続の設定
この手順では、nm-connection-editor
を使用して VPN 接続を設定する方法を説明します。
前提条件
-
NetworkManager-libreswan-gnome
パッケージがインストールされている。 インターネット鍵交換バージョン 2 (IKEv2) 接続を設定する場合は、以下のようになります。
- 証明書が、IPsec ネットワークセキュリティーサービス (NSS) データベースにインポートされている。
- NSS データベースの証明書のニックネームが知られている。
手順
端末を開き、次のコマンドを入力します。
$ nm-connection-editor
- ボタンをクリックして、新しい接続を追加します。
-
IPsec ベースの VPN
接続タイプを選択し、 をクリックします。 VPN
タブで、以下を行います。Gateway
フィールドに VPN ゲートウェイのホスト名または IP アドレスを入力し、認証タイプを選択します。認証タイプに応じて、異なる追加情報を入力する必要があります。-
IKEv2 (Certifiate)
は、証明書を使用してクライアントを認証します。これは、より安全です。この設定には、IPsec NSS データベースの証明書のニックネームが必要です。 IKEv1 (XAUTH)
は、ユーザー名とパスワード (事前共有鍵) を使用してユーザーを認証します。この設定は、以下の値を入力する必要があります。- ユーザー名
- Password
- グループ名
- シークレット
-
リモートサーバーが IKE 交換のローカル識別子を指定する場合は、
Remote ID
フィールドに正確な文字列を入力します。リモートサーバーで Libreswan を実行すると、この値はサーバーのleftid
パラメーターに設定されます。必要に応じて、
ボタンをクリックして、追加設定を設定します。以下の設定を構成できます。識別
-
ドメイン
- 必要な場合は、ドメイン名を入力します。
-
Security
-
Phase1 アルゴリズム
は、Libreswan パラメーターike
に対応します。暗号化チャンネルの認証および設定に使用するアルゴリズムを入力します。 Phase2 アルゴリズム
は、Libreswan パラメーターesp
に対応します。IPsec
ネゴシエーションに使用するアルゴリズムを入力します。Disable PFS
フィールドで PFS (Perfect Forward Secrecy) を無効にし、PFS に対応していない古いサーバーとの互換性があることを確認します。-
Phase1 ライフタイム
は、Libreswan パラメーターikelifetime
に対応します。このパラメーターは、トラフィックの暗号化に使用される鍵が有効である期間を定義します。 -
Phase2 ライフタイム
は、Libreswan パラメーターsalifetime
に対応します。このパラメーターは、セキュリティー関連が有効である期間を定義します。
-
接続性
リモートネットワーク
は、Libreswan パラメーターrightsubnet
に対応し、VPN から到達できる宛先のプライベートリモートネットワークです。絞り込むことのできる
narrowing
フィールドを確認します。これは IKEv2 ネゴシエーションの場合にのみ有効であることに注意してください。-
フラグメンテーションの有効化
は、Libreswan パラメーターの断片化
に対応します。IKE 断片化を許可するかどうかを指定します。有効な値は、yes
(デフォルト) またはno
です。 -
Mobike の有効化
は、Libreswan パラメーターmobike
に対応します。パラメーターは、最初から接続を再起動しなくても、接続がエンドポイントを移行するようにするため、MOBIKE (Mobility and Multihoming Protocol) (RFC 4555) を許可するかどうかを定義します。これは、有線、無線、またはモバイルデータの接続の切り替えを行うモバイルデバイスで使用されます。値は、no
(デフォルト) またはyes
です。
IPv4 設定
タブで、IP 割り当て方法を選択し、必要に応じて、追加の静的アドレス、DNS サーバー、検索ドメイン、ルートを設定します。- 接続を読み込みます。
-
nm-connection-editor
を閉じます。
NetworkManager により、その接続用の新しい設定が作成され、既存の接続の編集に使用するのと同じダイアログが表示されます。このダイアログの違いは、既存の接続プロファイルに Details メニューエントリーがあることです。
ボタンをクリックして新しい接続を追加する場合は、関連情報
-
対応している IPsec パラメーターの詳細は、man ページの
nm-settings-libreswan(5)
を参照してください。
第15章 IP トンネルの設定
VPN と同様に、IP トンネルは、インターネットなどの 3 つ目のネットワーク上で 2 つのネットワークを直接接続します。ただし、すべてのトンネルプロトコルが暗号化に対応しているわけではありません。
トンネルを確立する両方のネットワークのルーターには、最低でも 2 つのインターフェースが必要です。
- ローカルネットワークに接続されているインターフェース 1 つ
- トンネルが確立されたネットワークに接続されたインターフェース 1 つ。
トンネルを確立するには、リモートサブネットから IP アドレスを使用して、両方のルーターに仮想インターフェースを作成します。
NetworkManager は、以下の IP トンネルに対応します。
- GRE (Generic Routing Encapsulation)
- IP6GRE (Generic Routing Encapsulation over IPv6)
- GRETAP (Generic Routing Encapsulation Terminal Access Point)
- IP6GRETAP (Generic Routing Encapsulation Terminal Access Point over IPv6)
- IPIP (IPv4 over IPv4)
- IPIP6 (IPv4 over IPv6)
- IP6IP6 (IPv6 over IPv6)
- SIT (Simple Internet Transition)
このトンネルは、タイプに応じて、OSI (Open Systems Interconnection) モデルのレイヤー 2 または 3 で動作します。
15.1. nmcli を使用して IPIP トンネルを設定して、IPv4 パケットの IPv4 トラフィックをカプセル化します。
IPIP (IP over IP) トンネルは OSI レイヤー 3 で動作し、RFC 2003 で説明されているように IPv4 パケットの IPv4 トラフィックをカプセル化します。
IPIP トンネルを介して送信されるデータは暗号化されません。セキュリティー上の理由から、すでに暗号化されたデータにはトンネルを使用してください (HTTPS などの他のプロトコル)。
IPIP トンネルはユニキャストパケットのみをサポートすることに注意してください。マルチキャストをサポートする IPv4 トンネルが必要な場合は、「nmcli を使用して GRE トンネルを設定して、IPv4 パケット内のレイヤー 3 トラフィックをカプセル化」 を参照してください。
この手順では、以下の図に示すように、2 つの RHEL ルーター間で IPIP トンネルを作成し、インターネット経由で 2 つの内部サブネットに接続する方法を説明します。

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

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

gretap0
デバイス名が予約されています。デバイスに gretap1
または別の名前を使用します。
前提条件
- 各 RHEL ルーターには、ローカルネットワークに接続されたネットワークインターフェースがあり、IP 設定は割り当てられません。
- 各 RHEL ルーターには、インターネットに接続しているネットワークインターフェースがあります。
手順
ネットワーク A の RHEL ルーターで、次のコマンドを実行します。
bridge0
という名前のブリッジインターフェースを作成します。#
nmcli connection add type bridge con-name bridge0 ifname bridge0
ブリッジの IP 設定を構成します。
#
nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24'
#nmcli connection modify bridge0 ipv4.method manual
ローカルネットワークに接続されたインターフェース用の新しい接続プロファイルをブリッジに追加します。
#
nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0
GRETAP トンネルインターフェースの新しい接続プロファイルをブリッジに追加します。
#
nmcli connection add type ip-tunnel ip-tunnel.mode gretap slave-type bridge con-name bridge0-port2 ifname gretap1 remote 198.51.100.5 local 203.0.113.10 master bridge0
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。必要に応じて、STP (Spanning Tree Protocol)を無効にする必要がない場合は、これを無効にします。
#
nmcli connection modify bridge0 bridge.stp no
デフォルトでは、STP は有効になり、接続を使用する前に遅延が生じます。
bridge0 接続をアクティベートするように、ブリッジ
のポートが自動的にアクティブになるようにします。#
nmcli connection modify bridge0 connection.autoconnect-slaves 1
bridge0
接続をアクティブにします。#
nmcli connection up bridge0
ネットワーク B の RHEL ルーターで、次のコマンドを実行します。
bridge0
という名前のブリッジインターフェースを作成します。#
nmcli connection add type bridge con-name bridge0 ifname bridge0
ブリッジの IP 設定を構成します。
#
nmcli connection modify bridge0 ipv4.addresses '192.0.2.2/24'
#nmcli connection modify bridge0 ipv4.method manual
ローカルネットワークに接続されたインターフェース用の新しい接続プロファイルをブリッジに追加します。
#
nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0
GRETAP トンネルインターフェースの新しい接続プロファイルをブリッジに追加します。
#
nmcli connection add type ip-tunnel ip-tunnel.mode gretap slave-type bridge con-name bridge0-port2 ifname gretap1 remote 203.0.113.10 local 198.51.100.5 master bridge0
remote
パラメーターおよびlocal
パラメーターは、リモートルーターおよびローカルルーターのパブリック IP アドレスを設定します。必要に応じて、STP (Spanning Tree Protocol)を無効にする必要がない場合は、これを無効にします。
#
nmcli connection modify bridge0 bridge.stp no
bridge0 接続をアクティベートするように、ブリッジ
のポートが自動的にアクティブになるようにします。#
nmcli connection modify bridge0 connection.autoconnect-slaves 1
bridge0
接続をアクティブにします。#
nmcli connection up bridge0
検証手順
両方のルーターで、
enp1s0 接続および
接続が接続され、gretap
1CONNECTION
コラムにポートの接続名が表示されることを確認します。#
nmcli device
nmcli device DEVICE TYPE STATE CONNECTION ... bridge0 bridge connected bridge0 enp1s0 ethernet connected bridge0-port1 gretap1 iptunnel connected bridge0-port2各 RHEL ルーターから、他のルーターの内部インターフェースの IP アドレスに ping します。
ルーター A で
192.0.2.2
に ping します。#
ping 192.0.2.2
ルーター B で
192.0.2.1
に ping します。#
ping 192.0.2.1
関連情報
-
nmcli
の使用に関する詳細は、man ページのnmcli
を参照してください。 -
nmcli
で設定できるトンネル設定の詳細は、man ページのnm-settings(5)
のip-tunnel settings
セクションを参照してください。
15.4. 関連情報
-
トンネルインターフェースの一覧と、
ip
ユーティリティーを使用したトンネルの一時的な設定については、man ページのip-link(8)
を参照してください。
第16章 Fibre Channel over Ethernet の設定
IEEE T11 FC-BB-5 標準に基づく Fibre Channel over Ethernet (FCoE) は、イーサネットネットワーク上でファイバーチャネルフレームを送信するためのプロトコルです。通常、データセンターには専用の LAN およびストレージエリアネットワーク (SAN) があり、各個別設定に分けられます。FCoE は、これらのネットワークを単一のネットワーク構成とコンバージドネットワーク構成に統合します。FCoE の利点 (ハードウェアおよび電力の低さなど) の利点は以下のとおりです。
16.1. RHEL でハードウェア FCoE HBA の使用
Red Hat Enterprise Linux では、以下のドライバーがサポートするハードウェアの FCoE Host Bus Adapter (HBA) を使用できます。
-
qedf
-
bnx2fc
-
fnic
このような HBA を使用する場合は、HBA の設定で FCoE を設定します。詳細は、アダプターのドキュメントを参照してください。
HBA を設定したら、ストレージエリアネットワーク (SAN) からエクスポートした論理ユニット番号 (LUN) は、RHEL が /dev/sd*
デバイスとして自動的に利用できます。ローカルストレージデバイスと同様に、これらのデバイスを使用できます。
16.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 のドキュメントを参照してください。
- HBA がネットワークに接続されており、リンクが起動している。
手順
fcoe-utils
パッケージをインストールします。#
yum install fcoe-utils
/etc/fcoe/cfg-ethx
テンプレートファイルを/etc/fcoe/cfg-interface_name
にコピーします。たとえば、FCoE を使用するようにenp1s0
インターフェースを設定する場合は、次のコマンドを実行します。#
cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-enp1s0
fcoe
サービスを有効にして起動します。#
systemctl enable --now fcoe
FCoE VLAN ID を検出し、イニシエーターを起動して、検出された VLAN のネットワークデバイスを作成します。
#
fipvlan -s -c enp1s0
Created VLAN device enp1s0.200 Starting FCoE on interface enp1s0.200 Fibre Channel Forwarders Discovered interface | VLAN | FCF MAC ------------------------------------------ enp1s0 | 200 | 00:53:00:a7:e7:1b必要に応じて、検出されたターゲット、LUN、および LUN に関連付けられたデバイスの詳細を表示するには、次のコマンドを実行します。
#
fcoeadm -t
Interface: enp1s0.200 Roles: FCP Target Node Name: 0x500a0980824acd15 Port Name: 0x500a0982824acd15 Target ID: 0 MaxFrameSize: 2048 bytes OS Device Name: rport-11:0-1 FC-ID (Port ID): 0xba00a0 State: 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 インターフェースに関する情報を表示します。#
fcoeadm -i
Description: BCM57840 NetXtreme II 10 Gigabit Ethernet Revision: 11 Manufacturer: Broadcom Inc. and subsidiaries Serial Number: 000AG703A9B7 Driver: bnx2x Unknown Number 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
ファイルを参照してください。
16.3. 関連情報
-
詳細はファイバーチャネルデバイスの使用方法は、『
ストレージデバイスの管理
』の「ファイバーチャネルデバイスの使用」を参照してください。
第17章 802.1X 標準を使用したネットワークへの RHEL クライアントの認証
管理者は、IEEE 802.1X 標準に基づいてポートベースのネットワークアクセス制御 (NAC) を使用して、承認されていない LAN および Wi-Fi クライアントからネットワークを保護します。本セクションの手順では、ネットワーク認証を設定するさまざまなオプションを説明します。
17.1. nmcli を使用して、既存のイーサネット接続での 802.1X ネットワーク認証の設定
nmcli
ユーティリティーを使用して、クライアントがネットワークに対して自己認証するように設定できます。この手順では、enp1s0
という名前の既存の NetworkManager イーサネット接続プロファイルで、MSCHAPv2 (Microsoft Challenge-Handshake Authentication Protocol version 2) を使用する PEAP (Protected Extensible Authentication Protocol) 認証を設定する方法を説明します。
前提条件
- ネットワークには 802.1X ネットワーク認証が必要です。
- イーサネット接続プロファイルが NetworkManager に存在し、有効な IP 設定があります。
-
クライアントがオーセンティケーターの証明書を検証する必要がある場合は、認証局 (CA) 証明書を
/etc/pki/ca-trust/source/anchors/
ディレクトリーに保存する必要があります。 -
wpa_supplicant
パッケージがインストールされている。
手順
Extensible Authentication Protocol (EAP) を
peap
に設定し、内部認証プロトコルをmschapv2
に設定し、ユーザー名を設定します。#
nmcli connection modify enp1s0
802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name1 つのコマンドで
802-1x.eap
パラメーター、802-1x.phase2-auth
パラメーター、および802-1x.identity
パラメーターを設定する必要があります。必要に応じて、パスワードを設定に保存します。
#
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 によりパスワードの入力が求められます。クライアントがオーセンティケーターの証明書を検証する必要がある場合は、接続プロファイルの
802-1x.ca-cert
パラメーターを CA 証明書のパスに設定します。#
nmcli connection modify enp1s0
802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt注記セキュリティー上の理由から、Red Hat はオーセンティケーターの証明書を使用して、クライアントがオーセンティケーターの ID を検証できるようにすることを推奨します。
接続プロファイルをアクティベートします。
#
nmcli connection up enp1s0
検証手順
- ネットワーク認証が必要なネットワーク上のリソースにアクセスします。
関連情報
- NetworkManager イーサネット接続プロファイルを追加する方法は、8章イーサネット接続の設定 を参照してください。
-
これ以降の 802.1X 関連のパラメーターと説明は、man ページの
nm-settings(5)
の802-1x settings
セクションを参照してください。 -
nmcli
ユーティリティーの詳細は、nmcli(1)
の man ページを参照してください。
17.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 コントロールノードで以下の手順を実行します。
前提条件
-
ansible
パッケージおよびrhel-system-roles
パッケージがコントロールノードにインストールされている。 -
Playbook の実行時に
root
以外のリモートユーザーを使用する場合は、管理ノードで適切なsudo
パーミッションが必要。 - ネットワークは 802.1X ネットワーク認証をサポートしている。
- 管理ノードは NetworkManager を使用している。
TLS 認証に必要な以下のファイルがコントロールノードにある。
-
/srv/data/client.key
ファイルに保存されているクライアントキー。 -
/srv/data/client.crt
ファイルに保存されているクライアント証明書。 -
/srv/data/ca.crt
ファイルに保存されている認証局 (CA) の証明書。
-
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/enable-802.1x.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with 802.1X authentication hosts: node.example.com become: true tasks: - name: Copy client key for 802.1X authentication copy: src: "/srv/data/client.key" dest: "/etc/pki/tls/private/client.key" mode: 0600 - name: Copy client certificate for 802.1X authentication copy: src: "/srv/data/client.crt" dest: "/etc/pki/tls/certs/client.crt" - name: Copy CA certificate for 802.1X authentication copy: src: "/srv/data/ca.crt" dest: "/etc/pki/ca-trust/source/anchors/ca.crt" - include_role: name: linux-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com ieee802_1x: identity: user_name eap: tls private_key: "/etc/pki/tls/private/client.key" private_key_password: "password" client_cert: "/etc/pki/tls/certs/client.crt" ca_cert: "/etc/pki/ca-trust/source/anchors/ca.crt" domain_suffix_match: example.com state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。#
ansible-playbook -u root ~/enable-802.1x.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
#
ansible-playbook -u user_name
--ask-become-pass ~/ethernet-static-IP.yml--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
関連情報
-
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)
を参照してください。
17.3. nmcli を使用した、既存の Wi-Fi 接続での 802.1X ネットワーク認証の設定
nmcli
ユーティリティーを使用して、クライアントがネットワークに対して自己認証するように設定できます。この手順では、wlp1s0
という名前の既存の NetworkManager Wi-Fi 接続プロファイルで、MSCHAPv2 (Microsoft Challenge-Handshake Authentication Protocol version 2) を使用する PEAP (Protected Extensible Authentication Protocol) 認証を設定する方法を説明します。
前提条件
- ネットワークには 802.1X ネットワーク認証が必要です。
- Wi-Fi 接続プロファイルが NetworkManager に存在し、有効な IP 設定があります。
-
クライアントがオーセンティケーターの証明書を検証する必要がある場合は、認証局 (CA) 証明書を
/etc/pki/ca-trust/source/anchors/
ディレクトリーに保存する必要があります。 -
wpa_supplicant
パッケージがインストールされている。
手順
Wi-Fi セキュリティーモードを
wpa-eap
に設定し、Extensible Authentication Protocol (EAP) をpeap
に設定し、内部認証プロトコルをmschapv2
に設定し、ユーザー名を設定します。#
nmcli connection modify wpl1s0
802-11-wireless-security.key-mgmt wpa-eap 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name1 つのコマンドで
802-11-wireless-security.key-mgmt
パラメーター、802-1x.eap
パラメーター、802-1x.phase2-auth
パラメーター、および802-1x.identity
パラメーターを設定する必要があります。必要に応じて、パスワードを設定に保存します。
#
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 によりパスワードの入力が求められます。クライアントがオーセンティケーターの証明書を検証する必要がある場合は、接続プロファイルの
802-1x.ca-cert
パラメーターを CA 証明書のパスに設定します。#
nmcli connection modify wpl1s0
802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt注記セキュリティー上の理由から、Red Hat はオーセンティケーターの証明書を使用して、クライアントがオーセンティケーターの ID を検証できるようにすることを推奨します。
接続プロファイルをアクティベートします。
#
nmcli connection up wpl1s0
検証手順
- ネットワーク認証が必要なネットワーク上のリソースにアクセスします。
関連情報
- NetworkManager イーサネット接続プロファイルを追加する方法は、9章Wi-Fi 接続の管理 を参照してください。
-
これ以降の 802.1X 関連のパラメーターと説明は、man ページの
nm-settings(5)
の802-1x settings
セクションを参照してください。 -
nmcli
ユーティリティーの詳細は、nmcli(1)
の man ページを参照してください。
第18章 デフォルトのゲートウェイ設定の管理
デフォルトゲートウェイは、他のルートがパケットの宛先と一致する場合にネットワークパケットを転送するルーターです。ローカルネットワークでは、通常、デフォルトゲートウェイは、インターネットの近くの 1 ホップのホストです。
18.1. nmcli を使用して、既存の接続でデフォルトのゲートウェイを設定
ほとんどの場合、管理者は、「nmcli を使用した静的イーサネット接続の設定」 などの説明に従って接続を作成する場合のデフォルトのゲートウェイを設定します。
本セクションでは、nmcli
ユーティリティーを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、
root
権限が必要になります。
手順
デフォルトゲートウェイの IP アドレスを設定します。
たとえば、
example
接続のデフォルトゲートウェイの IPv4 アドレスを192.0.2.1
に設定するには、次のコマンドを実行します。$
sudo nmcli connection modify example
ipv4.gateway "192.0.2.1"たとえば、
example
接続のデフォルトゲートウェイの IPv6 アドレスを2001:db8:1::1
に設定するには、次のコマンドを実行します。$
sudo nmcli connection modify example
ipv6.gateway "2001:db8:1::1"ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで
example
接続を再起動するには、次のコマンドを実行します。$
sudo nmcli connection up example
警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
18.2. nmcli インタラクティブモードを使用して、既存の接続でデフォルトゲートウェイを設定
ほとんどの場合、管理者は、「nmcli インタラクティブエディターで動的イーサネット接続の設定」 などの説明に従って接続を作成する場合のデフォルトのゲートウェイを設定します。
本セクションでは、nmcli
ユーティリティーのインタラクティブモードを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、
root
権限が必要になります。
手順
必要な接続に対して
nmcli
インタラクティブモードを開きます。たとえば、example 接続のnmcli
インタラクティブモードを開くには、次のコマンドを実行します。$
sudo nmcli connection edit example
デフォルトのゲートウェイを設定します。
たとえば、
example
接続のデフォルトゲートウェイの IPv4 アドレスを192.0.2.1
に設定するには、次のコマンドを実行します。nmcli>
set ipv4.gateway 192.0.2.1
たとえば、
example
接続のデフォルトゲートウェイの IPv6 アドレスを2001:db8:1::1
に設定するには、次のコマンドを実行します。nmcli>
set ipv6.gateway 2001:db8:1::1
必要に応じて、デフォルトゲートウェイが正しく設定されていることを確認します。
nmcli>
print
... ipv4.gateway: 192.0.2.1 ... ipv6.gateway: 2001:db8:1::1 ...設定を保存します。
nmcli>
save persistent
ネットワーク接続を再起動して、変更を有効にします。
nmcli>
activate example
警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
nmcli
インタラクティブモードを終了します。nmcli>
quit
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
18.3. using nm-connection-editor で、既存の接続にデフォルトのゲートウェイを設定
ほとんどの場合、管理者は、接続を作成する場合のデフォルトのゲートウェイを設定します。本セクションでは、nm-connection-editor
アプリケーションを使用して作成しておいた接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
- 変更する接続を選択し、歯車のアイコンをクリックして、既存の接続を編集します。
IPv4 デフォルトゲートウェイを設定します。たとえば、その接続のデフォルトゲートウェイの IPv4 アドレスを
192.0.2.1
に設定します。-
IPv4 Settings
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
IPv6 デフォルトゲートウェイを設定します。たとえば、接続のデフォルトゲートウェイの IPv6 アドレスを
2001:db8:1::1
に設定するには、以下を行います。-
IPv6
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
- をクリックします。
- をクリックします。
ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで
example
接続を再起動するには、次のコマンドを実行します。$
sudo nmcli connection up example
警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
18.4. control-center を使用して、既存の接続でフォルトのゲートウェイを設定
ほとんどの場合、管理者は、接続を作成する場合のデフォルトのゲートウェイを設定します。本セクションでは、control-center
アプリケーションを使用して作成した接続で、デフォルトのゲートウェイを設定または更新する方法を説明します。
前提条件
- デフォルトゲートウェイが設定されている接続で、静的 IP アドレスを少なくとも 1 つ設定している。
-
control-center
アプリケーションで、接続のネットワーク設定を開いている。
手順
IPv4 デフォルトゲートウェイを設定します。たとえば、その接続のデフォルトゲートウェイの IPv4 アドレスを
192.0.2.1
に設定します。-
IPv4
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
IPv6 デフォルトゲートウェイを設定します。たとえば、接続のデフォルトゲートウェイの IPv6 アドレスを
2001:db8:1::1
に設定するには、以下を行います。-
IPv6
タブを開きます。 そのゲートウェイのアドレスが含まれる IP アドレスの範囲の隣の
gateway
フィールドにアドレスを入力します。
-
- をクリックします。
Network
ウィンドウに戻り、接続のボタンを に切り替えてから に戻して、接続を無効にして再度有効にし、変更を適用します。警告このネットワーク接続を現在使用しているすべての接続が、再起動時に一時的に中断されます。
必要に応じて、ルートがアクティブであることを確認します。
IPv4 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -4 route
default via 192.0.2.1 dev example proto static metric 100IPv6 デフォルトゲートウェイを表示するには、次のコマンドを実行します。
$
ip -6 route
default via 2001:db8:1::1 dev example proto static metric 100 pref medium
18.5. システムロールを使用して、既存の接続でデフォルトのゲートウェイを設定
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
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/ethernet-connection.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with static IP and default gateway hosts: node.example.com become: true tasks: - include_role: name: 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
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
に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルを参照してください。 -
ansible-playbook
コマンドの詳細は、man ページのansible-playbook(1)
を参照してください。
18.6. レガシーネットワークスクリプトの使用時に、既存の接続でデフォルトゲートウェイの設定
この手順では、従来のネットワークスクリプトを使用する際にデフォルトのゲートウェイを設定する方法を説明します。この例では、デフォルトのゲートウェイを、enp1s0
インターフェースから到達可能な 192.0.2.1
に設定します。
前提条件
-
NetworkManager
パッケージがインストールされていないか、NetworkManager
サービスが無効になります。 -
network-scripts
パッケージがインストールされている。
手順
/etc/sysconfig/network-scripts/ifcfg-enp1s0
ファイルのGATEWAY
パラメーターを192.0.2.1
に設定します。GATEWAY=192.0.2.1
/etc/sysconfig/network-scripts/route-enp0s1
ファイルにデフォルト
エントリーを追加します。default via 192.0.2.1
ネットワーク接続が再起動します。
# systemctl restart network
18.7. NetworkManager が複数のデフォルトゲートウェイを管理する方法
フォールバック上の理由で特定の状況では、ホストに複数のデフォルトゲートウェイを設定します。ただし、非同期ルーティングの問題を回避するために、同じプロトコルの各デフォルトゲートウェイには別のメトリクス値が必要です。RHEL は、最も低いメトリックセットを持つデフォルトゲートウェイへの接続のみを使用することに注意してください。
以下のコマンドを使用して、接続の IPv4 ゲートウェイと IPv6 ゲートウェイの両方にメトリクスを設定できます。
# nmcli connection modify connection-name
ipv4.route-metric value ipv6.route-metric value
ルーティングの問題を回避するために、複数の接続プロファイルで同じプロトコルに同じメトリック値を設定しないでください。
メトリック値なしでデフォルトのゲートウェイを設定すると、NetworkManager は、インターフェースタイプに基づいてメトリック値を自動的に設定します。このため、NetworkManager は、アクティブな最初の接続に、このネットワークタイプのデフォルト値を割り当て、そのネットワークタイプがアクティベートされる順序で、同じタイプの他の接続にインクリメントした値を設定します。たとえば、デフォルトゲートウェイを持つ 2 つのイーサネット接続が存在する場合、NetworkManager は、ルートに 100
のメトリックを、最初にアクティブにしている接続のデフォルトゲートウェイに設定します。2 つ目の接続では、NetworkManager は 101
を設定します。
以下は、よく使用されるネットワークタイプと、そのデフォルトのメトリックの概要です。
connection.type | デフォルトのメトリクス値 |
---|---|
VPN | 50 |
イーサネット | 100 |
MACsec | 125 |
Infiniband | 150 |
bond= | 300 |
team= | 350 |
VLAN | 400 |
ブリッジ | 425 |
TUN | 450 |
Wi-Fi | 600 |
IP トンネル | 675 |
関連情報
- ポリシーベースのルーティングの詳細は、20章代替ルートを定義するポリシーベースのルーティングの構成 を参照してください。
- Multipath TCP の詳細は、25章Multipath TCP の使用 を参照してください。
18.8. 特定のプロファイルでのデフォルトゲートウェイの指定を防ぐための NetworkManager の設定
NetworkManager が特定のプロファイルを使用してデフォルトゲートウェイを指定しないようにすることができます。デフォルトゲートウェイに接続されていない接続プロファイルには、以下の手順に従います。
前提条件
- デフォルトゲートウェイに接続されていない接続の NetworkManager 接続プロファイルが存在する。
手順
接続で動的 IP 設定を使用する場合は、NetworkManager が、IPv4 および IPv6 接続のデフォルトルートとして接続を使用しないように設定します。
#
nmcli connection modify connection_name
ipv4.never-default yes ipv6.never-default yesipv4.never-default
およびipv6.never-default
をyes
に設定すると、対応するプロトコルのデフォルトのゲートウェイ IP アドレスが、接続プロファイルから削除されることに注意してください。接続をアクティベートします。
#
nmcli connection up connection_name
検証手順
-
ip -4 route
コマンドおよびip -6 route
コマンドを使用して、RHEL が、IPv4 プロトコルおよび IPv6 プロトコルのデフォルトルートにネットワークインターフェースを使用しないことを確認します。
18.9. 複数のデフォルトゲートウェイによる予期しないルーティング動作の修正
マルチパス TCP を使用する場合など、ホストで複数のデフォルトゲートウェイが必要なシナリオはそれほどありません。多くの場合、ルーティングの動作や非同期ルーティングの問題を回避するために、1 つのデフォルトゲートウェイのみを設定します。
異なるインターネットプロバイダーにトラフィックをルーティングするには、複数のデフォルトゲートウェイの代わりにポリシーベースのルーティングを使用します。
前提条件
- ホストは NetworkManager を使用してネットワーク接続を管理します。これはデフォルトです。
- ホストには複数のネットワークインターフェースがある。
- ホストには複数のデフォルトゲートウェイが設定されている。
手順
ルーティングテーブルを表示します。
IPv4 の場合は、次のコマンドを実行します。
#
ip -4 route
default via 192.0.2.1 dev enp1s0 proto static metric 101 default via 198.51.100.1 dev enp7s0 proto static metric 102 ...IPv6 の場合は、次のコマンドを実行します。
#
ip -6 route
default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium default via 2001:db8:2::1 dev enp7s0 proto static metric 102 pref medium ...
default
で開始するエントリーはデフォルトのルートを示します。dev
の横に表示されるこれらのエントリーのインターフェース名を書き留めます。以下のコマンドを使用して、前の手順で特定したインターフェースを使用する NetworkManager 接続を表示します。
#
nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp1s0
GENERAL.CONNECTION: Corporate-LAN IP4.GATEWAY: 192.168.122.1 IP6.GATEWAY: 2001:db8:1::1 #nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp7s0
GENERAL.CONNECTION: Internet-Provider IP4.GATEWAY: 198.51.100.1 IP6.GATEWAY: 2001:db8:2::1この例では、
Corporate-LAN
とInternet-Provider
という名前のプロファイルにはデフォルトのゲートウェイが設定されています。これは、ローカルネットワークでは、通常、インターネット 1 ホップ近いホストがデフォルトゲートウェイであるため、この手順の残りの部分では、Corporate-LAN
のデフォルトゲートウェイが正しくないことを想定するためです。NetworkManager が、IPv4 および IPv6 接続のデフォルトルートとして
Corporate-LAN
接続を使用しないように設定します。#
nmcli connection modify Corporate-LAN ipv4.never-default yes ipv6.never-default yes
ipv4.never-default
およびipv6.never-default
をyes
に設定すると、対応するプロトコルのデフォルトのゲートウェイ IP アドレスが、接続プロファイルから削除されることに注意してください。Corporate-LAN
接続をアクティブにします。#
nmcli connection up Corporate-LAN
検証手順
IPv4 および IPv6 ルーティングテーブルを表示し、プロトコルごとに 1 つのデフォルトゲートウェイのみが利用可能であることを確認します。
IPv4 の場合は、次のコマンドを実行します。
#
ip -4 route
default via 192.0.2.1 dev enp1s0 proto static metric 101 ...IPv6 の場合は、次のコマンドを実行します。
#
ip -6 route
default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium ...
関連情報
- ポリシーベースのルーティングの詳細は、20章代替ルートを定義するポリシーベースのルーティングの構成 を参照してください。
- Multipath TCP の詳細は、25章Multipath TCP の使用 を参照してください。
第19章 静的ルートの設定
デフォルトでは、デフォルトゲートウェイが設定されていると、Red Hat Enterprise Linux は、ホストに直接接続されていないネットワークのトラフィックをデフォルトゲートウェイに転送します。静的ルートを使用して、Red Hat Enterprise Linux が特定のホストまたはネットワークのトラフィックをデフォルトゲートウェイとは別のルーターに転送するように設定できます。本セクションでは、静的ルートを設定するさまざまなオプションを説明します。
19.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 "…" を使用して、特定の
ルートを削除できます。
19.2. nmcli コマンドによる静的ルートの設定
nmcli connection modify
コマンドを使用して、ネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。これは、example
接続から到達可能です。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、コマンドに
root
権限が必要になります。
手順
静的ルートを
example
接続に追加します。$
sudo nmcli connection modify example
+ipv4.routes "192.0.2.0/24 198.51.100.1"1 回で複数のルートを設定するには、個々のルートをコンマで区切ってコマンドに渡す必要があります。たとえば、ルートを
192.0.2.0/24
および203.0.113.0/24
のネットワークに追加して、両方のルートが198.51.100.1
ゲートウェイを通るには、以下のコマンドを実行します。$
sudo nmcli connection modify example
+ipv4.routes "192.0.2.0/24 198.51.100.1, 203.0.113.0/24 198.51.100.1"必要に応じて、ルートが設定に正しく追加されたことを確認します。
$
nmcli connection show example
... ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 } ...ネットワーク接続が再起動します。
$
sudo nmcli connection up example
警告接続を再起動すると、そのインターフェースの接続が一時的に中断します。
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
関連情報
-
nmcli
の詳細は、man ページのnmcli(1)
を参照してください。
19.3. control-center による静的ルートの設定
GNOME で control-center
を使用して、ネットワーク接続の設定に静的ルートを追加します。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
control-center
アプリケーションで接続のネットワーク設定が開いている。Bug 1891591 を参照してください。「nm-connection-editor を使用したイーサネット接続の設定」
手順
-
IPv4
タブを開きます。 -
必要に応じて、
IPv4
タブのRoutes
セクションの ボタンをクリックして自動ルートを無効にし、静的ルートのみを使用します。自動ルートが有効になっている場合は、Red Hat Enterprise Linux が静的ルートと、DHCP サーバーから受け取ったルートを使用します。 アドレス、ネットマスク、ゲートウェイを入力します。必要に応じて、メトリック値を入力します。
- をクリックします。
Network
ウィンドウに戻り、接続のボタンを に切り替えてから に戻して、接続を無効にして再度有効にし、変更を適用します。警告接続を再起動すると、そのインターフェースの接続が一時的に中断します。
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
19.4. nm-connection-editor による静的ルートの設定
nm-connection-editor
アプリケーションを使用して、ネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。これは、example
接続から到達可能です。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
手順
端末を開き、
nm-connection-editor
と入力します。$
nm-connection-editor
-
example
接続を選択し、歯車アイコンをクリックして、既存の接続を変更します。 -
IPv4
タブを開きます。 - ボタンをクリックします。
- をクリックします。
- をクリックします。
ネットワーク接続を再起動して、変更を有効にします。たとえば、コマンドラインで
example
接続を再起動するには、次のコマンドを実行します。$
sudo nmcli connection up example
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
19.5. nmcli インタラクティブモードで静的ルートの設定
nmcli
ユーティリティーのインタラクティブモードを使用して、ネットワーク接続の設定に静的ルートを追加できます。
本セクションの手順では、198.51.100.1
で実行しているゲートウェイを使用する 192.0.2.0/24
ネットワークにルートを追加する方法を説明します。これは、example
接続から到達可能です。
前提条件
- ネットワークが設定されている。
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
物理コンソールにログインしている場合は、十分な権限を有している。それ以外の場合は、コマンドに
root
権限が必要になります。
手順
example
接続のnmcli
インタラクティブモードを開きます。$
sudo nmcli connection edit example
静的ルートを追加します。
nmcli>
set ipv4.routes 192.0.2.0/24 198.51.100.1
必要に応じて、ルートが設定に正しく追加されたことを確認します。
nmcli>
print
... ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 } ...ip
属性には、転送するネットワークと、ゲートウェイのnh
属性 (次のホップ) が表示されます。設定を保存します。
nmcli>
save persistent
ネットワーク接続が再起動します。
nmcli>
activate example
警告接続を再起動すると、この接続を現在使用している接続がすべて一時的に中断されます。
nmcli
インタラクティブモードを終了します。nmcli>
quit
必要に応じて、ルートがアクティブであることを確認します。
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
関連情報
-
インタラクティブモードで使用できるコマンドの一覧は、インタラクティブシェルに
help
と入力します。
19.6. RHEL システムロールを使用した静的ルートの設定
networking
の RHEL システムロールを使用して、静的ルートを設定できます。
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
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/add-static-routes.yml
Playbook を以下の内容で作成します。--- - name: Configure an Ethernet connection with static IP and additional routes hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com route: - network: 192.0.2.0 prefix: 24 gateway: 198.51.100.1 - network: 203.0.113.0 prefix: 24 gateway: 198.51.100.2 state: up
Playbook を実行します。
root
ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。#
ansible-playbook -u root ~/add-static-routes.yml
管理ホストにユーザーとして接続するには、次のコマンドを実行します。
#
ansible-playbook -u user_name
--ask-become-pass ~/add-static-routes.yml--ask-become-pass
オプションは、ansible-playbook
コマンドが-u user_name
オプションで定義したユーザーのsudo
パスワードを要求するようにします。
-u user_name
オプションを指定しないと、ansible-playbook
は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。
検証手順
ルーティングテーブルを表示します。
#
ip -4 route
default via 198.51.100.254 dev enp7s0 proto static metric 100 192.0.2.0/24 via 198.51.100.1 dev enp7s0 proto static metric 100 203.0.113.0/24 via 198.51.100.2 dev enp7s0 proto static metric 100 ...
関連情報
-
network_connections
で使用されるパラメーターの詳細と、システムロールnetwork
に関する追加情報は、/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイルを参照してください。 -
ansible-playbook
コマンドの詳細は、man ページのansible-playbook(1)
を参照してください。
19.7. レガシーネットワークスクリプトの使用時に 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 を使用します。Bug 1891591 を参照してください。「従来のネットワークスクリプトの使用時に、ip-command-format で静的ルート設定ファイルを作成」
前提条件
- 静的ルートのゲートウェイが、インターフェースで直接到達できる。
-
NetworkManager
パッケージがインストールされていないか、NetworkManager
サービスが無効になります。 -
network-scripts
パッケージがインストールされている。
手順
静的 IPv4 ルートを
/etc/sysconfig/network-scripts/route-enp0s1
ファイルに追加します。ADDRESS0=192.0.2.0 NETMASK0=255.255.255.0 GATEWAY0=198.51.100.1
-
ADDRESS0
変数は、最初のルーティングエントリーのネットワークを定義します。 -
NETMASK0
変数は、最初のルーティングエントリーのネットマスクを定義します。 GATEWAY0
変数は、最初のルーティングエントリーのリモートネットワークまたはホストへのゲートウェイの IP アドレスを定義します。複数の静的ルートを追加する場合は、変数名の数を増やします。各ルートの変数は順番に番号付けされる必要があることに注意してください。たとえば、
ADDRESS0
、ADDRESS1
、ADDRESS3
などです。
-
ネットワーク接続が再起動します。
# systemctl restart network
関連情報
-
従来のネットワークスクリプトの設定の詳細は、
/usr/share/doc/network-scripts/sysconfig.txt
ファイルを参照してください。
19.8. 従来のネットワークスクリプトの使用時に、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
パッケージがインストールされている。
手順
静的 IPv4 ルートを
/etc/sysconfig/network-scripts/route-enp0s1
ファイルに追加します。192.0.2.0/24 via 198.51.100.1 dev enp0s1
静的 IPv6 ルートを
/etc/sysconfig/network-scripts/route6-enp0s1
ファイルに追加します。2001:db8:1::/64 via 2001:db8:2::1 dev enp0s1
ネットワーク接続が再起動します。
# systemctl restart network
関連資料
-
従来のネットワークスクリプトの設定の詳細は、
/usr/share/doc/network-scripts/sysconfig.txt
ファイルを参照してください。
第20章 代替ルートを定義するポリシーベースのルーティングの構成
デフォルトでは、RHEL のカーネルは、ルーティングテーブルを使用して宛先アドレスに基づいてネットワークパケットを転送する場所を決定します。ポリシーベースのルーティングにより、複雑なルーティングシナリオを構成できます。たとえば、送信元アドレス、パケットメタデータ、プロトコルなどのさまざまな基準に基づいてパケットをルーティングできます。
本セクションでは、NetworkManager を使用してポリシーベースのルーティングを設定する方法を説明します。
NetworkManager を使用するシステムでは、nmcli
ユーティリティーのみがルーティングルールの設定と、特定のテーブルへのルートの割り当てをサポートします。
20.1. NetworkManager を使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング
本セクションでは、デフォルトで、デフォルトルートを使用して、すべてのトラフィックをインターネットプロバイダー A にルーティングするルーターとして RHEL を構成する方法を説明します。RHEL は、ポリシーベースのルーティングを使用して、内部ワークステーションのサブネットから受信したトラフィックをプロバイダー B にルーティングします。
この手順では、次のネットワークトポロジを想定しています。
前提条件
-
システムは
NetworkManager
を使用してネットワークを構成します。これはRHEL 8のデフォルトです。 この手順で設定する RHEL ルーターには、4 つのネットワークインターフェイスがあります。
-
enp7s0
インターフェースはプロバイダー A のネットワークに接続されています。プロバイダーのネットワークのゲートウェイ IP は198.51.100.2
で、ネットワークは/30
ネットワークマスクを使用します。 -
enp1s0
インターフェースはプロバイダー B のネットワークに接続されています。プロバイダーのネットワークのゲートウェイ IP は192.0.2.2
で、ネットワークはネットワークマスク/30
を使用します。 -
enp8s0
インターフェースは、内部ワークステーションで10.0.0.0/24
サブネットに接続されています。 -
enp9s0
インターフェースは、会社のサーバーを使用して203.0.113.0/24
サブネットに接続されています。
-
-
内部ワークステーションのサブネット内のホストは、デフォルトゲートウェイとして
10.0.0.1
を使用します。この手順では、この IP アドレスをルーターのenp8s0
ネットワークインターフェースに割り当てます。 -
サーバーサブネット内のホストは、デフォルトゲートウェイとして
203.0.113.1
を使用します。この手順では、この IP アドレスを、ルーターのenp9s0
ネットワークインターフェースに割り当てます。 -
デフォルトでは、
firewalld
サービスは有効でアクティブになっています。
手順
プロバイダー A へのネットワークインターフェースを構成します。
#
nmcli connection add type ethernet con-name Provider-A ifname enp7s0 ipv4.method manual ipv4.addresses 198.51.100.1/30 ipv4.gateway 198.51.100.2 ipv4.dns 198.51.100.200 connection.zone external
nmcli connection add
コマンドは、NetworkManager 接続プロファイルを作成します。次の一覧では、コマンドのオプションを説明します。-
type
ethernet
- 接続タイプがイーサネットであることを定義します。 -
con-name
connection_name
- プロファイルの名前を設定します。混乱を避けるために、わかりやすい名前を使用してください。 -
ifname
network_device
- ネットワークインターフェースを設定します。 -
ipv4.method
manual
- 静的 IP アドレスを設定できるようにします。 -
ipv4.addresses
IP_address/subnet_mask
- IPv4 アドレスとサブネットマスクを設定します。 -
ipv4.gateway
IP_address
- デフォルトゲートウェイアドレスを設定します。 -
ipv4.dns
IP_of_DNS_server
- DNS サーバーの IPv4 アドレスを設定します。 -
connection.zone
firewalld_zone
- 定義されたfirewalld
ゾーンにネットワークインターフェースを割り当てます。firewalld
は、外部
ゾーンに割り当てられたマスカレードインターフェースを自動的に有効にすることに注意してください。
-
プロバイダー B へのネットワークインターフェースを設定します。
#
nmcli connection add type ethernet con-name Provider-B ifname enp1s0 ipv4.method manual ipv4.addresses 192.0.2.1/30 ipv4.routes "0.0.0.0/0 192.0.2.2 table=5000" connection.zone external
このコマンドは、デフォルトゲートウェイを設定する
ipv4.gateway
の代わりに、ipv4.routes
パラメーターを使用します。これは、この接続用のデフォルトゲートウェイを、デフォルトとは異なるルーティングテーブル (5000
) に割り当てるために必要です。NetworkManager は、接続がアクティブになると、この新しいルーティングテーブルを自動的に作成します。内部ワークステーションサブネットへのネットワークインターフェースを設定します。
#
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
は常に優先度を指定する必要があります。サーバーサブネットへのネットワークインターフェースを設定します。
#
nmcli connection add type ethernet con-name Servers ifname enp9s0 ipv4.method manual ipv4.addresses 203.0.113.1/24 connection.zone internal
検証手順
内部ワークステーションサブネットの RHEL ホストで、以下を行います。
traceroute
パッケージをインストールします。#
yum install traceroute
traceroute
ユーティリティーを使用して、インターネットのホストへのルートを表示します。#
traceroute redhat.com
traceroute 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
経由でルーターがパケットを送信することが表示されます。
サーバーのサブネットの RHEL ホストで、以下を行います。
traceroute
パッケージをインストールします。#
yum install traceroute
traceroute
ユーティリティーを使用して、インターネットのホストへのルートを表示します。#
traceroute redhat.com
traceroute 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 ルーターで以下を行います。
ルールの一覧を表示します。
#
ip rule list
0: from all lookup local 5: from 10.0.0.0/24 lookup 5000 32766: from all lookup main 32767: from all lookup defaultデフォルトでは、RHEL には、
local
テーブル、main
テーブル、およびdefault
テーブルのルールが含まれます。テーブル
5000
のルートを表示します。#
ip route list table 5000
0.0.0.0/0 via 192.0.2.2 dev enp1s0 proto static metric 100 10.0.0.0/24 dev enp8s0 proto static scope link src 192.0.2.1 metric 102インターフェースとファイアウォールゾーンを表示します。
#
firewall-cmd --get-active-zones
external interfaces: enp1s0 enp7s0 internal interfaces: enp8s0 enp9s0外部
ゾーンでマスカレードが有効になっていることを確認します。#
firewall-cmd --info-zone=external
external (active) target: default icmp-block-inversion: no interfaces: enp1s0 enp7s0 sources: services: ssh ports: protocols: masquerade: yes ...
関連情報
-
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
セクションを参照してください。
20.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 1 203.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 1 from 203.0.113.0/24 lookup 2
-
/etc/sysconfig/network-scripts/rule6-interface
: このファイルは、カーネルがトラフィックを特定のルーティングテーブルにルーティングする IPv6 ソースネットワークのルールを定義します。 /etc/iproute2/rt_tables
: このファイルは、特定のルーティングテーブルを参照する数字の代わりに名前を使用する場合にマッピングを定義します。以下に例を示します。1 Provider_A 2 Provider_B
関連情報
-
IP ルーティングの詳細は、
ip-route(8)
man ページを参照してください。 -
ルーティングルールの詳細は、
ip-rule(8)
man ページを参照してください。
20.3. レガシーネットワークスクリプトを使用して、特定のサブネットから別のデフォルトゲートウェイにトラフィックをルーティング
本セクションでは、デフォルトで、デフォルトルートを使用して、すべてのトラフィックをインターネットプロバイダー A にルーティングするルーターとして RHEL を構成する方法を説明します。RHEL は、ポリシーベースのルーティングを使用して、内部ワークステーションのサブネットから受信したトラフィックをプロバイダー B にルーティングします。
network-scripts
パッケージが提供する従来のネットワークスクリプトを使用したネットワークの設定は、RHEL 8 では非推奨になりました。このセクションの手順は、ホストで NetworkManager ではなく、レガシーネットワークスクリプトを使用している場合に限り行います。NetworkManager を使用してネットワーク設定を管理する場合は、「NetworkManager を使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング」 を参照してください。
この手順では、次のネットワークトポロジを想定しています。
従来のネットワークスクリプトは、設定ファイルをアルファベット順に処理します。したがって、他のインターフェースのルールとルートで使用されるインターフェースが、依存するインターフェースが必要とするときに確実に稼働するように、構成ファイルに名前を付ける必要があります。正しい順序を達成するために、この手順では ifcfg-*
ファイル、route-*
ファイル、および rules-*
ファイルの番号を使用します。
前提条件
-
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
サービスは有効でアクティブになっています。
手順
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-1_Provider-A
ファイルを作成して、ネットワークインターフェースの設定をプロバイダー A に追加します。TYPE=Ethernet IPADDR=198.51.100.1 PREFIX=30 GATEWAY=198.51.100.2 DNS1=198.51.100.200 DEFROUTE=yes NAME=1_Provider-A DEVICE=enp7s0 ONBOOT=yes ZONE=external
以下の一覧は、設定ファイルで使用されるパラメーターについて説明しています。
-
TYPE
=Ethernet
: 接続タイプがイーサネットであることを定義します。 -
IPADDR
=IP_address
- IPv4 アドレスを設定します。 -
PREFIX
=subnet_mask
: サブネットマスクを設定します。 -
GATEWAY
=IP_address
: - デフォルトゲートウェイアドレスを設定します。 -
DNS1
=IP_of_DNS_server
- DNS サーバーの IPv4 アドレスを設定します。 -
DEFROUTE
=yes|no
: 接続がデフォルトルートであるかどうかを定義します。 -
NAME
=connection_name
- プロファイルの名前を設定します。混乱を避けるために、わかりやすい名前を使用してください。 -
DEVICE
=network_device
- ネットワークインターフェースを設定します。 -
ONBOOT
=yes
: システムの起動時に RHEL がこの接続を開始することを定義します。 -
ZONE
=firewalld_zone
- 定義されたfirewalld
ゾーンにネットワークインターフェースを割り当てます。firewalld
は、外部
ゾーンに割り当てられたマスカレードインターフェースを自動的に有効にすることに注意してください。
-
プロバイダー B にネットワークインターフェースの設定を追加します。
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-2_Provider-B
ファイルを作成します。TYPE=Ethernet IPADDR=192.0.2.1 PREFIX=30 DEFROUTE=no NAME=2_Provider-B DEVICE=enp1s0 ONBOOT=yes ZONE=external
このインターフェースの設定ファイルには、デフォルトのゲートウェイ設定が含まれていないことに注意してください。
2_Provider-B
接続のゲートウェイを別のルーティングテーブルに割り当てます。したがって、以下の内容で/etc/sysconfig/network-scripts/route-2_Provider-B
ファイルを作成します。0.0.0.0/0 via 192.0.2.2 table 5000
このエントリーは、このゲートウェイを経由するすべてのサブネットからのゲートウェイおよびトラフィックをテーブル
5000
に割り当てます。
内部ワークステーションサブネットへのネットワークインターフェースの設定を作成します。
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-3_Internal-Workstations
ファイルを作成します。TYPE=Ethernet IPADDR=10.0.0.1 PREFIX=24 DEFROUTE=no NAME=3_Internal-Workstations DEVICE=enp8s0 ONBOOT=yes ZONE=internal
内部ワークステーションサブネットのルーティングルール設定を追加します。したがって、以下の内容で
/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
にルーティングします。値が小さいほど優先度が高くなります。以下の内容を含む
/etc/sysconfig/network-scripts/route-3_Internal-Workstations
ファイルを作成し、ID5000
のルーティングテーブルに静的ルートを追加します。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
に対するものであり、ネクストホップとして使用されます。
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-4_Servers
ファイルを作成して、ネットワークインターフェースの設定をサーバーのサブネットに追加します。TYPE=Ethernet IPADDR=203.0.113.1 PREFIX=24 DEFROUTE=no NAME=4_Servers DEVICE=enp9s0 ONBOOT=yes ZONE=internal
ネットワーク接続が再起動します。
# systemctl restart network
検証手順
内部ワークステーションサブネットの RHEL ホストで、以下を行います。
traceroute
パッケージをインストールします。#
yum install traceroute
traceroute
ユーティリティーを使用して、インターネットのホストへのルートを表示します。#
traceroute redhat.com
traceroute 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
経由でルーターがパケットを送信することが表示されます。
サーバーのサブネットの RHEL ホストで、以下を行います。
traceroute
パッケージをインストールします。#
yum install traceroute
traceroute
ユーティリティーを使用して、インターネットのホストへのルートを表示します。#
traceroute redhat.com
traceroute 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 ルーターで以下を行います。
ルールの一覧を表示します。
#
ip rule list
0: from all lookup local 5: from 10.0.0.0/24 lookup 5000 32766: from all lookup main 32767: from all lookup defaultデフォルトでは、RHEL には、
local
テーブル、main
テーブル、およびdefault
テーブルのルールが含まれます。テーブル
5000
のルートを表示します。#
ip route list table 5000
default via 192.0.2.2 dev enp1s0 10.0.0.0/24 via 192.0.2.1 dev enp1s0インターフェースとファイアウォールゾーンを表示します。
#
firewall-cmd --get-active-zones
external interfaces: enp1s0 enp7s0 internal interfaces: enp8s0 enp9s0外部
ゾーンでマスカレードが有効になっていることを確認します。#
firewall-cmd --info-zone=external
external (active) target: default icmp-block-inversion: no interfaces: enp1s0 enp7s0 sources: services: ssh ports: protocols: masquerade: yes ...
関連情報
- 「従来のネットワークスクリプトを使用する場合のポリシーベースのルーティングに関連する設定ファイルの概要」
-
ip-route(8)
man ページ -
ip-rule(8)
man ページ -
従来のネットワークスクリプトの詳細は、
/usr/share/doc/network-scripts/sysconfig.txt
ファイルを参照してください。
第21章 ダミーインターフェースの作成
Red Hat Enterprise Linux ユーザーは、デバッグおよびテストの目的でダミーネットワークインターフェースを作成および使用できます。ダミーインターフェースは、実際には送信せずにパケットをルーティングするデバイスを提供します。NetworkManager が管理する追加のループバックのようなデバイスを作成し、非アクティブな SLIP (Serial Line Internet Protocol) アドレスをローカルプログラムの実アドレスのようにすることができます。
21.1. nmcli を使用して IPv4 アドレスと IPv6 アドレスの両方を使用したダミーインターフェースの作成
さまざまな設定でダミーインターフェースを作成できます。この手順では、IPv4 アドレスと IPv6 アドレスの両方でダミーインターフェースを作成する方法を説明します。ダミーインターフェースを作成すると、NetworkManager により自動的にデフォルトの public
ファイアウォールゾーンに割り当てられます。
IPv4 アドレスまたは IPv6 アドレスなしでダミーインターフェースを設定するには、ipv4.method
パラメーターおよび ipv6.method
パラメーターを disabled
に設定します。それ以外の場合は、IP 自動設定が失敗し、NetworkManager が接続を無効にしてダミーデバイスを削除します。
手順
静的な 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必要に応じて、ダミーインターフェースを表示するには、以下を入力します。
#
nmcli connection show
NAME UUID TYPE DEVICE enp1s0 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3 dummy-dummy0 aaf6eb56-73e5-4746-9037-eed42caa8a65 dummy dummy0
関連情報
- man ページの nm-settings(5)
第22章 ネットワーク経由でカーネルメッセージをログに記録する netconsole の使用
netconsole
カーネルモジュールと同じ名前のサービスを使用すると、ネットワーク経由でカーネルメッセージをログに記録して、ディスクへのログインに失敗したり、シリアルコンソールを使用しない場合にカーネルをデバッグできます。
22.1. カーネルメッセージをリモートホストに記録するように netconsole サービスを設定
netconsole
カーネルモジュールを使用すると、リモートシステムログサービスにカーネルメッセージを記録できます。
前提条件
-
rsyslog
などのシステムログサービスがリモートホストにインストールされている。 - リモートシステムログサービスは、このホストから受信ログエントリーを受け取るように設定されています。
手順
netconsole-service
パッケージをインストールします。#
yum install netconsole-service
/etc/sysconfig/netconsole
ファイルを編集し、SYSLOGADDR
パラメーターをリモートホストの IP アドレスに設定します。#
SYSLOGADDR=192.0.2.1
netconsole
サービスを有効にして起動します。#
systemctl enable --now netconsole
検証手順
-
リモートシステムログサーバーの
/var/log/messages
ファイルを表示します。
関連情報
-
リモートホストがログメッセージを受信できるようにする方法は、
『基本的なシステム設定の構成』
の「リモートロギングソリューションの設定」を参照してください。
第23章 systemd ネットワークターゲットおよびサービス
NetworkManager は、システムの起動時にネットワークを設定します。ただし、root ディレクトリーが iSCSI デバイスに保存されている場合など、リモートルート (/) で起動すると、RHEL が起動する前に、ネットワーク設定が初期 RAM ディスク (initrd
) に適用されます。たとえば、rd.neednet=1
を使用してカーネルコマンドラインでネットワーク設定を指定すると、リモートファイルシステムのマウントに設定を指定すると、ネットワーク設定が initrd
に適用されます。
本セクションでは、ネットワーク設定の適用時に使用される network
、network-online
、NetworkManager-wait-online
サービスなどの異なるターゲットと、network-online
サービスの開始後に systemd
サービスが開始するように設定する方法を説明します。
23.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) ヘッダーを持つすべての System V(SysV) init
スクリプトサービスユニットに自動的に追加します。LSB ヘッダーは、init
スクリプトのメタデータです。これを使用して依存関係を指定できます。これは systemd
ターゲットに似ています。
network
ターゲットは、起動プロセスの実行を大幅に遅らせません。network
ターゲットに到達すると、ネットワークの設定を行うサービスが開始していることになります。ただし、ネットワークデバイスが設定されているわけではありません。このターゲットは、システムのシャットダウン時に重要です。たとえば、起動中に network
ターゲットの後に順序付けされたサービスがあると、この依存関係はシャットダウン中に元に戻されます。サービスが停止するまで、ネットワークは切断されません。リモートネットワークファイルシステムのすべてのマウントユニットは、network-online
ターゲットユニットを自動的に起動し、その後に自身を置きます。
network-online
ターゲットユニットは、システムの起動時にのみ役に立ちます。システムの起動が完了すると、このターゲットがネットワークのオンライン状態を追跡しなくなります。したがって、network-online
を使用してネットワーク接続を監視することはできません。このターゲットは、1 回限りのシステム起動の概念を提供します。
23.2. NetworkManager-wait-online の概要
同期されたレガシーネットワークスクリプトは、すべての設定ファイルを繰り返してデバイスを設定します。ネットワーク関連の設定をすべて適用し、ネットワークがオンラインであることを確認します。
NetworkManager-wait-online
サービスは、ネットワークを設定するタイムアウトで待機します。このネットワーク設定には、イーサネットデバイスへのプラグイン、Wi-Fi デバイスのスキャンなどが含まれます。NetworkManager は、自動的に起動するように設定された適切なプロファイルを自動的にアクティブにします。DHCP のタイムアウトや同様のイベントによる自動アクティベーションプロセスが失敗しても、NetworkManager が長時間ビジー状態を維持される可能性があります。設定によっては、NetworkManager は同じプロファイルまたは別のプロファイルのアクティブ化を再試行します。
起動が完了すると、すべてのプロファイルが非接続状態であるか、正常にアクティベートされます。プロファイルを自動接続するように設定できます。以下は、タイムアウトを設定したり、接続がアクティブとみなされるタイミングを定義するいくつかのパラメーター例です。
-
connection.wait-device-timeout
- ドライバーがデバイスを検出するためのタイムアウトを設定します。 -
ipv4.may-fail
およびipv6.may-fail
- 1 つの IP アドレスファミリーの準備ができている状態でアクティベーションを設定します。または、特定のアドレスファミリーが設定を完了しているかどうかを設定します。 -
ipv4.gateway-ping-timeout
- アクティベーションを遅延します。
関連情報
-
man ページの
nm-settings(5)
23.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/
内のサービスファイルにある値と重複する場合は、優先度が高くなります。
手順
エディターでサービスファイルを開くには、次のコマンドを実行します。
#
systemctl edit service_name
以下を入力し、変更を保存します。
[Unit] After=network-online.target
systemd
サービスを再読み込みします。#
systemctl daemon-reload
第24章 Linux トラフィックの制御
Linux は、パケットの送信を管理および操作するためのツールを提供します。Linux Traffic Control (TC) サブシステムは、ネットワークトラフィックの規制、分類、成熟、およびスケジューリングに役立ちます。また、TC はフィルターとアクションを使用して分類中にパケットコンテンツをマスリングします。TC サブシステムは、TC アーキテクチャーの基本要素であるキューイング規則 (qdisc
) を使用してこれを実現します。
スケジューリングメカニズムは、異なるキューに入るか、終了する前にパケットを構成または再編成します。最も一般的なスケジューラーは First-In-First-Out (FIFO) スケジューラーです。qdiscs
操作は、一時的に tc
ユーティリティーを使用して実行したり、NetworkManager を使用して永続的に実行できます。
本セクションでは、キューイング規則を説明し、RHEL でデフォルトの qdiscs
を更新する方法を説明します。
24.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 ページを参照してください。
24.2. RHEL で利用できる qdiscs
各 qdisc
は、ネットワーク関連の固有の問題に対応します。以下は、RHEL で利用可能な qdiscs
の一覧です。以下の qdisc
を使用して、ネットワーク要件に基づいてネットワークトラフィックを形成できます。
表24.1 RHEL で利用可能なスケジューラー
qdisc 名 | 以下に含まれる | オフロードサポート |
---|---|---|
非同期転送モード (ATM) |
| |
クラスベースのキューイング |
| |
クレジットカードベースのシェーパー |
| はい |
応答フローを選択するおよび Keep、応答しないフロー (CHOKE) の場合は CHOose および Kill |
| |
Controlled Delay (CoDel) |
| |
不足ラウンドロビン (DRR) |
| |
Differentiated Services marker (DSMARK) |
| |
Enhanced Transmission Selection (ETS) |
| はい |
Fair Queue (FQ) |
| |
FQ_CODel (Fair Queuing Controlled Delay) |
| |
GRED (Generalized Random Early Detection) |
| |
階層化されたサービス曲線(HSFC) |
| |
負荷の高い永続フィルター (HHF) |
| |
階層型トークンバケット (HTB) |
| |
INGRESS |
| はい |
MQPRIO (Multi Queue Priority) |
| はい |
マルチキュー (MULTIQ) |
| はい |
ネットワークエミュレーター (NETEM) |
| |
Proportional Integral-controller Enhanced (PIE) |
| |
PLUG |
| |
Quick Fair Queueing (QFQ) |
| |
ランダム初期値検出 (RED) |
| はい |
SFB (Stochastic Fair Blue) |
| |
SFQ (Stochastic Fairness Queueing) |
| |
トークンバケットフィルター (TBF) |
| はい |
TEQL (Trivial Link Equalizer) |
|
qdisc
オフロードには、NIC でハードウェアとドライバーのサポートが必要です。
関連情報
-
qdiscs
の設定に使用するパラメーターおよびフィルターの詳細はtc(8)
、cbq
、cbs
、choke
、CoDel
、drr
、fq
、htb
、mqprio
、netem
、pie
、sfb
、pfifo
、tc-red
、sfq
、tbf
、prio
の man ページを参照してください。
24.3. tc ユーティリティーを使用したネットワークインターフェースの qdiscs の検証
デフォルトでは、Red Hat Enterprise Linux システムは fq_codel
qdisc
を使用します。この手順では、qdisc
カウンターを検証する方法を説明します。
手順
必要に応じて、現在の
qdisc
を表示します。#
tc qdisc show dev enp0s1
現在の
qdisc
カウンターを検査します。#
tc -s qdisc show dev enp0s1
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn Sent 1008193 bytes 5559 pkt (dropped 233, overlimits 55 requeues 77) backlog 0b 0p requeues 0 ....
-
dropped
: すべてのキューが満杯であるため、パケットがドロップされる回数 -
overlimits
: 設定されたリンク容量が一杯になる回数 -
sent
: デキューの数
24.4. デフォルトの qdisc の更新
現在の qdisc
でネットワークパケットの損失を確認する場合は、ネットワーク要件に基づいて qdisc
を変更できます。ネットワーク要件を満たす qdisc
を選択できます。この手順では、Red Hat Enterprise Linux でデフォルトの qdisc
を変更する方法を説明します。
手順
現在のデフォルト
qdisc
を表示します。#
sysctl -a | grep qdisc
net.core.default_qdisc = fq_codel現在のイーサネット接続の
qdisc
を表示します。#
tc -s qdisc show dev enp0s1
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0 new_flows_len 0 old_flows_len 0既存の
qdisc
を更新します。#
sysctl -w net.core.default_qdisc=pfifo_fast
変更を適用するには、ネットワークドライバーを再読み込みします。
#
rmmod NETWORKDRIVERNAME
#
modprobe NETWORKDRIVERNAME
ネットワークインターフェースを起動します。
#
ip link set enp0s1 up
検証手順
イーサネット接続の
qdisc
を表示します。#
tc -s qdisc show dev enp0s1
qdisc 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) backlog 0b 0p requeues 0 ....
関連情報
-
これらの変更を永続化する方法は、Red Hat Enterprise Linux の記事「How to set
sysctl
variables on Red Hat Enterprise Linux」を参照してください。
24.5. tc ユーティリティーを使用して、ネットワークインターフェースの現在の qdisk を一時的に設定
デフォルトの qdisc を変更せずに、現在の qdisc
を更新できます。この手順では、Red Hat Enterprise Linux で現在の qdisc
を変更する方法を説明します。
手順
必要に応じて、現在の
qdisc
を表示します。#
tc -s qdisc show dev enp0s1
現在の
qdisc
を更新します。#
tc qdisc replace dev enp0s1 root htb
検証手順
更新された現在の
qdisc
を表示します。#
tc -s qdisc show dev enp0s1
qdisc htb 8001: root refcnt 2 r2q 10 default 0 direct_packets_stat 0 direct_qlen 1000 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
24.6. NetworkManager を使用してネットワークインターフェースの現在の qdisk を永続的に設定
NetworkManager 接続の現在の qdisc
値を更新できます。
手順
必要に応じて、現在の
qdisc
を表示します。# tc qdisc show dev enp0s1 qdisc fq_codel 0: root refcnt 2
現在の
qdisc
を更新します。# nmcli connection modify enp0s1 tc.qdiscs ‘root pfifo_fast’
必要に応じて、既存の
qdisc
に別のqdisc
を追加するには、+tc.qdisc
オプションを使用します。# nmcli connection modify enp0s1 +tc.qdisc 'ingress handle ffff:'
変更をアクティベートします。
# nmcli connection up enp0s1
検証手順
現在の
qdisc
を表示します。# tc qdisc show dev _enp0s1_ qdisc _pfifo_fast_ 8001: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc ingress ffff: parent ffff:fff1 ----------------
関連情報
-
詳細は、man ページの
nm-settings(5)
を参照してください。
第25章 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 を無効にします。
25.1. MPTCP サポートを有効にするための RHEL の準備
いくつかのアプリケーションは MPTCP をネイティブにサポートしています。多くの場合、接続およびストリーム指向のソケットは、オペレーティングシステムへの socket() 呼び出しで TCP プロトコルを要求します。ネイティブ MPTCP 対応プログラムの sysctl
ツールを使用して、RHEL で MPTCP サポートを有効にできます。MPTCP 実装は、カーネルへの IPPROTO_TCP
呼び出しを要求するアプリケーションに MPTCP プロトコルを使用できるように設計されています。
この手順では、MPTCP サポートを有効にし、SystemTap スクリプトを使用して MPTCP のシステム全体のを有効にするように RHEL を準備する方法を説明します。
前提条件
これにより、以下のパッケージがインストールされます。
-
kernel-debuginfo
-
kernel-debuginfo-common
-
systemtap
-
systemtap-devel
-
kernel-devel
-
nmap-ncat
手順
カーネルで MPTCP ソケットを有効にします。
#
echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf
#sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf
以下の内容を含む
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()); } }
TCP ソケットを MPTCP に置き換えます。
#
stap -vg mptcp.stap
注記: Ctrl+C を使用して接続を MPTCP から TCP に変換します。
TCP ポート 4321 をリッスンするサーバーを起動します。
#
ncat -4 -l 4321
サーバーに接続して、トラフィックを交換します。たとえば、クライアントは「Hello world」をサーバーに 5 回書き込み、接続を終了します。
#
ncat -4 192.0.2.1
4321Hello world 1
Hello world 2
Hello world 3
Hello world 4
Hello world 5
Ctrl+D を押して終了します。
検証手順
MPTCP がカーネルで有効になっていることを確認します。
#
sysctl -a | grep mptcp.enabled
net.mptcp.enabled = 1mptcp.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接続が確立されたら、
ss
出力を確認し、サブフロー固有のステータスを確認します。#
ss -nti '( dport :4321 )' dst 192.0.2.1
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process ESTAB 0 0 192.0.2.2:60874 192.0.2.1:4321 cubic 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:0tcpdump
を使用してトラフィックをキャプチャーし、MPTCP サブオプションの使用をチェックします。#
tcpdump -tnni interface
TCP ポート 4321 client 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 0 client In IP 192.0.2.1.4321 > 192.0.2.2.60802: Flags [S.], seq 2619315374, ack 3420255623, win 28960, options [mss 1460 sackOK,TS val 3241564233 ecr 4114539945,nop,wscale 7,mptcp capable v1 {0xb6f8dc721aee7f64}], length 0 client 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 0 client 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 16 client 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 0 client 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 ページを参照してください。
25.2. 複数の利用可能なパスについてアプリケーションに通知するために iproute2 を使用
デフォルトでは、MPTCP ソケットは単一のサブフローで起動しますが、初回作成時に接続に新しいサブフローと IP アドレスを追加できます。この手順では、サブフローおよび IP アドレスの接続制限を更新し、新しい IP アドレス (エンドポイント) を MPTCP 接続に追加する方法を説明します。
MPTCP は現在、同じソケットの IPv6 エンドポイントと IPv4 エンドポイントの組み合わせに対応していません。同じアドレスファミリーに属するエンドポイントを使用します。
手順
サーバーで、接続および IP アドレスの制限を 1 に設定します。
#
ip mptcp limits set subflow 1
クライアントの接続および IP アドレスの制限を 1 に設定します。
#
ip mptcp limits set subflow 1 add_addr_accepted 1
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
。エンドポイントをバックアップアドレスとして設定します。
-
0.0.0.0 へのサーバーバインディングを
-k
引数で開始し、最初の接続を受け入れて、クライアントによって行われたMP_JOIN SYN
サーバーに拒否させた後に [systemitem]'ncat' がリスニングソケットを閉じないようにします。#
ncat -4 0.0.0.0 -k -l 4321
クライアントを起動し、サーバーに接続してトラフィックを交換します。たとえば、クライアントは「Hello world」をサーバーに 5 回書き込み、接続を終了します。
#
ncat -4 192.0.2.1
4321Hello world 1
Hello world 2
Hello world 3
Hello world 4
Hello world 5
Ctrl+D を押して終了します。
検証手順
接続および IP アドレス制限を確認します。
#
ip mptcp limit show
新たに追加されたエンドポイントを確認します。
#
ip mptcp endpoint show
tcpdump
を使用してトラフィックをキャプチャーし、MPTCP サブオプションの使用をチェックします。#
tcpdump -tnni interface
TCP ポート 4321 client 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 0 client 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 0 client 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 0 client 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 16 client 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 0 client 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 0 client 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 0 client 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 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 ページを参照してください。
25.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.enabled
net.mptcp.enabled = 0
第26章 DNS サーバーの順序の設定
ほとんどのアプリケーションは、glibc
ライブラリーの getaddrinfo()
関数を使用して DNS 要求を解決します。デフォルトでは、glibc
はすべての DNS 要求を、/etc/resolv.conf
ファイルで指定された最初の DNS サーバーに送信します。このサーバーが応答しない場合、Red Hat Enterprise Linux はこのファイルの次のサーバーを使用します。
本セクションでは、DNS サーバーの順序をカスタマイズする方法を説明します。
26.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
までの値に設定できます。
- 値が小さいほど優先度が高くなります。
- 負の値は、値が大きい他の設定を除外する特別な効果があります。たとえば、優先度が負の値の接続が 1 つでも存在する場合は、NetworkManager が、優先度が最も低い接続プロファイルで指定された DNS サーバーのみを使用します。
複数の接続の DNS の優先度が同じ場合、NetworkManager は以下の順番で DNS の優先順位を決定します。
- VPN 接続。
- アクティブなデフォルトルートとの接続。アクティブなデフォルトルートは、最も低いメトリックのデフォルトのルートです。
関連情報
-
NetworkManager が
/etc/resolv.conf
ファイルで DNS サーバーエントリーを順序付ける方法の詳細は、man ページのnm-settings(5)
のipv4
セクションおよびipv6
セクションのdns-priority
パラメーターの説明を参照してください。 -
systemd-resolved
を使用して、異なるドメインに異なる DNS サーバーを使用する方法は、34章異なるドメインでの各種 DNS サーバーの使用 を参照してください。
26.2. NetworkManager 全体でデフォルトの DNS サーバー優先度の値の設定
NetworkManager は、接続に以下の DNS 優先度のデフォルト値を使用します。
-
VPN 接続の場合は
50
-
他の接続の場合は
100
本セクションでは、このシステム全体のデフォルトを、IPv4 接続および IPv6 接続のカスタムデフォルト値で上書きする方法を説明します。
手順
/etc/NetworkManager/NetworkManager.conf
ファイルを編集します。[connection]
セクションが存在しない場合は追加します。[connection]
[connection]
セクションにカスタムのデフォルト値を追加します。たとえば、IPv4 と IPv6 の両方で新しいデフォルトを200
に設定するには、以下を追加します。ipv4.dns-priority=200 ipv6.dns-priority=200
パラメーターは、
-2147483647
から2147483647
までの値に設定できます。パラメーターを0
に設定すると、組み込みのデフォルト (VPN 接続の場合は50
、他の接続の場合は100
) が有効になります。
NetworkManager
サービスを再読み込みします。#
systemctl reload NetworkManager
関連情報
-
NetworkManager のすべての接続にデフォルト値を設定する方法は、man ページの
NetworkManager.conf(5)
のConnection Section
を参照してください。
26.3. NetworkManager 接続の DNS 優先度の設定
本セクションでは、NetworkManager が /etc/resolv.conf
ファイルを作成または更新する際に DNS サーバーの順序を定義する方法を説明します。
DNS 優先度の設定は、異なる DNS サーバーが設定された複数の接続がある場合にのみ有効であることに注意してください。複数の DNS サーバーが設定された接続が 1 つしかない場合は、接続プロファイルで DNS サーバーを優先順に手動で設定します。
前提条件
- システムに NetworkManager の接続が複数設定されている。
-
システムで、
/etc/NetworkManager/NetworkManager.conf
ファイルにdns
パラメーターが設定されていないか、そのパラメーターがdefault
に設定されている。
手順
必要に応じて、利用可能な接続を表示します。
#
nmcli connection show
NAME UUID TYPE DEVICE Example_con_1 d17ee488-4665-4de2-b28a-48befab0cd43 ethernet enp1s0 Example_con_2 916e4f67-7145-3ffa-9f7b-e7cada8f6bf7 ethernet enp7s0 ...ipv4.dns-priority
パラメーターおよびipv6.dns-priority
パラメーターを設定します。たとえば、Example_con_1
接続に対して、両方のパラメーターを10
に設定するには、次のコマンドを実行します。#
nmcli connection modify Example_con_1
ipv4.dns-priority 10 ipv6.dns-priority 10- 必要に応じて、他のコネクションに対しても 1 つ前の手順を繰り返します。
更新した接続を再度アクティブにします。
#
nmcli connection up Example_con_1
検証手順
/etc/resolv.conf
ファイルの内容を表示して、DNS サーバーの順序が正しいことを確認します。#
cat /etc/resolv.conf
第27章 ifcfg ファイルで IP ネットワークの設定
本セクションでは、ifcfg
ファイルを編集して、ネットワークインターフェースを手動で設定する方法を説明します。
インターフェース設定 (ifcfg) ファイルは、個々のネットワークデバイスのソフトウェアインターフェースを制御します。これは、システムの起動時に、このファイルを使用して、どのインターフェースを起動するかと、どのように設定するかを決定します。これらのファイルは、通常 ifcfg-name
になります。接尾辞の name は、設定ファイルが制御するデバイスの名前を指します。規則により、ifcfg
ファイルのサフィックスは、設定ファイル自体の DEVICE
ディレクティブが指定する文字列と同じです。
27.1. ifcfg ファイルの静的ネットワーク設定でインタフェースの設定
この手順では、ifcfg
ファイルを使用して、ネットワークインターフェースを設定する方法を説明します。
手順
ifcfg
ファイルを使用して、静的ネットワークで、インターフェースenp1s0
を設定するには、/etc/sysconfig/network-scripts/
ディレクトリー内に、以下のような内容でifcfg-enp1s0
という名前のファイルを作成します。IPv4
設定の場合は、以下のようになります。DEVICE=enp1s0 BOOTPROTO=none ONBOOT=yes PREFIX=24 IPADDR=10.0.1.27 GATEWAY=10.0.1.1
IPv6
設定の場合は、以下のようになります。DEVICE=enp1s0 BOOTPROTO=none ONBOOT=yes IPV6INIT=yes IPV6ADDR=2001:db8:1::2/64
関連情報
- 接続のテストに関する詳細は、39章基本的なネットワーク設定のテスト を参照してください。
-
IPv6
の ifcfg 設定オプションの詳細は、man ページの nm-settings-ifcfg-rh(5) を参照してください。
27.2. ifcfg ファイルの動的ネットワーク設定でインタフェースの設定
この手順では、ifcfg
ファイルを使用して、動的ネットワーク設定でネットワークインターフェースを設定する方法を説明します。
手順
ifcfg
ファイルの動的ネットワークを使用して、インターフェース em1 を設定するには、/etc/sysconfig/network-scripts/
ディレクトリーに、以下のような内容で、ifcfg-em1
という名前のファイルを作成します。DEVICE=em1 BOOTPROTO=dhcp ONBOOT=yes
DHCP
サーバーに、別のホスト名を送信するようにインターフェースを設定する場合は、ifcfg
ファイルに以下の行を追加します。DHCP_HOSTNAME=hostname
DHCP
サーバーに、別の完全修飾ドメイン名 (FQDN) を送信するようにインターフェースを設定する場合は、ifcfg
ファイルに以下の行を追加します。DHCP_FQDN=fully.qualified.domain.name
注記指定した
ifcfg
ファイルでは、DHCP_HOSTNAME
とDHCP_FQDN
のいずれかのディレクティブだけを使用してください。DHCP_HOSTNAME
とDHCP_FQDN
の両方が指定される場合は、後者だけが使用されます。特定の
DNS
サーバーを使用するようにインターフェースを設定する場合は、ifcfg
ファイルに以下の行を追加します。PEERDNS=no DNS1=ip-address DNS2=ip-address
ip-address は、
DNS
サーバーのアドレスです。これにより、ネットワークサービスが、指定したDNS
サーバーで/etc/resolv.conf
を更新します。DNS
サーバーアドレスは、1 つだけ必要です。もう 1 つは任意です。
27.3. ifcfg ファイルでシステム全体およびプライベート接続プロファイルの管理
この手順では、システム全体の接続プロファイルおよびプライベート接続プロファイルを管理するために、ifcfg
ファイルを設定する方法を説明します。
手順
パーミッションは、ifcfg
ファイルの USERS
ディレクティブに対応します。USERS
ディレクティブがない場合は、すべてのユーザーでそのネットワークプロファイルが利用できます。
たとえば、次の行で
ifcfg
ファイルを変更します。これにより、一覧表示されるユーザーにのみ接続が利用できるようにします。USERS="joe bob alice"
第28章 NetworkManager で特定接続の IPv6 の無効化
本セクションは、NetworkManager を使用してネットワークインターフェースを管理するシステムで IPv6 プロトコルを無効にする方法を説明します。IPv6 を無効にすると、NetworkManager は、カーネルに対応する sysctl
値を自動的に設定します。
カーネルの調整可能なパラメーターまたはカーネルブートパラメーターを使用して IPv6 を無効にする場合は、システム設定に追加の検討が必要です。詳細は、ナレッジベースの記事「 How do I disable or enable the IPv6 protocol in RHEL? 」を参照してください。
前提条件
- システムが NetworkManager を使用してネットワークインターフェースを管理します。これは、Red Hat Enterprise Linux 8 のデフォルトです。
- システムは Red Hat Enterprise Linux 8.1 以降を実行します。
28.1. nmcli を使用した接続で IPv6 の無効化
本セクションでは、nmcli
ユーティリティーを使用して IPv6 プロトコルを無効にする方法を説明します。
手順
必要に応じて、ネットワーク接続の一覧を表示します。
# nmcli connection show NAME UUID TYPE DEVICE Example 7a7e0151-9c18-4e6f-89ee-65bb2d64d365 ethernet enp1s0 ...
接続の
ipv6.method
パラメーターをdisabled
に設定します。# nmcli connection modify Example ipv6.method "disabled"
ネットワーク接続が再起動します。
# nmcli connection up Example
検証手順
ip address show
コマンドを実行して、デバイスの IP 設定を表示します。# ip address show enp1s0 2: 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 が無効になります。/proc/sys/net/ipv6/conf/enp1s0/disable_ipv6
ファイルに値1
が含まれていることを確認します。# cat /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6 1
値が
1
の場合は、デバイスに対して IPv6 が無効になります。
第29章 /etc/resolv.conf ファイルの手動設定
デフォルトでは、Red Hat Enterprise Linux (RHEL) 8 の NetworkManager は、アクティブな NetworkManager の接続プロファイルから DNS 設定を使用して、/etc/resolv.conf
ファイルを動的に更新します。本セクションでは、この機能を無効にして、/etc/resolv.conf
で DNS を手動で設定する方法を説明します。
29.1. NetworkManager 設定で DNS 処理の無効化
本セクションでは、/etc/resolv.conf
ファイルを手動で設定するために、NetworkManager 設定で DNS 処理を無効にする方法を説明します。
手順
root ユーザーとして、テキストエディターを使用して、以下の内容で
/etc/NetworkManager/conf.d/90-dns-none.conf
ファイルを作成します。[main] dns=none
NetworkManager
サービスを再読み込みします。# systemctl reload NetworkManager
注記サービスを再読み込みすると、NetworkManager は
/etc/resolv.conf
ファイルを更新しなくなります。ただし、ファイルの最後の内容は保持されます。-
必要に応じて、混乱を避けるために、
NetworkManager により生成された
コメントを/etc/resolv.conf
から削除します。
検証手順
-
/etc/resolv.conf
ファイルを編集し、設定を手動で更新します。 NetworkManager
サービスを再読み込みします。# systemctl reload NetworkManager
/etc/resolv.conf
ファイルを表示します。# cat /etc/resolv.conf
DNS 処理を無効にできた場合、NetworkManager は手動で構成した設定を上書きしませんでした。
関連情報
-
詳細は、man ページの
NetworkManager.conf(5)
のdns
パラメーターの説明を参照してください。
29.2. /etc/resolv.conf を、DNS 設定を手動で設定するシンボリックリンクに置き換え
/etc/resolv.conf
がシンボリックリンクの場合、NetworkManager は DNS 設定を自動的に更新しません。本セクションでは、/etc/resolv.conf
を、DNS 設定がある別のファイルへのシンボリックリンクに置き換える方法を説明します。
前提条件
-
rc-manager
オプションは、ファイル
に設定されていません。検証には、NetworkManager --print-config
コマンドを使用します。
手順
-
/etc/resolv.conf.manually-configured
などのファイルを作成し、お使いの環境の DNS 設定を追加します。元の/etc/resolv.conf
と同じパラメーターと構文を使用します。 /etc/resolv.conf
ファイルを削除します。# rm /etc/resolv.conf
/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
パラメーターの説明を参照してください。
第30章 802.3 リンク設定の構成
以下の設定パラメーターを修正して、イーサネット接続の 802.3 リンク設定を構成できます。
-
802-3-ethernet.auto-negotiate
-
802-3-ethernet.speed
-
802-3-ethernet.duplex
802.3 リンク設定を、以下のメインモードに設定できます。
- リンクネゴシエーションを無視する
- オートネゴシエーションを強制的にアクティブ化する
-
リンク設定
speed
およびduplex
を手動で設定する
30.1. nmcli ツールで 802.3 リンク設定の構成
この手順では、nmcli
ツールを使用して、802.3 リンク設定を構成する方法を説明します。
前提条件
- NetworkManager がインストールされており、実行している。
手順
リンクネゴシエーションを無視するには、次のようにパラメーターを設定します。
~]# 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 に設定されていなくても、オートネゴシエーションパラメーターは無効になりません。
オートネゴシエーションを強制的にアクティブにするには、次のコマンドを実行します。
~]# 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
リンク設定の speed および duplex を手動で設定するには、次のコマンドを実行します。
~]# 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]
第31章 ethtool オフロード機能の設定
ネットワークインターフェースカードは、TCP オフロードエンジン (TOE) を使用して、ネットワークコントローラーへの特定の操作をオフロードして、ネットワークのスループットを向上できます。
本項では、オフロード機能の設定方法について説明します。
31.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-ntuple
- ethtool.feature-rx
- ethtool.feature-rx-all
- ethtool.feature-rx-fcs
- ethtool.feature-rx-gro-hw
- ethtool.feature-rx-udp_tunnel-port-offload
- ethtool.feature-rx-vlan-filter
- ethtool.feature-rx-vlan-stag-filter
- ethtool.feature-rx-vlan-stag-hw-parse
- ethtool.feature-rxhash
- ethtool.feature-rxvlan
- ethtool.feature-sg
- ethtool.feature-tls-hw-record
- 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-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
- 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
ユーティリティーとカーネルのドキュメントを参照してください。
31.2. NetworkManager を使用した ethtool オフロード機能の設定
本セクションでは、NetworkManager を使用して ethtool
オフロード機能を有効または無効にする方法と、NetworkManager 接続プロファイルから機能の設定を削除する方法を説明します。
手順
たとえば、RX オフロード機能を有効にし、
enp1s0
接続プロファイルで TX オフロードを無効にするには、次のコマンドを実行します。# nmcli con modify enp1s0 ethtool.feature-rx on ethtool.feature-tx off
このコマンドは、RX オフロードを明示的に有効にし、TX オフロードを無効にします。
上で有効または無効にしたオフロード機能の設定を削除するには、この機能のパラメーターを
ignore
に設定します。たとえば、TX オフロードの設定を削除するには、次のコマンドを実行します。# nmcli con modify enp1s0 ethtool.feature-tx ignore
ネットワークプロファイルを再度アクティブにします。
# nmcli connection up enp1s0
検証手順
ethtool -k
コマンドを使用して、ネットワークデバイスの現在のオフロード機能を表示します。# ethtool -k network_device
関連情報
-
NetworkManager がサポートする
ethtool
オフロード機能の一覧は、「NetworkManager で対応している機能のオフロード」 を参照してください。
31.3. システムロールを使用した ethtool 機能の設定
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): 有効化
- SCTP(TX Stream Control Transmission Protocol)segmentation: disabled
前提条件
-
ansible
パッケージおよびrhel-system-roles
パッケージがコントロールノードにインストールされている。 -
Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な
sudo
パーミッションが付与される。
手順
Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル
/etc/ansible/hosts
に追加します。node.example.com
~/configure-ethernet-device-with-ethtool-features.yml
Playbook を以下の内容で作成します。--- - 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
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)
を参照してください。
第32章 ethtool コロケーターの設定
割り込みコアレッシングを使用すると、システムはネットワークパケットを収集し、複数のパケットに対して割り込みを 1 つ生成します。これにより、1 つのハードウェア割り込みでカーネルに送信されたデータ量が増大し、割り込み負荷が減り、スループットを最大化します。
本セクションでは、ethtool
結合を設定するさまざまなオプションを説明します。
32.1. NetworkManager で対応している結合設定
NetworkManager を使用して、以下の ethtool
結合を設定できます。
- [parameter]`coalesce-adaptive-rx´
- [parameter]`coalesce-adaptive-tx´
- [parameter]`coalesce-pkt-rate-high´
- [parameter]`coalesce-pkt-rate-low´
- [parameter]`coalesce-rx-frames´
- [parameter]`coalesce-rx-frames-high´
- [parameter]`coalesce-rx-frames-irq´
- [parameter]`coalesce-rx-frames-low´
- [parameter]`coalesce-rx-usecs´
- [parameter]`coalesce-rx-usecs-high´
- [parameter]`coalesce-rx-usecs-irq´
- [parameter]`coalesce-rx-usecs-low´
- [parameter]`coalesce-sample-interval´
- [parameter]`coalesce-stats-block-usecs´
- [parameter]`coalesce-tx-frames´
- [parameter]`coalesce-tx-frames-high´
- [parameter]`coalesce-tx-frames-irq´
- [parameter]`coalesce-tx-frames-low´
- [parameter]`coalesce-tx-usecs´
- [parameter]`coalesce-tx-usecs-high´
- [parameter]`coalesce-tx-usecs-irq´
- [parameter]`coalesce-tx-usecs-low´
32.2. NetworkManager を使用した ethtool 結合の設定
本セクションでは、NetworkManager を使用して ethtool
結合を設定する方法と、NetworkManager 接続プロファイルから設定を削除する方法を説明します。
手順
たとえば、
enp1s0
接続プロファイルで受信パケットの最大数を128
に設定するには、次のコマンドを実行します。# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames 128
結合設定を削除するには、設定を
ignore
に設定します。たとえば、ethtool.coalesce-rx-frames
設定を削除するには、次のコマンドを実行します。# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames ignore
ネットワークプロファイルを再度アクティブにします。
# nmcli connection up enp1s0
検証手順
ethtool -c
コマンドを使用して、ネットワークデバイスの現在のオフロード機能を表示します。# ethtool -c network_device
関連情報
-
NetworkManager がサポートする
ethtool
結合設定の一覧は、を参照してください。 「NetworkManager で対応している結合設定」
第33章 MACsec の設定
次のセクションでは、イーサネットリンクのすべてのトラフィックで、安全な通信のために、802.1AE IEEE 標準セキュリティー技術である MACsec
(Media Control Access Security
) を設定する方法を説明します。
33.1. MACsec の概要
MACsec
(Media Access Control Security
(IEEE 802.1AE)) は、LAN におけるすべてのトラフィックを、GCM-AES-128 アルゴリズムで認証します。MACsec
は、IP
だけでなく、ARP (Address Resolution Protocol)、ND (Neighbor Discovery)、または DHCP
も保護できます。IPsec
はネットワーク層 (レイヤー 3) で機能しますが、SSL
または TLS
はアプリケーション層 (レイヤー 7) で機能し、MACsec
はデータリンク層 (レイヤー 2) で機能します。MACsec
を、その他のネットワーク層のセキュリティープロトコルと組み合わせて、これらの標準規格が提供するさまざまなセキュリティー機能を活用します。
33.2. nmcli ツールで MACsec の使用
この手順は、nmcli
ツールを使用して MACsec
を設定する方法を説明します。
前提条件
- NetworkManager が実行している。
-
16 バイトの 16 進数表記 CAK (
$MKA_CAK
) と、32 バイトの 16 進数表記 CKN ($MKA_CKN
) がある。
手順
nmcli
を使用して新しい接続を追加するには、次のコマンドを実行します。~]# nmcli connection add type macsec \ con-name test-macsec+ ifname macsec0 \ connection.autoconnect no \ macsec.parent enp1s0 macsec.mode psk \ macsec.mka-cak $MKA_CAK \ macsec.mka-ckn $MKA_CKN
macsec0 を設定するデバイス名に置き換えます。
接続を有効にするには、次のコマンドを実行します。
~]# nmcli connection up test-macsec+
これにより、macsec0 デバイスが設定され、ネットワークに使用できます。
33.3. wpa_supplicant で MACsec の使用
この手順は、事前に共有された CAK/CKN (Connectivity Association Key/CAK Name) のペアで認証を実行するスイッチを使用して、MACsec
を有効にする方法を説明します。
手順
CAK/CKN ペアを作成します。たとえば、次のコマンドにより、16 バイトの鍵が 16 進数表記で生成されます。
~]$
dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%02x"'
wpa_supplicant.conf
設定ファイルを作成し、次の行を追加します。ctrl_interface=/var/run/wpa_supplicant eapol_version=3 ap_scan=0 fast_reauth=1 network={ key_mgmt=NONE eapol_flags=0 macsec_policy=1 mka_cak=0011... # 16 bytes hexadecimal mka_ckn=2233... # 32 bytes hexadecimal }
wpa_supplicant.conf
設定ファイルのmka_cak
行およびmka_ckn
行には、前の手順の値を使用します。詳細は、man ページの
wpa_supplicant.conf(5)
を参照してください。ネットワークの接続に、たとえば wlp61s0 を使用している場合は、次のコマンドを実行して wpa_supplicant を起動します。
~]# wpa_supplicant -i wlp61s0 -Dmacsec_linux -c wpa_supplicant.conf
第34章 異なるドメインでの各種 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 サーバーを使用します。
RHEL 8 では、systemd-resolved
がサポート対象外のテクノロジープレビューとして提供されています。
34.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
に設定している。
-
手順
systemd-resolved
サービスを開始して有効にします。# systemctl --now enable systemd-resolved
/etc/NetworkManager/NetworkManager.conf
ファイルを編集し、[main]
セクションに以下のエントリーを設定します。dns=systemd-resolved
NetworkManager
サービスを再読み込みします。# systemctl reload NetworkManager
検証手順
/etc/resolv.conf
ファイルのnameserver
エントリーが127.0.0.53
を指していることを確認します。# cat /etc/resolv.conf nameserver 127.0.0.53
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-resolv udp 0 0 127.0.0.53:53 0.0.0.0:* 1050/systemd-resolv
関連情報
-
詳細は、man ページの
NetworkManager.conf(5)
のdns
パラメーターの説明を参照してください。
第35章 IPVLAN の使用
ここでは、IPVLAN ドライバーを説明します。
35.1. IPVLAN の概要
IPVLAN は、仮想ネットワークデバイス用のドライバーで、コンテナ環境でホストネットワークにアクセスするのに使用できます。IPVLAN は外部ネットワークに対し、ホストネットワーク内で作成された IPVLAN デバイスの数に関わらず、MAC アドレスを 1 つ公開します。つまり、ユーザーは複数コンテナーに複数の IPVLAN デバイスを持つことができますが、対応するスイッチは MAC アドレスを 1 つ読み込むということです。IPVLAN ドライバーは、ローカルスイッチで管理できる MAC アドレスの数に制限がある場合に役立ちます。
35.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 モードでは、ブロードキャストトラフィックおよびマルチキャストトラフィックを受信しません。
35.3. MACVLAN の概要
MACVLAN ドライバーを使用すると、1 つの NIC に複数の仮想ネットワークデバイスを作成することができます。各 NIC は、それぞれ固有の MAC アドレスで識別されます。物理 NIC に到達するパケットは、宛先の MAC アドレスから関連する MACVLAN デバイスに対して分割します。MacVLAN デバイスは、カプセル化のレベルを追加しません。
35.4. IPVLAN および MACVLAN の比較
以下の表は、MACVLAN と IPVLAN の主な相違点を示しています。
MACVLAN | IPVLAN |
---|---|
各 MACVLAN デバイスに対して、MAC アドレスを使用します。スイッチの MAC テーブルの MAC アドレスの過剰制限により、接続が悪化する可能性があります。 | IPVLAN デバイスの数を制限しないMAC アドレスを 1 つ使用します。 |
グローバル名前空間の netfilter ルールは、子名前空間の MACVLAN デバイスへのトラフィックに影響を及ぼしません。 | L3 モード および L3S モード の IPVLAN デバイスとのトラフィックを制御できます。 |
IPVLAN および MACVLAN の両方には、カプセル化のレベルは必要ありません。
35.5. iproute2 を使用した IPVLAN デバイスの作成および設定
この手順では、iproute2 を使用して IPVLAN デバイスを設定する方法を説明します。
手順
IPVLAN デバイスを作成するには、次のコマンドを実行します。
~]# ip link add link real_NIC_device name IPVLAN_device type ipvlan mode l2
ネットワークインターフェースコントローラー (NIC) は、コンピューターをネットワークに接続するハードウェアコンポーネントです。
例35.1 IPVLAN デバイスの作成
~]# ip link add link enp0s31f6 name my_ipvlan type ipvlan mode l2 ~]# ip link 47: 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
IPv4
アドレスまたはIPv6
アドレスをインターフェースに割り当てるには、次のコマンドを実行します。~]# ip addr add dev IPVLAN_device IP_address/subnet_mask_prefix
L3 モード または L3S モード の IPVLAN デバイスを設定する場合は、以下の設定を行います。
リモートホストのリモートピアのネイバー設定を行います。
~]# ip neigh add dev peer_device IPVLAN_device_IP_address lladdr MAC_address
MAC_address は、IPVLAN デバイスのベースである実際の NIC の MAC アドレスになります。
L3 モード の IPVLAN デバイスを設定する場合は、次のコマンドを実行します。
~]# 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 アドレスは、リモートピアのアドレスを使用します。
IPVLAN デバイスをアクティブに設定するには、次のコマンドを実行します。
~]# ip link set dev IPVLAN_device up
IPVLAN デバイスがアクティブであることを確認するには、リモートホストで次のコマンドを実行します。
~]# ping IP_address
IP_address には、IPVLAN デバイスの IP アドレスを使用します。
第36章 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 ドメインが互いに分離しているることに注意してください。
36.1. 別のインターフェースで同じ IP アドレスを永続的に再利用する
この手順では、VRF 機能を使用して、1 台のサーバーの異なるインターフェースで同じ IP アドレスを永続的に使用する方法を説明します。
同じ IP アドレスを再利用しながら、リモートのピアが VRF インターフェースの両方に接続するようにするには、ネットワークインターフェースが異なるブロードキャストドメインに属する必要があります。ネットワークのブロードキャストドメインは、ノードのいずれかによって送信されたブロードキャストトラフィックを受信するノードセットです。ほとんどの設定では、同じスイッチに接続されているすべてのノードが、同じブロードキャストドメインに属するようになります。
前提条件
-
root
ユーザーとしてログインしている。 - ネットワークインターフェースが設定されていない。
手順
最初の VRF デバイスを作成して設定します。
VRF デバイスの接続を作成し、ルーティングテーブルに割り当てます。たとえば、ルーティングテーブル
1001
に割り当てられたvrf0
という名前の VRF デバイスを作成するには、次のコマンドを実行します。# nmcli connection add type vrf ifname vrf0 con-name vrf0 table 1001 ipv4.method disabled ipv6.method disabled
vrf0
デバイスを有効にします。# nmcli connection up vrf0
上記で作成した 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
vrf.enp1s0
接続をアクティベートします。# nmcli connection up vrf.enp1s0
次の VRF デバイスを作成して設定します。
VRF デバイスを作成し、ルーティングテーブルに割り当てます。たとえば、ルーティングテーブル
1002
に割り当てられたvrf1
という名前の VRF デバイスを作成するには、次のコマンドを実行します。# nmcli connection add type vrf ifname vrf1 con-name vrf1 table 1002 ipv4.method disabled ipv6.method disabled
vrf1
デバイスをアクティベートします。# nmcli connection up vrf1
上記で作成した 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
vrf.enp7s0
デバイスをアクティベートします。# nmcli connection up vrf.enp7s0
36.2. 複数のインターフェースで同じ IP アドレスを一時的に再利用
本セクションの手順では、VRF (Virtual Routing and Forwarding) 機能を使用して、1 台のサーバーの複数のインターフェースで同じ IP アドレスを一時的に使用する方法を説明します。この手順は、システムの再起動後に設定が一時的で失われてしまうため、テスト目的にのみ使用します。
同じ IP アドレスを再利用しながら、リモートのピアが VRF インターフェースの両方に接続するようにするには、ネットワークインターフェースが異なるブロードキャストドメインに属する必要があります。ネットワークのブロードキャストドメインは、ノードのいずれかによって送信されたブロードキャストトラフィックを受信するノードセットです。ほとんどの設定では、同じスイッチに接続されているすべてのノードが、同じブロードキャストドメインに属するようになります。
前提条件
-
root
ユーザーとしてログインしている。 - ネットワークインターフェースが設定されていない。
手順
最初の VRF デバイスを作成して設定します。
VRF デバイスを作成し、ルーティングテーブルに割り当てます。たとえば、
1001
ルーティングテーブルに割り当てられたblue
という名前の VRF デバイスを作成するには、次のコマンドを実行します。# ip link add dev blue type vrf table 1001
blue
デバイスを有効にします。# ip link set dev blue up
VRF デバイスにネットワークデバイスを割り当てます。たとえば、イーサネットデバイス
enp1s0
を、VRF デバイスblue
に追加するには、次のコマンドを実行します。# ip link set dev enp1s0 master blue
enp1s0
デバイスを有効にします。# ip link set dev enp1s0 up
IP アドレスとサブネットマスクを
enp1s0
デバイスに割り当てます。たとえば、これを192.0.2.1/24
に設定するには、次のコマンドを実行します。# ip addr add dev enp1s0 192.0.2.1/24
次の VRF デバイスを作成して設定します。
VRF デバイスを作成し、ルーティングテーブルに割り当てます。たとえば、ルーティングテーブル
1002
に割り当てられたred
という名前の VRF デバイスを作成するには、次のコマンドを実行します。# ip link add dev red type vrf table 1002
red
デバイスを有効にします。# ip link set dev red up
VRF デバイスにネットワークデバイスを割り当てます。たとえば、イーサネットデバイス
enp7s0
を、VRF デバイスred
に追加するには、次のコマンドを実行します。# ip link set dev enp7s0 master red
enp7s0
デバイスを有効にします。# ip link set dev enp7s0 up
VRF ドメイン
blue
のenp1s0
に使用したものと同じ IP アドレスとサブネットマスクをenp7s0
デバイスに割り当てます。# ip addr add dev enp7s0 192.0.2.1/24
- 必要に応じて、上記のとおりに、VRF デバイスをさらに作成します。
第37章 システムのルーティングプロトコルの設定
このセクションでは、Free Range Routing (FRRouting または FRR) 機能を使用して、システムに必要なルーティングプロトコルを有効にして設定する方法を説明します。
37.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
- bfdd
- pbrd
- staticd
- fabricd
frr
がインストールされている場合、システムは専用ルーターとして動作します。これにより、ルーティングプロトコルを使用する内部ネットワークまたは外部ネットワークのいずれかで、その他のルーターとルーティング情報を交換します。
37.2. FRRouting の設定
前提条件
-
システムに
frr
パッケージがインストールされている。
# yum install frr
手順
/etc/frr/daemons
設定ファイルを編集し、システムに必要なデーモンを有効にします。たとえば、
ripd
デーモンを有効にするには、以下の行を追加します。ripd=yes
警告zebra
デーモンは、常に有効にする必要があるため、zebra=yes
に設定して FRR を使用できるようにする必要があります。重要デフォルトでは、
/etc/frr/daemons
には、すべてのデーモンの[daemon_name]=no
エントリーが含まれます。したがって、すべてのデーモンが無効になり、システムを新規インストールした後に FRR を開始しても効果がありません。frr
サービスを起動します。# systemctl start frr
必要に応じて、FRR がシステムの起動時に自動的に開始されるように設定することもできます。
# systemctl enable frr
37.3. FRR の設定の修正
本セクションでは、以下を説明します。
- FRR の設定後に追加のデーモンを有効にする方法
- FRR の設定後にデーモンを無効にする方法
追加のデーモンの有効化
前提条件
- 「FRRouting の設定」 の記載通りに、FRR が設定されている。
手順
追加のデーモンを 1 つ以上有効にするには、以下を実行します。
/etc/frr/daemons
設定ファイルを編集し、必要なデーモンの行を、no
ではなくyes
に変更します。たとえば、
ripd
デーモンを有効にするには、次のコマンドを実行します。ripd=yes
frr
サービスを再読み込みします。# systemctl reload frr
デーモンの無効化
前提条件
- 「FRRouting の設定」 の記載通りに、FRR が設定されている。
手順
複数のデーモンを無効にするには、以下を実行します。
/etc/frr/daemons
設定ファイルを編集し、必要なデーモンの行を、yes
ではなくno
に変更します。たとえば、
ripd
デーモンを無効にするには、次のコマンドを実行します。ripd=no
frr
サービスを再読み込みします。# systemctl reload frr
37.4. 特定のデーモンの設定の修正
デフォルトの設定では、FRR のすべてのルーティングデーモンがプレーンルーターとしてのみ動作します。
デーモンの追加設定には、以下の手順を使用します。
手順
/etc/frr/
ディレクトリーで、必要なデーモンの設定ファイルを作成し、次のようにファイルに名前を付けます。[daemon_name].conf
たとえば、
eigrpd
デーモンをさらに設定する場合は、前述のディレクトリーにeigrpd.conf
ファイルを作成します。必要な内容で新規ファイルを設定します。
特定の FRR デーモンの設定例は、
/usr/share/doc/frr/
ディレクトリーを参照してください。frr
サービスを再読み込みします。# systemctl reload frr
第38章 RX リングバッファーの監視およびチューニング
受信 (RX) リングバッファーは、デバイスドライバーとネットワークインターフェースカード (NIC) 間で共有バッファーで、デバイスドライバーが処理できるまで着信パケットを保存します。
パケットの破棄率によりアプリケーションが報告するようになる場合は、イーサネットデバイスの RX リングバッファーのサイズを増やすことができます。
- データ損失
- クラスターフェンス
- パフォーマンスの低下
- タイムアウト
- バックアップの失敗
本セクションでは、破棄されたパケットの数を特定し、RX リングバッファーを増やして、パケットの高い破棄率を減らす方法を説明します。
38.1. 破棄されたパケット数の表示
ethtool
ユーティリティーを使用すると、管理者はネットワークドライバーの設定をクエリー、設定、または制御できます。
RX リングバッファーを使い切ると、ethtool -S interface_name
の出力の「discard」や「drop」などのカウンターにインクリメントが生じます。破棄されたパケットは、カーネルがパケットを処理できるよりも早く利用可能なバッファーが満杯になっていることを示しています。
この手順では、ethtool
を使用してドロップカウンターを表示する方法を説明します。
手順
enp1s0
インターフェースのドロップカウンターを表示するには、次のコマンドを実行します。$ ethtool -S enp1s0
38.2. パケットの破棄レートが高いのを減らすために RX リングバッファーを増やす
ethtool
ユーティリティーは、パケットの破棄率を高くするために RX バッファーを増やすのに役立ちます。
手順
RX リングバッファーの最大サイズを表示するには、次のコマンドを実行します。
# ethtool -g enp1s0 Ring parameters for enp1s0: Pre-set maximums: RX: 4080 RX Mini: 0 RX Jumbo: 16320 TX: 255 Current hardware settings: RX: 255 RX Mini: 0 RX Jumbo: 0 TX: 255
Pre-set maximums
セクションの値がCurrent hardware settings
セクションの値よりも高い場合は、RX リングバッファーを増やします。enp1s0
デバイスの RX リングバッファーを4080
に一時的に変更するには、次のコマンドを実行します。# ethtool -G enp1s0 rx 4080
RX リングバッファーを永続的に変更するには、NetworkManager の dispatcher スクリプトを作成します。
詳細は「NIC ethtool 設定を永続化する (システムの起動時に自動的に適用する)」を参照して、ディスパッチャースクリプトを作成します。
ネットワークインターフェースカードが使用するドライバーによっては、リングバッファーで変更したことでネットワーク接続がすぐに中断する可能性があります。
関連情報
- 不要なパケットを破棄する理由は、「RHEL7 にアップグレードすると ifconfig パケットが落ちたことが報告される」を参照してください。
- 「パケットが破棄される割合が 0.05% の場合は問題がありますか?」
-
man ページ
ethtool(8)
第39章 基本的なネットワーク設定のテスト
本セクションでは、基本的なネットワークテストを実行する方法を説明します。
39.1. ping ユーティリティーを使用した他のホストへの IP 接続の検証
ping
ユーティリティーは ICMP パケットをリモートホストに送信します。この機能を使用すると、別のホストへの IP 接続が機能するかどうかをテストできます。
手順
デフォルトゲートウェイなど、同じサブネット内のホストの IP アドレスに ping します。
# ping 192.0.2.3
コマンドが失敗した場合は、デフォルトのゲートウェイ設定を確認します。
リモートサブネット内のホストの IP アドレスに ping します。
# ping 198.162.3.1
コマンドが失敗した場合は、デフォルトのゲートウェイ設定を確認し、ゲートウェイが接続ネットワーク間のパケットを転送することを確認します。
39.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 設定を確認してください。
第40章 NetworkManager のデバッグの概要
すべてのドメインまたは特定のドメインのログレベルを増やすと、NetworkManager が実行する操作の詳細をログに記録するのに役立ちます。管理者は、この情報を使用して問題のトラブルシューティングを行うことができます。NetworkManager は、ロギング情報を生成するさまざまなレベルとドメインを提供します。/etc/NetworkManager/NetworkManager.conf
ファイルは、NetworkManager の主な設定ファイルです。ログはジャーナルに保存されます。
本セクションでは、NetworkManager のデバッグロギングを有効にし、さまざまなロギングレベルおよびドメインを使用してロギングの詳細量を設定する方法を説明します。
40.1. デバッグレベルおよびドメイン
levels
および domains
パラメーターを使用して、NetworkManager のデバッグを管理できます。レベルは詳細レベルを定義しますが、ドメインは特定の重大度 (level
) でログを記録するメッセージのカテゴリーを定義します。
ログレベル | 説明 |
---|---|
| NetworkManager に関するメッセージをログに記録しません。 |
| 重大なエラーのみのログ |
| 操作を反映できる警告をログに記録します。 |
| 状態および操作の追跡に役立つさまざまな情報メッセージをログに記録します。 |
| デバッグの目的で詳細なログを有効にします。 |
|
|
後続のレベルでは、以前のレベルのすべてのメッセージをログに記録することに注意してください。たとえば、ログレベルを INFO
に設定すると、ERR
および WARN
ログレベルに含まれるメッセージをログに記録します。
関連情報
-
domains
の詳細は、man ページのNetworkManager.conf(5)
を参照してください。
40.2. NetworkManager ログレベルの設定
デフォルトでは、すべてのログドメインは INFO
ログレベルを記録します。デバッグログを収集する前にレート制限を無効にします。帯域制限により、systemd-journald
は、短時間にメッセージが多すぎる場合にメッセージを破棄します。これは、ログレベルが TRACE
の場合に発生する可能性があります。
この手順では、レート制限を無効にし、すべての (ALL) ドメインのデバッグログの記録を有効にします。
手順
レート制限を無効にするには、
/etc/systemd/journald.conf
ファイルを編集し、[Journal]
セクションのRateLimitBurst
パラメーターのコメントを解除し、その値を0
に設定します。RateLimitBurst=0
systemd-journald
サービスを再起動します。#
systemctl restart systemd-journald
以下の内容で
/etc/NetworkManager/conf.d/95-nm-debug.conf
ファイルを作成します。[logging] domains=ALL:DEBUG
domains
パラメーターには、複数のコンマ区切りのdomain:level
ペアを含めることができます。NetworkManager サービスを再読み込みします。
#
systemctl restart NetworkManager
40.3. nmcli を使用して、ランタイム時にログレベルを一時的に設定
nmcli
を使用すると、ランタイム時にログレベルを変更できます。ただし、Red Hat は、設定ファイルを使用してデバッグを有効にし、NetworkManager を再起動することを推奨します。.conf
ファイルを使用してデバッグの levels
および domains
を更新すると、ブートの問題をデバッグし、初期状態からすべてのログをキャプチャーできます。
手順
必要に応じて、現在のログ設定を表示します。
#
nmcli general logging
LEVEL DOMAINS INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,A UTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC, WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DC B,DISPATCHログレベルおよびドメインを変更するには、以下のオプションを使用します。
すべてのドメインのログレベルを同じ
LEVEL
に設定するには、次のコマンドを実行します。#
nmcli general logging level LEVEL
domains ALL特定のドメインのレベルを変更するには、以下を入力します。
#
nmcli general logging level LEVEL
domains DOMAINSこのコマンドを使用してログレベルを更新すると、他のすべてのドメインのログが無効になることに注意してください。
特定のドメインのレベルを変更し、他のすべてのドメインのレベルを保持するには、次のコマンドを実行します。
#
nmcli general logging level KEEP domains DOMAIN:LEVEL
,DOMAIN:LEVEL
40.4. NetworkManager ログの表示
トラブルシューティング用の NetworkManager ログを表示できます。
手順
ログを表示するには、以下を入力します。
#
journalctl -u NetworkManager -b
関連情報
-
man ページの
NetworkManager.conf(5)
-
journalctl
man ページ
第41章 ネットワークパケットのキャプチャー
ネットワークの問題と通信をデバッグするには、ネットワークパケットをキャプチャーできます。以下のセクションでは、ネットワークパケットのキャプチャーに関する手順と追加情報を提供します。
41.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 プログラムのエントリーで着信パケットをキャプチャーします。
Red Hat は、サポート対象外のテクノロジープレビューとして xdpdump
を提供します。
xdpdump
には、パケットフィルターまたはデコード機能がないことに注意してください。ただし、パケットのデコードに tcpdump
と組み合わせて使用できます。
この手順では、enp1s0
インターフェース上のパケットをすべてキャプチャーして、/root/capture.pcap
ファイルに書き込む方法を説明します。
前提条件
- XDP プログラムをサポートするネットワークドライバー。
-
XDP プログラムが
enp1s0
インターフェースに読み込まれている。プログラムが読み込まれていない場合は、xdpdump が後方互換性としてtcpdump
と同様にパケットをキャプチャー
します。
手順
enp1s0
インターフェースでパケットをキャプチャーして、/root/capture.pcap
ファイルに書き込むには、次のコマンドを実行します。#
xdpdump -i enp1s0 -w /root/capture.pcap
- パケットの取得を停止するには、Ctrl+C を押します。
関連情報
-
xdpdump
の詳細は、xdpdump(8)
の man ページを参照してください。 -
開発者であり、
xdpdump
のソースコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。
41.2. 関連情報
- How to capture network packets with tcpdump? ナレッジベースソリューション
第42章 RHEL で特定のカーネルバージョンを使用
カーネルは Linux オペレーティングシステムのコアコンポーネントで、システムリソースを管理し、ハードウェアアプリケーションおよびソフトウェアアプリケーション間のインターフェースを確立します。場合によっては、カーネルはネットワーク機能に影響する可能性があるため、常に最新バージョンのカーネルを使用することが推奨されます。必要に応じて、同じ x-stream カーネルの以前のバージョンにカーネルをダウングレードし、システムの起動中に特定のバージョンを選択することも可能です。
本セクションでは、カーネルをアップグレードまたはダウングレードする場合に備えて、GRUB ブートローダーでカーネルを選択する方法を説明します。
42.1. 以前のカーネルバージョンを使用した RHEL の起動
デフォルトでは、アップデート後、システムがカーネルの最新バージョンを起動します。Red Hat Enterprise Linux では、同時に 3 つのカーネルバージョンをインストールできます。これは /etc/dnf/dnf.conf
ファイルで定義されます (installonly_limit=3
)。
システムが新しいカーネルで読み込まれたときに問題が発生した場合は、以前のカーネルで再起動し、実稼働マシンを復元できます。問題のトラブルシューティングは、サポートチームにお問い合わせください。
手順
- システムを起動します。
- GRUB ブートローダーにインストール済みカーネルが表示されます。↑ キーおよび ↓ キーを使用してカーネルを選択し、Enter を押して起動します。
関連情報
-
Changing the default kernel to boot using the
grubby
tool. - カーネルのインストールおよび更新の詳細は、「yum を使用したカーネルの更新」を参照してください。
第43章 DHCP サービスの提供
DHCP (Dynamic Host Configuration Protocol) は、クライアントに IP 情報を自動的に割り当てるネットワークプロトコルです。
本セクションでは、dhcpd
サービスに関する一般情報と、DHCP サーバーおよび DHCP リレーの設定方法を説明します。
DHCP を提供する手順が、IPv4 および IPv6 のネットワークで異なる場合は、本章のセクションで、両方のプロトコルの手順を紹介します。
43.1. DHCPv4 および DHCPv6 で dhcpd を使用する場合の相違点
dhcpd
サービスは、1 台のサーバーで DHCPv4 と DHCPv6 の両方を提供できます。ただし、各プロトコルに DHCP を提供するには、別に設定ファイルを使用する dhcpd
のインスタンスがそれぞれ必要です。
- DHCPv4
-
設定ファイル -
/etc/dhcp/dhcpd.conf
-
systemd サービス名 -
dhcpd
-
設定ファイル -
- DHCPv6
-
設定ファイル -
/etc/dhcp/dhcpd6.conf
-
systemd サービス名 -
dhcpd6
-
設定ファイル -
43.2. dhcpd サービスのリースデータベース
DHCP リースは、dhcpd
サービスがネットワークアドレスをクライアントに割り当てる期間です。dhcpd
サービスは、DHCP リースを以下のデータベースに保存します。
-
DHCPv4 の場合 -
/var/lib/dhcpd/dhcpd.leases
-
DHCPv6 の場合 -
/var/lib/dhcpd/dhcpd6.leases
データベースファイルを手動で更新すると、データベースが破損する可能性があります。
リースデータベースには、メディアアクセス制御 (MAC) アドレスに割り当てられた IP アドレス、リースが期限切れになる際のタイムスタンプなど、割り当てられたリースに関する情報が含まれます。リースデータベースのタイムスタンプはすべて、協定世界時 (UTC) であることに注意してください。
dhcpd
サービスは、定期的にデータベースを再作成します。
サービスは、既存のファイルの名前を変更します。
-
/var/lib/dhcpd/dhcpd.leases
から/var/lib/dhcpd/dhcpd.leases~
-
/var/lib/dhcpd/dhcpd6.leases
から/var/lib/dhcpd/dhcpd6.leases~
-
-
このサービスは、新たに作成された
/var/lib/dhcpd/dhcpd.leases
ファイルおよび/var/lib/dhcpd/dhcpd6.leases
ファイルに、既知のリースをすべて書き込みます。
関連情報
-
リースデータベースに保存されている内容の詳細は、man ページの
dhcpd.leases(5)
を参照してください。 - 「破損したリースデータベースの復元」
43.3. DHCPv6 と radvd の比較
IPv6 ネットワークでは、ルーター広告メッセージのみが IPv6 デフォルトゲートウェイに関する情報を提供します。これにより、デフォルトのゲートウェイ設定を必要とするサブネットで DHCPv6 を使用する場合は、ルーター通知デーモン (radvd
) などのルーター広告サービスを追加で設定する必要があります。
radvd
サービスは、ルーター通知パケットのフラグを使用して、DHCPv6 サーバーの可用性をアナウンスします。
本セクションでは、DHCPv6 および radvd
を比較し、radvd
の設定に関する情報を提供します。
DHCPv6 | radvd | |
---|---|---|
デフォルトゲートウェイに関する情報を提供する。 | いいえ | はい |
プライバシーを保護するために、ランダムなアドレスを保証する。 | はい | いいえ |
その他のネットワーク設定オプションを送信する。 | はい | いいえ |
メディアアクセス制御 (MAC) アドレスを IPv6 アドレスにマッピングする。 | はい | いいえ |
43.4. IPv6 ルーター用に radvd サービスの設定
ルーター広告デーモン (radvd
) は、IPv6 のステートレス自動設定に必要なルーター広告メッセージを送信します。これにより、ユーザーがアドレス、設定、ルートを自動的に構成し、そこから提供された情報に基づいてデフォルトのルーターを選択できます。
本セクションの手順では、radvd
の設定方法を説明します。
前提条件
-
root
ユーザーとしてログインしている。
手順
radvd
パッケージをインストールします。# yum install radvd
/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 サーバーからもアドレス以外の情報を取得する必要があることを定義します。必要に応じて、システムの起動時に
radvd
が自動的に起動するように設定します。# systemctl enable radvd
radvd
サービスを起動します。# systemctl start radvd
必要に応じて、ルーター広告パッケージのコンテンツと、
radvd
が送信する設定値を表示します。# radvdump
関連情報
-
radvd
の設定方法は、man ページのradvd.conf(5)
を参照してください。 -
radvd
の設定例は、/usr/share/doc/radvd/radvd.conf.example
ファイルを参照してください。
43.5. DHCP サーバーのネットワークインターフェースの設定
デフォルトでは、dhcpd
サービスプロセスは、サービスの設定ファイルで定義されているサブネットに IP アドレスのあるネットワークインターフェースでのみ要求します。
たとえば、以下のシナリオでは、dhcpd
は、enp0s1
ネットワークインターフェースでのみリッスンします。
-
/etc/dhcp/dhcpd.conf
ファイルには、192.0.2.0/24 ネットワークのsubnet
定義しかない。 -
enp0s1
ネットワークインターフェースが 192.0.2.0/24 サブネットに接続されている。 -
enp7s0
インターフェースが別のサブネットに接続されます。
DHCP サーバーに同じネットワークに接続された複数のネットワークインターフェイスが含まれているにもかかわらず、サービスが特定のインターフェイスでのみリッスンする必要がある場合にのみ、本セクションの手順に従ってください。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 -
dhcp-server
パッケージがインストールされている。
手順
IPv4 ネットワークの場合:
/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
パッケージの今後の更新により、変更が上書きされます。/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
インターフェースでのみリッスンするように設定します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
dhcpd
サービスを再起動します。# systemctl restart dhcpd.service
IPv6 ネットワークの場合:
/usr/lib/systemd/system/dhcpd6.service
ファイルを/etc/systemd/system/
ディレクトリーにコピーします。# cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/
/usr/lib/systemd/system/dhcpd6.service
ファイルは編集しないでください。dhcp-server
パッケージの今後の更新により、変更が上書きされます。/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
インターフェースでのみリッスンするように設定します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
dhcpd6
サービスを再起動します。# systemctl restart dhcpd6.service
43.6. DHCP サーバーに直接接続されたサブネット用の DHCP サービスの設定
DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続されている場合は、以下の手順を使用します。サーバーのネットワークインターフェースに、このサブネットの IP アドレスが割り当てられている場合は、以下のようになります。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 -
dhcpd-server
パッケージがインストールされている。
手順
IPv4 ネットワークの場合:
/etc/dhcp/dhcpd.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option domain-name "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。サーバーのインターフェースに直接接続された各 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 日)
-
必要に応じて、システムの起動時に
dhcpd
が自動的に起動するように設定します。# systemctl enable dhcpd
dhcpd
サービスを開始します。# systemctl start dhcpd
IPv6 ネットワークの場合:
/etc/dhcp/dhcpd6.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option dhcp6.domain-search "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。サーバーのインターフェースに直接接続された各 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 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。
-
必要に応じて、システムの起動時に
dhcpd6
が自動的に開始するように設定します。# systemctl enable dhcpd6
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
ファイルを参照してください。
43.7. DHCP サーバーに直接接続していないサブネット用の DHCP サービスの設定
DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続していない場合は、以下の手順に従います。これは、DHCP リレーエージェントが DHCP サーバーに要求を転送する場合を指します。DHCP サーバーのインターフェイスが、サーバーが提供するサブネットに直接接続していないためです。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 -
dhcpd-server
パッケージがインストールされている。
手順
IPv4 ネットワークの場合:
/etc/dhcp/dhcpd.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option domain-name "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。以下のように、サーバーのインターフェースに直接接続していない IPv4 サブネットに、
shared-network
宣言を追加します。shared-network example { option domain-name-servers 192.0.2.1; ... 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
のいずれかになります。
-
両方のサブネットにおけるクライアントの DNS サーバーの IP は
サーバーが直接接続し、上記の
shared-network
で指定したリモートのサブネットに到達するのに使用されるサブネットのsubnet
宣言を追加します。subnet 203.0.113.0 netmask 255.255.255.0 { }
注記サーバーがこのサブネットに DHCP サービスを提供しない場合は、以下の例のように、
subnet
宣言を空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd
は起動しません。
必要に応じて、システムの起動時に
dhcpd
が自動的に起動するように設定します。# systemctl enable dhcpd
dhcpd
サービスを開始します。# systemctl start dhcpd
IPv6 ネットワークの場合:
/etc/dhcp/dhcpd6.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option dhcp6.domain-search "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。以下のように、サーバーのインターフェースに直接接続していない 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 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。
-
両方のサブネットからのクライアントに対する DNS サーバーの IP は
サーバーが直接接続され、上記の
shared-network
で指定したリモートサブネットに到達するのに使用されるサブネットのsubnet6
宣言を追加します。subnet6 2001:db8:0:1::50:0/120 { }
注記サーバーがこのサブネットに DHCP サービスを提供しない場合、
subnet6
宣言は以下の例のように空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd
は起動しません。
必要に応じて、システムの起動時に
dhcpd6
が自動的に開始するように設定します。# systemctl enable dhcpd6
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 リレーエージェントの設定」
43.8. DHCP を使用してホストに静的アドレスの割り当て
host
宣言を使用して、DHCP サーバーを設定して、ホストのメディアアクセス制御 (MAC) アドレスに固定 IP アドレスを割り当てることができます。たとえば、この方法を使用して、常に同じ IP アドレスをサーバーまたはネットワークデバイスに割り当てます。
MAC アドレスの固定 IP アドレスを設定する場合、IP アドレスは、fixed-address
パラメーターおよび fixed-address6
パラメーターで指定されたアドレスプールの外にある必要があります。
IPv4、IPv6、またはその両方のプロトコルに固定アドレスを設定するかどうかに応じて、以下の手順を参照してください。
前提条件
-
dhcpd
サービスを設定し、実行している。 -
root
ユーザーとしてログインしている。
手順
IPv4 ネットワークの場合:
/etc/dhcp/dhcpd.conf
ファイルを編集します。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
が起動に失敗します。-
必要に応じて、このホストに固有の
host
宣言にその他の設定を追加します。
dhcpd
サービスを再起動します。# systemctl start dhcpd
IPv6 ネットワークの場合:
/etc/dhcp/dhcpd6.conf
ファイルを編集します。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
が起動に失敗するため、別の名前を使用します。-
必要に応じて、このホストに固有の
host
宣言にその他の設定を追加します。
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
ファイルを参照してください。
43.10. 破損したリースデータベースの復元
DHCP サーバーが、リースデータベースに関連するエラー (Corrupt lease file - possible data loss!
など) をログに記録すると、dhcpd
サービスが作成するコピーからリースデータベースを復元できます。このコピーには、データベースの最新のステータスが反映されない場合があることに注意してください。
リースデータベースをバックアップに置き換えるのではなく削除すると、現在割り当てられているリースに関する情報がすべて失われます。その結果、DHCP サーバーは、他のホストに割り当てられていて、まだ期限が切れていないクライアントにリースを割り当てることができます。これにより IP の競合が発生します。
DHCPv4、DHCPv6、またはその両方のデータベースを復元するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 - リースデータベースが破損している。
手順
DHCPv4 リースデータベースの復元:
dhcpd
サービスを停止します。# systemctl stop dhcpd
破損したリースデータベースの名前を変更します。
# mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corrupt
リースデータベースを更新する際に作成される
dhcp
サービスのリースデータベースのコピーを復元します。# cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leases
重要リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。
dhcpd
サービスを開始します。# systemctl start dhcpd
DHCPv6 リースデータベースの復元:
dhcpd6
サービスを停止します。# systemctl stop dhcpd6
破損したリースデータベースの名前を変更します。
# mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corrupt
リースデータベースを更新する際に作成される
dhcp
サービスのリースデータベースのコピーを復元します。# cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leases
重要リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。
dhcpd6
サービスを起動します。# systemctl start dhcpd6
43.11. DHCP リレーエージェントの設定
DHCP リレーエージェント (dhcrelay
) は、DHCP サーバーを使用しないサブネットから、他のサブネットにある 1 台以上の DHCP サーバーで、DHCP 要求および BOOTP 要求のリレーを有効にします。DHCP クライアントが情報を要求すると、DHCP リレーエージェントは、指定した DHCP サーバーの一覧に要求を転送します。DHCP サーバーが応答を返すと、DHCP リレーエージェントはこの要求をクライアントに転送します。
IPv4、IPv6、またはその両方のプロトコルに DHCP リレーを設定するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。
手順
IPv4 ネットワークの場合:
dhcp-relay
パッケージをインストールします。# yum install dhcp-relay
/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
パッケージの今後の更新により、変更がオーバーライドされます。/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 要求をリッスンし、IP192.0.2.1
で DHCP サーバーに転送します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
必要に応じて、システムの起動時に
dhcrelay
サービスが開始するように設定します。# systemctl enable dhcrelay.service
dhcrelay
サービスを開始します。# systemctl start dhcrelay.service
IPv6 ネットワークの場合:
dhcp-relay
パッケージをインストールします。# yum install dhcp-relay
/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
パッケージの今後の更新により、変更がオーバーライドされます。/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
インターフェースに接続されたネットワークに転送します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
必要に応じて、システムの起動時に
dhcrelay6
サービスが開始するように設定します。# systemctl enable dhcrelay6.service
dhcrelay6
サービスを開始します。# systemctl start dhcrelay6.service
関連情報
-
dhcrelay
の詳細は、man ページのdhcrelay(8)
を参照してください。
第44章 firewalld の使用および設定
ファイアウォール は、外部からの不要なトラフィックからマシンを保護する方法です。ファイアウォールルール セットを定義することで、ホストマシンへの着信ネットワークトラフィックを制御できます。このようなルールは、着信トラフィックを分類して、拒否または許可するために使用されます。
nftables
バックエンドを使用した firewalld
が、--direct
オプションを使用して、カスタムの nftables
ルールを firewalld
に渡すことに対応していないことに注意してください。
44.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 つだけを実行し、他のサービスを無効にします。
44.2. firewalld
の使用
44.2.1. firewalld
firewalld
は、D-Bus
インターフェースを使用して、動的にカスタマイズできるホストベースのファイアウォールを提供するファイアウォールサービスデーモンです。ルールが変更するたびに、ファイアウォールデーモンを再起動しなくても、ルールの作成、変更、および削除を動的に可能にします。
firewalld
は、ゾーン および サービス の概念を使用して、トラフィック管理を簡素化します。ゾーンは、事前定義したルールセットです。ネットワークインターフェースおよびソースをゾーンに割り当てることができます。許可されているトラフィックは、コンピューターが接続するネットワークと、このネットワークが割り当てられているセキュリティーレベルに従います。ファイアウォールサービスは、特定のサービスに着信トラフィックを許可するのに必要なすべての設定を扱う事前定義のルールで、ゾーンに適用されます。
サービスは、ネットワーク接続に 1 つ以上の ポート または アドレス を使用します。ファイアウォールは、ポートに基づいて接続のフィルターを設定します。サービスに対してネットワークトラフィックを許可するには、そのポートを 解放 する必要があります。firewalld
は、明示的に開いていないポートのトラフィックをすべてブロックします。trusted などのゾーンでは、デフォルトですべてのトラフィックを許可します。
関連情報
-
man ページの
firewalld(1)
44.2.2. ゾーン
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
- そのネットワークで、その他のコンピューターをほぼ信頼できる職場での使用向けです。選択した着信接続のみが許可されます。
このゾーンのいずれかを デフォルト ゾーンに設定できます。インターフェース接続を NetworkManager
に追加すると、デフォルトゾーンに割り当てられます。firewalld
のデフォルトゾーンは、インストール時に public
ゾーンに設定されます。デフォルトゾーンは変更できます。