freebsd 7.1 default ipv6 gateway problem

yavuzg

Member

Reaction score: 2
Messages: 24

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
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 7,763
Messages: 30,893

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.
 
OP
OP
Y

yavuzg

Member

Reaction score: 2
Messages: 24

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.
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 7,763
Messages: 30,893

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.
 
OP
OP
Y

yavuzg

Member

Reaction score: 2
Messages: 24

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...
 
Top