My Linux workstation (Mandrake 10.1 kernel 2.6.8.1) is dual-homed to two
ADSL Internet providers. Card eth0 (192.168.9.250) is the default route
and leads to an SMC router (192.168.9.254). Card eth1 (192.168.1.250)
leads to a Linksys router (192.168.1.1). I''m not doing any NAT or
PPPoE
in the workstation - the SMC and Linksys handle it all.
I know four commands that let you set an IP source address. Of the four,
only traceroute misbehaves with this configuration:
# nc -s 192.168.1.250 foo.bar # works out eth1
# mtr -a 192.168.1.250 foo.bar # works out eth1
# ping -I eth1 foo.bar # works out eth1
# traceroute -i eth1 foo.bar # misbehaves out eth0
# traceroute -s 192.168.1.250 foo.bar # misbehaves out eth0
I can see using tcpdump that traceroute -i or -s correctly sets the eth1
source address, but traceroute persists in sending out the packets on the
default interface eth0, not on eth1 that I asked for.
When I do something like "traceroute -i eth1 foo.bar" I see nothing
on eth1. On eth0 (the default route goes via eth0) tcpdump shows me
packets with the eth1 source address heading out to foo.bar. (They
don''t
come back!) I expected that the eth1 source packets would leave on eth1,
not on eth0.
Is this my own LARTC misconfiguration, or a traceroute issue? Given that
traceroute is the only one misbehaving, I''m inclined to think it
isn''t
my fault. I''m trying to locate the current maintainer of traceroute
and see what the story is.
Detailed config follows:
----- IP Rules ----------------------------------
0: from all lookup local
10: from 192.168.9.0/24 lookup 1
20: from 192.168.1.0/24 lookup 2
32766: from all lookup main
32767: from all lookup default
----- Table local ----------------------------------
broadcast 192.168.1.0 dev eth1 proto kernel scope link src 192.168.1.250
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.9.0 dev eth0 proto kernel scope link src 192.168.9.250
broadcast 192.168.1.255 dev eth1 proto kernel scope link src 192.168.1.250
broadcast 192.168.9.255 dev eth0 proto kernel scope link src 192.168.9.250
local 192.168.1.250 dev eth1 proto kernel scope host src 192.168.1.250
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 192.168.9.250 dev eth0 proto kernel scope host src 192.168.9.250
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
----- Table 1 ----------------------------------
default via 192.168.9.254 dev eth0 proto static src 192.168.9.250
----- Table 2 ----------------------------------
default via 192.168.1.1 dev eth1 proto static src 192.168.1.250
----- Table main ----------------------------------
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.250
192.168.9.0/24 dev eth0 proto kernel scope link src 192.168.9.250
127.0.0.0/8 dev lo scope link
----- Table default ----------------------------------
default via 192.168.9.254 dev eth0 proto static src 192.168.9.250 metric 1
default via 192.168.1.1 dev eth1 proto static src 192.168.1.250 metric 2
--
-IAN! Ian! D. Allen Ottawa, Ontario, Canada
EMail: idallen@idallen.ca WWW: http://www.idallen.com/
College professor (Linux) via: http://teaching.idallen.com/
Support free and open public digital rights: http://eff.org/
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/