Red Hat Training

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

2.3. 制御可能な設定項目について

設定項目は、カーネルのサブシステムによっていくつかのグループに分けられます。Red Hat Enterprise Linux システムにおける設定項目には、以下のクラスがあります。

表2.1 sysctl インターフェイスの表

クラスサブシステム

abi

実行ドメインおよびパーソナリティー

crypto

暗号化インターフェイス

debug

カーネルのデバッグインターフェイス

dev

デバイスの詳細

fs

グローバルおよび固有のファイルシステムの設定項目

kernel

グローバルなカーネルの設定項目

net

ネットワークの設定項目

sunrpc

Sun Remote Procedure Call (NFS)

user

ユーザー名前空間の制限

vm

メモリー、バッファー、およびキャッシュのチューニングと管理

2.3.1. ネットワークインターフェイスのパラメーター

システム管理者は、ネットワークの設定項目を経由して実行中のシステムのネットワーク設定を変更できます。

ネットワークの設定項目は、/proc/sys/net ディレクトリーにあります。このディレクトリーには、さまざまなネットワークトピックに関する複数のサブディレクトリーが格納されています。システム管理者はこれらのサブディレクトリー内のファイルを変更し、ネットワーク設定を調整する必要があります。

以下は、最も頻繁に使用されるディレクトリーです。

  1. /proc/sys/net/core/
  2. /proc/sys/net/ipv4/

/proc/sys/net/core/ ディレクトリーには、カーネルとネットワーク層との間の相互作用を制御するさまざまな設定が格納されています。これらの設定項目のをいくつか調整することで、たとえば、受信キューのサイズを増加したり、ネットワークインターフェイス専用の接続およびメモリーの最大値を上げたりすることで、システムのパフォーマンスを向上させることができます。システムのパフォーマンスは、個々の問題のさまざまな側面に左右されることに留意してください。

/proc/sys/net/ipv4/ ディレクトリーには、追加のネットワーク設定が格納されています。これは、システムに対する攻撃を防止したり、システムをルーターとして機能させるように使用している場合に役立ちます。ディレクトリーには、IP および TCP の両方の変数が格納されています。これらの変数に関する詳細は /usr/share/doc/kernel-doc-<version>/Documentation/networking/ip-sysctl.txt を参照してください。

/proc/sys/net/ipv4/ ディレクトリー内のその他のディレクトリーは、ネットワークスタックのさまざまな側面を扱っています。

  1. /proc/sys/net/ipv4/conf/ - 各システムインターフェイスを異なる方法で設定できるようにします。これには、未設定のデバイス用のデフォルト設定の使用や、すべての特殊設定をオーバーライドする設定が含まれます。
  2. /proc/sys/net/ipv4/neigh/ - システムに直接接続されたホストとの通信のための設定や、1 ステップ以上離れたシステム用の異なる設定も含まれています。
  3. /proc/sys/net/ipv4/route/ - システム上の任意のインターフェイスとのルーティングに適用される指定値が格納されています。

ネットワークの設定項目のリストは IPv4 インターフェイスと関係があり、/proc/sys/net/ipv4/{all,<interface_name>}/ ディレクトリーからアクセスできます。

以下のパラメーターの説明は、カーネルドキュメントのサイトを参考にしています。[1]

log_martians

カーネルログに無効なアドレスを持つパケットをログします。

Typeデフォルト

ブール値

0

1 つ以上の conf/{all,interface}/log_martians が TRUE に設定されている場合に有効です。

Further Resources

accept_redirects

ICMP のリダイレクトメッセージを受信します。

Typeデフォルト

ブール値

1

インターフェイス用の accept_redirects が、以下の条件下で有効となります。

  • conf/{all,interface}/accept_redirects が両方とも TRUE の場合 (インターフェイスへの転送が有効な場合)
  • conf/{all,interface}/accept_redirects のうち少なくとも 1 つが TRUE の場合 (インターフェイスへの転送は無効)

