/proc/net/route
を見ると Flags というカラムがある。
% cat /proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 00000000 01001FAC 0003 0 0 0 00000000 0 0 0 eth1 00000000 01001FAC 0003 0 0 10001 00000000 0 0 0 eth2 00000000 01001FAC 0003 0 0 10002 00000000 0 0 0 eth0 FEA9FEA9 00000000 0005 0 0 0 FFFFFFFF 0 0 0 eth0 00001FAC 00000000 0001 0 0 0 00F0FFFF 0 0 0 eth1 00001FAC 00000000 0001 0 0 0 00F0FFFF 0 0 0 eth2 00001FAC 00000000 0001 0 0 0 00F0FFFF 0 0 0
これはなんだろうと思って、 ip route コマンドの結果をみてみると、 scope link (隣接(直接宛先と通信できる)のネットワーク)が 0001 と整合しているように見える。
% ip route default via 172.31.0.1 dev eth0 default via 172.31.0.1 dev eth1 metric 10001 default via 172.31.0.1 dev eth2 metric 10002 169.254.169.254 dev eth0 172.31.0.0/20 dev eth0 proto kernel scope link src 172.31.7.56 172.31.0.0/20 dev eth1 proto kernel scope link src 172.31.11.244 172.31.0.0/20 dev eth2 proto kernel scope link src 172.31.11.75
route コマンドで見ると Flags が U という文字列で表現されている。
% route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default ip-172-31-0-1.a 0.0.0.0 UG 0 0 0 eth0 default ip-172-31-0-1.a 0.0.0.0 UG 10001 0 0 eth1 default ip-172-31-0-1.a 0.0.0.0 UG 10002 0 0 eth2 instance-data.a 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth1 172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth2
以下のファイルを見ると、 RTF_UP 0x0001 / route usable /ということで、上記認識で合っているみたい。
/usr/include/linux/route.h
#define RTF_UP 0x0001 /* route usable */ #define RTF_GATEWAY 0x0002 /* destination is a gateway */ #define RTF_HOST 0x0004 /* host entry (net otherwise) */ #define RTF_REINSTATE 0x0008 /* reinstate route after tmout */ #define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */ #define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */ #define RTF_MTU 0x0040 /* specific MTU for this route */ #define RTF_MSS RTF_MTU /* Compatibility :-( */ #define RTF_WINDOW 0x0080 /* per route window clamping */ #define RTF_IRTT 0x0100 /* Initial round trip time */ #define RTF_REJECT 0x0200 /* Reject route */
参考
android - What's the meaning of /proc/net/rotue columns? especially Flags column - Stack Overflow https://stackoverflow.com/questions/33231034/whats-the-meaning-of-proc-net-rotue-columns-especially-flags-column