summaryrefslogtreecommitdiff
path: root/src/conf_mode/vrf.py
AgeCommit message (Collapse)Author
2022-02-13vrf: T4191: bugfix for "ip rule" when VRFs are createdChristian Poessinger
We always mangled and worked on the "ip rule" singleton even when nothing needed to be changed. This resulted in a VRF hickup when the same VRF was added and removed multiple times. set interfaces ethernet eth1 vrf foo set vrf name foo table '1000' commit delete interfaces ethernet eth1 vrf delete vrf commit set interfaces ethernet eth1 vrf foo set vrf name foo table '1000' commit broke reachability on eth1 - a reboot was required. This change will now only alter the ip rule tables once when VRF instances are created for the first time and will not touch the Kernel "ip rule" representation afterwards. (cherry picked from commit 2cec431e5caf9df85640f707cd6dc3077c17c238)
2021-07-25vrf: T31: add missind import for cmd()Christian Poessinger
2021-07-25vrf: T31: ignore iproute2 errorsChristian Poessinger
Re-issuing the same iproute2 commands can lead to errors, simply ignore them and not raise a Python exception. (cherry-picked from commit 9920f7340d60b51d32bad9dbd24a907718f72837)
2021-07-11vrf: T3637: bind-to-all didn't work properlyDate Huang
because of typo change from `bind_to_all` to `bind-to-all` refer: interface-definitions/vrf.xml.in (cherry picked from commit 8a78c790c1239eef533c7bbe12911aaeec4dc90f)
2021-01-16vrf: T31: add support for - and _ in VRF namesChristian Poessinger
(cherry picked from commit 8953a14b01a4183ea890f1c3d569aae54e363614)
2021-01-16vrf: T31: migrate to get_config_dict()Christian Poessinger
(cherry picked from commit e1b2f1012ca18ef4ecf2b53e9bb01a50880cbd3c)
2021-01-02vrf: T2321: assign loopback IP addresses to individual VRF interfacesChristian Poessinger
47: bar: <NOARP,MASTER,UP,LOWER_UP> mtu 65536 qdisc noqueue state UP group default qlen 1000 link/ether 76:7d:c0:53:6d:89 brd ff:ff:ff:ff:ff:ff inet 127.0.0.1/8 scope host bar valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2020-08-31configd: T2582: add scripts to include list for daemonJohn Estabrook
2020-07-04cleanup: no need to call sudo for configuration mode scriptsChristian Poessinger
2020-07-01config: T2667: adapt for refinements to get_config_dictJohn Estabrook
2020-05-29airbag: T2088: explicit enabling of the featureThomas Mangin
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)
2020-04-12template: T2230: use render to generate templatesThomas Mangin
convert all call to jinja to use template.render
2020-04-08vrf: add additional documentation linkChristian Poessinger
2020-04-06util: T2206: rewrite vrf to cmdThomas Mangin
2020-04-05vrf: T2230: move inlined templates to dedicated filesChristian Poessinger
2020-04-04vrf: T2221: when deleting vrf also delete unreachable routeChristian Poessinger
If the unreachable routes for IPv4 and IPv6 are not deleted, there will be an error when creating the same VRF again after removal. Error changing VRF: Command '['sudo', 'ip', '-4', 'route', 'del', 'vrf', 'Blue', 'unreachable', 'default', 'metric', '4278198272']' returned non-zero exit status 2.
2020-04-04vrf: T2221: only set l3mdev when changedChristian Poessinger
2020-03-29vrf: T31: bugfix after converting remove list to dictChristian Poessinger
The list of VRFs to remove has been converted to a dict. The deletion of a VRF was no longer triggered as the logic still thought it is a list.
2020-03-07vrf: T31: move to Python3 f-strings where possibleChristian Poessinger
2020-03-07vrf: T31: ensure VRF can not be deleted with an attached routing protocolChristian Poessinger
2020-03-07vrf: T31: rephrase error messagesChristian Poessinger
2020-03-07vrf: T31: reuse Config in interfaces_with_vrf()Christian Poessinger
2020-03-07vrf: T31: properly set configuration level when parsingChristian Poessinger
2020-03-05vrf: T31: improve kernel rule lookup table codeChristian Poessinger
2020-03-05vrf: T31: modify kernel rule lookup table only onceChristian Poessinger
2020-03-05vrf: T31: add more documentation linksChristian Poessinger
2020-03-05vrf: T31: use subprocess check_output over check_callChristian Poessinger
2020-03-05vrf: T31: routing table IDs must be uniqueChristian Poessinger
2020-03-05vrf: T31: use vyos.ifconfig to set ifaliasChristian Poessinger
2020-03-05vrf: T31: table id is mandatoryChristian Poessinger
2020-03-04vrf: T31: remove pass in exception handlerChristian Poessinger
2020-03-04vrf: T31: reorder routing table lookupsChristian Poessinger
Linux routing uses rules to find tables - routing targets are then looked up in those tables. If the lookup got a matching route, the process ends. TL;DR; first table with a matching entry wins! You can see your routing table lookup rules using "ip rule", sadly the local lookup is hit before any VRF lookup. Pinging an addresses from the VRF will usually find a hit in the local table, and never reach the VRF routing table - this is usually not what you want. Thus we will re-arrange the tables and move the local lookup furhter down once VRFs are enabled.
2020-03-04vrf: T31: adding unreachable routes to the routing tablesChristian Poessinger
2020-03-04vrf: T31: prior to the v4.8 kernel iif and oif rules are neededChristian Poessinger
.. we run on 4.19 thus this is no longer needed.
2020-03-04vrf: T31: create iproute2 table to name mapping referenceChristian Poessinger
2020-03-04vrf: T31: rename 'vrf disable-bind-to-all ipv4' to 'vrf bind-to-all'Christian Poessinger
By default the scope of the port bindings for unbound sockets is limited to the default VRF. That is, it will not be matched by packets arriving on interfaces enslaved to an l3mdev and processes may bind to the same port if they bind to an l3mdev. TCP & UDP services running in the default VRF context (ie., not bound to any VRF device) can work across all VRF domains by enabling the 'vrf bind-to-all' option.
2020-03-04vrf: T31: support add/remove of interfaces from vrfChristian Poessinger
2020-03-04vrf: T31: remove superfluous vyos.vrf library functionsChristian Poessinger
vyos.vrf.list_vrfs() was only used in one function thus building a library is no longer needed. If it is needed in the future it should be placed into a library again.
2020-03-04vrf: T31: reduce script complexityChristian Poessinger
Keep it simple and stupid :)
2020-03-04vrf: T31: no need to use sudo calls in vrf.pyChristian Poessinger
All configuration mode scripts are already run with sudo.
2020-03-04vrf: T31: initial support for a VRF backend in XML/PythonThomas Mangin
This is a work in progress to complete T31 whoever thought it was less than 1 hour of work was ..... optimistic. Only VRF vreation and show is supported right now. No interface can be bound to any one VRF.