ルート別のメトリックを使用して、一定のプロパティーを IPv4 や IPv6 のルーティングテーブルエントリに関連付けることができます。
たとえば、システムに、Fast Ethernet と Gigabit Ethernet という 2 つの異なるネットワークインタフェースがあるとします。recv_maxbuf のシステムデフォルト値は 128,000 バイトです。このデフォルト値は Fast Ethernet インタフェースには十分ですが、Gigabit Ethernet インタフェースには不十分な可能性があります。
recv_maxbuf のシステムデフォルト値を増やす代わりに、Gigabit Ethernet インタフェースのルーティングエントリに別のデフォルトの TCP 受信ウィンドウサイズを関連付けることができます。これにより、そのルートを通るすべての TCP 接続には、大きくした受信ウィンドウサイズが使用されます。
たとえば、IPv4 を使用する次のようなルーティングテーブルがあるとします (netstat -rn)。
Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ---------- --------- 192.123.123.0 192.123.123.4 U 1 4 net0 192.123.124.0 192.123.124.4 U 1 4 net1 default 192.123.123.1 UG 1 8
この例では、次の処理が行われます。
# route change -net 192.123.124.0 -recvpipe x
この結果、net1 リンクの 192.123.124.0 ネットワークへのすべての接続には、デフォルトの受信ウィンドウサイズ 128,000 の代わりに、受信バッファーサイズ x が使用されます。
宛先が a.b.c.d ネットワークにあり、そのネットワーク固有のルーティングエントリがない場合は、そのネットワークに接頭辞ルートを追加し、メトリックを変更できます。例:
# route add -net a.b.c.d 192.123.123.1 -netmask w.x.y.z # route change -net a.b.c.d -recvpipe y
接頭辞ルートのゲートウェイがデフォルトのルーターであることに留意してください。そのネットワークへのすべての接続は受信バッファーサイズ y を使用します。複数のインタフェースがある場合は、–ifp 引数を使用して、使用するインタフェースを指定します。それによって、特定の宛先に対してどのインタフェースを使用するかを制御できます。メトリックを確認するには route(1M) get コマンドを使用します。