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
ディレクトリーにあります。このディレクトリーには、さまざまなネットワークトピックに関する複数のサブディレクトリーが格納されています。システム管理者はこれらのサブディレクトリー内のファイルを変更し、ネットワーク設定を調整する必要があります。
以下は、最も頻繁に使用されるディレクトリーです。
-
/proc/sys/net/core/
-
/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/
ディレクトリー内のその他のディレクトリーは、ネットワークスタックのさまざまな側面を扱っています。
-
/proc/sys/net/ipv4/conf/
- 各システムインターフェイスを異なる方法で設定できるようにします。これには、未設定のデバイス用のデフォルト設定の使用や、すべての特殊設定をオーバーライドする設定が含まれます。 -
/proc/sys/net/ipv4/neigh/
- システムに直接接続されたホストとの通信のための設定や、1 ステップ以上離れたシステム用の異なる設定も含まれています。 -
/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 に設定する必要があります。
-
インターフェイス上の SRR オプションのあるパケットを受信するために、
- 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
ハードロックアップが検出された場合にカーネルパニックを制御します。
Type 値 Effect 整数
0
カーネルが、ハードロックアップでパニックを発生させません。
整数
1
ハードロックアップでのカーネルパニック
パニックを発生させるためには、システムで、最初にハードロックアップを検出する必要があります。検出は、nmi_watchdog パラメーターで制御されます。
Further Resources
- softlockup_panic
ソフトロックアップが検出されるとカーネルパニックを制御します。
Type 値 Effect 整数
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 を参照してください。