ユーティリティは指定できるオプションは少数ですが、 強力なコマンド言語をサポートしています。 ユーザは route(4) において解説されているプログラム可能なインタフェースを通して、 任意の要求を指定することができます。
以下のオプションを使用可能です:
ユーティリティでは以下の 6 つのコマンドを提供しています。
monitor コマンドは以下の書式です。
[-n ] monitor
flush コマンドは以下の書式です。
[-n ] flush [family ]
flush コマンドが指定されると、 は全てのゲートウェイのエントリにおけるルーティングテーブルを削除します。 アドレスファミリが -osi -xns -atalk -inet6 -inet のいずれかの修飾子によって指定されている場合、 そのアドレスファミリの宛先を持つルートだけが削除されます。
その他のコマンドは以下の書式です。
[-n ] command [-net | -host ] destination gateway [netmask ]
ここで destination は宛先のホストもしくはネットワークです。 gateway はパケットがルートされるべき次の中継点です。 ある特定のホストへのルートは、 destination で指定されたインターネットアドレスを解釈することによって、 ネットワークへのルートと区別されます。 オプションの修飾子 -net -host が指定されると、 destination をそれぞれネットワークもしくはホストとして強制的に解釈します。 これらの修飾子がないなら、 destination に INADDR_ANY (0.0.0.0 ) の ``ローカルアドレス部'' が含まれるか destination がネットワークのシンボル名である場合はネットワークへのルート、 その他の場合はホストへのルートと想定します。 destination は、 net / bits の書式でも指定可能です。
例えば、 128.32 は -host 128.0.0.32 として解釈されます。 128.32.130 は -host 128.32.0.130 として、 -net 128.32 は 128.32.0.0 として、 -net 128.32.130 は 128.32.130.0 として解釈されます。 192.168.64/20 は -net 192.168.64 -netmask 255.255.240.0 として解釈されます。
destination に対する default 指定は、 -net 0.0.0.0 と同じ意味であり、デフォルト経路です。
宛先がゲートウェイとして動作する中継点なしで、 あるインタフェースから直接到達可能な場合、 -interface 修飾子を指定しなければなりません。 この場合、指定されたゲートウェイは共通なネットワーク上の ローカルホストのアドレスとなり、 そのインタフェースが転送に使用されることを示します。 また、インタフェースが point to point 接続の場合、 インタフェースをその名前で指定できます。 この場合、ローカルやリモートのアドレスが変更されても そのルートは有効のまま残ります。
オプションの修飾子 -xns -osi -atalk -link はそれに続いて指定されるアドレスが、それぞれ XNS OSI AppleTalk アドレスファミリである、もしくはリンクレベルのアドレスであることを指定します。 これらの場合、名前はシンボル名ではなく、 数字によって指定をおこなわなければなりません。
オプションの修飾子 -netmask はネットマスクオプションつきの OSI ESIS プロトコルによるリダイレクトの効果を実現するためのものです。 つまり、ネットワークインタフェースの暗黙のネットマスクとは異なる ネットマスクをもつサブネットを手動で追加します (この方法によらない場合は、OSPF や ISIS ルーティングプロトコルによって 通信します)。 この修飾子に続いて、アドレスパラメータ (これはネットワークマスクとして解釈されます) を指定します。 AF_INET の場合に生成される暗黙のネットワークマスクは、 このオプションを destination パラメータに続いて指定することによって、上書きすることができます。
AF_INET6 では、 -mask 修飾子の代りに -prefixlen 修飾子が使用可能です。 IPv6 では非連続なマスクが許されないためです。 例えば -prefixlen 32 はネットワークマスク ffff:ffff:0000:0000:0000:0000:0000:0000 の使用を指定します。 prefixlen のデフォルト値は 64 であり、 集約可能 (aggregatable) アドレスと共に動作可能となっています。 ただし、 default 指定時には 0 が仮定されます。 この修飾子は AF_INET6 アドレスファミリのみで動作可能なことに注意してください。
ルートにはいくつかのフラグがあり、 そのルートを使う宛先にデータを送信する時のプロトコルの動作に 影響をおよぼします。 これらのフラグは以下の修飾子によってセット (もしくはクリア) できます。
-cloning RTF_CLONING - 使用中のルートを新たにひとつ生成する。 -xresolve RTF_XRESOLVE - (外部からの検索に対して) 使用中である旨のメッ セージを発行する。 -iface ~RTF_GATEWAY - 宛先が直接到達可能。 -static RTF_STATIC - 手動でルートを追加する。 -nostatic ~RTF_STATIC - カーネルかデーモンによってルートが追加された ように振舞う。 -reject RTF_REJECT - マッチした場合に ICMP unreachable を出力する。 -blackhole RTF_BLACKHOLE - (更新中に) 何も報告せずにパケットを捨てる。 -proto1 RTF_PROTO1 - プロトコルに特有のフラグ #1 をセットする。 -proto2 RTF_PROTO2 - プロトコルに特有のフラグ #2 をセットする。 -llinfo RTF_LLINFO - プロトコルアドレスからリンクアドレスへの変換の 正当性をチェックする。
オプションの修飾子 -rtt -rttvar -sendpipe -recvpipe -mtu -hopcount -expire -ssthresh によって TCP や TP4 のトランスポートレベルのプロトコルによる ルーティングのエントリ中でメインテナンスされる値の初期値を指定します。 これらは各々の修飾子の前に -lock メタ修飾子を指定することによって、個別にその値をロックすることができます。 また -lockrest メタ修飾子をつけることによって、 その後に続く全ての値をロックすることもできます。
change もしくは add コマンドにおいて、 destination もしくは gateway がルートを特定するのに不十分であった場合 (たとえば ISO のケースにおいて、複数のインタフェースが同じアドレスを持っているような場合)、 -ifp や -ifa 修飾子を使うことによって、 インタフェースやインタフェースアドレスを特定することができます。
オプションの -proxy 修飾子を指定すると、 RTF_LLINFO 経路表エントリが、 ``公表された (代理のみの)'' ARP エントリとなり、 arp(8) はそのように報告します。
省略可能な -genmask 修正子は、クローンマスクが存在することを指定します。 これは、子の経路が作成されるべきかどうかを判断するときに、 マスクが適用されることを指定します。 これは、 RTF_CLONING フラグが設定されたネットワーク経路に対してのみ適用されます。
destination や gateway で指定された全てのシンボル名は、まずホスト名として gethostbyname(3) を使用して検索されます。 検索に失敗した場合は、その名前をネットワーク名と見なし getnetbyname(3) によって検索されます。
ユーティリティはルーティングソケットと新しいメッセージタイプである RTM_ADD , RTM_DELETE , RTM_GET RTM_CHANGE を使います。 ルーティングテーブルの変更はスーパユーザのみがおこなうことができます。
今のところ、IP fast forward 機能が有効になっていないと RTF_BLACKHOLE フラグが設定されたルートには、フラグが効果を持つよう -iface オプションを使って lo(4) ドライバにゲートウェイを設定する必要があります。 IP fast forward 機能が有効であれば、フラグの意味は常に受け入れられます。