ICMP リダイレクトを無効にする方法 を参照してください。

転送

インターフェイス上で IP 転送を有効にします。

Typeデフォルト

ブール値

0

Further Resources

mc_forwarding

マルチキャストルーティングを実施します。

Typeデフォルト

ブール値

0

  • 読み取り専用値
  • マルチキャストルーティングのデーモンが必要です。
  • インターフェイス用にマルチキャストルーティングを有効にするためには conf/all/mc_forwarding も TRUE に設定する必要があります。

Further Resources

medium_id

接続しているメディアがデバイスを区別するために使用する任意の値です。

Typeデフォルト

整数

0

備考

  • 同じメディア上の 2 つのデバイスにおいて、このうちの 1 つでしかブロードキャストパケットが 受信されない場合、2 つのデバイスの id 値が異なる可能性があります。
  • デフォルト値の 0 は、メディアに対してそのデバイスが唯一のインターフェイスであることを意味します。
  • 値が -1 の場合、メディアが不明であることを示します。
  • 現在は、proxy_arp の動作を変更するために使用されています。
  • proxy_arp の機能は、異なるメディアに接続された 2 つのデバイスの間で転送されたパケット用に有効となります。

Further Resources - たとえば、Using the "medium_id" feature in Linux 2.2 and 2.4 を参照してください。

proxy_arp

Proxy ARP の実行

Typeデフォルト

ブール値

0

conf/{all,interface}/proxy_arp のうち少なくとも 1 つが TRUE に設定されている場合、インターフェイス用の proxy_arp は有効です。そうでない場合は無効です。

proxy_arp_pvlan

プライベート VLAN Proxy ARP

Typeデフォルト

ブール値

0

RFC 3069 などの機能をサポートするために、Proxy ARP が同じインターフェイスに応答できるようにします。

shared_media

共有メディアのリダイレクト RFC1620 を送信 (ルーター) または受信 (ホスト) します。

Typeデフォルト

ブール値

1

注記

  • secure_redirects をオーバーライドします。
  • conf/{all,interface}/shared_media のうち少なくとも 1 つが TRUE に設定されている場合、インターフェイス用の shared_media が有効となります。
secure_redirects

インターフェイスの現在のゲートウェイリストにリストされているゲートウェイに対する ICMP リダイレクトメッセージのみを受信します。

Typeデフォルト

ブール値

1

備考

  • 無効となった場合でも、RFC1122 リダイレクトルールが引き続き適用されます。
  • shared_media によってオーバーライドされます。
  • conf/{all,interface}/secure_redirects のうち少なくとも 1 つが TRUE に設定されている場合、インターフェイス用の secure_redirects は有効となります。
send_redirects

ルーターの場合、リダイレクトを送信します。

Typeデフォルト

ブール値

1

注記
conf/{all,interface}/send_redirects の少なくとも 1 つが TRUE に設定されている場合、インターフェイス用の send_redirects が有効になります。

bootp_relay

ローカル用としてこのホストに予定されていないソースアドレス 0.b.c.d のパケットを受信します。

Typeデフォルト

ブール値

0

注記

  • これらのパケットを管理するために BOOTP デーモンを有効にする必要があります。
  • インターフェイス用に BOOTP リレーを有効にするために conf/all/bootp_relay も TRUE に設定する必要があります。
  • 実装されていない場合は、Red Hat Enterprise Linux ネットワークガイドの DHCP リレーエージェント を参照してください。
accept_source_route

SRR オプションのあるパケットを受信します。

Typeデフォルト

ブール値

1

注記

  • インターフェイス上の SRR オプションのあるパケットを受信するために、conf/all/accept_source_route も TRUE に設定する必要があります。
accept_local

ローカルソースアドレスのあるパケットを受信します。

Typeデフォルト

ブール値

0

注記

  • これは、適切なルーティングとのコンビネーションにて、2 つのローカルインターフェイス間のパケットをワイヤー上で移動し、適切に受信させるために使用することができます。
  • accept_local に効果をもたらすためには、rp_filter をゼロ以外の値に設定する必要があります。
route_localnet

ルーティング中は、ループバックアドレスを martian ソースまたは宛先として考慮しません。

Typeデフォルト

ブール値

0

注記

  • これにより、ローカルルーティング目的での 127/8 の使用が有効となります。
rp_filter

ソースの検証を有効化

Typeデフォルト

整数

0

効果

0

ソースの検証はありません。

1

RFC3704 厳密な逆方向パスで定義された厳密モード

2

RFC3704 緩やかな逆方向パスで定義された緩やかなモード

注記

  • RFC3704 における現在の推奨プラクティスは、DDos 攻撃による IP スプーフィングを回避するために厳密モードを有効にすることです。
  • 非対称のルーティングまたは別の複雑なルーティングを使用する場合は、緩やかなモードが推奨されます。
  • {interface} でソースの検証を行う際、conf/{all,interface}/rp_filter の中の最大値が使用されます。
arp_filter
Typeデフォルト

ブール値

0

効果

0

(デフォルト) カーネルは、別のインターフェイスからのアドレスの ARP 要求に対応できます。正常な通信の可能性を向上させるので、通常は理にかなっています。

1

同じサブネットで複数のネットワークインターフェイスを持つことを可能にします。また、カーネルがインターフェイスから ARP 要求 の IP パケットをルーティングするかどうかに基づいて、各インターフェイスの ARP が応答できるようにします (したがって、これを機能させるためにはソースベースのルーティングを使用する必要があります)。つまり、ARP 要求に応答するカード (通常は 1) の制御が可能となります。

注記

  • IP アドレスは、特定のインターフェイスではなく、Linux の完全なホストが所有します。この動作が問題を起こすのは、負荷分散などのより複雑なセットアップの場合だけです。
  • conf/{all,interface}/arp_filter のうち少なくとも 1 つが TRUE に設定されている場合、インターフェイス用の arp_filter は有効となります。
arp_announce

インターフェイス上に送信された ARP 要求の IP パケットからローカルソースの IP アドレスを発表するための異なる制限レベルを定義します。

Typeデフォルト

整数

0

効果

0

(デフォルト) 任意のインターフェイス上に設定された任意のローカルアドレスを使用します。

1

このインターフェイスでは、出力先のサブネットにないローカルアドレスは使用しないようにします。このインターフェイスを経由してアクセス可能な出力先ホストが、ARP 要求のソース IP アドレスが受信側インターフェイス上に設定されるロジカルなネットワークの一環となるよう要求した場合、このモードは役立ちます。要求を生成する際、出力先 IP を含むすべてのサブネットを確認し、そのようなサブネットからのソースアドレスである場合は保持します。そのようなサブネットがない場合は、レベル 2 のルールにしたがってソースアドレスを選択します。

2

この出力先には常に最適のローカルアドレスを使用します。このモードでは、IP パケットのソースアドレスを無視し、出力先ホストとの対話には好みのローカルアドレスを選択するようにします。このようなローカルアドレスは、出力先 IP アドレスを含む発信インターフェイス上のすべてのサブネット上にある主要な IP アドレスを探すことで選択されます。適切なローカルアドレスが見つからない場合は、発信インターフェイス上またはその他すべてのインターフェイス上にある最初のローカルアドレスを選択します。この時、アナウンスするソース IP アドレスに関係なく、要求に対する応答があることを期待します。

備考

  • conf/{all,interface}/arp_announce の中の最大値が使用されます。
  • 制限レベルを上げると、解決済み出力先から応答がある可能性が高くなり、制限レベルを下げると、より有効な送信者情報をアナウンスします。
arp_ignore

受信した ARP 要求に対して応答するさまざまなモードを定義します。 この ARP 要求は、ローカル出力先 IP アドレスを解決するものです。

Typeデフォルト

整数

0

効果

0

