Re: About IPv6 support

Gilles Diribarne <[email protected]>
Newsgroups gmane.linux.keepalived.devel
Message-ID <[email protected]>
Hi,

Thanks for reply...

On 01/04/2015 12:19, Frank Baalbergen wrote:

Hi,

On 04/01/2015 09:14 AM, Gilles Diribarne wrote:

Hi,

We have a VRRP configuration containing IPv6 virtual addresses, using
native_ipv6 mode.

This shouldn't be a problem, we are using this combination for a couple
of years. Can you share your complete configuration?

Our configuration is

vrrp_instance 35 {

native_ipv6

interface eth2

virtual_router_id 45

priority 150

virtual_ipaddress {

10.6.83.10/16
dev eth2

10.6.83.11/16
dev eth2

fc00::a06:530a/64 dev eth2

fc00::a06:530b/64 dev eth2

}

notify_master "/bin/run-parts /etc/system.d/vrrp/master
-a 35 -a 1"

notify_backup "/bin/run-parts /etc/system.d/vrrp/backup
-a 35 -a 0"

notify_fault "/bin/run-parts /etc/system.d/vrrp/fault -a
35 -a -1"

}

We are using both IPv4 and IPv6 virtual addresses in IPv6 native
mode. For this configuration, with keepalived 1.2.15, we have the
following VRRP packet output.

14:02:49.879867
00:19:dc:00:12:f2 > 33:33:00:00:00:12, ethertype IPv6
(0x86dd), length 62:

0x0000: 6000 0000
0008 70ff fe80 0000 0000 0000 `.....p.........

0x0010: 0219 dcff
fe00 12f2 ff02 0000 0000 0000 ................

0x0020: 0000 0000
0000 0012 212d 9604 0001 48cd
........!-....H.

Here is the details from the VRRP packet

version : 0x2

advertisement : 0x1

vrrp id : 0x2d (45)

priority : 0x96 (150)

addr count : 0x04 (2 IPv4
+ 2 IPv6)

auth type : 0x00

adver int : 0x01

checksum : 0x48cd

ip n°1 (ipv4) : not present

ip n°2 (ipv4) : not present

ip n°3 (ipv6) : not present

ip n°4 (ipv6) : not present

What we see is that there is no addresses sent. Is this a normal
behaviour ?

When receiving this packet, how the backup is expected to work if it
receives a vrrp id identical to the one into its own configuration
file, if it can not check that the virtual addresses match ?

Can't we have any problem of a backup becoming master for the wrong
instance ?

We have noticed that no IPv6 address is sent in native_ipv6 mode in the
VRRP packet.

So IPv6 addresses are sent when you remove native_ipv6?

No, I just did this test.

vrrp_instance 35 {

interface eth2

virtual_router_id 45

priority 150

virtual_ipaddress {

10.6.83.10/16 dev eth2

10.6.83.11/16 dev eth2

fc00::a06:530a/64 dev
eth2

fc00::a06:530b/64 dev
eth2

}

notify_master
"/bin/run-parts /etc/system.d/vrrp/master -a 35 -a 1"

notify_backup
"/bin/run-parts /etc/system.d/vrrp/backup -a 35 -a 0"

notify_fault
"/bin/run-parts /etc/system.d/vrrp/fault -a 35 -a -1"

}

Here is the packet output:

13:59:37.995683 IP (tos 0xc0,
ttl 255, id 157, offset 0, flags [none], proto VRRP (112),
length 52)

10.6.83.5 > 224.0.0.18 : VRRPv2,
Advertisement, vrid 45, prio 150, authtype none, intvl 1s,
length 32, addrs(4): 10.6.83.10,10.6.83.11,0.0.0.0,0.0.0.0

0x0000: 45c0 0034
009d 0000 ff70 7cdf 0a06 5305 E..4.....p|...S.

0x0010: e000 0012 212d 9604
0001 8eab 0a06 530a ....!-........S.

0x0020: 0a06 530b
0000 0000 0000 0000 0000 0000 ..S.............

0x0030: 0000
0000 ....

version : 0x2

advertisement : 0x1

vrrp id : 0x2d (45)

priority : 0x96 (150)

addr count : 0x04 (2 IPv4
+ 2 IPv6)

auth type : 0x00

adver int : 0x01

checksum : 0x8eab

ip n°1 (ipv4) : 0x0a06530a
(10.5.83.10)

ip n°2 (ipv4) : 0x0a06530b
(10.5.83.11)

ip n°3 (ipv6) : 0x00000000
(0.0.0.0)

ip n°4 (ipv6) : 0x00000000
(0.0.0.0)

The IPv6 addresses are replaced by 0.0.0.0 IPv4 addresses.

I had a look in the source code, and saw that there was no check of the
IP address in IPv6.

What is keepalived behaviour when native_ipv6 mode and IPv6 virtual
addresses are set ?

native_ipv6 sets VRRP multicasting protocol to IPv6. I took a short look
at the code, native_ipv6 and ipv6 virtual ip addresses should not
interfere with each other.

If the IPv6 virtual addresses are not conveyed into VRRP packet, the
receiver is not able to check the coherence with its own configuration.
It can only check that the VRRP identifier is same and the number of
virtual addresses is the same.

Not sure how this is implemented. Can you share what the output is from
wireshark when you turn of native_ipv6?

I just want to know if the current behaviour is normal. And if not,
is there any plan of a more complete IPv6 management ? If no, we are
interested in contributing about inserting IPv6 virtual addresses
into VRRP packet, but we maybe need to discuss about the right way
to do this.

Regards,

Gilles

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/

_______________________________________________
Keepalived-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.