可使用许多每路由度量将一些属性与 IPv4 和 IPv6 路由表条目关联起来。
例如,一个系统有两个不同的网络接口:一个快速以太网接口和一个千兆以太网接口。系统的缺省 recv_maxbuf 为 128,000 字节。该缺省值对于快速以太网接口来说已足够,但对于千兆以太网接口来说不足。
您可以将一个不同的缺省 TCP 接收窗口大小与千兆以太网接口路由条目关联起来,而无需增大系统的缺省 recv_maxbuf。通过执行该关联,经过该路由的所有 TCP 连接都将具有增大的接收窗口大小。
例如,路由表 (netstat -rn) 中有以下条目,假设为 IPv4:
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
然后,通向 192.123.124.0 网络(位于 net1 链路上)的所有连接都将使用接收缓冲区大小 x,而非缺省的接收窗口大小 128,000。
如果目标位于 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 命令。