I have several (linux) machines with public static IPs visible to the outside world. Let's call these machines the "A" group. I also have machines on the local LAN (10.x.x.x) that are not visible to the outside world. Let's call these the "B" group. In some cases, when a machine in the A group ("A1") tries to ping a machine in the B group ("B1"), the router keeps sending ICMP redirects and the pings never succeed. I don't understand what's causing this behavior, but I suspect it might have something to do with the router's ARP cache? I say this because if B1 has any recent network activity of its own, the ICMP redirects don't happen and the pings from A1 are echoed back just fine. However, if B1 is completely idle (no network packets are transmitted or received) for an extended period of time, subsequent pings from A1 fail as I described. Furthermore, if B1 pings the router while the ICMP redirects are being sent to A1, the ICMP redirects immediately stop and A1 starts receiving echo responses from B1 as expected.
What is the best way to resolve this? Should I "ip addr add 10.x.x.x/24 dev eth0" to the A machines, so that they have both a public IP and a local IP on the same interface? That seems to work but it's very kludgy. Is there a better solution?
By the way, I lost my router password :-( :-( :-( so I can't tell you what version of firmware it's running. If someone could please reset that password to the default for me, that would be great.
Yes, if I recall when I had the SMC gateway it would periodically lose network access to machines directly connected that had links that remained silent for long periods. I ended up just doing a cron job that would ARPing the cable modem from the connected servers. Also a kludge, but it resolved the issue for me.