第13章 ネットワーク
dhcp-script
の出力におけるエラー処理が改善されました。
以前は、
dhcp-script
の出力内のエラーは無視されていました。この更新により、スクリプトの出力は add
、old
、del
、arp-add
、arp-del
、tftp
アクションで記録されます。その結果、dnsmasq
の実行中にエラーが表示されます。
リース初期化アクションは
Dnsmasq
の開始時にのみ発生することに注意してください。この更新により、出力の概要のみがログに記録され、ログのために systemd
サービスに渡される標準エラー出力は記録されません。(BZ#1188259)
ネットワーク名前空間の分離が ipset
に追加されました
以前は、
ipset
エントリーは表示され、任意のネットワーク名前空間によって変更できました。この更新により、ipset
にネットワーク名前空間ごとの分離が提供されます。その結果、ipset
設定は名前空間ごとに分離されます。(BZ#1226051)
NetworkManager
は、ソースルーティングを有効にする複数のルーティングテーブルをサポートするようになりました
この更新により、ユーザーが手動で設定できる IPv4 および IPv6 ルートの新しい table 属性が追加されました。手動の静的なルート 1 つに対して、ルーティングテーブルを 1 つ選択できます。その結果、ルートのテーブルを設定すると、そのテーブルにルートが設定されることになります。さらに、接続プロファイルのデフォルトのルーティングテーブルは、IPv4 と IPv6 のそれぞれに新しい
ipv4.route-table
と ipv6.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 出力のサポートが追加されました。
- より多くのインターフェイスタイプ属性のサポートが追加されました。
- カラー出力のサポートが追加されました。
label
、dev
オプション、およびip-monitor
状態のrule
オブジェクトのサポート。- ip-rule コマンドのセレクターのサポートが追加されました。
さらに、
tc
ユーティリティーの注目すべき改善点は次のとおりです。
tc
の bash 補完関数のサポート。tc
にvlan
アクションが導入されました。Pedit
アクションの拡張モードが導入されました。csum
アクションでの Stream Control Transmission Protocol (SCTP) のサポートが追加されました。
他のツールの場合:
lnstat
ツールの拡張統計情報のサポートが追加されました。nstat
ユーティリティーでのSCTP
のサポートが追加されました。(BZ#1435647)
tc-pedit
アクションは、レイヤー 2
およびレイヤー 4
を基準とした offset をサポートするようになりました。
tc-pedit
アクションにより、パケットデータの変更が可能になります。この更新により、レイヤー 2
、3
、および 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_zones、local_zones_remove、local_datas、および local_datas_remove コマンドを使用します。libldns
はlibunbound
の依存関係ではなくなり、libunbound とともにインストールされなくなります。- 新しい so-reuseport: オプションを使用して、Linux 上のスレッドにクエリーを均等に分散できるようになりました。
- 新しいリソースレコードタイプが追加されました:
CDS
、CDNSKEY
、URI
(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-tag、access-control-tag、access-control-tag-action、access-control-tag-data、local-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-SHA1
、HMAC-SHA224
、HMAC-SHA256
、HMAC-SHA384
、または HMAC-SHA512
のサポートが追加されます。(BZ#1396985)
IPTABLES_SYSCTL_LOAD_LIST
が sysctl.d
ファイルをサポートするようになりました
IPTABLES_SYSCTL_LOAD_LIST
の sysctl
設定は、iptables
サービスの再起動時に iptables
init スクリプトによって再ロードされます。変更された設定は、以前は /etc/sysctl.conf
ファイル内でのみ検索されていました。この更新では、/etc/sysctl.d/
ディレクトリー内のこれらの変更を検索するためのサポートも追加されています。その結果、iptables サービスの再起動時に、/etc/sysctl.d/
内のユーザーが指定したファイルが正しく考慮されるようになりました。(BZ#1402021)
SCTP
が MSG_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.conf
のoptions
行にno-reload
オプションを追加します。システム設定によっては、/etc/resolv.conf
ファイルがネットワークサブシステムの設定の一部として自動的に上書きされ、no-reload
オプションが削除される場合があることに注意してください。- 以前の 6 つの検索ドメインエントリーの制限は削除されます。
/etc/resolv.conf
のsearch
ディレクティブを使用して、任意の数のドメインを指定できるようになりました。エントリーを追加すると、DNS 処理に大幅なオーバーヘッドが追加される可能性があることに注意してください。エントリー数が 3 を超える場合は、ローカルキャッシュリゾルバーの実行を検討してください。 getaddrinfo()
関数におけるさまざまな境界条件の処理が修正されました。/etc/hosts
ファイル内の非常に長い行 (コメントを含む) が、他の行からの検索結果に影響を与えなくなりました。特定の/etc/hosts
設定を持つシステムでのスタック枯渇に関連する予期しない終了は発生しなくなりました。