Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第13章 ネットワーク

dhcp-script の出力におけるエラー処理が改善されました。

以前は、dhcp-script の出力内のエラーは無視されていました。この更新により、スクリプトの出力は addolddelarp-addarp-deltftp アクションで記録されます。その結果、dnsmasq の実行中にエラーが表示されます。
リース初期化アクションは Dnsmasq の開始時にのみ発生することに注意してください。この更新により、出力の概要のみがログに記録され、ログのために systemd サービスに渡される標準エラー出力は記録されません。(BZ#1188259)

ネットワーク名前空間の分離が ipset に追加されました

以前は、ipset エントリーは表示され、任意のネットワーク名前空間によって変更できました。この更新により、ipset にネットワーク名前空間ごとの分離が提供されます。その結果、ipset 設定は名前空間ごとに分離されます。(BZ#1226051)

NetworkManager は、ソースルーティングを有効にする複数のルーティングテーブルをサポートするようになりました

この更新により、ユーザーが手動で設定できる IPv4 および IPv6 ルートの新しい table 属性が追加されました。手動の静的なルート 1 つに対して、ルーティングテーブルを 1 つ選択できます。その結果、ルートのテーブルを設定すると、そのテーブルにルートが設定されることになります。さらに、接続プロファイルのデフォルトのルーティングテーブルは、IPv4 と IPv6 のそれぞれに新しい ipv4.route-tableipv6.route-table 設定を使用して設定できます。この設定を明示的に上書きする手動ルートを除き、これらの設定によりルートがどのテーブルに配置されるかが決まります。(BZ#1436531)

nftables がバージョン 0.8 にリベースされました

nftables パッケージがバージョン 0.8 にアップグレードされ、以前のバージョンに対するバグ修正や機能強化が数多く追加されました。主な変更点は、以下のとおりです。
  • 任意のキーの組み合わせのハッシュのサポートが追加されました。
  • チェックサム調整を含む、非バイトバインドのパケットヘッダーフィールドの設定のサポートが追加されました。
  • セット要素定義の変数参照や要素コマンドからの変数定義が利用できるようになりました。
  • フラッシュセットのサポートが追加されました。
  • ロギングフラグのサポートが追加されました。
  • tc classid パーサーのサポートが追加されました。
  • リンク層アドレスに関するエンディアンの問題が解決されました。
  • 定義上でマップフラグを保持するパーサーが修正されました。
  • カーネルが想定するように、時間データ型はミリ秒を使用するようになりました。(BZ#1472261)

NetworkManager に追加された永続的な DHCP クライアント動作

この更新により、ipv4.dhcp-timeout プロパティーを 32 ビット整数の最大値 (MAXINT32) 値または 無限 値に設定できるようになりました。その結果、NetworkManager による DHCP サーバーからのリースの取得または更新の試行は、成功するまで停止しません。(BZ#1350830)

NetworkManager は チームオプションを公開するための新しいプロパティーを公開します

以前は、NetworkManager は、config プロパティーに JSON 文字列を提供する接続にチーム設定を適用していました。そのプロパティーはチーム設定で使用できる唯一のプロパティーでした。この更新により、チーム設定オプションに 1 対 1 で一致する新しいプロパティーが NetworkManager に追加されます。その結果、設定は、NetworkManager 設定 プロパティーの一意の JSON 文字列を通じて、または新しいチームプロパティーに値を割り当てることによって提供される可能性があります。config に適用された設定変更はすべて、新しいチームプロパティーに反映され、その逆も同様です。チーム Link-watchers と Team.runner の正しい設定が NetworkManager に適用されるようになりました。リンクウォッチャーとチームランナーの設定が間違っているか不明な場合、チーム全体の接続が拒否されます。
新しい runner のプロパティーを変更すると、特定のランナーに関連するすべてのプロパティーがデフォルトにリセットされることに注意してください。(BZ#1398925)

パケットマークが返信に反映されるようになりました

以前は、閉じられたポートで接続リクエストを受信すると、エラーパケットがクライアントに送り返されていました。受信接続がいくつかのファイアウォールルールでマークされている場合、この機能がカーネルに実装されていなかったため、生成されたエラーメッセージにはこのマークがありませんでした。この更新により、生成されたエラーメッセージには、接続を開始しようとした受信パケットと同じマーキングが付けられます。(BZ#1469857)

NTP の新しいソケットタイムスタンプオプション

この更新により、chrony などの ネットワークタイムプロトコル (NTP) 実装のボンディングおよびその他の仮想インターフェイスを使用したハードウェアタイムスタンプ用の SOF_TIMESTAMPING_OPT_PKTINFO および SOF_TIMESTAMPING_OPT_TX_SWHW ソケットタイムスタンプオプションが追加されました。(BZ#1421164)

iproute2 がバージョン 4.11.0 にリベースされました

iproute2 パッケージがアップストリームバージョン 4.11.0 にアップグレードされ、バグ修正および機能拡張が数多く追加されました。特に、ip ツールには次のものが含まれます。
  • さまざまなコマンドへの JSON 出力のサポートが追加されました。
  • より多くのインターフェイスタイプ属性のサポートが追加されました。
  • カラー出力のサポートが追加されました。
  • labeldev オプション、および ip-monitor 状態の rule オブジェクトのサポート。
  • ip-rule コマンドのセレクターのサポートが追加されました。
さらに、tc ユーティリティーの注目すべき改善点は次のとおりです。
  • tc の bash 補完関数のサポート。
  • tcvlan アクションが導入されました。
  • Pedit アクションの拡張モードが導入されました。
  • csum アクションでの Stream Control Transmission Protocol (SCTP) のサポートが追加されました。
他のツールの場合:
  • lnstat ツールの拡張統計情報のサポートが追加されました。
  • nstat ユーティリティーでの SCTP のサポートが追加されました。(BZ#1435647)

tc-pedit アクションは、レイヤー 2 およびレイヤー 4 を基準とした offset をサポートするようになりました。

tc-pedit アクションにより、パケットデータの変更が可能になります。この更新により、レイヤー 23、および 4 ヘッダーに関連する offset オプションを指定するためのサポートが tc-pedit に追加されました。これにより、pedit header の処理がより堅牢かつ柔軟になります。その結果、イーサネットヘッダーの編集がより便利になり、レイヤー 4 ヘッダーへのアクセスはレイヤー 3 ヘッダーサイズとは独立して機能します。(BZ#1468280)

iproute にバックポートされた機能

多くの機能強化が iproute パッケージにバックポートされました。主な変更点は、以下のとおりです。
  • パイプラインデバッグサポートが、dpipe サブコマンドを介して devlink ツールに追加されました。
  • ハードウェアオフロードステータスは、in_hw フラグ または not_in_hw フラグで示される tc フィルターで利用できるようになりました。
  • tc pedit アクションでの IPv6 のサポートが追加されました。
  • eSwitch カプセル化の設定と取得のサポートが devlink ツールに追加されました。
  • TC フラワーフィルターのマッチング機能が強化されました。
  • TCP フラグのマッチングのサポート。
  • IP ヘッダーのサービスタイプ (ToS) フィールドと存続時間 (TTL) フィールドのマッチングのサポート。
(BZ#1456539)

Geneve ドライバーがバージョン 4.12 にリベースされました

Geneve ドライバーはバージョン 4.12 に更新され、Geneve トンネリングを使用する Open vSwitch (OVS) または Open Virtual Network (OVN) デプロイメントに対するいくつかのバグ修正と機能拡張が提供されています。(BZ#1467288)

VXLAN および GENEVE オフロード用に追加された制御スイッチ

この更新では、VXLAN および GENEVE トンネルのネットワークカードへのオフロードを有効または無効にする新しい制御スイッチが ethtool ユーティリティーに追加されます。この機能強化により、VXLAN または GENEVE トンネルの問題のデバッグが容易になります。さらに、ethtool を使用して機能を無効にすることで、これらのタイプのトンネルをネットワークカードにオフロードすることによって発生する問題を解決できます。(BZ#1308630)

unbound がバージョン 1.6.6 にリベースされました

unbound パッケージがアップストリームバージョン 1.6.6 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべき変更点は次のとおりです。
  • RFC 7816 に準拠した DNS クエリー名 (QNAME) の最小化が実装されました。
  • 新しい max-udp-size 設定オプションが追加されました。デフォルト値は 4096 です。
  • 新しい DNS64 モジュールと新しい dns64-prefix オプションが追加されました。
  • 新しい insecure_add および insecure_remove コマンドが、ネガティブトラストアンカーを管理するための unbound-control ユーティリティーに追加されました。
  • unbound-control ユーティリティーでは、Local Zone とローカルデータを一括で追加および削除できるようになりました。これらのアクションを実行するには、local_zoneslocal_zones_removelocal_datas、および local_datas_remove コマンドを使用します。
  • libldnslibunbound の依存関係ではなくなり、libunbound とともにインストールされなくなります。
  • 新しい so-reuseport: オプションを使用して、Linux 上のスレッドにクエリーを均等に分散できるようになりました。
  • 新しいリソースレコードタイプが追加されました: CDSCDNSKEYURI (RFC 7553 による)、CSYNC、および OPENPGPKEY
  • 新しい local-zone タイプが追加されました。クライアント IP を使用してメッセージをログに記録する inform と、クエリーをログに記録してその回答をドロップする Inform_deny です。
  • ローカルソケットを介したリモート制御が利用できるようになりました。control-interface:/path/sock および control-use-cert: no コマンドを使用します。
  • 非ローカル IP アドレスにバインドするための新しい ip-transparent: 設定オプションが追加されました。
  • インターフェイスまたはアドレスがダウンしているときに IP アドレスにバインドするための新しい ip-freebind: 設定オプションが追加されました。
  • 新しい harden-algo-downgrade: 設定オプションが追加されました。
  • 現在、次のドメインがデフォルトでブロックされています: onion (RFC 7686 に準拠)、test、および valid (RFC 6761 に準拠)。
  • libunbound ライブラリー用のユーザー定義のプラグ可能なイベント API が追加されました。
  • Unbound の作業ディレクトリーを設定するには、unbound.conf ファイル内の include: file ステートメントを指定して directory : dir を使用するか、または絶対パスを指定して chroot コマンドを使用します。
  • きめ細かいローカルゾーン制御は、次のオプションを使用して実装されています: define-tagaccess-control-tagaccess-control-tag-actionaccess-control-tag-datalocal-zone-tag、および local-zone-override
  • 新しい outgoing-interface: netblock/64 IPv6 オプションが追加され、ランダムな 64 ビットローカル部分を持つすべてのクエリーに対して Linux freebind 機能が使用されます。
  • クエリーログと同様の、DNS 応答のログが追加されました。
  • キータグクエリーと trustanchor.unbound CH TXT クエリーを使用するトラストアンカーシグナリングが実装されました。
  • DNS (EDNS) クライアントサブネットの拡張メカニズムが実装されました。
  • 日和見的 IPsec サポートモジュールである ipsecmod が 実装されました。(BZ#1251440)

DHCP が標準の動的 DNS 更新をサポートするようになりました

この更新により、DHCP サーバーは標準プロトコルを使用して DNS レコードを更新できるようになります。その結果、DHCP は、RFC 2136: https://tools.ietf.org/html/rfc2136 で説明されている標準の動的 DNS 更新をサポートします。(BZ#1394727)

DDNS が追加のアルゴリズムをサポートするようになりました

以前は、dhcpd デーモンは、重要なアプリケーションにとって安全ではないと考えられている HMAC-MD5 ハッシュアルゴリズムのみをサポートしていました。その結果、Dynamic DNS (DDNS) 更新は安全ではない可能性がありました。この更新により、追加アルゴリズム HMAC-SHA1HMAC-SHA224HMAC-SHA256HMAC-SHA384、または HMAC-SHA512 のサポートが追加されます。(BZ#1396985)

IPTABLES_SYSCTL_LOAD_LISTsysctl.d ファイルをサポートするようになりました

IPTABLES_SYSCTL_LOAD_LISTsysctl 設定は、iptables サービスの再起動時に iptables init スクリプトによって再ロードされます。変更された設定は、以前は /etc/sysctl.conf ファイル内でのみ検索されていました。この更新では、/etc/sysctl.d/ ディレクトリー内のこれらの変更を検索するためのサポートも追加されています。その結果、iptables サービスの再起動時に、/etc/sysctl.d/ 内のユーザーが指定したファイルが正しく考慮されるようになりました。(BZ#1402021)

SCTPMSG_MORE をサポートするようになりました

MSG_MORE フラグは、完全なパケットの送信準備が整うまで、またはこのフラグを指定しない呼び出しが実行されるまで、小さなデータをバッファーリングするために設定されます。この更新により、ストリーム制御伝送プロトコル (SCTP) での MSG_MORE のサポートが追加されました。その結果、小さなデータチャンクをバッファーリングし、完全なパケットとして送信できます。(BZ#1409365)

MACsec がバージョン 4.13 にリベースされました

Media Access Control Security (MACsec) ドライバーがアップストリームバージョン 4.13 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と拡張機能が提供されています。主な機能強化は、次のとおりです。
  • Generic Receive Offload (GRO) および Receive Packet Steering (RPS)MACsec デバイスで有効になっています。
  • MODULE_ALIAS_GENL_FAMILY モジュールが追加されました。これにより、モジュールがまだロードされていない場合でも、wpa_supplicant などのツールを起動できます。(BZ#1467335)

Open vSwitch で mlx5 ドライバーを使用する場合のパフォーマンスの向上

Open vSwitch (OVS) アプリケーションを使用すると、仮想マシンが相互に通信したり、物理ネットワークと通信したりできるようになります。OVS はハイパーバイザー内に存在し、スイッチングはフロー上の 12 タプルのマッチングに基づいています。ただし、OVS ソフトウェアベースのソリューションは CPU に非常に負荷がかかります。これはシステムのパフォーマンスに影響を与え、利用可能な帯域幅を完全に使用できなくなります。
この更新により、Mellanox ConnectX-4、ConnectX-4 Lx、および ConnectX-5 アダプターの mlx5 ドライバーが OVS をオフロードできるようになりました。Mellanox Accelerated Switching And Packet Processing (ASAP2) Direct テクノロジーは、未変更の OVS コントロールプレーンを維持しながら、Mellanox ConnectX-4 以降のネットワークインターフェイスカードを使用して OVS データプレーンを Mellanox Embedded Switch または eSwitch で処理することにより、OVS のオフロードを可能にします。その結果、OVS のパフォーマンスが大幅に向上し、CPU への負荷が軽減されます。
ASAP2 Direct でサポートされている現在のアクションには、パケットの解析と照合、転送、ドロップ、および VLAN プッシュ/ポップ、または VXLAN のカプセル化とカプセル化解除が含まれます。(BZ#1456687)

Netronome NFP イーサネットドライバーが、representor netdev 機能をサポートするようになりました。

この更新では、Netronome NFP イーサネットドライバーの representor netdev 機能が Red Hat Enterprise Linux 7.5 にバックポートされます。この機能強化により、ドライバーは次のことが可能になります。
  • フォールバックトラフィックを送受信するには
  • Open vSwitch で使用される
  • TC-Fflower ユーティリティーを使用して NFP ハードウェアへのプログラミングフローをサポートするには (BZ#1454745)

TC-Fflower アクションのオフロードのサポート

この更新では、TC-Fflower 分類子のオフロードと、Open vSwitch のオフロードに関連するアクションのサポートが追加されました。これにより、Netronome SmartNIC を使用した Open vSwitch の高速化が可能になります。(BZ#1468286)

DNS スタブリゾルバーの改善

glibc パッケージの DNS スタブリゾルバーは、アップストリームの glibc バージョン 2.26 に更新されました。主な改善点とバグ修正は次のとおりです。
  • /etc/resolv.conf ファイルへの変更は自動的に認識され、実行中のプログラムに適用されるようになりました。以前の動作を復元するには、/etc/resolv.confoptions 行に no-reload オプションを追加します。システム設定によっては、/etc/resolv.conf ファイルがネットワークサブシステムの設定の一部として自動的に上書きされ、no-reload オプションが削除される場合があることに注意してください。
  • 以前の 6 つの検索ドメインエントリーの制限は削除されます。/etc/resolv.confsearch ディレクティブを使用して、任意の数のドメインを指定できるようになりました。エントリーを追加すると、DNS 処理に大幅なオーバーヘッドが追加される可能性があることに注意してください。エントリー数が 3 を超える場合は、ローカルキャッシュリゾルバーの実行を検討してください。
  • getaddrinfo() 関数におけるさまざまな境界条件の処理が修正されました。/etc/hosts ファイル内の非常に長い行 (コメントを含む) が、他の行からの検索結果に影響を与えなくなりました。特定の /etc/hosts 設定を持つシステムでのスタック枯渇に関連する予期しない終了は発生しなくなりました。
  • 以前は、/etc/resolv.confrotate オプションが有効になっている場合、新しいプロセスの最初の DNS クエリーは常に /etc/resolv.conf のネームサーバーリストに設定されている 2 番目のネームサーバーに送信されていました。この動作は変更され、最初の DNS クエリーでリストからネームサーバーがランダムに選択されるようになりました。後続のクエリーは、以前と同様に、使用可能なネームサーバーを循環して実行されます。(BZ#677316, BZ#1432085, BZ#1257639, BZ#1452034, BZ#1329674)