Page MenuHomeVyOS Platform

Configuration won't accept IPv6 addresses for site-to-site VPN tunnel prefixes/traffic selectors
Closed, ResolvedPublicBUG

Description

Created below configuration:

interfaces {
    loopback lo {
        address f001::2/128
    }
    tunnel tun0 {
        encapsulation ip6gre
        mtu 1400
        remote f001::1
        source-address f001::2
    }
}
vpn {
    ipsec {
        esp-group default {
            proposal 1 {
                encryption aes256ctr
                hash sha512
            }
        }
        ike-group default {
            proposal 1 {
                dh-group 14
                encryption aes256ctr
                hash sha512
            }
        }
        site-to-site {
            peer vpn.test.com {
                authentication {
                    id vpn.test.com
                    mode pre-shared-secret
                    pre-shared-secret 12345
                    remote-id remote-vpn.test.com
                }
                connection-type respond
                ike-group default
                local-address any
                tunnel 0 {
                    esp-group default
                    local {
                        prefix f001::2/128
                    }
                    protocol ipv6
                    remote {
                        prefix f001::1/128
                    }
                }
            }
        }
    }
}

When attempting to commit, the following error is returned:

Report Time: 2021-06-30 12:07:18
Image Version: VyOS 1.4-rolling-202106290839
Release Train: sagitta
Built by: [email protected]
Built on: Tue 29 Jun 2021 16:38 UTC
Build UUID: 818f899d-4004-4c1b-a98d-f1b687013088
Build Commit ID: ce49275606e303
Architecture: x86_64
Boot via: livecd
System type: KVM guest
Hardware vendor: innotek GmbH
Hardware model: VirtualBox
Hardware S/N: 0
Hardware UUID: 0c618a75-bc3a-4569-a7f7-b163c5bd89fb
Traceback (most recent call last):

  File "/usr/libexec/vyos/conf_mode/vpn_ipsec.py", line 441, in <module>
    generate(ipsec)
  File "/usr/libexec/vyos/conf_mode/vpn_ipsec.py", line 378, in generate
    if cidr_fit(local_prefix, remote_prefix):
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 729, in cidr_fit
    prefix_a = binary_network_prefix(cidr_a)
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 727, in binary_network_prefix
    return address_to_bits(address)[:prefix_size]
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 719, in address_to_bits
    bit_list = [bin(int(part)) for part in address.split(".")]
  File "/usr/lib/python3/dist-packages/vyos/util.py", line 719, in <listcomp>
    bit_list = [bin(int(part)) for part in address.split(".")]
ValueError: invalid literal for int() with base 10: 'f001::2'

Details

Difficulty level
Easy (less than an hour)
Version
VyOS 1.4-rolling-202106290839
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible