try to find source address in routing lookups
Destination port
Destination address
flow/class id
mark
mask for netfilter mark
Target to jump to
Interface name
IP protocol
iif or oif is l3mdev goto its table
priority/preference
Originator of the rule
Source port
Source address
Extended table id
UID range
Drop without notification
Jump to another rule
No operation
Drop with EACCES
Pass to fixed table
Drop with ENETUNREACH
see https://github.com/torvalds/linux/blob/master/include/uapi/linux/fib_rules.h
Link supports multicast routing
Driver supports setting media type (only used by ARM ethernet)
Link supports broadcasting
Tell driver to do debugging (currently unused)
Driver signals IFF_DORMANT
Link loopback network
Link layer is operational
Master of a load balancer (bonding)
Link supports multicasting
ARP is not supported
u32erface is point-to-point link
Link selects port automatically (only used by ARM ethernet)
Receive all packets.
Link is up and carrier is OK (RFC2863 OPER_UP)
Link is up (administratively).
Neighbour cache entry type: entry for cache statistics
Neighbour cache entry type: entry for a network layer destination
address
Neighbour cache entry type: entry for a link layer destination
address
Neighbour cache entry type: unknown type
Neighbour cache entry state: the validation of this entry is currently
delayed
Neighbour cache entry state: the validation of this entry has failed
Neighbour cache entry state: the neighbour has not (yet) been resolved
Neighbour cache entry state: entry is valid and the kernel will not try to
validate or refresh it.
Neighbour cache entry state: pseudo state for fresh entries or before
deleting entries
Neighbour cache entry state: entry is valid forever and can only be removed
explicitly from userspace.
Neighbour cache entry state: the neighbour entry is being probed
Neighbour cache entry state: the neighbour entry is valid until its lifetime
expires
Neighbour cache entry state: the neighbour entry is valid but suspicious
This route is cloned. Cloned routes are routes coming from the cache instead
of the FIB. For IPv4, the cache was removed in Linux 3.6 (see
IPv4 route
lookup on Linux for more information about IPv4 routing)
Multipath equalizer (not yet implemented)
Return the full FIB lookup match (see commit
b61798130f1be5bff08712308126c2d7ebe390ef
)
Show the table from which the lookup result comes. Note that before commit
c36ba6603a11
, Linux would always hardcode
RouteMessageHeader.table
(known as
rtmsg.rtm_table
in the kernel) to
RT_TABLE_MAIN
.
If the route changes, notify the user via rtnetlink
Prefix addresses
A local broadcast route (sent as a unicast)
A packet dropping route
A local broadcast route (sent as a broadcast)
A local interface route
A multicast route
A network address translation rule
A packet rejection route
Continue routing lookup in another table
A gateway or direct route
An unreachable destination
Unknown route
Refer to an external resolver (not implemented)
Route was learnt during boot
Route was learnt by the kernel
Route was learnt by an ICMP redirect
Route was set statically
Unknown
The destination is valid only on this host
The destination is link local
Destination doesn’t exist
(IPv6 only) the destination is site local, i.e. it is valid inside this
site. This is for interior routes in the local autonomous system
The destination is globally valid.
A route table introduced for compatibility with old software which do not
support table IDs greater than 255. See commit 709772e6e065
in the kernel:
The default routing table.
The local table.
The main routing table.
An unspecified routing table