freebsd 7.1 default ipv6 gateway problem

Hi,

I have network consists of 2 computers(say A and B) and a router.

When I use rtsol in A, I can get the global scope ipv6 address and the default gateway properly.

But when I send fake router advertisement messages from B, A accepts advertisements and makes fake address as default gateway. Ä°s this the expected behaviour?

What is the procedure for selecting default router?

thanks in advance...

before I send fake messages from B

Code:
# netstat -finet6 -rn

Routing tables
Internet6:
Destination                       Gateway                       Flags      Netif Expire
default                           fe80::***:cb0(real gateway)  UG         fxp0

after I send fake messages from B,

Code:
# netstat -finet6 -rn

Routing tables
Internet6:
Destination                       Gateway                       Flags      Netif Expire
default                           fe80::***:a(fake gateway)  UG         fxp0

my configuration is:

Code:
# sysctl -a | grep ip6
net.inet6.ip6.forwarding: 0
net.inet6.ip6.redirect: 1
net.inet6.ip6.hlim: 64
net.inet6.ip6.maxfragpackets: 4112
net.inet6.ip6.accept_rtadv: 1
net.inet6.ip6.keepfaith: 0
net.inet6.ip6.log_interval: 5
net.inet6.ip6.hdrnestlimit: 15
net.inet6.ip6.dad_count: 1
net.inet6.ip6.auto_flowlabel: 1
net.inet6.ip6.defmcasthlim: 1
net.inet6.ip6.gifhlim: 30
net.inet6.ip6.kame_version: FreeBSD
net.inet6.ip6.use_deprecated: 1
net.inet6.ip6.rr_prune: 5
net.inet6.ip6.v6only: 1
net.inet6.ip6.rtexpire: 3600
net.inet6.ip6.rtminexpire: 10
net.inet6.ip6.rtmaxcache: 128
net.inet6.ip6.use_tempaddr: 0
net.inet6.ip6.temppltime: 86400
net.inet6.ip6.tempvltime: 604800
net.inet6.ip6.auto_linklocal: 1
net.inet6.ip6.prefer_tempaddr: 0
net.inet6.ip6.use_defaultzone: 0
net.inet6.ip6.maxfrags: 4112
net.inet6.ip6.mcast_pmtu: 0

my system:
Code:
# uname -a
FreeBSD pcname 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan  1 14:37:25 UTC 2009     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
 
yavuzg said:
I have network consists of 2 computers(say A and B) and a router.

When I use rtsol in A, I can get the global scope ipv6 address and the default gateway properly.

But when I send fake router advertisement messages from B, A accepts advertisements and makes fake address as default gateway. Ä°s this the expected behaviour?
Unfortunately, yes.

What is the procedure for selecting default router?
Running a properly setup rtadvd on the gateway or use dhcp6.

NB fe80:: addresses are link-local, non-routable addresses.
 
What is the procedure for selecting default router?

According to RFC 2461 "6.3.6. Default Router Selection" section, I think there is no need to update default router in my case.
 
I've been playing with IPv6 for some time now and I see no reason why a client wouldn't pick up any 'new' router advertisements. How would the client know the gateway was changed? What if there appeared a 'better' route? As far as I understood it the purpose of using rtsol/rtadvd is to make the whole network more dynamic. The downside of this would be rogue router advertisements ruining it.
 
SirDice said:
How would the client know the gateway was changed? What if there appeared a 'better' route? As far as I understood it the purpose of using rtsol/rtadvd is to make the whole network more dynamic. The downside of this would be rogue router advertisements ruining it.

Thanks for the answer. You are true, a client has to accept rtadvd messages in some manner. I want to learn the exact mechanism behind the router selection of freebsd network implementation.

in rfc 2461, section 6.3.6 says that:
The policy for selecting routers from the Default Router List is as
follows:

1) Routers that are reachable or probably reachable (i.e., in any
state other than INCOMPLETE) SHOULD be preferred over routers
whose reachability is unknown or suspect (i.e., in the
INCOMPLETE state, or for which no Neighbor Cache entry exists).
An implementation may choose to always return the same router or
cycle through the router list in a round-robin fashion as long
as it always returns a reachable or a probably reachable router
when one is available.

I think freebsd use round-robin fashion and this is the reason of my router change...
 
Back
Top