radvd-project / radvd

radvd | Official repository: https://github.com/radvd-project/radvd
https://radvd.litech.org/
Other
203 stars 107 forks source link

Using prefix ::/64 together with Base6Interface does not work #54

Closed ghost closed 8 years ago

ghost commented 8 years ago

Version: radvd 2.10

I have a "WAN" interface (eth1), which gets 64-Bit-prefix IPv6 address via RA from telecom provider. I want to announce the 64-Bit-prefix of this "WAN" IPv6 address on my "LAN" interface (br0), since I do want to have my linux box between, since I do not trust the telecom router and want to have full control over my "LAN" network.

So I have this config:

interface br0 {
    AdvSendAdvert on;
    AdvLinkMTU 1280;

    prefix ::/64 {
        Base6Interface eth1;
        # Very short lifetimes in seconds for dynamic addresses
        AdvValidLifetime 600;
        AdvPreferredLifetime 300;
    };

};

But I get the following message:

# /etc/init.d/radvd start
 * Enabling IPv6 forwarding ...                                                               [ ok ]
[Feb 12 10:51:17] radvd (24810): no auto-selected prefix on interface br0, disabling advertisements
[Feb 12 10:51:17] radvd (24810): config file, /etc/radvd.conf, syntax ok
 * Starting IPv6 Router Advertisement Daemon ... 

And br0 does not get an IPv6 address, indeed.

How can I achieve my goal?

reubenhwk commented 8 years ago

It may be that your prefix is 0::0/64. I don't think that'll work with Base6Interface. An all zero prefix will try to auto select a prefix from your br0. Try making your prefix ffff:ffff:ffff:ffff::/64.

Sent from my iPhone

On Feb 12, 2016, at 2:35 AM, wodry notifications@github.com wrote:

Version: radvd 2.10

I have a "WAN" interface (eth1), which gets 64-Bit-prefix IPv6 address via RA from telecom provider. I want to announce the 64-Bit-prefix of this "WAN" IPv6 address on my "LAN" interface (br0), since I do want to have my linux box between, since I do not trust the telecom router and want to have full control over my "LAN" network.

So I have this config:

interface br0 { AdvSendAdvert on; AdvLinkMTU 1280;

prefix ::/64 {
    Base6Interface eth1;
    # Very short lifetimes in seconds for dynamic addresses
    AdvValidLifetime 600;
    AdvPreferredLifetime 300;
};

}; According to this old mailing list post, that had been working: http://lists.litech.org/pipermail/radvd-devel-l/2012-March/000700.htm

But now I get the following message:

/etc/init.d/radvd start

  • Enabling IPv6 forwarding ... [ ok ] [Feb 12 10:51:17] radvd (24810): no auto-selected prefix on interface br0, disabling advertisements [Feb 12 10:51:17] radvd (24810): config file, /etc/radvd.conf, syntax ok
  • Starting IPv6 Router Advertisement Daemon ... And br0 does not get an IPv6 address, indeed.

How can I achieve my goal?

— Reply to this email directly or view it on GitHub.

ghost commented 8 years ago

Thanks, I did a short test, and with prefix "0::0/64" the behavior is the same as with "::/64".

With prefix "ffff:ffff:ffff:ffff::/64" br0 gets a correct IPv6 address with correct prefix.

But then after some minutes, my nameserver process (bind aka named), which has "listen-on-v6 { ::1; };" crashes, and also radvd process crashes. Both can only be terminated by SIGKILL (SIGTERM is not sufficient). I will do a precise analysis in some days/weeks, right now I do not want to spend time on this anymore.

Additionally, I am not sure if I really want my LAN client(s) to have IPv6 because on my Linux Router, which is running some services (link named, nfsd etc.), I have this dynamic IPv6 prefix and so I cannot bind the services to a fixed IP (like with private fixed LAN address 192.168.2.1/24) to that I can refer to on client side. Looks to me like IPv6 is more(only?) useful for servers with fixed IPv6 address and not for private use, where dynamic prefix change is welcome for privacy reason