Age | Commit message (Collapse) | Author |
|
The current CLI did not support multiple prefix-delegations per interface. Some
ISPs only send one /64 to a client per prefix-delegation request, but they
allow the customer to request multiple prefixes.
The 'dhcpv6-options prefix-delegation' node has been renamed and converted to a
tag node named 'dhcpv6-options pd'. The tag node specifies a PD request (>=0).
In the past the user needed to know what prefix will be assigned and required
to calculate the sla-len by himself. The 'sla-len' node was dropped and is now
calculated in the background from the 'dhcpv6-options pd 0 length' node.
It is no longer mandatory to supply the 'sla-id' node, if sla-id is not
specified it is 'guessed' by counting upwards.
Example configuration:
----------------------
ethernet eth1 {
address dhcpv6
dhcpv6-options {
pd 0 {
length 56
interface eth2 {
address 1
}
}
}
}
This will request a /56 assignment from the ISP and will delegate a /64 network
to interface eth2. VyOS will use the interface address ::1 on the delegate
interface (eth2) as its local address.
|
|
This removes additional code paths as we can instatly work with the input dict
the same was as it was done for PPPoE. This fixes the entire DHCPv6-PD support
on non PPPoE interfaces as this was lost in translation while processing T2653.
|
|
Further reduce the boiler-plate code to determine interface tag node or not.
It can be passed into get_interface_dict() if explicitly required - else it
is taken from the environment.
|
|
After switching from raw parsing of the interface options to get_config_dict()
this utilizes another utility function which wraps get_config_dict() and adds
other common and reused parameters (like deleted or bridge member).
Overall this drops redundant code (again) and makes the rest more maintainable
as we only utilize a single function.
|
|
|
|
|
|
|
|
Retrieving the CLI nodes from current config was missed out and only
implemented for PPPoE.
|
|
airbag :T2088: make airbag explicit
|
|
airbag must now be explicitly installed.
the patch also allow to fully disables the installation of the logging
code at setup (and not just installing and doing nothing)
|
|
|
|
Some ISPs (e.g. Comcast) only delegate a /64 by default. You have to explicitly
"ask" for a bigger (e.g. /60) prefix. This commit adds a CLI node to request
a specific prefix length in the range 32 - 64.
dhcpv6-options {
prefix-delegation {
length 60
}
}
|
|
Rename the CLI nodes for prefix delegation from "dhcpv6-options delegate
<interface>" to "dhcpv6-options prefix-delegation interface <interface>".
The change is required to add the possibility to request for specific prefix
sized via the CLI. That option was not possible with the old configuration
tree.
|
|
Commit 39c53aadbf9e ("pppoe: T2488: remove logfile generation") accidently
missed a not in an if statement.
|
|
|
|
|
|
|
|
|
|
|
|
The following configuration will assign a /64 prefix out of a /56 delegation
to eth0. The IPv6 address assigned to eth0 will be <prefix>::ffff/64.
If you do not know the prefix size delegated to you, start with sla-len 0.
pppoe pppoe0 {
authentication {
password vyos
user vyos
}
description sadfas
dhcpv6-options {
delegate eth0 {
interface-id 65535
sla-id 0
sla-len 8
}
}
ipv6 {
address {
autoconf
}
enable
}
source-interface eth1
}
vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 2001:db8:8003:400::ffff/64 u/u
|
|
Commit 2bf12b579e0 ("template: T2388: move mkdir/chmod/chown within render()")
passed an unexpected keyword to the render() function, it was simply
wrongly spelled.
|
|
|
|
convert all call to jinja to use template.render
|
|
|
|
As PPP can be used to establish a connection on-demand it manages the Kernel
default route. This can not be used when using VRFs which are managed by
the ip-up.d and ip-down.d scripts - thus those options are now mutially
exclusive.
The best fix would be adding support for VRFs into PPP.
|
|
|
|
... to make it clear also directories can be chown(-ed)
|
|
|
|
Now both files and directories are supported.
|
|
Commit b250b233ec1 ("pppoe: T1318: move Jinja2 templates to data/templates
folder") actually placed the pre-up configuration script into the ip-up
folder.
|
|
As PPPoE interfaces should be part of a VRF it is required that the default
can also be set into the specified VRF. The default way of PPP by setting the
"defaultroute" option does not take a VRF into account. In this case PPP
installs a Kernel route forwarding all default traffic over this interface.
This change installs a static route with metric 1 instead into the routing
table via FRR. This is not the same as a Kernel route in terms of metric 1
compared to 0 but it should do the trick.
|
|
This makes the actual code which generates the configs much more human
readable.
|
|
|
|
|
|
Commit 6a0c6783d8b2 ("pppoe: migrate alias and vrf script from pre-up to up")
changed the name of the ip-up script template but the template definition has
been forgotten.
This caused:
NameError: name 'config_pppoe_ip_up_tmpl' is not defined
|
|
As the pre-up script is only run once when the interface is brought up but
not when the interface maybe only comes up 20 seconds later due to the remote
site some actions can not be performed as placing the interface e.g. into a VRF
instance.
|
|
Commit d2cf287 ("vyos.util: add chown_file and chmod_x_file helpers") added
common helper functions to chown or chmod +x a file. Make use of those
helpers.
|
|
|
|
|
|
The creation of this directory has been done in the past using vyatta-
wirelessmodem and after it's replacement in vyos-1x the directory has not been
deployed anymore. Thos when rendering the PPPoE configuration the directory will
be created on deemand.
|
|
|
|
|
|
|
|
|
|
|
|
Commit d161cbb ("pppoe: T1493: fix invalid reference of ipv6-up script file")
actually introduced another bug instead of fixing it. It was catched by
vyos-smoketest ... luckily!
Sorry!
|
|
|
|
|
|
|
|
os.environ['VYOS_TAGNODE_VALUE']
This has been only a theoretical problem but then the error condition was
triggered - only an error has been printed instead of raising an Exception.
|