\begin{Darrell Burkey}
> I have two Linux boxes connected to separate Bigpond Direct accounts via
> modems that dial in to the same Telstra router. Anytime the two boxes talk
> to each other I get the following messages on the consoles of both machines:
> 
> Dec 29 08:45:26 adminserver kernel:   Advised path = 203.48.63.65 ->
> 139.130.12.155, tos 00
> Dec 29 08:45:27 adminserver kernel: Redirect from 139.130.12.129 on ppp0
> about 139.130.12.155 ignored.
> 
> This is also filling up the system logs and basically it's very annoying. My
> understanding is that the Cisco router at Telstra is simply advising the
> Linux boxes that there is a direct path between them and that the routing
> tables should be updated to reflect this. ???

yep. ICMP redirect messages. normal and proper.

> 1. Eliminate the cause of the messages.
> I don't have control over the router generating the message so that option
> is out. I also thought that perhaps I could add a static route on each box
> to the other but that doesn't seem to work. I find it a bit confusing as
> each box has a network address plus a local and remote ip address being fed
> to pppd via options. These addresses were assigned by Telstra. Anyway, I've
> tried every combination of routing table entries and I still get the
> messages.
> 
> 2. Replace klogd with something like megalog that allows regex matching so I
> can filter out the messages. I've read up on this and it looks like a strong
> possibility but I'd rather eliminate the cause of the messages if  possible.
> 
> So, anyone have any tricks up their sleeves?

a quick grep of my nearest kernel source (2.2.19), showed:

net/ipv4/route.c:
  reject_redirect:
  #ifdef CONFIG_IP_ROUTE_VERBOSE
          if (IN_DEV_LOG_MARTIANS(in_dev) && net_ratelimit())
                  printk(KERN_INFO "Redirect from %X/%s to %X ignored."
                         "Path = %X -> %X, tos %02x\n",
                         ntohl(old_gw), dev->name, ntohl(new_gw),
                         ntohl(saddr), ntohl(daddr), tos);
  #endif


there's numerous reasons the code jumps to reject_redirect:

(from my quick understanding of the if blocks)
new gateway == old gateway, some multicast stuff, new address is 0.0.0.0,
if the new address isn't in the range of the network cards addresses,
its a unicast interface

i'll let you work out why its rejecting the redirect.


so, to not see these messages, do one of the following:

work out why its being rejected, and avoid that. (will probably involve
reading the relevant section of route.c)

undefine CONFIG_IP_ROUTE_VERBOSE (its a kernel config option, iirc)

make sure the kernel isn't logging KERN_INFO messages to the console
directly:
  check /proc/sys/kernel/printk and the relevant section in
  Documentation/sysctl/kernel.txt

make sure syslog isn't logging kern.info messages to the console
(/etc/syslog.conf and syslog.conf(5))

-- 
 - Gus
-- 
SLUG - Sydney Linux User Group Mailing List - http://slug.org.au/
More Info: http://lists.slug.org.au/listinfo/slug

Reply via email to