第11章 ネットワーキング

i40e および i40evf を完全にサポート

i40e および i40evf カーネルドライバーがバージョン 1.3.21-k と 1.3.13 に更新されました。更新されたこれらのドライバーは以前はテクノロジープレビューとして含まれていましたが、完全にサポートされるようになりました。https://rhn.redhat.com/errata/RHEA-2016-0464.html で利用可能な Red Hat Enterprise Linux 7.2 向け i40e Driver Update Program (DUP) を適用する必要があることに注意してください。詳細については、https://access.redhat.com/articles/1400943 で利用可能なナレッジベース記事を参照してください。
以前は i40e ポートで iSCSI に関連したコマンドを実行しようとすると、ネットワーク接続が失われていました。この更新によりこのバグは修正され、iSCSI コマンドを実行することができます。

SNMP がIPv6 で clientaddr に対応

snmp.confclientaddr オプションが影響を与えることができるのは IPv4 経由で送られる発信メッセージのみでした。本リリースでは IPv6 の発信メッセージが clientaddr で指定されたインターフェースから正しく送信されるようになります。

tcpdump が -J、-j、および --time-stamp-precision オプションをサポート

kernelglibc、および libpcap はナノ秒単位の分解度のタイムスタンプを取得する API を提供するようになったので、tcpdump はこの機能を活用できるよう更新されました。利用できるタイムスタンプソースのクエリ (-J)、特定のタイムスタンプソースの設定 (-j)、分解度を指定したタイムスタンプの要求 (--time-stamp-precision) などが実行できます。

TCP/IP がバージョン 3.18 にリベース

TCP/IP スタックがアップストリームバージョン 3.18 にアップグレードされ、旧バージョンに対してバグ修正や機能強化が行われています。特に、本更新により TCP fast open 拡張が修正され、IPv6 を使用する場合に期待通りに動作するようになります。また、本更新ではオプションとなる TCP autocork 機能に対応するため DCTCP (Data Center TCP) を実装しています。

NetworkManager libreswan がバージョン 1.0.6 にリベース

以下のような多くのバグ修正と機能拡張がアップストリームから追加されました。
* パスワード処理がより強固になりました。
* 接続の開始と終了がより強固になりました。
* デフォルトのルート設定がプッシュされたルートから自動検出されます。
* 対話型パスワード要求のサポート追加
* 間違ったインポートおよびエクスポート機能の広告が修正されました。

NetworkManager がボンディングインターフェースの MTU 設定に対応

'nmcli' と GUI インターフェースの両方でボンディングインターフェースの MTU 設定が可能になりました。

NetworkManager が IPv6 ルーター広告 MTU オプションを適用前に確認

悪意のあるノードまたは間違った設定のノードは、適用されるとネットワーク通信に問題をもたらす、またはネットワーク通信ができなくする MTU を IPv6 に送信する可能性がありました。NetworkManager はこのようなイベントを正常に処理できるようになり、IPv6 接続が維持されます。

IPv6 プライバシー拡張機能がデフォルトで有効

デバイスのアクティベーション時に IPv6 プライバシー設定を決定して設定するため、NetworkManager がデフォルトで NetworkManager.conf のネットワーク設定を確認して、必要であれば /proc/sys/net/ipv6/conf/default/use_tempaddr にフォールバックするようになりました。

control-center の Network Panel が WiFi デバイス機能を表示

WiFi デバイスのサポートされる動作周波数が control-center の network panel に表示されるようになりました。

複数のインターフェースが同一ゲートウェイを指している場合、NetworkManager がルート競合を正常に処理

NetworkManager が設定されたルートを追跡し、競合ルートの設定を避けるようになりました。競合するルートがアクティブでない場合は、削除されます。

マルチホーム接続でのネットワークのブラックアウトを修正

NetworkManager は、マルチホーム接続で 2 番目のデバイスをアクティベート時に、ネットワークのブラックアウトを回避します。

NetworkManager による ip route add の変更を避ける新オプション

新たな 'never-default' オプションが接続 IP 設定に追加されました。このオプションは、NetworkManager がデフォルトのルート自体を設定しないようにし、必要に応じて管理者が異なるデフォルトのルートを設定できるようにします。

ハードウェアで通信業者が検出されない際にレガシーの network.service エラーが発生する件に関するフィクス

起動時にデバイスが通信業者を検出しない場合、NetworkManager は即座にアクティベーションを失敗とするのではなく、通信業者の検出を待機します。

NetworkManager が Wake On Lan に対応

nmcli ユーティリティーでは、デバイスごとに Wake on Lan が設定できるようになりました。

VPN 接続における firewalld ゾーンのサポートが改善

デバイスベースの VPN 接続にファイアウォールゾーンを設定する際に、このゾーンが firewalld で適切に設定できます。

Fair Queue パケットスケジューラーに対応

Fair Queue パケットスケジューラー、または fq、が Red Hat Enterprise Linux 7.2 に追加され、tc (トラフィックコントローラー) ユーティリティーを使用して選択できます。

送信の合成の追加サポート

xmit_more 機能拡張が実装され、特に TSO (TCP Segmentation Offload) が無効の際に、virtio-net と他のドライバーの送信パフォーマンスが改善されています。

ネットワークフレーム受信のパフォーマンス改善

NAPI メモリー割り当てでの IRQ 保存および回復動作を削除するコードのリファクタリングにより、ネットワークフレーム受信の際の待ち時間が短縮されました。

ルート検索のパフォーマンスが大幅改善

IPv4 FIB (Forward Information Base) コードがアップストリームから更新され、パフォーマンスが改善しています。

仮想インターフェースのネットワーク名前空間サポート

netns id が仮想インターフェースでサポートされ、ネットワーク名前空間の境界をまたいでリンクされたネットワークインターフェースの追跡が信頼できるようになりました。

Docker および LXC コンテナが net.ipv4.ip_local_port_range を読み取り可能に

net.ipv4.ip_local_port_range sysctl のネットワーク名前空間サポートが追加され、この情報へのアクセスを必要とするソフトウェアのコンテナサポートが改善しています。

'ip' ツールによる IPv6 ルートの自動設定の報告が改善

ip ツールはルート広告から mtu や hoplimit 情報を取得できませんでしたが、これが修正されました。

デュアルスタックソケットオプションが正常にエクスポート

IPV6_V6ONLY の設定時は、AF_INET6 ソケットは IPv6 が独占となります。他のケースでは、ソケットは IPv4 対応にもなります。この情報が適切にエクスポートされ、iproute2 を使って問い合わせできるようになっています。

データセンター TCP をサポート

今回のリリースでは DCTCP が実装され、データセンター環境でのネットワークパフォーマンスが改善されています。パラメーター dctcp は、sysctl で設定するか、ip route でルートベースの設定とすることができます。

ルートごとの輻輳制御

ルートベースでの異なる輻輳制御アルゴリズムを有効とするため、congctl パラメーターが ip route に追加されました。

GRO 使用時の TCP Cubic および Reno 向けの輻輳ウィンドウ処理が改善

帯域幅および輻輳ウィンドウのサイズ変更を決定する方法が改善され、大きいサイズのデータ送信に必要となる ACK パケット数が減りました。

TCP ペーシングをサポート

パラメーター SO_MAX_PACING_RATE が追加され、スループット率が考慮される環境でこの制御ができるようになりました。

クライアント TFO とサーバー TFO の両方をサポート

TCP Fast Open 機能が追加され、RFC 7413 割り当てオプション番号を使用します。

TCP ACK ループの移行

重複 TCP ACK の処理が改善され、バグのあるまたは潜在的に悪意のあるミドルボックスの問題を防ぎます。

nf_conntrack_proto_sctp によるセカンダリーエンドポイントの最小サポート

基本的なマルチホーミングサポートが SCTP に追加されました。

AF_UNIX 実装のリベース

AF_UNIX (AF_LOCAL とも呼ばれる) コードが更新され、多くの修正と機能拡張が含まれています。特に、sendpage と splice (zerocopy とも呼ばれる) がサポートされています。

Kernel トンネリングサポートがアップストリームにリベース

kernel トンネリングドライバーが kernel 4 から更新され、特に VXLAN など多くの修正や機能拡張がなされています。

GRE へのネットワーク名前空間の横断サポートを追加

gre と ip6gre の両方を x-netns でサポートしています。

VXLAN で仮想マシントラフィックの実行時にパフォーマンスが改善

コードを変換する送信フローが更新され、仮想マシン空のトラフィックがトンネルに向けられる際のパフォーマンスが改善しています。

VXLAN または GRE トンネルから受信した VLAN フレームのアンロードが改善

多くの変更により GRO サポートが導入され、VXLAN と NVGRE トンネリングでのパフォーマンスが改善しています。

Open vSwitch トンネリングのパフォーマンス改善

tx-nocache-copy デバイス機能はデフォルトで無効となりました。以前のデフォルトでは、多くのワークロードで、特に VXLAN で実行されている OVS トンネルで大量のオーバーヘッドを作り出していました。

IPsec 処理の改善

IPsec が多くの修正と機能拡張を提供するよう更新されました。このリリースでは、特に発信インターフェースに照合する機能が提供されています。

netns 機能を含む VTI6 サポート

netns 機能を含む IPv6 用 Virtual Tunnel Interfaces がカーネルに追加されました。

nf_conntrack_buckets のデフォルト値が増大

モジュールの読み込み時にパラメーターと指定されていない場合、バケットのデフォルト値はメモリー総数を 16384 で割って計算されます。ハッシュテーブルでは、バケットは 32 より少なくなることはなく、最大 16384 バケットです。ただしメモリーが 4GB 以上のシステムでは、上限は 65536 バケットになります。

大型 SMP マシンでの iptables のメモリー使用量の改善

これまでは、大型の iptables ルールセットは大量のメモリーを不必要に使用することがありました。これは、CPU ごとにルールセットを保存していたからです。ルールセットの保存方法が変更され、メモリーオーバーヘッドが低減されています。

ネットワークボンディングドライバーが更新

メンテナンス性を高めるため、カーネルネットワークボンディングドライバーが更新され、アップストリームソースと一致しています。

ボンディングおよび 802.3ad (LACP) 用のカーネル netlink インターフェース

LACP デバイス上でボンディングパラメーターを読み取り、設定するための新たな netlink インターフェースがカーネルに追加されました。

VLAN での mactap と macvtap のパフォーマンス改善

セグメント化問題に関する低スループットの問題に対処しています。
* mactap での e1000 デバイスから virtio デバイスへの通信。
* ゲストで VLAN 使用時における外部ホストとの通信。
* ゲストおよびホストの両方での VLAN を使った KVM ホストとの通信。

ethtool ネットワーククエリの改善

IBM System z 上の Red Hat Enterprise Linux 7.1 では、テクノロジープレビューとして ethtool ユーティリティーのネットワーククエリ機能が強化され、Red Hat Enterprise Linux 7.2 からは完全サポートとなっています。この結果、強化されたクエリ機能と互換性のあるハードウェアを使用すると、ethtool は改善された監視機能オプションを提供し、より正確なネットワークカードの設定や値の表示ができます。