Hi, guys!

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
[EMAIL PROTECTED]
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 [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to