Page MenuHomeVyOS Platform

IPv6 Link-Local Address - Automatically generation/configuration on GRE Interfaces
Closed, ResolvedPublicFEATURE REQUEST

Assigned To
None
Authored By
Unknown Object (User)
Aug 17 2020, 2:00 PM
Referenced Files
F1387385: mac.png
May 23 2021, 11:36 PM
F828175: image.png
Aug 19 2020, 2:32 PM
F825405: image.png
Aug 17 2020, 5:32 PM

Description

VyOS is not able to automatically generate/assign a Link-Local Address to any kind of (physical or logical) interfaces, according to the RFC 4862. Develop this feature to improve IPv6 implementation.

image.png (744×1 px, 265 KB)

https://tools.ietf.org/html/rfc4862#section-5.3 - RFC

A node forms a link-local address whenever an interface becomes

enabled.  An interface may become enabled after any of the following
events:

-  The interface is initialized at system startup time.

-  The interface is reinitialized after a temporary interface failure
   or after being temporarily disabled by system management.

-  The interface attaches to a link for the first time.  This
   includes the case where the attached link is dynamically changed
   due to a change of the access point of wireless networks.

-  The interface becomes enabled by system management after having
   been administratively disabled.

A link-local address is formed by combining the well-known link-local
prefix FE80::0 [RFC4291] (of appropriate length) with an interface
identifier as follows:

1.  The left-most 'prefix length' bits of the address are those of
    the link-local prefix.

2.  The bits in the address to the right of the link-local prefix are
    set to all zeroes.

3.  If the length of the interface identifier is N bits, the right-
    most N bits of the address are replaced by the interface
    identifier.

If the sum of the link-local prefix length and N is larger than 128,
autoconfiguration fails and manual configuration is required.  The
length of the interface identifier is defined in a separate link-
type-specific document, which should also be consistent with the
address architecture [RFC4291] (see Section 2).  These documents will
carefully define the length so that link-local addresses can be
autoconfigured on the link.

A link-local address has an infinite preferred and valid lifetime; it
is never timed out.

Details

Difficulty level
Unknown (require assessment)
Version
VyOS 1.3-rolling-202007300117
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Behavior change
Issue type
Feature (new functionality)

Event Timeline

Unknown Object (User) created this task.Aug 17 2020, 2:00 PM
Unknown Object (User) changed Is it a breaking change? from Unspecified (possibly destroys the router) to Behavior change.
Unknown Object (User) updated the task description. (Show Details)Aug 17 2020, 5:32 PM
Unknown Object (User) changed Version from - to VyOS 1.3-rolling-202007300117.
Unknown Object (User) added a comment.Aug 19 2020, 2:32 PM

In version VyOS 1.3-rolling-202008170118 physical interfaces have an automatic generated IPv6 Link-Local Address set, though Tunnel interfaces does not have it and it is necessary to set manually an IPv6 Link-Local Address ramdomly created. Tunnel interfaces also do not present a Layer-2 address from which a Link-Local IPv6 could be derived.

image.png (893×922 px, 169 KB)

Unknown Object (User) renamed this task from IPv6 Link-Local Address - Automatically generation/configuration on Interfaces to IPv6 Link-Local Address - Automatically generation/configuration on GRE Interfaces.Aug 19 2020, 2:55 PM

It's doesn't work only for GRE encapsulation.
All other interfaces work as expected.

vyos@r4-roll:~$ sudo ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::5054:ff:fe4b:a2c4/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::5054:ff:fe78:6e81/64 scope link 
       valid_lft forever preferred_lft forever
7: tun0@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 state UNKNOWN qlen 1000
    inet6 2001:db8:1111::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::6440:1/64 scope link 
       valid_lft forever preferred_lft forever
vyos@r4-roll:~$ 
vyos@r4-roll:~$ show version 

Version:          VyOS 1.3-rolling-202008190118
Viacheslav changed the task status from Open to Needs testing.May 21 2021, 10:46 PM
Viacheslav added a subscriber: fernando.

I can reproduce that behavior, although I use another VyOS version " VyOS 1.3-rolling-202104210642" with a virtual machine :

In my case I changed the mac on virtual interfaces eth0 , after Vyos is not able to assign ipv6 address ( RFC 4862):

mac.png (273×1 px, 52 KB)

if you see the mac on eth0 , it was setting manual and Vyos cli was configure to automatically learn the Link-Local Address:

set interfaces ethernet eth0 ipv6 address autoconf

Did you try VyOS 1.3-rc4?

Unfortunately I can not reproduce this by setting a new MAC address on the interface.

 ethernet eth1 {
     duplex auto
     hw-id 00:50:56:b3:cd:ba
+    mac 00:50:56:b3:cd:bb
     speed auto
 }
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:50:56:b3:cd:bb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:feb3:cdbb/64 scope link tentative
       valid_lft forever preferred_lft forever

Team ,

I`m Sorry! it maybe was an error that version , actually I try with Vyos 1.3-rc4 and It works well :

vyos@test-ipv6# set interfaces ethernet eth0 mac 00:2b:67:b3:cf:16
[edit]
vyos@test-ipv6# compare 
[edit interfaces ethernet eth0]
+mac 00:2b:67:b3:cf:16

then we get automatically ipv6 as defined in( RFC 4862):

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:2b:67:b3:cf:16 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::22b:67ff:feb3:cf16/64 scope link 
       valid_lft forever preferred_lft forever
erkin set Issue type to Feature (new functionality).Aug 29 2021, 1:23 PM
erkin removed a subscriber: Active contributors.