diff options
Diffstat (limited to 'docs')
| m--------- | docs/_include/vyos-1x | 0 | ||||
| -rw-r--r-- | docs/_static/images/firewall-bridge-packet-flow.png | bin | 22625 -> 26485 bytes | |||
| -rw-r--r-- | docs/_static/images/firewall-gral-packet-flow.png | bin | 40500 -> 42225 bytes | |||
| -rw-r--r-- | docs/changelog/1.3.rst | 18 | ||||
| -rw-r--r-- | docs/changelog/1.4.rst | 26 | ||||
| -rw-r--r-- | docs/changelog/1.5.rst | 14 | ||||
| -rw-r--r-- | docs/configuration/firewall/bridge.rst | 361 | ||||
| -rw-r--r-- | docs/configuration/firewall/ipv4.rst | 52 | ||||
| -rw-r--r-- | docs/configuration/firewall/ipv6.rst | 130 | ||||
| -rw-r--r-- | docs/configuration/policy/route-map.rst | 8 | ||||
| -rw-r--r-- | docs/configuration/protocols/bgp.rst | 27 | ||||
| -rw-r--r-- | docs/configuration/protocols/isis.rst | 28 | ||||
| -rw-r--r-- | docs/configuration/service/pppoe-server.rst | 59 | ||||
| -rw-r--r-- | docs/configuration/system/ipv6.rst | 28 | ||||
| -rw-r--r-- | docs/configuration/vpn/l2tp.rst | 12 | ||||
| -rw-r--r-- | docs/configuration/vpn/pptp.rst | 4 | ||||
| -rw-r--r-- | docs/configuration/vpn/sstp.rst | 15 | 
17 files changed, 632 insertions, 150 deletions
| diff --git a/docs/_include/vyos-1x b/docs/_include/vyos-1x -Subproject 11d531ece3e06dc68349d8ea1fd3bf39d5d857f +Subproject 18b2bb669bb87cde14324cbc2ae3a16d11fa578 diff --git a/docs/_static/images/firewall-bridge-packet-flow.png b/docs/_static/images/firewall-bridge-packet-flow.pngBinary files differ index 9e32315e..0d73ebbf 100644 --- a/docs/_static/images/firewall-bridge-packet-flow.png +++ b/docs/_static/images/firewall-bridge-packet-flow.png diff --git a/docs/_static/images/firewall-gral-packet-flow.png b/docs/_static/images/firewall-gral-packet-flow.pngBinary files differ index ee4e7b70..3c2611b3 100644 --- a/docs/_static/images/firewall-gral-packet-flow.png +++ b/docs/_static/images/firewall-gral-packet-flow.png diff --git a/docs/changelog/1.3.rst b/docs/changelog/1.3.rst index 05adb0c5..11d3be91 100644 --- a/docs/changelog/1.3.rst +++ b/docs/changelog/1.3.rst @@ -8,6 +8,24 @@     _ext/releasenotes.py +2023-11-30 +========== + +* :vytask:`T4601` ``(bug): dhcp : relay agent IP address issue.`` + + +2023-11-28 +========== + +* :vytask:`T5777` ``(bug): frr: backport and upstream recent bgpd daemon crashes`` + + +2023-11-27 +========== + +* :vytask:`T5763` ``(bug): Fix imprecise check for remote file name in vyos-load-config.py`` + +  2023-11-25  ========== diff --git a/docs/changelog/1.4.rst b/docs/changelog/1.4.rst index d22cfb7a..3919ade7 100644 --- a/docs/changelog/1.4.rst +++ b/docs/changelog/1.4.rst @@ -8,6 +8,32 @@     _ext/releasenotes.py +2023-12-03 +========== + +* :vytask:`T5753` ``(feature): Add VXLAN vnifilter support`` +* :vytask:`T5759` ``(feature): Change VXLAN default MTU to 1500 bytes`` + + +2023-11-30 +========== + +* :vytask:`T4601` ``(bug): dhcp : relay agent IP address issue.`` + + +2023-11-28 +========== + +* :vytask:`T4276` ``(bug): IPsec peers dh-group negotiation issue with pfs enabled and multiple proposals configured with IKEv1`` + + +2023-11-27 +========== + +* :vytask:`T5763` ``(bug): Fix imprecise check for remote file name in vyos-load-config.py`` +* :vytask:`T5783` ``(feature): frr: smoketests must notice any daemon crash`` + +  2023-11-26  ========== diff --git a/docs/changelog/1.5.rst b/docs/changelog/1.5.rst index e24aca9a..00f105e6 100644 --- a/docs/changelog/1.5.rst +++ b/docs/changelog/1.5.rst @@ -8,6 +8,20 @@     _ext/releasenotes.py +2023-12-03 +========== + +* :vytask:`T5753` ``(feature): Add VXLAN vnifilter support`` +* :vytask:`T5759` ``(feature): Change VXLAN default MTU to 1500 bytes`` + + +2023-11-27 +========== + +* :vytask:`T5763` ``(bug): Fix imprecise check for remote file name in vyos-load-config.py`` +* :vytask:`T5783` ``(feature): frr: smoketests must notice any daemon crash`` + +  2023-11-26  ========== diff --git a/docs/configuration/firewall/bridge.rst b/docs/configuration/firewall/bridge.rst index 4a0dc3bb..9fb019c5 100644 --- a/docs/configuration/firewall/bridge.rst +++ b/docs/configuration/firewall/bridge.rst @@ -39,4 +39,363 @@ for this layer is shown next:  For traffic that needs to be forwared internally by the bridge, base chain is  is **forward**, and it's base command for filtering is ``set firewall bridge -forward filter ...`` +forward filter ...``, which happens in stage 4, highlightened with red color. + +Custom bridge firewall chains can be create with command ``set firewall bridge +name <name> ...``. In order to use such custom chain, a rule with action jump, +and the appropiate target should be defined in a base chain. + +.. note:: **Layer 3 bridge**: +      When an IP address is assigned to the bridge interface, and if traffic +      is sent to the router to this IP (for example using such IP as +      default gateway), then rules defined for **bridge firewall** won't +      match, and firewall analysis continues at **IP layer**. + +************ +Bridge Rules +************ + +For firewall filtering, firewall rules needs to be created. Each rule is +numbered, has an action to apply if the rule is matched, and the ability +to specify multiple criteria matchers. Data packets go through the rules +from 1 - 999999, so order is crucial. At the first match the action of the +rule will be executed. + +Actions +======= + +If a rule is defined, then an action must be defined for it. This tells the +firewall what to do if all criteria matchers defined for such rule do match. + +In firewall bridge rules, the action can be: + +   * ``accept``: accept the packet. + +   * ``continue``: continue parsing next rule. + +   * ``drop``: drop the packet. + +   * ``jump``: jump to another custom chain. + +   * ``return``: Return from the current chain and continue at the next rule +     of the last chain. + +   * ``queue``: Enqueue packet to userspace. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> action +   [accept | continue | drop | jump | queue | return] +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> action +   [accept | continue | drop | jump | queue | return] + +   This required setting defines the action of the current rule. If action is +   set to jump, then jump-target is also needed. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   jump-target <text> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   jump-target <text> + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   queue <0-65535> + +   To be used only when action is set to ``queue``. Use this command to specify +   queue target to use. Queue range is also supported. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   queue-options bypass + +   To be used only when action is set to ``queue``. Use this command to let +   packet go through firewall when no userspace software is connected to the +   queue. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   queue-options fanout + +   To be used only when action is set to ``queue``. Use this command to +   distribute packets between several queues. + +Also, **default-action** is an action that takes place whenever a packet does +not match any rule in it's chain. For base chains, possible options for +**default-action** are **accept** or **drop**. + +.. cfgcmd:: set firewall bridge forward filter default-action +   [accept | drop] +.. cfgcmd:: set firewall bridge name <name> default-action +   [accept | continue | drop | jump | queue | return] + +   This set the default action of the rule-set if no rule matched a packet +   criteria. If default-action is set to ``jump``, then +   ``default-jump-target`` is also needed. Note that for base chains, default +   action can only be set to ``accept`` or ``drop``, while on custom chain, +   more actions are available. + +.. cfgcmd:: set firewall bridge name <name> default-jump-target <text> + +   To be used only when ``defult-action`` is set to ``jump``. Use this +   command to specify jump target for default rule. + +.. note:: **Important note about default-actions:** +   If default action for any base chain is not defined, then the default +   action is set to **accept** for that chain. For custom chains, if default +   action is not defined, then the default-action is set to **drop**. + +Firewall Logs +============= + +Logging can be enable for every single firewall rule. If enabled, other +log options can be defined. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> log +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> log + +   Enable logging for the matched packet. If this configuration command is not +   present, then log is not enabled. + +.. cfgcmd:: set firewall bridge forward filter enable-default-log +.. cfgcmd:: set firewall bridge name <name> enable-default-log + +   Use this command to enable the logging of the default action on +   the specified chain. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   log-options level [emerg | alert | crit | err | warn | notice +   | info | debug] +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   log-options level [emerg | alert | crit | err | warn | notice +   | info | debug] + +   Define log-level. Only applicable if rule log is enable. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   log-options group <0-65535> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   log-options group <0-65535> + +   Define log group to send message to. Only applicable if rule log is enable. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   log-options snapshot-length <0-9000> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   log-options snapshot-length <0-9000> + +   Define length of packet payload to include in netlink message. Only +   applicable if rule log is enable and log group is defined. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   log-options queue-threshold <0-65535> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   log-options queue-threshold <0-65535> + +   Define number of packets to queue inside the kernel before sending them to +   userspace. Only applicable if rule log is enable and log group is defined. + +Firewall Description +==================== + +For reference, a description can be defined for every defined custom chain. + +.. cfgcmd:: set firewall bridge name <name> description <text> + +   Provide a rule-set description to a custom firewall chain. + +Rule Status +=========== + +When defining a rule, it is enable by default. In some cases, it is useful to +just disable the rule, rather than removing it. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> disable +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> disable + +   Command for disabling a rule but keep it in the configuration. + +Matching criteria +================= + +There are a lot of matching criteria against which the packet can be tested. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   destination mac-address <mac-address> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   destination mac-address <mac-address> +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   source mac-address <mac-address> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   source mac-address <mac-address> + +   Match criteria based on source and/or destination mac-address. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   inbound-interface name <iface> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   inbound-interface name <iface> + +   Match based on inbound interface. Wilcard ``*`` can be used. +   For example: ``eth2*``. Prepending character ``!`` for inverted matching +   criteria is also supportd. For example ``!eth2`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   inbound-interface group <iface_group> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   inbound-interface group <iface_group> + +   Match based on inbound interface group. Prepending character ``!`` for +   inverted matching criteria is also supportd. For example ``!IFACE_GROUP`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   outbound-interface name <iface> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   outbound-interface name <iface> + +   Match based on outbound interface. Wilcard ``*`` can be used. +   For example: ``eth2*``. Prepending character ``!`` for inverted matching +   criteria is also supportd. For example ``!eth2`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   outbound-interface group <iface_group> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   outbound-interface group <iface_group> + +   Match based on outbound interface group. Prepending character ``!`` for +   inverted matching criteria is also supportd. For example ``!IFACE_GROUP`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   vlan id <0-4096> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   vlan id <0-4096> + +   Match based on vlan ID. Range is also supported. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> +   vlan priority <0-7> +.. cfgcmd:: set firewall bridge name <name> rule <1-999999> +   vlan priority <0-7> + +   Match based on vlan priority(pcp). Range is also supported. + +*********************** +Operation-mode Firewall +*********************** + +Rule-set overview +================= + +In this section you can find all useful firewall op-mode commands. + +General commands for firewall configuration, counter and statiscits: + +.. opcmd:: show firewall +.. opcmd:: show firewall summary +.. opcmd:: show firewall statistics + +And, to print only bridge firewall information: + +.. opcmd:: show firewall bridge +.. opcmd:: show firewall bridge forward filter +.. opcmd:: show firewall bridge forward filter rule <rule> +.. opcmd:: show firewall bridge name <name> +.. opcmd:: show firewall bridge name <name> rule <rule> + +Show Firewall log +================= + +.. opcmd:: show log firewall +.. opcmd:: show log firewall bridge +.. opcmd:: show log firewall bridge forward +.. opcmd:: show log firewall bridge forward filter +.. opcmd:: show log firewall bridge name <name> +.. opcmd:: show log firewall bridge forward filter rule <rule> +.. opcmd:: show log firewall bridge name <name> rule <rule> + +   Show the logs of all firewall; show all bridge firewall logs; show all logs +   for forward hook; show all logs for forward hook and priority filter; show +   all logs for particular custom chain; show logs for specific Rule-Set. + +Example +======= + +Configuration example: + +.. code-block:: none + +   set firewall bridge forward filter default-action 'drop' +   set firewall bridge forward filter enable-default-log +   set firewall bridge forward filter rule 10 action 'continue' +   set firewall bridge forward filter rule 10 inbound-interface name 'eth2' +   set firewall bridge forward filter rule 10 vlan id '22' +   set firewall bridge forward filter rule 20 action 'drop' +   set firewall bridge forward filter rule 20 inbound-interface group 'TRUNK-RIGHT' +   set firewall bridge forward filter rule 20 vlan id '60' +   set firewall bridge forward filter rule 30 action 'jump' +   set firewall bridge forward filter rule 30 jump-target 'TEST' +   set firewall bridge forward filter rule 30 outbound-interface name '!eth1' +   set firewall bridge forward filter rule 35 action 'accept' +   set firewall bridge forward filter rule 35 vlan id '11' +   set firewall bridge forward filter rule 40 action 'continue' +   set firewall bridge forward filter rule 40 destination mac-address '66:55:44:33:22:11' +   set firewall bridge forward filter rule 40 source mac-address '11:22:33:44:55:66' +   set firewall bridge name TEST default-action 'accept' +   set firewall bridge name TEST enable-default-log +   set firewall bridge name TEST rule 10 action 'continue' +   set firewall bridge name TEST rule 10 log +   set firewall bridge name TEST rule 10 vlan priority '0' + +And op-mode commands: + +.. code-block:: none + +      vyos@BRI:~$ show firewall bridge +      Rulesets bridge Information + +      --------------------------------- +      bridge Firewall "forward filter" + +      Rule     Action    Protocol      Packets    Bytes  Conditions +      -------  --------  ----------  ---------  -------  --------------------------------------------------------------------- +      10       continue  all                 0        0  iifname "eth2" vlan id 22  continue +      20       drop      all                 0        0  iifname @I_TRUNK-RIGHT vlan id 60 +      30       jump      all              2130   170688  oifname != "eth1"  jump NAME_TEST +      35       accept    all              2080   168616  vlan id 11  accept +      40       continue  all                 0        0  ether daddr 66:55:44:33:22:11 ether saddr 11:22:33:44:55:66  continue +      default  drop      all                 0        0 + +      --------------------------------- +      bridge Firewall "name TEST" + +      Rule     Action    Protocol      Packets    Bytes  Conditions +      -------  --------  ----------  ---------  -------  -------------------------------------------------- +      10       continue  all              2130   170688  vlan pcp 0  prefix "[bri-NAM-TEST-10-C]"  continue +      default  accept    all              2130   170688 + +      vyos@BRI:~$ +      vyos@BRI:~$ show firewall bridge name TEST +      Ruleset Information + +      --------------------------------- +      bridge Firewall "name TEST" + +      Rule     Action    Protocol      Packets    Bytes  Conditions +      -------  --------  ----------  ---------  -------  -------------------------------------------------- +      10       continue  all              2130   170688  vlan pcp 0  prefix "[bri-NAM-TEST-10-C]"  continue +      default  accept    all              2130   170688 + +      vyos@BRI:~$ + +Inspect logs: + +.. code-block:: none + +      vyos@BRI:~$ show log firewall bridge +      Dec 05 14:37:47 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102 +      Dec 05 14:37:48 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102 +      Dec 05 14:37:49 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102 +      ... +      vyos@BRI:~$ show log firewall bridge forward filter +      Dec 05 14:42:22 kernel: [bri-FWD-filter-default-D]IN=eth2 OUT=eth1 MAC=33:33:00:00:00:16:50:00:00:06:00:00:86:dd SRC=0000:0000:0000:0000:0000:0000:0000:0000 DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0 +      Dec 05 14:42:22 kernel: [bri-FWD-filter-default-D]IN=eth2 OUT=eth1 MAC=33:33:00:00:00:16:50:00:00:06:00:00:86:dd SRC=0000:0000:0000:0000:0000:0000:0000:0000 DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0 diff --git a/docs/configuration/firewall/ipv4.rst b/docs/configuration/firewall/ipv4.rst index 3fd365e1..9a683d22 100644 --- a/docs/configuration/firewall/ipv4.rst +++ b/docs/configuration/firewall/ipv4.rst @@ -123,9 +123,46 @@ The action can be :  .. cfgcmd:: set firewall ipv4 name <name> rule <1-999999>     jump-target <text> -   To be used only when action is set to jump. Use this command to specify +   To be used only when action is set to ``jump``. Use this command to specify     jump target. +.. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall ipv4 input filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall ipv4 output filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall ipv4 name <name> rule <1-999999> +   queue <0-65535> + +   To be used only when action is set to ``queue``. Use this command to specify +   queue target to use. Queue range is also supported. + +.. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall ipv4 input filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall ipv4 output filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall ipv4 name <name> rule <1-999999> +   queue-options bypass + +   To be used only when action is set to ``queue``. Use this command to let +   packet go through firewall when no userspace software is connected to the +   queue. + +.. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall ipv4 input filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall ipv4 output filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall ipv4 name <name> rule <1-999999> +   queue-options fanout + +   To be used only when action is set to ``queue``. Use this command to +   distribute packets between several queues. +  Also, **default-action** is an action that takes place whenever a packet does  not match any rule in it's chain. For base chains, possible options for  **default-action** are **accept** or **drop**.  @@ -140,7 +177,7 @@ not match any rule in it's chain. For base chains, possible options for     [accept | drop | jump | queue | reject | return]     This set the default action of the rule-set if no rule matched a packet -   criteria. If defacult-action is set to ``jump``, then +   criteria. If default-action is set to ``jump``, then     ``default-jump-target`` is also needed. Note that for base chains, default     action can only be set to ``accept`` or ``drop``, while on custom chain,     more actions are available. @@ -153,7 +190,7 @@ not match any rule in it's chain. For base chains, possible options for  .. note:: **Important note about default-actions:**     If default action for any base chain is not defined, then the default     action is set to **accept** for that chain. For custom chains, if default -   action is not defined, then the default-action is set to **drop** +   action is not defined, then the default-action is set to **drop**.  Firewall Logs  ============= @@ -162,15 +199,12 @@ Logging can be enable for every single firewall rule. If enabled, other  log options can be defined.   .. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> log -   [disable | enable]  .. cfgcmd:: set firewall ipv4 input filter rule <1-999999> log -   [disable | enable]  .. cfgcmd:: set firewall ipv4 output filter rule <1-999999> log -   [disable | enable]  .. cfgcmd:: set firewall ipv4 name <name> rule <1-999999> log -   [disable | enable] -   Enable or disable logging for the matched packet. +   Enable logging for the matched packet. If this configuration command is not +   present, then log is not enabled.  .. cfgcmd:: set firewall ipv4 forward filter enable-default-log  .. cfgcmd:: set firewall ipv4 input filter enable-default-log @@ -266,7 +300,7 @@ just disable the rule, rather than removing it.  Matching criteria  ================= -There are a lot of matching criteria against which the package can be tested. +There are a lot of matching criteria against which the packet can be tested.  .. cfgcmd:: set firewall ipv4 forward filter rule <1-999999>     connection-status nat [destination | source] diff --git a/docs/configuration/firewall/ipv6.rst b/docs/configuration/firewall/ipv6.rst index 83a5f694..0aa8a137 100644 --- a/docs/configuration/firewall/ipv6.rst +++ b/docs/configuration/firewall/ipv6.rst @@ -123,9 +123,46 @@ The action can be :  .. cfgcmd:: set firewall ipv6 name <name> rule <1-999999>     jump-target <text> -   To be used only when action is set to jump. Use this command to specify +   To be used only when action is set to ``jump``. Use this command to specify     jump target. +.. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall ipv6 input filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall ipv6 output filter rule <1-999999> +   queue <0-65535> +.. cfgcmd:: set firewall ipv6 name <name> rule <1-999999> +   queue <0-65535> + +   To be used only when action is set to ``queue``. Use this command to specify +   queue target to use. Queue range is also supported. + +.. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall ipv6 input filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall ipv6 output filter rule <1-999999> +   queue-options bypass +.. cfgcmd:: set firewall ipv6 name <name> rule <1-999999> +   queue-options bypass + +   To be used only when action is set to ``queue``. Use this command to let +   packet go through firewall when no userspace software is connected to the +   queue. + +.. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall ipv6 input filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall ipv6 output filter rule <1-999999> +   queue-options fanout +.. cfgcmd:: set firewall ipv6 name <name> rule <1-999999> +   queue-options fanout + +   To be used only when action is set to ``queue``. Use this command to +   distribute packets between several queues. +  Also, **default-action** is an action that takes place whenever a packet does  not match any rule in it's chain. For base chains, possible options for  **default-action** are **accept** or **drop**.  @@ -140,7 +177,7 @@ not match any rule in it's chain. For base chains, possible options for     [accept | drop | jump | queue | reject | return]     This set the default action of the rule-set if no rule matched a packet -   criteria. If defacult-action is set to ``jump``, then +   criteria. If default-action is set to ``jump``, then     ``default-jump-target`` is also needed. Note that for base chains, default     action can only be set to ``accept`` or ``drop``, while on custom chain,     more actions are available. @@ -153,7 +190,7 @@ not match any rule in it's chain. For base chains, possible options for  .. note:: **Important note about default-actions:**     If default action for any base chain is not defined, then the default     action is set to **accept** for that chain. For custom chains, if default -   action is not defined, then the default-action is set to **drop** +   action is not defined, then the default-action is set to **drop**.  Firewall Logs  ============= @@ -162,15 +199,12 @@ Logging can be enable for every single firewall rule. If enabled, other  log options can be defined.   .. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> log -   [disable | enable]  .. cfgcmd:: set firewall ipv6 input filter rule <1-999999> log -   [disable | enable]  .. cfgcmd:: set firewall ipv6 output filter rule <1-999999> log -   [disable | enable]  .. cfgcmd:: set firewall ipv6 name <name> rule <1-999999> log -   [disable | enable] -   Enable or disable logging for the matched packet. +   Enable logging for the matched packet. If this configuration command is not +   present, then log is not enabled.  .. cfgcmd:: set firewall ipv6 forward filter enable-default-log  .. cfgcmd:: set firewall ipv6 input filter enable-default-log @@ -266,7 +300,7 @@ just disable the rule, rather than removing it.  Matching criteria  ================= -There are a lot of matching criteria against which the package can be tested. +There are a lot of matching criteria against which the packet can be tested.  .. cfgcmd:: set firewall ipv6 forward filter rule <1-999999>     connection-status nat [destination | source] @@ -936,7 +970,7 @@ Rule-set overview     .. code-block:: none -      vyos@vyos:~$ show firewall  +      vyos@vyos:~$ show firewall        Rulesets Information        --------------------------------- @@ -999,7 +1033,7 @@ Rule-set overview     .. code-block:: none -      vyos@vyos:~$ show firewall summary  +      vyos@vyos:~$ show firewall summary        Ruleset Summary        IPv6 Ruleset: @@ -1049,29 +1083,30 @@ Rule-set overview  .. opcmd:: show firewall ipv6 [forward | input | output] filter -.. opcmd:: show firewall ipv4 name <name> -  .. opcmd:: show firewall ipv6 ipv6-name <name>     This command will give an overview of a single rule-set.     .. code-block:: none -      vyos@vyos:~$ show firewall ipv4 input filter  +      vyos@vyos:~$ show firewall ipv6 input filter        Ruleset Information        --------------------------------- -      IPv4 Firewall "input filter" +      ipv6 Firewall "input filter"        Rule     Action    Protocol      Packets    Bytes  Conditions -      -------  --------  ----------  ---------  -------  ----------------------------------------- -      5        jump      all                 0        0  iifname "eth2"  jump NAME_VyOS_MANAGEMENT -      default  accept    all +      -------  --------  ----------  ---------  -------  ------------------------------------------------------------------------------ +      10       jump      all                13     1456  iifname "eth1"  jump NAME6_INP-ETH1 +      20       accept    ipv6-icmp          10     1112  meta l4proto ipv6-icmp iifname "eth0"  prefix "[ipv6-INP-filter-20-A]"  accept +      default  accept    all                14     1584 + +      vyos@vyos:~$  .. opcmd:: show firewall ipv6 [forward | input | output]     filter rule <1-999999> -.. opcmd:: show firewall ipv4 name <name> rule <1-999999> +.. opcmd:: show firewall ipv6 name <name> rule <1-999999>  .. opcmd:: show firewall ipv6 ipv6-name <name> rule <1-999999> @@ -1084,7 +1119,7 @@ Rule-set overview     .. code-block:: none -      vyos@vyos:~$ show firewall group LAN  +      vyos@vyos:~$ show firewall group LAN        Firewall Groups        Name          Type                References               Members @@ -1119,45 +1154,38 @@ Example Partial Config  .. code-block:: none -  firewall { -      group { -          network-group BAD-NETWORKS { -              network 198.51.100.0/24 -              network 203.0.113.0/24 -          } -          network-group GOOD-NETWORKS { -              network 192.0.2.0/24 -          } -          port-group BAD-PORTS { -              port 65535 -          } -      } -      ipv4 { -          forward { -              filter { -                  default-action accept -                  rule 5 { -                      action accept -                      source { -                          group { -                              network-group GOOD-NETWORKS +      firewall { +          ipv6 { +              input { +                  filter { +                      rule 10 { +                          action jump +                          inbound-interface { +                              name eth1                            } +                          jump-target INP-ETH1                        } -                  } -                  rule 10 { -                      action drop -                      description "Bad Networks" -                      protocol all -                      source { -                          group { -                              network-group BAD-NETWORKS +                      rule 20 { +                          action accept +                          inbound-interface { +                              name eth0                            } +                          log +                          protocol ipv6-icmp                        }                    }                } +              name INP-ETH1 { +                  default-action drop +                  enable-default-log +                  rule 10 { +                      action accept +                      protocol tcp_udp +                  } +              }            }        } -  } +  Update geoip database  ===================== diff --git a/docs/configuration/policy/route-map.rst b/docs/configuration/policy/route-map.rst index 9fe1eef7..07cfcf02 100644 --- a/docs/configuration/policy/route-map.rst +++ b/docs/configuration/policy/route-map.rst @@ -318,10 +318,12 @@ Route Map     Set BGP local preference attribute.  .. cfgcmd:: set policy route-map <text> rule <1-65535> set metric -   <+/-metric|0-4294967295> +   <+/-metric|0-4294967295|rtt|+rtt|-rtt> -   Set destination routing protocol metric. Add or subtract metric, or set -   metric value. +   Set the route metric. When used with BGP, set the BGP attribute MED +   to a specific value. Use ``+/-`` to add or subtract the specified value +   to/from the existing/MED. Use ``rtt`` to set the MED to the round trip +   time or ``+rtt/-rtt`` to add/subtract the round trip time to/from the MED.  .. cfgcmd:: set policy route-map <text> rule <1-65535> set metric-type     <type-1|type-2> diff --git a/docs/configuration/protocols/bgp.rst b/docs/configuration/protocols/bgp.rst index 737e98fa..8fc69111 100644 --- a/docs/configuration/protocols/bgp.rst +++ b/docs/configuration/protocols/bgp.rst @@ -952,7 +952,7 @@ Operational Mode Commands  Show  ==== -.. opcmd:: show <ip|ipv6> bgp +.. opcmd:: show bgp <ipv4|ipv6>     This command displays all entries in BGP routing table. @@ -964,6 +964,7 @@ Show                    i internal, r RIB-failure, S Stale, R Removed     Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self     Origin codes:  i - IGP, e - EGP, ? - incomplete +   RPKI validation codes: V valid, I invalid, N Not found        Network          Next Hop            Metric LocPrf Weight Path     *> 198.51.100.0/24  10.0.34.4                0             0 65004 i @@ -971,7 +972,7 @@ Show     Displayed  2 routes and 2 total paths -.. opcmd:: show <ip|ipv6> bgp <address|prefix> +.. opcmd:: show bgp <ipv4|ipv6> <address|prefix>     This command displays information about the particular entry in the BGP     routing table. @@ -991,55 +992,55 @@ Show     This command displays routes with classless interdomain routing (CIDR). -.. opcmd:: show <ip|ipv6> bgp community <value> +.. opcmd:: show bgp <ipv4|ipv6> community <value>     This command displays routes that belong to specified BGP communities.     Valid value is a community number in the range from 1 to 4294967200,     or AA:NN (autonomous system-community number/2-byte number), no-export,     local-as, or no-advertise. -.. opcmd:: show <ip|ipv6> bgp community-list <name> +.. opcmd:: show bgp <ipv4|ipv6> community-list <name>     This command displays routes that are permitted by the BGP     community list. -.. opcmd:: show ip bgp dampened-paths +.. opcmd:: show bgp <ipv4|ipv6> dampening dampened-paths     This command displays BGP dampened routes. -.. opcmd:: show ip bgp flap-statistics +.. opcmd:: show bgp <ipv4|ipv6> dampening flap-statistics     This command displays information about flapping BGP routes. -.. opcmd:: show ip bgp filter-list <name> +.. opcmd:: show bgp <ipv4|ipv6> filter-list <name>     This command displays BGP routes allowed by the specified AS Path     access list. -.. opcmd:: show <ip|ipv6> bgp neighbors <address> advertised-routes +.. opcmd:: show bgp <ipv4|ipv6> neighbors <address> advertised-routes     This command displays BGP routes advertised to a neighbor. -.. opcmd:: show <ip|ipv6> bgp neighbors <address> received-routes +.. opcmd:: show bgp <ipv4|ipv6> neighbors <address> received-routes     This command displays BGP routes originating from the specified BGP     neighbor before inbound policy is applied. To use this command inbound     soft reconfiguration must be enabled. -.. opcmd:: show <ip|ipv6> bgp neighbors <address> routes +.. opcmd:: show bgp <ipv4|ipv6> neighbors <address> routes     This command displays BGP received-routes that are accepted after filtering. -.. opcmd:: show <ip|ipv6> bgp neighbors <address> dampened-routes +.. opcmd:: show bgp <ipv4|ipv6> neighbors <address> dampened-routes     This command displays dampened routes received from BGP neighbor. -.. opcmd:: show <ip|ipv6> bgp regexp <text> +.. opcmd:: show bgp <ipv4|ipv6> regexp <text>     This command displays information about BGP routes whose AS path     matches the specified regular expression. -.. opcmd:: show <ip|ipv6> bgp summary +.. opcmd:: show bgp <ipv4|ipv6> summary     This command displays the status of all BGP connections. diff --git a/docs/configuration/protocols/isis.rst b/docs/configuration/protocols/isis.rst index 18a7c166..1f779d0a 100644 --- a/docs/configuration/protocols/isis.rst +++ b/docs/configuration/protocols/isis.rst @@ -302,6 +302,34 @@ Timers    control the timing of the execution of SPF calculations in response    to IGP events. The process described in :rfc:`8405`. +Loop Free Alternate (LFA) +------------------------- + +.. cfgcmd:: set protocols isis fast-reroute lfa remote prefix-list <name> +  <level-1|level-2> + +  This command enables IP fast re-routing that is part of :rfc:`5286`. +  Specifically this is a prefix list which references a prefix in which +  will select eligible PQ nodes for remote LFA backups.  + +.. cfgcmd:: set protocols isis fast-reroute lfa local load-sharing disable +  <level-1|level-2> + +  This command disables the load sharing across multiple LFA backups. + +.. cfgcmd:: set protocols isis fast-reroute lfa local tiebreaker +  <downstream|lowest-backup-metric|node-protecting> index <number> +  <level-1|level-2> + +  This command will configure a tie-breaker for multiple local LFA backups. +  The lower index numbers will be processed first. +   +.. cfgcmd:: set protocols isis fast-reroute lfa local priority-limit +  <medium|high|critical> <level-1|level-2> +   +  This command will limit LFA backup computation up to the specified +  prefix priority.  +  ********  Examples diff --git a/docs/configuration/service/pppoe-server.rst b/docs/configuration/service/pppoe-server.rst index 3a0adee7..a230d9fe 100644 --- a/docs/configuration/service/pppoe-server.rst +++ b/docs/configuration/service/pppoe-server.rst @@ -57,48 +57,35 @@ Client Address Pools  --------------------  To automatically assign the client an IP address as tunnel endpoint, a -client IP pool is needed. The source can be either RADIUS or a local -subnet or IP range definition. - -Once the local tunnel endpoint ``set service pppoe-server gateway-address -'10.1.1.2'`` has been defined, the client IP pool can be either defined -as a range or as subnet using CIDR notation. If the CIDR notation is -used, multiple subnets can be setup which are used sequentially. +client IP pool is needed. The source can be either RADIUS or a +named pool. There is possibility to create multiple named pools. +Each named pool can include only one address range. To use multiple +address ranges configure ``next-pool`` option.  **Client IP address via IP range definition** -.. cfgcmd:: set service pppoe-server client-ip-pool start <address> - -   Use this command to define the first IP address of a pool of -   addresses to be given to PPPoE clients. It must be within a /24 -   subnet. - -.. cfgcmd:: set service pppoe-server client-ip-pool stop <address> - -   Use this command to define the last IP address of a pool of -   addresses to be given to PPPoE clients. It must be within a /24 -   subnet. - -.. code-block:: none +.. cfgcmd:: set service pppoe-server client-ip-pool <POOL-NAME> range <x.x.x.x-x.x.x.x | x.x.x.x/x> -  set service pppoe-server client-ip-pool start '10.1.1.100' -  set service pppoe-server client-ip-pool stop '10.1.1.111' +   Use this command to define the IP address range to be given +   to PPPoE clients. If notation ``x.x.x.x-x.x.x.x``, +   it must be within a /24 subnet. If notation ``x.x.x.x/x`` is +   used there is possibility to set host/netmask. +.. cfgcmd:: set service pppoe-server client-ip-pool <POOL-NAME> next-pool <NEXT-POOL-NAME> -**Client IP subnets via CIDR notation** +   Use this command to define the next address pool name. -.. cfgcmd:: set service pppoe-server client-ip-pool subnet <address> +.. cfgcmd:: set service pppoe-server default-pool <POOL-NAME> -   Use this command for every pool of client IP addresses you want to -   define. The addresses of this pool will be given to PPPoE clients. -   You must use CIDR notation. +   Use this command to define default address pool name.  .. code-block:: none -  set service pppoe-server client-ip-pool subnet '10.1.1.0/24' -  set service pppoe-server client-ip-pool subnet '10.1.2.0/23' -  set service pppoe-server client-ip-pool subnet '10.1.4.0/22' +  set service pppoe-server client-ip-pool IP-POOL next-pool 'IP-POOL2' +  set service pppoe-server client-ip-pool IP-POOL range '10.0.10.5/24' +  set service pppoe-server client-ip-pool IP-POOL2 range '10.0.0.10-10.0.0.12' +  set service pppoe-server default-pool 'IP-POOL'  **RADIUS based IP pools (Framed-IP-Address)** @@ -213,8 +200,8 @@ For Local Users    set service pppoe-server authentication local-users username foo rate-limit download '20480'    set service pppoe-server authentication local-users username foo rate-limit upload '10240'    set service pppoe-server authentication mode 'local' -  set service pppoe-server client-ip-pool start '10.1.1.100' -  set service pppoe-server client-ip-pool stop '10.1.1.111' +  set service pppoe-server client-ip-pool IP-POOL range '10.1.1.100/24' +  set service pppoe-server default-pool 'IP-POOL'    set service pppoe-server name-server '10.100.100.1'    set service pppoe-server name-server '10.100.200.1'    set service pppoe-server interface 'eth1' @@ -367,8 +354,8 @@ address from the pool 10.1.1.100-111, terminates at the local endpoint    set service pppoe-server access-concentrator 'ACN'    set service pppoe-server authentication local-users username foo password 'bar'    set service pppoe-server authentication mode 'local' -  set service pppoe-server client-ip-pool start '10.1.1.100' -  set service pppoe-server client-ip-pool stop '10.1.1.111' +  set service pppoe-server client-ip-pool IP-POOL range '10.1.1.100-10.1.1.111' +  set service pppoe-server default-pool 'IP-POOL'    set service pppoe-server interface eth1    set service pppoe-server gateway-address '10.1.1.2'    set service pppoe-server name-server '10.100.100.1' @@ -385,8 +372,8 @@ The example below covers a dual-stack configuration via pppoe-server.    set service pppoe-server authentication local-users username test password 'test'    set service pppoe-server authentication mode 'local' -  set service pppoe-server client-ip-pool start '192.168.0.1' -  set service pppoe-server client-ip-pool stop '192.168.0.10' +  set service pppoe-server client-ip-pool IP-POOL range '192.168.0.1/24' +  set service pppoe-server default-pool 'IP-POOL'    set service pppoe-server client-ipv6-pool delegate '2001:db8:8003::/48' delegation-prefix '56'    set service pppoe-server client-ipv6-pool prefix '2001:db8:8002::/48' mask '64'    set service pppoe-server ppp-options ipv6 allow diff --git a/docs/configuration/system/ipv6.rst b/docs/configuration/system/ipv6.rst index 076efdae..c7308f9d 100644 --- a/docs/configuration/system/ipv6.rst +++ b/docs/configuration/system/ipv6.rst @@ -81,6 +81,7 @@ Show commands          static        Show IPv6 static routes          summary       Show IPv6 routes summary          table         Show IP routes in policy table +        tag           Show only routes with tag          vrf           Show IPv6 routes in VRF @@ -112,33 +113,6 @@ Show commands          <Enter>       Execute the current command          <text>        Show specified IPv6 access-list -.. opcmd:: show ipv6 bgp - -   Use this command to show IPv6 Border Gateway Protocol information. - - -   In addition, you can specify many other parameters to get BGP -   information: - -   .. code-block:: none - -      vyos@vyos:~$ show ipv6 bgp -      Possible completions: -        <Enter>       Execute the current command -        <X:X::X:X>    Show BGP information for given address or prefix -        <X:X::X:X/M> -        community     Show routes matching the communities -        community-list -                      Show routes matching the community-list -        filter-list   Show routes conforming to the filter-list -        large-community -                      Show routes matching the large-community-list -        large-community-list -        neighbors     Show detailed information on TCP and BGP neighbor connections -        prefix-list   Show routes matching the prefix-list -        regexp        Show routes matching the AS path regular expression -        route-map     Show BGP routes matching the specified route map -        summary       Show summary of BGP neighbor status  .. opcmd:: show ipv6 ospfv3 diff --git a/docs/configuration/vpn/l2tp.rst b/docs/configuration/vpn/l2tp.rst index 26de47b3..4a7657e7 100644 --- a/docs/configuration/vpn/l2tp.rst +++ b/docs/configuration/vpn/l2tp.rst @@ -17,8 +17,8 @@ with native Windows and Mac VPN clients):    set vpn ipsec interface eth0    set vpn l2tp remote-access outside-address 192.0.2.2 -  set vpn l2tp remote-access client-ip-pool start 192.168.255.2 -  set vpn l2tp remote-access client-ip-pool stop 192.168.255.254 +  set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 +  set vpn l2tp remote-access default-pool 'L2TP-POOL'    set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret    set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret <secret>    set vpn l2tp remote-access authentication mode local @@ -95,8 +95,8 @@ Below is an example to configure a LNS:  .. code-block:: none    set vpn l2tp remote-access outside-address 192.0.2.2 -  set vpn l2tp remote-access client-ip-pool start 192.168.255.2 -  set vpn l2tp remote-access client-ip-pool stop 192.168.255.254 +  set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 +  set vpn l2tp remote-access default-pool 'L2TP-POOL'    set vpn l2tp remote-access lns shared-secret 'secret'    set vpn l2tp remote-access ccp-disable    set vpn l2tp remote-access authentication mode local @@ -122,8 +122,8 @@ The rate-limit is set in kbit/sec.  .. code-block:: none    set vpn l2tp remote-access outside-address 192.0.2.2 -  set vpn l2tp remote-access client-ip-pool start 192.168.255.2 -  set vpn l2tp remote-access client-ip-pool stop 192.168.255.254 +  set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 +  set vpn l2tp remote-access default-pool 'L2TP-POOL'    set vpn l2tp remote-access authentication mode local    set vpn l2tp remote-access authentication local-users username test password test    set vpn l2tp remote-access authentication local-users username test rate-limit download 20480 diff --git a/docs/configuration/vpn/pptp.rst b/docs/configuration/vpn/pptp.rst index 12364acb..fe536eec 100644 --- a/docs/configuration/vpn/pptp.rst +++ b/docs/configuration/vpn/pptp.rst @@ -20,8 +20,8 @@ server example    set vpn pptp remote-access authentication local-users username test password 'test'    set vpn pptp remote-access authentication mode 'local' -  set vpn pptp remote-access client-ip-pool start '192.168.0.10' -  set vpn pptp remote-access client-ip-pool stop '192.168.0.15' +  set vpn pptp remote-access client-ip-pool PPTP-POOL range 192.168.0.10-192.168.0.15 +  set vpn pptp remote-access default-pool 'PPTP-POOL'    set vpn pptp remote-access gateway-address '10.100.100.1'    set vpn pptp remote-access outside-address '10.1.1.120' diff --git a/docs/configuration/vpn/sstp.rst b/docs/configuration/vpn/sstp.rst index 9d098d46..d9bb4353 100644 --- a/docs/configuration/vpn/sstp.rst +++ b/docs/configuration/vpn/sstp.rst @@ -116,9 +116,20 @@ Configuration    Specifies the port `<port>` that the SSTP port will listen on (default 443). -.. cfgcmd:: set vpn sstp client-ip-pool subnet <subnet> +.. cfgcmd:: set vpn sstp client-ip-pool <POOL-NAME> range <x.x.x.x-x.x.x.x | x.x.x.x/x> -  Use `<subnet>` as the IP pool for all connecting clients. +   Use this command to define the first IP address of a pool of +   addresses to be given to SSTP clients. If notation ``x.x.x.x-x.x.x.x``, +   it must be within a /24 subnet. If notation ``x.x.x.x/x`` is +   used there is possibility to set host/netmask. + +.. cfgcmd:: set vpn sstp client-ip-pool <POOL-NAME> next-pool <NEXT-POOL-NAME> + +   Use this command to define the next address pool name. + +.. cfgcmd:: set vpn sstp default-pool <POOL-NAME> + +   Use this command to define default address pool name.  .. cfgcmd:: set vpn sstp client-ipv6-pool prefix <address> mask <number-of-bits> | 
