Routing table drops packets via ppp0
I am having some trouble getting routing to work properly on a box with
three network connections. One, eth0, is connected to a router and is
the default gateway. Another, ppp0 (eth1 - ADSL) is connected to a
private network on the 192.168.17.0/24 address range. The third is a
standard LAN (eth2) on 192.168.2.0/24.
From the debian box, I can ping other machines connected via the ADSL
modem via ppp0. I can also ping machines on the internet via eth0 from
this box. In addition, any machine on the Office LAN can connect to
machines on the internet.
However, if a machine on the office LAN tries to connect to a machine on
the 192.168.17.0/24 network, the packets disappear somewhere in the
debian box. I can see the packets coming in with tcpdump but then they
disappear. The debian box does not try to route them at all.
Note that I have switched off all firewalling and switched ip_forwarding
on in the kernel.
The problem is related to the ADSL - ppp0 interface. The routing rules
look OK. I can ping from the debian box via ppp0 to hosts on the
connected network. However, if I ping from the office LAN, the packets
do get to the debian box OK, but it doesn't route them out ppp0. It
just seems to drop them. There is nothing in the logs to indicate any
errors. The packets just disappear.
The setup looks like this:
x.x.47.224/27 Router x.x.47.225
#------------# (eth1 -ppp0 ADSL)
# Debian Box #--192.168.17.2-->x.x.16.78-->192.168.17.0/24
Office LAN (192.168.2.0/24)
The routing table looks like:
# route -n
Destination Gateway Genmask Flag Met Ref Use Iface
x.x.16.78 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
x.x.243.224 0.0.0.0 255.255.255.224 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.17.0 x.x.16.78 255.255.255.0 UG 0 0 0 ppp0
0.0.0.0 x.x.243.225 0.0.0.0 UG 0 0 0 eth0