ip-rule は 0x10 より大きい ToS には適用されません。

ip-rule は 0x10 より大きい ToS には適用されません。

奇妙な動作があります。ip-rule特定のIPを持っている利用規約-価値。最大0x10の値でのみ動作しますが、DSCP部分は許可しません。

私は試した:

ip ru a tos 0x20 table 1234

そして得る:

RTNETLINK answers: Invalid argument

ベストアンサー1

TOSRFCで定義791話また、RFC 1349には4ビットしかありません。RFC 1349の第3章を参照してください。:

            0     1     2     3     4     5     6     7
         +-----+-----+-----+-----+-----+-----+-----+-----+
         |                 |                       |     |
         |   PRECEDENCE    |          TOS          | MBZ |
         |                 |                       |     |
         +-----+-----+-----+-----+-----+-----+-----+-----+

そして4:

                1000   --   minimize delay
                0100   --   maximize throughput
                0010   --   maximize reliability
                0001   --   minimize monetary cost
                0000   --   normal service

MBZ(0でなければならない)ビットが予約されており、優先順位は(主張したところによると? )は実際には使用されず、0x00と0x1Eの間の値のみが可能です。 Linuxip.hで定義してください。:

#define IPTOS_TOS_MASK        0x1E
#define IPTOS_TOS(tos)        ((tos)&IPTOS_TOS_MASK)
#define   IPTOS_LOWDELAY      0x10
#define   IPTOS_THROUGHPUT    0x08
#define   IPTOS_RELIABILITY   0x04
#define   IPTOS_MINCOST       0x02

ip rule(のカーネル部分)は、これらの定義に従って何が許可されているかを示します。

DSCPRFCで定義されたものを使用するには2474TOS同じバイトビュー(およびECNRFC)の代替メカニズムになります。3168)存在しないようです。直接同等の使用ip rule

それでもできることは、次のことです。iptablesまたはnftablesdscp次に、フィールド値を一致させます。よくrkパケットfwmarkを再利用してくださいip rule

おすすめ記事