summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-20Merge pull request #4518 from dmbaturin/T7467-no-regex-wrappingChristian Breunig
xml: T7467: remove ^/$ wrapping from validation regexes
2025-05-20Merge pull request #4482 from talmakion/bugfix/T5069/permit-compound-regexDaniil Baturin
policy: T5069: large-community-list regex validator disallows whitespace
2025-05-20Merge pull request #4513 from natali-rs1985/T7287Daniil Baturin
openconnect: T7287: VPN Openconnect does not check dictionary key se…
2025-05-20xml: T7467: remove ^/$ wrapping from validation regexesDaniil Baturin
since the validation utility adds them implicitly
2025-05-20Merge pull request #4516 from dmbaturin/T7464-fix-snmp-community-regexChristian Breunig
snmp: T7464: fix the community string validation regex for compatibility with PCRE2
2025-05-20Merge pull request #4517 from dmbaturin/T7466-bonding-mode-regex-fixChristian Breunig
bonding: T7466: fix the 802.3ad regex
2025-05-20bonding: T7466: fix the 802.3ad regexDaniil Baturin
2025-05-20snmp: T7464: fix the community string validation regexDaniil Baturin
for compatibility with PCRE2
2025-05-19Merge pull request #4509 from sever-sever/T7458Daniil Baturin
T7458: Fix VPN IPsec unexpected passthrough logic bug
2025-05-19Merge pull request #4510 from sever-sever/T7414Daniil Baturin
T7414: Fix conntrack ignore rules for using several ports
2025-05-19openconnect: T7287: VPN Openconnect does not check dictionary key server ↵Nataliia Solomko
with authentication mode RADIUS
2025-05-16T7414: Fix conntrack ignore rules for using several portsViacheslav Hletenko
If we use several port for the `conntrack ignore` there have to be used curly braces for nftables Incorrect format: dport 500,4500 Correct format: dport { 500, 4500 }
2025-05-16T7458: Fix VPN IPsec unexpected passthrough logic bugViacheslav Hletenko
VPN IPsec unexpected passthrough logic bug was introduced in this commit https://github.com/vyos/vyos-1x/commit/f480346bb8e934b1ce2e0fc3be23f7168273bba1 The correct behaviour of the `cidr_fit` was replaced with the incorrect `overlap` This way, the passthrough option is used every time when networks overlap. ``` >>> from ipaddress import ip_network >>> >>> a = ip_network('192.0.2.0/24') >>> b = ip_network('192.0.2.100/30') >>> >>> a.overlaps(b) True >>> >>> b.overlaps(a) True >>> ``` But there should be `subnet_of`: ``` >>> a.subnet_of(b) False >>> >>> b.subnet_of(a) True >>> ``` In configuration it looks like ``` set vpn ipsec site-to-site peer RIGHT tunnel 0 local prefix '192.0.2.0/24' set vpn ipsec site-to-site peer RIGHT tunnel 0 remote prefix '192.0.2.100/30' ``` The StrongSwan unexpected configuration: ``` RIGHT-tunnel-0-passthrough { local_ts = 192.0.2.0/24 remote_ts = 192.0.2.0/24 start_action = trap mode = pass } ``` So all outcoming traffic to the 192.0.2.0/24 pass through the main routing table instead of out SA Use `subnet_of` to fix this
2025-05-15Merge pull request #4507 from jestabro/T7450-use-pcre2Christian Breunig
T7450: update commit hash for Use PCRE2 instead of PCRE
2025-05-14T7450: update commit hash for Use PCRE2 instead of PCREJohn Estabrook
2025-05-13Merge pull request #4502 from c-po/pam-nologinJohn Estabrook
T7443: Un-restricting non-root logins after scheduled reboot/shutdown via pam_nologin
2025-05-13Merge pull request #4503 from aapostoliuk/T7157-circinus-fix2Daniil Baturin
T7157: bgp: Added verification of the route-map existence in vrf import
2025-05-12Merge pull request #4483 from markh0338/remote-group-v6Christian Breunig
T7386: firewall: Allow IPv6 member in firewall remote-groups
2025-05-12T7157: bgp: Added verification of the route-map existence in vrf importaapostoliuk
Added verification of the route-map existence in the vrf route-leaking.
2025-05-12Merge pull request #4500 from dmbaturin/T7411-frr-restart-fixDaniil Baturin
frr: T7411: preserve FRR config on service restart if it exists
2025-05-12Merge pull request #4494 from c-po/haproxy-loggingDaniil Baturin
haproxy: T7429: remove unsupported logging facility and log level
2025-05-09T7443: Un-restricting non-root logins after scheduled reboot/shutdown via ↵Christian Breunig
pam_nologin When using reboot in, reboot at, or shutdown in, non-root users are prevented from logging in via SSH or console starting 5 minutes before the scheduled shutdown or reboot time. This behavior is intended by pam_nologin.so, which is included in the SSH and login PAM stack (default on Debian). While expected, it may be inconvenient and could be reconsidered.
2025-05-09Merge pull request #4491 from sever-sever/T7423Viacheslav Hletenko
T7423: Add kernel boot options isolcpus, hugepages, numa_balancing
2025-05-09policy: T5069: large-community-list regex validator should allow whitespaceAndrew Topp
* Re-introduce the whitespace/pattern matches ' ' and '_' as allowed * Perform a general Python regex validity check (not 100% 1003.2, but in combination with allowedChars, pretty close) * Introduce a warning against potentially malformed or over-complex patterns, but leave it up to the user to resolve - there are plenty of useful expressions we cannot validate easily
2025-05-08haproxy: T7429: remove unsupported logging facility and log levelChristian Breunig
VyOS 1.4.1 implemented support for logging facilities for HAProxy. The facilities got included from the syslog XML definition, which also added "virtual" or non existing facilities in HAProxy, namely: all, authpriv and mark. If any of the above facilities is set, HAProxy will not start. The XML definition for syslog also came with an arbitrary log-level "all" that is also unsupported in HAProxy. This commit adds a migration script removing the illegal CLI nodes.
2025-05-08frr: T7411: preserve FRR config on service restart if it existsDaniil Baturin
2025-05-08T7423: Add kernel boot options isolcpus, hugepages, numa_balancingViacheslav Hletenko
Add kernel options which apply during the boot: - isolcpus - nohz_full - rcu_nocbs - default_hugepagesz - hugepages - hugepagesz - numa_balancing - hpet - mce - nosoftlockup - nmi_watchdog CLI: ``` set system option kernel cpu disable-nmi-watchdog set system option kernel cpu isolate-cpus '1,2,4-5' set system option kernel cpu nohz-full '1,2,4-5' set system option kernel cpu rcu-no-cbs '1,2,4-5' set system option kernel disable-hpet set system option kernel disable-mce set system option kernel disable-softlockup set system option kernel memory default-hugepage-size '2M' set system option kernel memory disable-numa-balancing set system option kernel memory hugepage-size 1G hugepage-count '2' set system option kernel memory hugepage-size 2M hugepage-count '512' ```
2025-05-08Merge pull request #4484 from ryanzuwala/T7051Daniil Baturin
nat66: T7051: snat group as destination
2025-05-08Merge pull request #4323 from xeluior/T7095_vrf-fixDaniil Baturin
utils: T7095: make `vrf` and `netns` arguments aware of the shell
2025-05-07T7386: firewall: use signal SIGPIPE/SIG_DFL to suppress brokenpipe errors on ↵Mark Hayes
large output
2025-05-07T7386: firewall: allow mix of IPv4 and IPv6 addresses/prefixes/ranges in ↵Mark Hayes
remote groups
2025-05-06Merge pull request #4493 from jestabro/vrf-migration-err-1-to-2Daniil Baturin
T7417: check existence of paths before set_tag/return_value in migration scripts vrf/1-to-2; vrf/2-to-3
2025-05-06Merge pull request #4495 from c-po/frr-logDaniil Baturin
frr: T7431: missing logging options after rewrite to frrender class
2025-05-06Merge pull request #4447 from l0crian1/t7268-show-interfaces-kernelDaniil Baturin
interfaces: T7268: Add op-mode command for show all interfaces on system
2025-05-06Merge pull request #4387 from woodsb02/patch-1Daniil Baturin
installer: T7049: Fix GRUB boot with RAID1
2025-05-06Merge pull request #4480 from c-po/T7122-pkiDaniil Baturin
T7122: pki: unable to switch from custom cert to ACME when HAProxy service is running with 'redirect-http-to-https' option
2025-05-05frr: T7431: missing logging options after rewrite to frrender classChristian Breunig
In src/etc/systemd/system/frr.service.d/override.conf#L6-L11 the log entry is added on restart - but not during normal operation of frrender.py Logging should be added persistent when rendering the FRR configuration using FRRender class.
2025-05-05T7417: check existence of table setting before return_valueJohn Estabrook
Migration from 1.3.x may not contain table entries, later required. The migration script should not fail with error, leaving enforcement to config scripts.
2025-05-05T7417: check existence of path before set_tagJohn Estabrook
The migration script assumed the existence of path ['vrf', 'name', tag-val-name, 'protocols', 'static', 'route'] ignoring sole entries for [..., 'route6']. Check existence of each path before calling set_tag.
2025-05-05pki: T7122: when ACME listen-address is used - check if port is availableChristian Breunig
When instructing certbot to listen on a given address, check if the address is free to use. Also take this into account when spawning certbot behind HAProxy. If the address is not (yet) bound - the request must be done in standalone mode and not via the reverse-proxy.
2025-05-05haproxy: T7122: add ACME/certbot bootstrap supportChristian Breunig
When both the CLI PKI node for an ACME-issued certificate and HAProxy are configured during initial setup, the certbot challenge cannot be served via the reverse proxy because HAProxy has not yet been configured at all. This commit introduces a special case to handle this bootstrap scenario, ensuring that the certbot challenge can still be served correctly in standalone mode on port 80 despite initial config dependencies/priorities between PKI and HAProxy.
2025-05-05pki: T7122: extend ca/certificate removal check to listsChristian Breunig
Some VyOS CLI nodes support defining multiple certificates. The previous check when removing a certificate from the CLI only performed a string comparison, which failed in cases where the underlying data was a list (CLI <multi/> node). This update extends the check to handle both cases: - If the datum is a string, perform a string comparison. - If the datum is a list, check whether the target certificate is part of the list. This ensures proper removal behavior regardless of the data type used in the CLI node.
2025-05-05vyos.base: T7122: add new Message() helper wrapper for print()Christian Breunig
This will wrap the messages at 72 characters in the same way as Warning() and DeprecationWarning() would do. We now have simple wrappers for it! Example: vyos@vyos# commit [ pki ] Updating configuration: "load-balancing haproxy service frontend ssl certificate LE_cloud" Add/replace automatically imported CA certificate for "LE_cloud"
2025-05-05Merge pull request #4492 from c-po/ansi-revertDaniil Baturin
Revert "vyos-router: T7356: unset ANSI bold control character during boot"
2025-05-05Merge pull request #4488 from aapostoliuk/T7157-circinus-fixChristian Breunig
bgp: T7157: Fixed error with the unknown key in the verification
2025-05-04Revert "vyos-router: T7356: unset ANSI bold control character during boot"Christian Breunig
This reverts commit ddca20df57008bd85b1363e089152e0ebf014f73.
2025-05-04haproxy: T7122: always reverse-proxy ACL for certbotChristian Breunig
Always enable the ACL entry to reverse-proxy requests to the path "/.well-known/acme-challenge/" when "redirect-http-to-https" is configured for a given HAProxy frontend service. This is an intentional design decision to simplify the implementation and reduce overall code complexity. It poses no risk: a missing path returns a 404, and an unavailable backend yields an error 503. This approach avoids a chicken-and-egg problem where certbot might try to request a certificate via reverse-proxy before the proxy config is actually generated and active. By always routing through HAProxy, we also eliminate downtime as port 80 does not need to be freed for certbot's standalone mode.
2025-05-04Merge pull request #4478 from tjjh89017/T7408Christian Breunig
T7408: add mokutil in arm64
2025-05-04vyos.template: T7122: add Jinja2 clever function helper to read vyos.defaultsChristian Breunig
Add a new category if Jinja2 operands. We already have filters and tests, but sometimes we would like to call a Python function without and data "|" piped to it - that's what they call a clever-function. {{ get_default_port(NAME) }} can be used to retrieve the value from vyos.defaults.internal_ports[NAME] within Jinja2. We no longer need to extend the dictionary with arbitrary data retrieved from vyos.defaults, we can now simply register another clever-function to the Jinja2 backend.
2025-05-04xml: T7122: it is spelled HAProxyChristian Breunig