ip rule suppress_prefixlength
Matthias Peter Walther
m_walt11 at uni-muenster.de
Tue Nov 1 06:58:12 EDT 2016
thanks for your reply. You're right, table 42 can't route a package,
because the default route is suppressed.
But from what I understand, if table 42 (and so ip rule 32765) doesn't
fit on the package, the next rule (32766) is called and the package
should be routed based on the main table, which has a default route
(default via 188.8.131.52 dev eth0).
Maybe you're right, and I misunderstood the concept here. Could you
explain the second part to me again? Why isn't the package switched back
to the main routing table, like rule 32766 says.
On 31.10.2016 23:24, Valdis.Kletnieks at vt.edu wrote:
> On Sun, 30 Oct 2016 12:25:50 +0100, Matthias Peter Walther said:
>> root at des1 ~ # ip rule
>> 0: from all lookup local
>> 32765: from all iif lo lookup ffnet suppress_prefixlength 0
>> 32766: from all lookup main
>> 32767: from all lookup default
>> (ffnet is table 42)
>> root at des1 ~ # ip r s
>> default via 184.108.40.206 dev eth0
>> 220.127.116.11 dev eth0 proto kernel scope link src 18.104.22.168
>> root at des1 ~ # ip r s t 42
>> blackhole default
>> Let's say I want to ping 22.214.171.124. What I expect is, that the package is
>> put into routing table 42 by the ip rule 32765. As there is no more
>> specific route for 126.96.36.199 than the default route in table 42, I expect
>> the suppress_prefixlength 0 option to put it back to the default routing
>> table and then to be send out through eth0.
> Note your table 42 is a blackhole. I suspect that using 'suppress_prefixlength
> 0' is acting differently than you expect - you've told it to use table 42 which
> has only a blackhole, and when it suppresses that route, there is no *other*
> route in table 42 to select - leaving you with a 'no route' situation. I don't
> think it's supposed to make the 'lookup ffnet' part go away, only entries *IN*
> that table that are longer than specified (which for 0 means "all of them").
More information about the Kernelnewbies