[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(usagi-users 00526) Re: Autoconfiguration problem with radvd
- To: <usagi-users@xxxxxxxxxxxxxx>
- Subject: (usagi-users 00526) Re: Autoconfiguration problem with radvd
- From: Pekka Savola <pekkas@xxxxxxxxxx>
- Date: Sat, 19 May 2001 09:42:19 +0300 (EEST)
- Cc: <mipl@xxxxxxxxxxxxxxxxxxxxxxxxx>
- In-reply-to: <OF5003E15E.CBE61187-ON88256A50.007DF87B@LocalDomain>
- Reply-to: usagi-users@xxxxxxxxxxxxxx
On Fri, 18 May 2001, Venkata Jagana wrote:
[snip]
> We have configured a 2.4.2 linux box as a router with 2 network interfaces,
> and two nodes connected to the two interfaces. We are using radvd to
> configure
> global subnet prefixes on both the interfaces as well as the 2 nodes
> connected on this network.
>
> When the router boots, if we enable forwarding
> (net.ipv6.conf.all.forwarding)
> and then start radvd, the two local interfaces on the router don't get
> global
> addresses and also there are no corresponding route entries. However the 2
> nodes on the network get global addresses (with global prefixes set in
> radvd.conf) from the radvd's router advertisement as expected. Due to this,
> we are not able to even ping6 one node from the other since the routing
> entries on the router are not setup at all.
>
> We have found a workaround for this problem by first running radvd and then
> enabling ipv6 forwarding. Without changing the kernel or any other
> configuration, the local interfaces are initialized with global addresses,
> and the routing tables are also setup correctly and then we are able to
> ping6 across the router.
>
> Has anyone else seen this problem, is this an error in our configuration or
> a genuine problem ?
This is a problem with your approach. Routers (all/forwarding=1) should
never be autoconfigured. Instead, do it manually.
The behaviour you're seeing is caused by the fact that when you enable
forwarding, all kinds of things happen with regard to router/neighbour
discovery.
From my 2.4.5pre3 ip-sysctl.txt documentation:
all/forwarding:
---
conf/all/forwarding - BOOLEAN
Enable global IPv6 forwarding between all interfaces.
IPv4 and IPv6 work differently here; e.g. netfilter must be used
to control which interfaces may forward packets and which not.
This also sets all interfaces' Host/Router setting
'forwarding' to the specified value. See below for details.
This is referred to as global forwarding.
---
device/forwarding
---
forwarding - BOOLEAN
Configure interface-specific Host/Router behaviour.
Note: It is recommended to have the same setting on all
interfaces; mixed router/host scenarios are rather uncommon.
FALSE:
By default, Host behaviour is assumed. This means:
1. IsRouter flag is not set in Neighbour Advertisements.
2. Router Solicitations are being sent when necessary.
3. If accept_ra is TRUE (default), accept Router
Advertisements (and do autoconfiguration).
4. If accept_redirects is TRUE (default), accept Redirects.
TRUE:
If local forwarding is enabled, Router behaviour is assumed.
This means exactly the reverse from the above:
1. IsRouter flag is set in Neighbour Advertisements.
2. Router Solicitations are not sent.
3. Router Advertisements are ignored.
4. Redirects are ignored.
Default: FALSE if global forwarding is disabled (default),
otherwise TRUE.
---
It is possible to set up mixed Host/Router systems, where you're router on
one interface and host on another, but if you think you have this
situation you might want to change the network topology or think again :-)
--
Pekka Savola "Tell me of difficulties surmounted,
Netcore Oy not those you stumble over and fall"
Systems. Networks. Security. -- Robert Jordan: A Crown of Swords