第13章 ネットワーク

dhcp-script 出力のエラー処理機能が向上

以前のリリースでは、dhcp-script 出力のエラーはすべて無視されていました。今回の更新で、スクリプトの出力が addolddelarp-addarp-deltftp アクションに記録されるようになりました。その結果、dnsmasq の実行中にエラーが表示されます。
lease-init アクションは Dnsmasq の開始時にしか発生しない点に注意してください。今回の更新で、標準のエラー出力ではなく出力の概要だけが、lease-init アクションにより systemd サービスに渡されて記録されるようになりました。(BZ#1188259)

ipset にネットワーク名前空間の分離を追加

以前のリリースでは、ipset のエントリーが任意のネットワーク名前空間から見られる状態にあり、修正が可能でした。今回の更新で、ipset にネットワーク名前空間ごとの分離機能が追加されました。その結果、ipset の設定が名前空間ごとに分離されました。(BZ#1226051)

NetworkManager が複数のルーティングテーブルをサポートし、ソースルーティングが可能に

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

nftables がバージョン 0.8 にリベース

nftables パッケージが 0.8 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更点は以下のとおりです。
  • 新たな式: fibnumgenquotartnotrack が追加されました。
  • 任意の鍵の組み合わせをハッシュできるようになりました。
  • チェックサムの調整を含めて、非バイトバウンドパケットヘッダーフィールドを設定できるようになりました。
  • エレメント定義を設定する際の変数参照、およびエレメントコマンドからの変数定義を使うことができるようになりました。
  • 一括フラッシュのサポートが追加されました。
  • フラグが記録されるようになりました。
  • tc classid パーサーのサポートが追加されました。
  • リンクレイヤーアドレスとのエンディアンの問題が解消されました。
  • 従来、パーサーは別のフラグが付いたマップを維持していましたが、この問題が解消されました。
  • カーネルの仕様に合わせて、時間のデータタイプにミリ秒が使われるようになりました。(BZ#1472261)

NetworkManager に永続的な DHCP クライアント挙動を追加

今回の更新で、ipv4.dhcp-timeout プロパティーを 32 ビット整数の最大値 (MAXINT32) または infinity のどちらかに設定できるようになりました。その結果、NetworkManager は、成功するまで DHCP サーバーからリースの取得/更新を試み続けます。(BZ#1350830)

チームオプションに対応する新たなプロパティーを NetworkManager に追加

以前のリリースでは、NetworkManagerconfig プロパティーに JSON ストリングを提供して接続にチームの構成を適用していましたが、チーム設定で利用することができるのはこのプロパティーだけでした。今回の更新で、チームの構成オプションに一対一に対応する新たなプロパティーが NetworkManager に追加されました。その結果、NetworkManager config プロパティーの固有 JSON ストリングを通じて、あるいは新たなチームプロパティーに値を割り当てて、設定が提供されるようになりました。config に適用されたすべての設定変更は、新たなチームプロパティーに反映されます (その逆も同様)。NetworkManager では、チームの link-watcher および team.runner を正しく設定することが要求されるようになりました。link-watcher および team.runner 設定が無効または不明な場合には、チームの接続全体が拒否されます。
新規の runner プロパティーを変更すると、特定のランナーに関連するすべてのプロパティーがデフォルトにリセットされる点に注意してください。(BZ#1398925)

応答エラーがパケットマークを反映

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

NTP に対する新たなソケットタイムスタンプ処理オプション

今回の更新で、chrony 等の Network Time Protocol (NTP) 実装のボンディングまたはその他の仮想インターフェースとのハードウェアタイムスタンプ処理に対して、SOF_TIMESTAMPING_OPT_PKTINFO および SOF_TIMESTAMPING_OPT_TX_SWHW ソケットタイムスタンプ処理オプションが追加されました。(BZ#1421164)

iproute2 がバージョン 4.11.0 にリベース

iproute2 パッケージがアップストリームバージョン 4.11.0 にアップグレードされ、バグ修正および機能拡張が数多く追加されました。特に、ip ツールの変更点は以下のとおりです。
  • さまざまなコマンドに対する JSON 出力のサポートが追加されました。
  • より多くのインターフェースタイプ属性がサポートされるようになりました。
  • 出力のカラー表示がサポートされるようになりました。
  • ip-monitor による状態監視において、labeldev オプション、および rule オブジェクトがサポートされるようになりました。
  • ip-rule コマンドでセレクターのサポートが追加されました。
また、tc ユーティリティーの主な機能改善は以下のとおりです。
  • tc の bash 補完機能がサポートされるようになりました。
  • tcvlan アクションが導入されました。
  • pedit アクションの拡張モードが導入されました。
  • csum アクションでストリームコントロールトランスミッションプロトコル (SCTP) のサポートが追加されました。
その他のツールの機能改善:
  • lnstat ツールで拡張統計機能のサポートが追加されました。
  • nstat ユーティリティーで SCTP のサポートが追加されました。(BZ#1435647)

tc-pedit アクションがレイヤー 2 およびレイヤー 4 に関する offset をサポート可能に

tc-pedit アクションによりパケットデータを変更することができます。今回の更新で、レイヤー 3 に加えてレイヤー 2 および 4 ヘッダーに関する offset オプションを tc-pedit に指定できようになりました。これにより、pedit header の処理が確実で柔軟になります。その結果、イーサネットヘッダーの編集が容易になり、レイヤー 3 ヘッダーのサイズとは無関係にレイヤー 4 ヘッダーへのアクセスが機能するようになりました。(BZ#1468280)

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

さまざまな機能拡張が iproute パッケージにバックポートされました。主な変更点は以下のとおりです。
  • dpipe サブコマンドにより、devlink ツールにパイプラインデバッグのサポートが追加されました。
  • tc フィルターで in_hw または not_in_hw フラグが表示され、ハードウェアオフロードのステータスを確認できるようになりました。
  • tc pedit アクションにおける IPv6 のサポートが追加されました。
  • devlink ツールに、eSwitch カプセル化の設定および取得に対するサポートが追加されました。
  • tc flower フィルターのマッチング機能が拡張されました。
  • TCP フラグによるマッチングのサポート。
  • IP ヘッダーの type-of-service (ToS) および time-to-live (TTL) フィールドによるマッチングのサポート。
(BZ#1456539)

Geneve ドライバーがバージョン 4.12 にリベース

Geneve ドライバーがバージョン 4.12 に更新され、Geneve トンネリングを使用した Open vSwitch (OVS) または Open Virtual Network (OVN) デプロイメントのためのバグ修正および機能拡張が数多く追加されました。(BZ#1467288)

VXLAN および GENEVE オフロード処理にコントロールスイッチを追加

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

unbound がバージョン 1.6.6 にリベース

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

DHCP が標準の動的 DNS 更新をサポート可能に

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

DDNS が新たなアルゴリズムをサポート可能に

以前のリリースでは、dhcpd デーモンは HMAC-MD5 ハッシュアルゴリズム (重要なアプリケーションに対してはセキュアと考えられない) しかサポートしませんでした。したがって、動的 DNS (DDNS) の更新はセキュアではない可能性がありました。今回の更新で、新たなアルゴリズム (HMAC-SHA1HMAC-SHA224HMAC-SHA256HMAC-SHA384、または HMAC-SHA512) に対するサポートが追加されました。(BZ#1396985)

IPTABLES_SYSCTL_LOAD_LISTsysctl.d ファイルをサポート可能に

iptables サービスが再起動されると、iptables init スクリプトにより IPTABLES_SYSCTL_LOAD_LISTsysctl 設定が再読み込みされます。以前のリリースでは、変更された設定は /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 テクノロジーにより、Mellanox Embedded Switch (eSwitch) を持つ Mellanox ConnectX-4 およびそれ以降のネットワークインターフェースカードで OVS データプレーンを処理して、OVS のオフロードが可能です。その際、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-Flower ユーティリティーを使用して、NFP ハードウェアに対するプログラミングフローをサポートする (BZ#1454745)

TC-Flower のオフロード処理およびアクションに対するサポートを追加

今回の更新で、TC-Flower 分類子のオフロード処理に対するサポート、および 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)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。