[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sun, 18 Oct 2009 00:30:30 -0700
From: Maciej Żenczykowski <zenczykowski@...il.com>
To: Linux Networking <netdev@...r.kernel.org>,
YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>
Subject: Question about IPV6 forwarding and proxy_ndp
I would like to have a machine:
* do IPv6 forwarding
- thus "echo 1 > /proc/sys/net/ipv6/conf/all/forwarding"
* accept router advertisements and default route from eth0
- thus "echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding"
* do proxy NDP on eth0 for a specific v6 address
- thus "echo 1 > /proc/sys/net/ipv6/conf/eth0/proxy_ndp"
- and "ip -6 neigh add proxy ${PROXIED_V6_IP} dev eth0"
Problem is, this doesn't work (no ndp responses for the proxied v6 ip)...
While, if I "echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding" than
proxy ndp starts working, but I lose my default route...
I think the problem is at:
http://lxr.linux.no/linux+v2.6.31/net/ipv6/ndisc.c#L832
831 if (ipv6_chk_acast_addr(net, dev, &msg->target) ||
832 (idev->cnf.forwarding &&
833 (net->ipv6.devconf_all->proxy_ndp ||
idev->cnf.proxy_ndp) &&
834 (is_router = pndisc_is_router(&msg->target,
dev)) >= 0)) {
835 if (!(NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED) &&
836 skb->pkt_type != PACKET_HOST &&
837 inc != 0 &&
838 idev->nd_parms->proxy_delay != 0) {
notice that we require idev->cnf.forwarding to be true.
Should this perhaps be changed to
(net->ipv6.devconf_all->forwarding || idev->cnf.forwarding)
or even just
net->ipv6.devconf_all->forwarding
?
It's not clear to me what the reasoning behind that if statement is...
- Maciej
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists