Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
This makes the actual code which generates the configs much more human
readable.
|
|
A ip-pre-up script is better the ip-up as this is done before any addresses
have been added and any traffic flows.
|
|
VRRP: T1820: Added transition-script support for sync-groups
|
|
|
|
|
|
VRRP: T2193: Added disabled VRRP instances to `show vrrp`
|
|
vrf: T31: Allow vrf name to look more like interface name
|
|
Fix the regex to allow vrf instances like "eth0vrf" but not to allow
"eth0"
|
|
|
|
|
|
|
|
Every VRF that's created is not allowed to be named like any interface that
can be active on the system. This includes eth, lan, br, dum, lo ....
In theoriy this would work but as soon as such a regular interface is created
things will go sideways rather quick thus we limit the namespace which can
be used to create a VRF.
Appending an interface name is still possible like coolvrf-eth0.
|
|
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.
TODO: also move the backup default route parts to this new script.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
Every interface on the system can be a member of a bridge - thus the bridge
interface must be the one interface which has the highest priority
compared to all other interfaces - incl. l2tpv3.
With this change the system boots up fine with also l2tpv3 interfaces
participating as bridge members. This change was needed as a l2tpv3 interface
requires proper configured routing oin the system, else adding the
interface will fail miserably:
FileNotFoundError: [Errno 2] ip l2tp add tunnel tunnel_id 200
peer_tunnel_id 100 udp_sport 4000 udp_dport 3000 encap udp
local 172.18.201.10 remote 172.18.203.10
returned: RTNETLINK answers: Network is unreachable
|
|
As L2TPv3 interfaces can be member interface of a bridge device it must be
configured prior to the bridge - else the system will boot with an error as
member adding fails.
|
|
Fixes reference to unspecified variable
Traceback (most recent call last):
File "/usr/libexec/vyos/conf_mode/interfaces-l2tpv3.py", line 245, in <module>
apply(c)
File "/usr/libexec/vyos/conf_mode/interfaces-l2tpv3.py", line 211, inapply
l = L2TPv3If(l2tpv3['intf'], **conf)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 185, in __init__
self._create()
File "/usr/lib/python3/dist-packages/vyos/ifconfig/l2tpv3.py", line 48, in _create
cmd = 'ip l2tp add tunnel tunnel_id {} '.format(config['tunnel_id'])
NameError: name 'config' is not defined
|
|
Commit 8a4dd6c2816 ("ifconfig: T2057: add class Register") added the interface
options but not all have been migrated. The forgotten ones have been
added by this commit (session_id & peer_session_id).
|
|
Import statement has been forgotton on the ifconfig file split.
|
|
Note: if transition-scripts configured for both vrrp instance and sync group, which are it a member of, both scripts will be executed.
|
|
Disabled VRRP instances will be listed in a `show vrrp` command at the end of the list with the DISABLED status
|
|
keepalived: T1350: Replaced transition scripts logic
|
|
validate: T2182: IPv6 normalisation and % in interface name
|
|
The IPv6 address can be expressed in different ways:
(for example all these are valid loopback ::1, 0::1, 0:0::0:001)
The IPv6 need to be normalised when tested, and the best way to
do this is to test it on-wire representation, the same can be done
for IPv4.
Also The interface name which returned by netifaces.ifaddresses can
have a % in the 'addr' field, for example '::1%eth0', which would
also break the test in is_intf_addr_assigned.
|
|
In old implementation, all notify scripts are configured directly inside a keepalived.conf. This way is not recommended even by keepalived as scripts execution is not tracked and they may be running not in order and killed before the actual work will be finished. We have observed such situations in very rare cases during tests.
New implementation use FIFO pipe, to which keepalived send any state changes. And these notifications are read by a daemon, saved in a queue and processed one by one, which eliminates the situation when the scripts creating inconsistent config or environment.
|
|
This reverts commit e2f80e57d9895d207edf0ad92c299dc7862087d6.
Due to failing smoketests this commit is reverted.
|
|
validate: T2182: IPv6 are not normalised when compared
|
|
T2188: use ntpq for query NTP daemon infos
|
|
ifconfig: T2057: Move code from interface.py to wireguard.py
|
|
Some left over wireguard code was left in the interface.py
file. The code was moved into the wireguard.py file and
the now empty interface.py file removed as no longer holdin
any code.
|
|
In order to be able to use the interface class
with operational mode, these commands must not log as
it would otherwise mess with the output on the screen.
|
|
|
|
vyos.config: T2180: ignore CLI edit level in show_config
|
|
Change trailing syntax
|
|
|
|
Adding an already existing IP address on an interface would cause
the 'ip addr add' command to fail. To prevent this, the code checks
if the IP already exists on the interface.
The code was not normalising the different ways of
representing the IPv6 address (trailing 0, ::, etc.).
|