(デフォルト): 任意のインターフェイス上に設定された任意のローカル出力先 IP アドレスに応答します。

1

出力先 IP アドレスが受信インターフェイス上で設定されたローカルアドレスの場合にのみ応答します。

2

出力先 IP アドレスが受信インターフェイス上で設定されたローカルアドレスで、送信者の IP アドレスと出力先 IP アドレスの両方がこのインターフェイス上の同じサブネットの一部である場合にのみ応答します。

3

スコープホストで設定されたローカルアドレスには応答しません。グローバルおよびリンク用のアドレス解決のみに応答します。

4-7

予備

8

ローカルアドレスの場合はすべて、応答しません。 {interface} 上で ARP 要求が受信された際に conf/{all,interface}/arp_ignore の最大値が使用されます。

備考

arp_notify

アドレスおよびデバイスの変更を通知するモードを定義します。

Typeデフォルト

ブール値

0

Effect

0

何もしません。

1

デバイスの停止またはハードウェアのアドレス変更の際、余計な ARP 要求を生成します。

注記

arp_accept

IP がまだ ARP テーブルに存在しない余計な ARP フレームの動作を定義します。

Typeデフォルト

ブール値

0

Effect

0

ARP テーブルに新しいエントリーを作成しません。

1

ARP テーブルに新しいエントリーを作成します。

注記
この設定がオンの場合、応答および要求の両タイプの余計な ARP が、ARP テーブルを更新するようトリガーします。ARP テーブルが余計な ARP フレームの IP アドレスをすでに格納している場合、この設定がオンまたはオフであることに関係なく、ARP テーブルが更新されます。

app_solicit

マルチキャストプローブへドロップバックする前にネットリンクを経由してユーザー空間の ARP デーモンに送信するプローブの最大数 (mcast_solicit を参照してください)。

Typeデフォルト

整数

0

注記
mcast_solicit を参照してください。

disable_policy

このインターフェイスの IPSEC ポリシー (SPD) を無効にします。

Typeデフォルト

ブール値

0

needinfo

disable_xfrm

いかなるポリシーであろうと、このインターフェイスの IPSEC 暗号化を無効にします。

Typeデフォルト

ブール値

0

needinfo

igmpv2_unsolicited_report_interval

次の未承諾の IGMPv1 または IGMPv2 レポートの再送信が実行されるミリ秒単位の間隔。

Typeデフォルト

整数

10000

注記
ミリ秒

igmpv3_unsolicited_report_interval

次の未承諾の IGMPv3 レポートの再送信が実行されるミリ秒単位の間隔。

Typeデフォルト

整数

1000

注記
ミリ秒

tag

必要に応じて使用可能な数字の書き込みが可能です。

Typeデフォルト

整数

0

xfrm4_gc_thresh

IPv4 宛先キャッシュエントリー用のガベージコレクションを開始するしきい値。

Typeデフォルト

整数

1

注記
この値が 2 倍になると、システムは新しい割り当てを拒否します。

2.3.2. グローバルなカーネルの設定項目

システム管理者は、グローバルカーネルパラメーターを経由して実行中のシステムの一般的な設定を設定および変更できます。

グローバルカーネルパラメーターは、/proc/sys/kernel/ ディレクトリーにあり、さまざまな設定内容向けに、名前付きの制御ファイル、またはサブディレクトリーでグループ分けされています。グローバルカーネルパラメーターを調整するには、システム管理者が制御ファイルを修正する必要があります。

以下のパラメーターの説明は、カーネルドキュメントのサイトを参考にしています。[2]

dmesg_restrict

非特権ユーザーが、dmesg コマンドを実行して、カーネルのログバッファーのメッセージを表示しないようにするかどうかを示します。

詳細は Kernel sysctl documentation を参照してください。

core_pattern

コアダンプファイルのパターン名を指定します。

最大長デフォルト

128 文字

"core"

詳細は Kernel sysctl documentation を参照してください。

hardlockup_panic

ハードロックアップが検出された場合にカーネルパニックを制御します。

TypeEffect

整数

0

カーネルが、ハードロックアップでパニックを発生させません。

整数

1

ハードロックアップでのカーネルパニック

パニックを発生させるためには、システムで、最初にハードロックアップを検出する必要があります。検出は、nmi_watchdog パラメーターで制御されます。

Further Resources

softlockup_panic

ソフトロックアップが検出されるとカーネルパニックを制御します。

TypeEffect

整数

0

カーネルが、ソフトロックアップでパニックにならない

整数

1

カーネルが、ソフトロックアップでパニックになる

RHEL 7 では、この値のデフォルトは 0 です。

softlockup_panic の詳細は kernel_parameters を参照してください。

kptr_restrict

制限は、/proc またはその他のインターフェイスを介して、カーネルアドレスを露出させる制限が配置されているかどうかを示します。

Typeデフォルト

整数

0

Effect

0

出力前にカーネルアドレスのハッシュ値を計算します。

1

出力されたカーネルポインターを、特定の条件下で、0 に置き換えます。

2

出力されたカーネルポインターを、無条件に 0 に置き換えます。

詳細は Kernel sysctl documentation を参照してください。

nmi_watchdog

x86 システムで、ハードロックアップ検出を制御します。

Typeデフォルト

整数

0

Effect

0

ロックアップ検出を無効にします。

1

ロックアップ検出を有効にします。

ハードロックアップ検出は、各 CPU で割り込みに応答する機能を監視します。

詳細は Kernel sysctl documentation を参照してください。

watchdog_thresh

ウォッチドッグの hrtimer、NMI イベント、およびソフトロックアップまたはハードロックアップのしきい値を制御します。

デフォルトのしきい値ソフトロックアップのしきい値

10 秒

2 * watchdog_thresh

このパラメーターを 0 (ゼロ) に設定すると、ロックアップ検出を無効にします。

詳細は Kernel sysctl documentation を参照してください。

panic, panic_on_oops, panic_on_stackoverflow, panic_on_unrecovered_nmi, panic_on_warn, panic_on_rcu_stall, hung_task_panic

このパラメーターは、カーネルがパニックを発生する状況を指定します。

一連の panic パラメーターの詳細は、Kernel sysctl documentation を参照してください。

printk, printk_delay, printk_ratelimit, printk_ratelimit_burst, printk_devkmsg

このようなパラメーターは、カーネルエラーメッセージのログへの記録または出力を制御します。

一連の printk パラメーターの詳細は、Kernel sysctl documentation を参照してください。

shmall, shmmax, shm_rmid_forced

このパラメーターは、共有メモリーの制限を制御します。

一連の shm パラメーターの詳細は、Kernel sysctl documentation を参照してください。

threads-max

fork() システムコールが作成するスレッドの最大数を制御します。

最小値最大値

20

FUTEX_TID_MASK (0x3fffffff) で指定

threads-max 値は、利用可能な RAM ページに対して確認されます。スレッド構造が、利用可能な RAM ページを使用しすぎている場合は、それに応じて threads-max が削減します。

詳細は Kernel sysctl documentation を参照してください。

pid_max

PID 割り当てラップ値。

詳細は Kernel sysctl documentation を参照してください。

numa_balancing

このパラメーターは、 NUMA メモリーの自動分散を有効または無効にします。NUMA マシンでは、CPU がリモートメモリーにアクセスするかどうかについてパフォーマンスのペナルティーがあります。

詳細は Kernel sysctl documentation を参照してください。

numa_balancing_scan_period_min_ms, numa_balancing_scan_delay_ms, numa_balancing_scan_period_max_ms, numa_balancing_scan_size_mb

このパラメーターは、そのタスクが実行しているローカルのメモリーノードへデータが移行する必要がある場合に、ページが適切に配置されているかどうかを検出します。

一連の numa_balancing_scan パラメーターの詳細は、Kernel sysctl documentation を参照してください。