source ip + masq (2.2.13 -> 2.2.14)

Catalin BOIE (util@deuroconsult.ro)
Fri, 18 Feb 2000 16:02:30 +0200 (EET)


Hi, guys!

I don't know if this message get to the list, so I rend it.

I think I found a bug in network code.

With 2.2.13 everything it's ok, but 2.2.14 is bad.

I have 2 IPs on 1 interface and using source routing (ip ru + ip
ro) for a 192.168.4.0 net.

I have eth0 with IP1 and IP2 IPs. eth1 is connected to 192.168 network.
I have a rule that say: choose routing table 100. Table 100 say that
default is the route to gateway1 (that is from the same net as IP1).
This works ok.

But, with 2.2.14 a host from 192.168.4.0 net choose IP2 as source, and
this is wrong.

I don't know if you understand me well, but I can try to give you more
informations if you want.

Seems to me that with the new modifications in ip_masq.c a bug was
introduced. It's the second time when I look in the sources, so I can't
make the patch.

I think the code with the problem is:

if (ip_route_output(&rt, iph->daddr, 0, RT_TOS(iph->tos)|RTO_CONN, skb_dev?skb_dev->ifindex:0)) {
/* Fallback on old method */
/* This really shouldn't happen... */
maddr = inet_select_addr(skb_dev, skb_rt->rt_gateway, RT_SCOPE_UNIVERSE);
} else {
/* Route lookup succeeded */
maddr = rt->rt_src;
ip_rt_put(rt);
}

Thanks!

---
Catalin(ux) BOIE
catab@deuroconsult.ro
http://www2.deuroconsult.ro/~catab
Fax: (561) 760-6212
ICQ: 45443500

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/