From mboxrd@z Thu Jan 1 00:00:00 1970 From: m_walt11@uni-muenster.de (Matthias Peter Walther) Date: Sun, 30 Oct 2016 12:25:50 +0100 Subject: ip rule suppress_prefixlength Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org Dear Linux-friends, I asked this question before on the netdev-Mailinglist, but never got an answer (Link: https://www.mail-archive.com/netdev at vger.kernel.org/msg133574.html). Maybe someone here can help me. I have a configuration like this: 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 5.9.86.151 dev eth0 5.9.86.151 dev eth0 proto kernel scope link src 5.9.86.144 root at des1 ~ # ip r s t 42 blackhole default I have the default routing table, and a routing table number 42. I could use an ip rule filtering by destination ip, but I wanted to try suppress_prefixlength. Let's say I want to ping 8.8.8.8. 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 8.8.8.8 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. Instead this configuration takes the whole machine offline: root at des1 ~ # ping 8.8.8.8 connect: Invalid argument When I delete the ip rule 32765 containing the suppress_prefixlength, the machine is back online. Do I not understand the suppress_prefixlength-feature correctly or is this a bug? I tested with Kernel 4.7 and 4.6, both show the same behaviour as described above. Thanks for any replies in advance. Regards, Matthias