summaryrefslogtreecommitdiff
path: root/smoketest
diff options
context:
space:
mode:
Diffstat (limited to 'smoketest')
-rw-r--r--smoketest/config-tests/basic-vyos69
-rw-r--r--smoketest/config-tests/dialup-router-wireguard-ipv6674
-rw-r--r--smoketest/configs/basic-vyos18
-rw-r--r--smoketest/configs/dialup-router-wireguard-ipv616
-rw-r--r--smoketest/scripts/cli/base_interfaces_test.py16
-rw-r--r--smoketest/scripts/cli/base_vyostest_shim.py23
-rwxr-xr-xsmoketest/scripts/cli/test_firewall.py28
-rwxr-xr-xsmoketest/scripts/cli/test_high-availability_vrrp.py80
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_ethernet.py57
-rwxr-xr-xsmoketest/scripts/cli/test_nat.py30
-rwxr-xr-xsmoketest/scripts/cli/test_nat66.py13
-rwxr-xr-xsmoketest/scripts/cli/test_policy.py1
-rwxr-xr-xsmoketest/scripts/cli/test_policy_route.py11
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_ospf.py4
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_ospfv3.py10
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcp-server.py2
-rwxr-xr-xsmoketest/scripts/cli/test_service_router-advert.py28
-rwxr-xr-xsmoketest/scripts/cli/test_service_snmp.py17
-rwxr-xr-xsmoketest/scripts/cli/test_system_conntrack.py20
-rwxr-xr-xsmoketest/scripts/cli/test_vrf.py23
20 files changed, 1026 insertions, 114 deletions
diff --git a/smoketest/config-tests/basic-vyos b/smoketest/config-tests/basic-vyos
index 0bb68b75d..d676c663d 100644
--- a/smoketest/config-tests/basic-vyos
+++ b/smoketest/config-tests/basic-vyos
@@ -1,13 +1,9 @@
set interfaces ethernet eth0 address '192.168.0.1/24'
-set interfaces ethernet eth0 duplex 'auto'
-set interfaces ethernet eth0 speed 'auto'
-set interfaces ethernet eth1 duplex 'auto'
-set interfaces ethernet eth1 speed 'auto'
-set interfaces ethernet eth2 duplex 'auto'
-set interfaces ethernet eth2 speed 'auto'
+set interfaces ethernet eth0 address 'fe88::1/56'
set interfaces ethernet eth2 vif 100 address '100.100.0.1/24'
set interfaces ethernet eth2 vif-s 200 address '100.64.200.254/24'
set interfaces ethernet eth2 vif-s 200 vif-c 201 address '100.64.201.254/24'
+set interfaces ethernet eth2 vif-s 200 vif-c 201 address 'fe89::1/56'
set interfaces ethernet eth2 vif-s 200 vif-c 202 address '100.64.202.254/24'
set interfaces loopback lo
set protocols static arp interface eth0 address 192.168.0.20 mac '00:50:00:00:00:20'
@@ -23,18 +19,6 @@ set protocols static arp interface eth2.200.201 address 100.64.201.20 mac '00:50
set protocols static arp interface eth2.200.202 address 100.64.202.30 mac '00:50:00:00:00:30'
set protocols static arp interface eth2.200.202 address 100.64.202.40 mac '00:50:00:00:00:40'
set protocols static route 0.0.0.0/0 next-hop 100.64.0.1
-set service dhcp-server shared-network-name LAN authoritative
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option default-router '192.168.0.1'
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option domain-name 'vyos.net'
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option domain-search 'vyos.net'
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option name-server '192.168.0.1'
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range LANDynamic start '192.168.0.20'
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range LANDynamic stop '192.168.0.240'
-set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 subnet-id '1'
-set service dns forwarding allow-from '192.168.0.0/16'
-set service dns forwarding cache-size '10000'
-set service dns forwarding dnssec 'off'
-set service dns forwarding listen-address '192.168.0.1'
set service ssh ciphers 'aes128-ctr'
set service ssh ciphers 'aes192-ctr'
set service ssh ciphers 'aes256-ctr'
@@ -46,18 +30,55 @@ set service ssh key-exchange 'diffie-hellman-group-exchange-sha1'
set service ssh key-exchange 'diffie-hellman-group-exchange-sha256'
set service ssh listen-address '192.168.0.1'
set service ssh port '22'
+set service dhcp-server shared-network-name LAN authoritative
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option default-router '192.168.0.1'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option domain-name 'vyos.net'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option domain-search 'vyos.net'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option name-server '192.168.0.1'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range LANDynamic start '192.168.0.30'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range LANDynamic stop '192.168.0.240'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST1-1 ip-address '192.168.0.11'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST1-1 mac '00:01:02:03:04:05'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST1-2 disable
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST1-2 ip-address '192.168.0.12'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST1-2 mac '00:01:02:03:04:05'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST2-1 ip-address '192.168.0.21'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST2-1 mac '00:01:02:03:04:21'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST2-2 disable
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST2-2 ip-address '192.168.0.21'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping TEST2-2 mac '00:01:02:03:04:22'
+set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 subnet-id '1'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 interface 'eth0'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 option domain-search 'vyos.net'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 option name-server 'fe88::1'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 range 1 prefix 'fe88::/60'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 range 2 start 'fe88:0000:0000:fe::'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 range 2 stop 'fe88:0000:0000:ff::'
+set service dhcpv6-server shared-network-name LAN6 subnet fe88::/56 subnet-id '1'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 interface 'eth2.200.201'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 option domain-search 'vyos.net'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 option name-server 'fe89::1'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 range 1 prefix 'fe89::/60'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 range 2 start 'fe89:0000:0000:fe::'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 range 2 stop 'fe89:0000:0000:ff::'
+set service dhcpv6-server shared-network-name LAN6 subnet fe89::/56 subnet-id '2'
+set service dns forwarding allow-from '192.168.0.0/16'
+set service dns forwarding cache-size '10000'
+set service dns forwarding dnssec 'off'
+set service dns forwarding listen-address '192.168.0.1'
set system config-management commit-revisions '100'
-set system console device ttyS0 speed '115200'
+set system conntrack ignore ipv4 rule 1 destination address '192.0.2.2'
+set system conntrack ignore ipv4 rule 1 source address '192.0.2.1'
set system host-name 'vyos'
+set system login user vyos authentication encrypted-password '$6$O5gJRlDYQpj$MtrCV9lxMnZPMbcxlU7.FI793MImNHznxGoMFgm3Q6QP3vfKJyOSRCt3Ka/GzFQyW1yZS4NS616NLHaIPPFHc0'
+set system login user vyos authentication plaintext-password ''
set system name-server '192.168.0.1'
-set system syslog console facility all level 'emerg'
-set system syslog console facility mail level 'info'
-set system syslog global facility all level 'info'
set system syslog global facility auth level 'info'
-set system syslog global facility local7 level 'debug'
set system syslog global preserve-fqdn
+set system syslog console facility all level 'emerg'
+set system syslog console facility mail level 'info'
set system syslog host syslog.vyos.net facility auth level 'warning'
set system syslog host syslog.vyos.net facility local7 level 'notice'
set system syslog host syslog.vyos.net format octet-counted
set system syslog host syslog.vyos.net port '8000'
-set system time-zone 'Europe/Berlin'
+set system console device ttyS0 speed '115200'
diff --git a/smoketest/config-tests/dialup-router-wireguard-ipv6 b/smoketest/config-tests/dialup-router-wireguard-ipv6
new file mode 100644
index 000000000..c054b4650
--- /dev/null
+++ b/smoketest/config-tests/dialup-router-wireguard-ipv6
@@ -0,0 +1,674 @@
+set interfaces dummy dum0 address '172.16.254.30/32'
+set interfaces ethernet eth0 vif 10 address '172.16.33.254/24'
+set interfaces ethernet eth0 vif 10 address '172.16.40.254/24'
+set interfaces ethernet eth0 vif 5 address '172.16.37.254/24'
+set interfaces ethernet eth0 vif 50 address '172.16.36.254/24'
+set interfaces ethernet eth0 ring-buffer rx '256'
+set interfaces ethernet eth0 ring-buffer tx '256'
+set interfaces ethernet eth1 offload gro
+set interfaces ethernet eth1 offload gso
+set interfaces ethernet eth1 offload sg
+set interfaces ethernet eth1 offload tso
+set interfaces ethernet eth1 vif 20 address '172.31.0.254/24'
+set interfaces ethernet eth2 disable
+set interfaces ethernet eth2 offload gro
+set interfaces ethernet eth2 offload gso
+set interfaces ethernet eth2 offload sg
+set interfaces ethernet eth2 offload tso
+set interfaces ethernet eth3 offload gro
+set interfaces ethernet eth3 offload gso
+set interfaces ethernet eth3 offload sg
+set interfaces ethernet eth3 offload tso
+set interfaces ethernet eth3 ring-buffer rx '256'
+set interfaces ethernet eth3 ring-buffer tx '256'
+set interfaces ethernet eth3 vif 7
+set interfaces loopback lo address '172.16.254.30/32'
+set interfaces pppoe pppoe0 authentication password 'vyos'
+set interfaces pppoe pppoe0 authentication username 'vyos'
+set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth0.10 address '1'
+set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth0.10 sla-id '10'
+set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth1.20 address '1'
+set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth1.20 sla-id '20'
+set interfaces pppoe pppoe0 dhcpv6-options pd 0 length '56'
+set interfaces pppoe pppoe0 ip adjust-mss '1452'
+set interfaces pppoe pppoe0 ipv6 address autoconf
+set interfaces pppoe pppoe0 ipv6 adjust-mss '1432'
+set interfaces pppoe pppoe0 no-peer-dns
+set interfaces pppoe pppoe0 source-interface 'eth3.7'
+set interfaces wireguard wg100 address '172.16.252.128/31'
+set interfaces wireguard wg100 mtu '1500'
+set interfaces wireguard wg100 peer HR6 address '100.65.151.213'
+set interfaces wireguard wg100 peer HR6 allowed-ips '0.0.0.0/0'
+set interfaces wireguard wg100 peer HR6 port '10100'
+set interfaces wireguard wg100 port '10100'
+set interfaces wireguard wg200 address '172.16.252.130/31'
+set interfaces wireguard wg200 mtu '1500'
+set interfaces wireguard wg200 peer WH56 address '80.151.69.205'
+set interfaces wireguard wg200 peer WH56 allowed-ips '0.0.0.0/0'
+set interfaces wireguard wg200 peer WH56 port '10200'
+set interfaces wireguard wg200 port '10200'
+set interfaces wireguard wg666 address '172.29.0.1/31'
+set interfaces wireguard wg666 mtu '1500'
+set interfaces wireguard wg666 peer WH34 address '100.65.55.1'
+set interfaces wireguard wg666 peer WH34 allowed-ips '0.0.0.0/0'
+set interfaces wireguard wg666 peer WH34 port '10666'
+set interfaces wireguard wg666 port '10666'
+set protocols ospf area 0 network '172.16.37.0/24'
+set protocols ospf area 0 network '172.16.254.30/32'
+set protocols ospf area 0 network '172.18.202.0/24'
+set protocols ospf area 0 network '172.18.203.0/24'
+set protocols ospf area 0 network '172.18.204.0/24'
+set protocols ospf interface eth0.5 authentication md5 key-id 10 md5-key 'ospf'
+set protocols ospf interface eth0.5 dead-interval '40'
+set protocols ospf interface eth0.5 hello-interval '10'
+set protocols ospf interface eth0.5 passive disable
+set protocols ospf interface eth0.5 priority '1'
+set protocols ospf interface eth0.5 retransmit-interval '5'
+set protocols ospf interface eth0.5 transmit-delay '1'
+set protocols ospf log-adjacency-changes detail
+set protocols ospf parameters router-id '172.16.254.30'
+set protocols ospf default-information originate always
+set protocols ospf default-information originate metric-type '2'
+set protocols ospf redistribute connected metric-type '2'
+set protocols ospf redistribute connected route-map 'MAP-OSPF-CONNECTED'
+set protocols static route 10.0.0.0/8 blackhole distance '254'
+set protocols static route 169.254.0.0/16 blackhole distance '254'
+set protocols static route 172.16.0.0/12 blackhole distance '254'
+set protocols static route 172.16.32.0/21 blackhole
+set protocols static route 172.18.0.0/16 blackhole
+set protocols static route 172.29.0.2/31 next-hop 172.29.0.0
+set protocols static route 192.168.0.0/16 blackhole distance '254'
+set protocols static route 192.168.189.0/24 next-hop 172.29.0.0
+set protocols static route6 2000::/3 interface pppoe0
+set protocols bfd peer 172.16.252.129
+set protocols bfd peer 172.16.252.131
+set protocols bfd peer 172.18.254.201
+set protocols bgp address-family ipv4-unicast network 172.16.32.0/21
+set protocols bgp address-family ipv4-unicast network 172.16.100.0/24
+set protocols bgp address-family ipv4-unicast network 172.16.252.128/31
+set protocols bgp address-family ipv4-unicast network 172.16.252.130/31
+set protocols bgp address-family ipv4-unicast network 172.16.254.30/32
+set protocols bgp address-family ipv4-unicast network 172.18.0.0/16
+set protocols bgp neighbor 172.16.252.129 peer-group 'WIREGUARD'
+set protocols bgp neighbor 172.16.252.131 peer-group 'WIREGUARD'
+set protocols bgp neighbor 172.18.254.201 address-family ipv4-unicast nexthop-self
+set protocols bgp neighbor 172.18.254.201 bfd
+set protocols bgp neighbor 172.18.254.201 remote-as '64503'
+set protocols bgp neighbor 172.18.254.201 update-source 'dum0'
+set protocols bgp parameters log-neighbor-changes
+set protocols bgp peer-group WIREGUARD address-family ipv4-unicast soft-reconfiguration inbound
+set protocols bgp peer-group WIREGUARD bfd
+set protocols bgp peer-group WIREGUARD remote-as 'external'
+set protocols bgp system-as '64503'
+set protocols bgp timers holdtime '30'
+set protocols bgp timers keepalive '10'
+set service lldp legacy-protocols cdp
+set service lldp legacy-protocols edp
+set service lldp legacy-protocols fdp
+set service lldp legacy-protocols sonmp
+set service lldp snmp
+set service ntp allow-client address '172.16.0.0/12'
+set service ntp server time1.vyos.net
+set service ntp server time2.vyos.net
+set service dhcp-server shared-network-name BACKBONE authoritative
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 lease '86400'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 option default-router '172.16.37.254'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 option domain-name 'vyos.net'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 option domain-search 'vyos.net'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 option name-server '172.16.254.30'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 option ntp-server '172.16.254.30'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 range 0 start '172.16.37.120'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 range 0 stop '172.16.37.149'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP1 ip-address '172.16.37.231'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP1 mac '02:00:00:00:ee:18'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP2 ip-address '172.16.37.232'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP2 mac '02:00:00:00:52:84'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP3 ip-address '172.16.37.233'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP3 mac '02:00:00:00:51:c0'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP4 ip-address '172.16.37.234'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP4 mac '02:00:00:00:e6:fc'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP5 ip-address '172.16.37.235'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 static-mapping AP5 mac '02:00:00:00:c3:50'
+set service dhcp-server shared-network-name BACKBONE subnet 172.16.37.0/24 subnet-id '1'
+set service dhcp-server shared-network-name GUEST authoritative
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 lease '86400'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 option default-router '172.31.0.254'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 option domain-name 'vyos.net'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 option domain-search 'vyos.net'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 option name-server '172.31.0.254'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 range 0 start '172.31.0.101'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 range 0 stop '172.31.0.199'
+set service dhcp-server shared-network-name GUEST subnet 172.31.0.0/24 subnet-id '2'
+set service dhcp-server shared-network-name LAN authoritative
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 lease '86400'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 option default-router '172.16.33.254'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 option domain-name 'vyos.net'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 option domain-search 'vyos.net'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 option name-server '172.16.254.30'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 option ntp-server '172.16.254.30'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 range 0 start '172.16.33.100'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 range 0 stop '172.16.33.189'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping four ip-address '172.16.33.214'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping four mac '02:00:00:00:c4:33'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping one ip-address '172.16.33.221'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping one mac '02:00:00:00:eb:a6'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping three ip-address '172.16.33.212'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping three mac '02:00:00:00:12:c7'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping two ip-address '172.16.33.211'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 static-mapping two mac '02:00:00:00:58:90'
+set service dhcp-server shared-network-name LAN subnet 172.16.33.0/24 subnet-id '3'
+set service dns dynamic name service-vyos-pppoe0 address interface 'pppoe0'
+set service dns dynamic name service-vyos-pppoe0 host-name 'r1.vyos.net'
+set service dns dynamic name service-vyos-pppoe0 password 'vyos'
+set service dns dynamic name service-vyos-pppoe0 protocol 'dyndns2'
+set service dns dynamic name service-vyos-pppoe0 server 'dyndns.vyos.io'
+set service dns dynamic name service-vyos-pppoe0 username 'vyos-vyos'
+set service dns forwarding allow-from '172.16.0.0/12'
+set service dns forwarding domain 16.172.in-addr.arpa addnta
+set service dns forwarding domain 16.172.in-addr.arpa name-server 172.16.100.10
+set service dns forwarding domain 16.172.in-addr.arpa name-server 172.16.100.20
+set service dns forwarding domain 16.172.in-addr.arpa recursion-desired
+set service dns forwarding domain 18.172.in-addr.arpa addnta
+set service dns forwarding domain 18.172.in-addr.arpa name-server 172.16.100.10
+set service dns forwarding domain 18.172.in-addr.arpa name-server 172.16.100.20
+set service dns forwarding domain 18.172.in-addr.arpa recursion-desired
+set service dns forwarding domain vyos.net addnta
+set service dns forwarding domain vyos.net name-server 172.16.100.10
+set service dns forwarding domain vyos.net name-server 172.16.100.20
+set service dns forwarding domain vyos.net recursion-desired
+set service dns forwarding ignore-hosts-file
+set service dns forwarding listen-address '172.16.254.30'
+set service dns forwarding listen-address '172.31.0.254'
+set service dns forwarding negative-ttl '60'
+set service router-advert interface eth0.10 prefix ::/64 preferred-lifetime '2700'
+set service router-advert interface eth0.10 prefix ::/64 valid-lifetime '5400'
+set service router-advert interface eth1.20 prefix ::/64 preferred-lifetime '2700'
+set service router-advert interface eth1.20 prefix ::/64 valid-lifetime '5400'
+set service snmp community ro-community authorization 'ro'
+set service snmp community ro-community network '172.16.100.0/24'
+set service snmp contact 'VyOS'
+set service snmp listen-address 172.16.254.30 port '161'
+set service snmp location 'CLOUD'
+set system conntrack expect-table-size '2048'
+set system conntrack hash-size '32768'
+set system conntrack table-size '262144'
+set system conntrack timeout icmp '30'
+set system conntrack timeout other '600'
+set system conntrack timeout udp other '300'
+set system conntrack timeout udp stream '300'
+set system domain-name 'vyos.net'
+set system host-name 'r1'
+set system login user vyos authentication encrypted-password '$6$2Ta6TWHd/U$NmrX0x9kexCimeOcYK1MfhMpITF9ELxHcaBU/znBq.X2ukQOj61fVI2UYP/xBzP4QtiTcdkgs7WOQMHWsRymO/'
+set system login user vyos authentication plaintext-password ''
+set system option ctrl-alt-delete 'ignore'
+set system option performance 'latency'
+set system option startup-beep
+set system syslog global facility all level 'debug'
+set system syslog host 172.16.100.1 facility all level 'warning'
+set system console device ttyS0 speed '115200'
+set firewall global-options all-ping 'enable'
+set firewall global-options broadcast-ping 'disable'
+set firewall global-options ip-src-route 'disable'
+set firewall global-options ipv6-receive-redirects 'disable'
+set firewall global-options ipv6-src-route 'disable'
+set firewall global-options log-martians 'enable'
+set firewall global-options receive-redirects 'disable'
+set firewall global-options send-redirects 'enable'
+set firewall global-options source-validation 'disable'
+set firewall global-options syn-cookies 'enable'
+set firewall global-options twa-hazards-protection 'disable'
+set firewall group address-group DMZ-RDP-SERVER address '172.16.33.40'
+set firewall group address-group DMZ-RDP-SERVER description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall group address-group DMZ-WEBSERVER address '172.16.36.10'
+set firewall group address-group DMZ-WEBSERVER address '172.16.36.40'
+set firewall group address-group DMZ-WEBSERVER address '172.16.36.20'
+set firewall group address-group DMZ-WEBSERVER description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall group address-group DOMAIN-CONTROLLER address '172.16.100.10'
+set firewall group address-group DOMAIN-CONTROLLER address '172.16.100.20'
+set firewall group address-group DOMAIN-CONTROLLER address '172.16.110.30'
+set firewall group address-group VIDEO address '172.16.33.211'
+set firewall group address-group VIDEO address '172.16.33.212'
+set firewall group address-group VIDEO address '172.16.33.213'
+set firewall group address-group VIDEO address '172.16.33.214'
+set firewall group ipv6-network-group LOCAL-ADDRESSES network 'ff02::/64'
+set firewall group ipv6-network-group LOCAL-ADDRESSES network 'fe80::/10'
+set firewall group network-group SSH-IN-ALLOW network '100.65.150.0/23'
+set firewall group network-group SSH-IN-ALLOW network '100.64.69.205/32'
+set firewall group network-group SSH-IN-ALLOW network '100.64.8.67/32'
+set firewall group network-group SSH-IN-ALLOW network '100.64.55.1/32'
+set firewall ipv4 name DMZ-GUEST default-action 'drop'
+set firewall ipv4 name DMZ-GUEST default-log
+set firewall ipv4 name DMZ-GUEST rule 1 action 'return'
+set firewall ipv4 name DMZ-GUEST rule 1 state 'established'
+set firewall ipv4 name DMZ-GUEST rule 1 state 'related'
+set firewall ipv4 name DMZ-GUEST rule 2 action 'drop'
+set firewall ipv4 name DMZ-GUEST rule 2 log
+set firewall ipv4 name DMZ-GUEST rule 2 state 'invalid'
+set firewall ipv4 name DMZ-LAN default-action 'drop'
+set firewall ipv4 name DMZ-LAN default-log
+set firewall ipv4 name DMZ-LAN description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LAN rule 1 action 'return'
+set firewall ipv4 name DMZ-LAN rule 1 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LAN rule 1 state 'established'
+set firewall ipv4 name DMZ-LAN rule 1 state 'related'
+set firewall ipv4 name DMZ-LAN rule 2 action 'drop'
+set firewall ipv4 name DMZ-LAN rule 2 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LAN rule 2 log
+set firewall ipv4 name DMZ-LAN rule 2 state 'invalid'
+set firewall ipv4 name DMZ-LAN rule 100 action 'return'
+set firewall ipv4 name DMZ-LAN rule 100 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LAN rule 100 destination group address-group 'DOMAIN-CONTROLLER'
+set firewall ipv4 name DMZ-LAN rule 100 destination port '123,389,636'
+set firewall ipv4 name DMZ-LAN rule 100 protocol 'tcp_udp'
+set firewall ipv4 name DMZ-LAN rule 300 action 'return'
+set firewall ipv4 name DMZ-LAN rule 300 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LAN rule 300 destination group address-group 'DMZ-RDP-SERVER'
+set firewall ipv4 name DMZ-LAN rule 300 destination port '3389'
+set firewall ipv4 name DMZ-LAN rule 300 protocol 'tcp_udp'
+set firewall ipv4 name DMZ-LAN rule 300 source address '172.16.36.20'
+set firewall ipv4 name DMZ-LOCAL default-action 'drop'
+set firewall ipv4 name DMZ-LOCAL default-log
+set firewall ipv4 name DMZ-LOCAL description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LOCAL rule 1 action 'return'
+set firewall ipv4 name DMZ-LOCAL rule 1 state 'established'
+set firewall ipv4 name DMZ-LOCAL rule 1 state 'related'
+set firewall ipv4 name DMZ-LOCAL rule 2 action 'drop'
+set firewall ipv4 name DMZ-LOCAL rule 2 log
+set firewall ipv4 name DMZ-LOCAL rule 2 state 'invalid'
+set firewall ipv4 name DMZ-LOCAL rule 50 action 'return'
+set firewall ipv4 name DMZ-LOCAL rule 50 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name DMZ-LOCAL rule 50 destination address '172.16.254.30'
+set firewall ipv4 name DMZ-LOCAL rule 50 destination port '53'
+set firewall ipv4 name DMZ-LOCAL rule 50 protocol 'tcp_udp'
+set firewall ipv4 name DMZ-LOCAL rule 123 action 'return'
+set firewall ipv4 name DMZ-LOCAL rule 123 destination port '123'
+set firewall ipv4 name DMZ-LOCAL rule 123 protocol 'udp'
+set firewall ipv4 name DMZ-WAN default-action 'return'
+set firewall ipv4 name DMZ-WAN description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name GUEST-DMZ default-action 'drop'
+set firewall ipv4 name GUEST-DMZ default-log
+set firewall ipv4 name GUEST-DMZ rule 1 action 'return'
+set firewall ipv4 name GUEST-DMZ rule 1 state 'established'
+set firewall ipv4 name GUEST-DMZ rule 1 state 'related'
+set firewall ipv4 name GUEST-DMZ rule 2 action 'drop'
+set firewall ipv4 name GUEST-DMZ rule 2 log
+set firewall ipv4 name GUEST-DMZ rule 2 state 'invalid'
+set firewall ipv4 name GUEST-LAN default-action 'drop'
+set firewall ipv4 name GUEST-LAN default-log
+set firewall ipv4 name GUEST-LAN rule 1 action 'return'
+set firewall ipv4 name GUEST-LAN rule 1 state 'established'
+set firewall ipv4 name GUEST-LAN rule 1 state 'related'
+set firewall ipv4 name GUEST-LAN rule 2 action 'drop'
+set firewall ipv4 name GUEST-LAN rule 2 log
+set firewall ipv4 name GUEST-LAN rule 2 state 'invalid'
+set firewall ipv4 name GUEST-LOCAL default-action 'drop'
+set firewall ipv4 name GUEST-LOCAL default-log
+set firewall ipv4 name GUEST-LOCAL rule 1 action 'return'
+set firewall ipv4 name GUEST-LOCAL rule 1 state 'established'
+set firewall ipv4 name GUEST-LOCAL rule 1 state 'related'
+set firewall ipv4 name GUEST-LOCAL rule 2 action 'drop'
+set firewall ipv4 name GUEST-LOCAL rule 2 log
+set firewall ipv4 name GUEST-LOCAL rule 2 state 'invalid'
+set firewall ipv4 name GUEST-LOCAL rule 10 action 'return'
+set firewall ipv4 name GUEST-LOCAL rule 10 destination address '172.31.0.254'
+set firewall ipv4 name GUEST-LOCAL rule 10 destination port '53'
+set firewall ipv4 name GUEST-LOCAL rule 10 protocol 'tcp_udp'
+set firewall ipv4 name GUEST-LOCAL rule 11 action 'return'
+set firewall ipv4 name GUEST-LOCAL rule 11 destination port '67'
+set firewall ipv4 name GUEST-LOCAL rule 11 protocol 'udp'
+set firewall ipv4 name GUEST-LOCAL rule 15 action 'return'
+set firewall ipv4 name GUEST-LOCAL rule 15 destination address '172.31.0.254'
+set firewall ipv4 name GUEST-LOCAL rule 15 protocol 'icmp'
+set firewall ipv4 name GUEST-LOCAL rule 100 action 'return'
+set firewall ipv4 name GUEST-LOCAL rule 100 destination address '172.31.0.254'
+set firewall ipv4 name GUEST-LOCAL rule 100 destination port '80,443'
+set firewall ipv4 name GUEST-LOCAL rule 100 protocol 'tcp'
+set firewall ipv4 name GUEST-WAN default-action 'drop'
+set firewall ipv4 name GUEST-WAN default-log
+set firewall ipv4 name GUEST-WAN rule 1 action 'return'
+set firewall ipv4 name GUEST-WAN rule 1 state 'established'
+set firewall ipv4 name GUEST-WAN rule 1 state 'related'
+set firewall ipv4 name GUEST-WAN rule 2 action 'drop'
+set firewall ipv4 name GUEST-WAN rule 2 log
+set firewall ipv4 name GUEST-WAN rule 2 state 'invalid'
+set firewall ipv4 name GUEST-WAN rule 25 action 'return'
+set firewall ipv4 name GUEST-WAN rule 25 destination port '25,587'
+set firewall ipv4 name GUEST-WAN rule 25 protocol 'tcp'
+set firewall ipv4 name GUEST-WAN rule 53 action 'return'
+set firewall ipv4 name GUEST-WAN rule 53 destination port '53'
+set firewall ipv4 name GUEST-WAN rule 53 protocol 'tcp_udp'
+set firewall ipv4 name GUEST-WAN rule 60 action 'return'
+set firewall ipv4 name GUEST-WAN rule 60 source address '172.31.0.200'
+set firewall ipv4 name GUEST-WAN rule 80 action 'return'
+set firewall ipv4 name GUEST-WAN rule 80 source address '172.31.0.200'
+set firewall ipv4 name GUEST-WAN rule 100 action 'return'
+set firewall ipv4 name GUEST-WAN rule 100 protocol 'icmp'
+set firewall ipv4 name GUEST-WAN rule 110 action 'return'
+set firewall ipv4 name GUEST-WAN rule 110 destination port '110,995'
+set firewall ipv4 name GUEST-WAN rule 110 protocol 'tcp'
+set firewall ipv4 name GUEST-WAN rule 123 action 'return'
+set firewall ipv4 name GUEST-WAN rule 123 destination port '123'
+set firewall ipv4 name GUEST-WAN rule 123 protocol 'udp'
+set firewall ipv4 name GUEST-WAN rule 143 action 'return'
+set firewall ipv4 name GUEST-WAN rule 143 destination port '143,993'
+set firewall ipv4 name GUEST-WAN rule 143 protocol 'tcp'
+set firewall ipv4 name GUEST-WAN rule 200 action 'return'
+set firewall ipv4 name GUEST-WAN rule 200 destination port '80,443'
+set firewall ipv4 name GUEST-WAN rule 200 protocol 'tcp'
+set firewall ipv4 name GUEST-WAN rule 500 action 'return'
+set firewall ipv4 name GUEST-WAN rule 500 destination port '500,4500'
+set firewall ipv4 name GUEST-WAN rule 500 protocol 'udp'
+set firewall ipv4 name GUEST-WAN rule 600 action 'return'
+set firewall ipv4 name GUEST-WAN rule 600 destination port '5222-5224'
+set firewall ipv4 name GUEST-WAN rule 600 protocol 'tcp'
+set firewall ipv4 name GUEST-WAN rule 601 action 'return'
+set firewall ipv4 name GUEST-WAN rule 601 destination port '3478-3497,4500,16384-16387,16393-16402'
+set firewall ipv4 name GUEST-WAN rule 601 protocol 'udp'
+set firewall ipv4 name GUEST-WAN rule 1000 action 'return'
+set firewall ipv4 name GUEST-WAN rule 1000 source address '172.31.0.184'
+set firewall ipv4 name LAN-DMZ default-action 'drop'
+set firewall ipv4 name LAN-DMZ default-log
+set firewall ipv4 name LAN-DMZ rule 1 action 'return'
+set firewall ipv4 name LAN-DMZ rule 1 state 'established'
+set firewall ipv4 name LAN-DMZ rule 1 state 'related'
+set firewall ipv4 name LAN-DMZ rule 2 action 'drop'
+set firewall ipv4 name LAN-DMZ rule 2 log
+set firewall ipv4 name LAN-DMZ rule 2 state 'invalid'
+set firewall ipv4 name LAN-DMZ rule 22 action 'return'
+set firewall ipv4 name LAN-DMZ rule 22 destination port '22'
+set firewall ipv4 name LAN-DMZ rule 22 protocol 'tcp'
+set firewall ipv4 name LAN-DMZ rule 100 action 'return'
+set firewall ipv4 name LAN-DMZ rule 100 destination group address-group 'DMZ-WEBSERVER'
+set firewall ipv4 name LAN-DMZ rule 100 destination port '22'
+set firewall ipv4 name LAN-DMZ rule 100 protocol 'tcp'
+set firewall ipv4 name LAN-GUEST default-action 'drop'
+set firewall ipv4 name LAN-GUEST default-log
+set firewall ipv4 name LAN-GUEST rule 1 action 'return'
+set firewall ipv4 name LAN-GUEST rule 1 state 'established'
+set firewall ipv4 name LAN-GUEST rule 1 state 'related'
+set firewall ipv4 name LAN-GUEST rule 2 action 'drop'
+set firewall ipv4 name LAN-GUEST rule 2 log
+set firewall ipv4 name LAN-GUEST rule 2 state 'invalid'
+set firewall ipv4 name LAN-LOCAL default-action 'return'
+set firewall ipv4 name LAN-WAN default-action 'return'
+set firewall ipv4 name LAN-WAN rule 90 action 'return'
+set firewall ipv4 name LAN-WAN rule 90 destination address '100.65.150.0/23'
+set firewall ipv4 name LAN-WAN rule 90 destination port '25'
+set firewall ipv4 name LAN-WAN rule 90 protocol 'tcp_udp'
+set firewall ipv4 name LAN-WAN rule 90 source group address-group 'VIDEO'
+set firewall ipv4 name LAN-WAN rule 100 action 'drop'
+set firewall ipv4 name LAN-WAN rule 100 source group address-group 'VIDEO'
+set firewall ipv4 name LOCAL-DMZ default-action 'drop'
+set firewall ipv4 name LOCAL-DMZ default-log
+set firewall ipv4 name LOCAL-DMZ rule 1 action 'return'
+set firewall ipv4 name LOCAL-DMZ rule 1 state 'established'
+set firewall ipv4 name LOCAL-DMZ rule 1 state 'related'
+set firewall ipv4 name LOCAL-DMZ rule 2 action 'drop'
+set firewall ipv4 name LOCAL-DMZ rule 2 log
+set firewall ipv4 name LOCAL-DMZ rule 2 state 'invalid'
+set firewall ipv4 name LOCAL-DMZ rule 100 action 'return'
+set firewall ipv4 name LOCAL-DMZ rule 100 destination address '172.16.36.40'
+set firewall ipv4 name LOCAL-DMZ rule 100 destination port '80,443'
+set firewall ipv4 name LOCAL-DMZ rule 100 protocol 'tcp'
+set firewall ipv4 name LOCAL-GUEST default-action 'drop'
+set firewall ipv4 name LOCAL-GUEST default-log
+set firewall ipv4 name LOCAL-GUEST rule 1 action 'return'
+set firewall ipv4 name LOCAL-GUEST rule 1 state 'established'
+set firewall ipv4 name LOCAL-GUEST rule 1 state 'related'
+set firewall ipv4 name LOCAL-GUEST rule 2 action 'drop'
+set firewall ipv4 name LOCAL-GUEST rule 2 log
+set firewall ipv4 name LOCAL-GUEST rule 2 state 'invalid'
+set firewall ipv4 name LOCAL-GUEST rule 5 action 'return'
+set firewall ipv4 name LOCAL-GUEST rule 5 protocol 'icmp'
+set firewall ipv4 name LOCAL-GUEST rule 300 action 'return'
+set firewall ipv4 name LOCAL-GUEST rule 300 destination port '1900'
+set firewall ipv4 name LOCAL-GUEST rule 300 protocol 'udp'
+set firewall ipv4 name LOCAL-LAN default-action 'return'
+set firewall ipv4 name LOCAL-WAN default-action 'drop'
+set firewall ipv4 name LOCAL-WAN default-log
+set firewall ipv4 name LOCAL-WAN rule 1 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 1 state 'established'
+set firewall ipv4 name LOCAL-WAN rule 1 state 'related'
+set firewall ipv4 name LOCAL-WAN rule 2 action 'drop'
+set firewall ipv4 name LOCAL-WAN rule 2 log
+set firewall ipv4 name LOCAL-WAN rule 2 state 'invalid'
+set firewall ipv4 name LOCAL-WAN rule 10 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 10 protocol 'icmp'
+set firewall ipv4 name LOCAL-WAN rule 50 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 50 destination port '53'
+set firewall ipv4 name LOCAL-WAN rule 50 protocol 'tcp_udp'
+set firewall ipv4 name LOCAL-WAN rule 80 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 80 destination port '80,443'
+set firewall ipv4 name LOCAL-WAN rule 80 protocol 'tcp'
+set firewall ipv4 name LOCAL-WAN rule 123 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 123 destination port '123'
+set firewall ipv4 name LOCAL-WAN rule 123 protocol 'udp'
+set firewall ipv4 name LOCAL-WAN rule 800 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 800 destination address '100.65.151.213'
+set firewall ipv4 name LOCAL-WAN rule 800 protocol 'udp'
+set firewall ipv4 name LOCAL-WAN rule 805 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 805 destination address '100.65.151.2'
+set firewall ipv4 name LOCAL-WAN rule 805 protocol 'all'
+set firewall ipv4 name LOCAL-WAN rule 1010 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 1010 destination address '100.64.69.205'
+set firewall ipv4 name LOCAL-WAN rule 1010 destination port '7705'
+set firewall ipv4 name LOCAL-WAN rule 1010 protocol 'udp'
+set firewall ipv4 name LOCAL-WAN rule 1010 source port '7705'
+set firewall ipv4 name LOCAL-WAN rule 1990 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 1990 destination address '100.64.55.1'
+set firewall ipv4 name LOCAL-WAN rule 1990 destination port '10666'
+set firewall ipv4 name LOCAL-WAN rule 1990 protocol 'udp'
+set firewall ipv4 name LOCAL-WAN rule 2000 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 2000 destination address '100.64.39.249'
+set firewall ipv4 name LOCAL-WAN rule 10200 action 'return'
+set firewall ipv4 name LOCAL-WAN rule 10200 destination address '100.64.89.98'
+set firewall ipv4 name LOCAL-WAN rule 10200 destination port '10200'
+set firewall ipv4 name LOCAL-WAN rule 10200 protocol 'udp'
+set firewall ipv4 name LOCAL-WAN rule 10200 source port '10200'
+set firewall ipv4 name WAN-DMZ default-action 'drop'
+set firewall ipv4 name WAN-DMZ default-log
+set firewall ipv4 name WAN-DMZ rule 1 action 'return'
+set firewall ipv4 name WAN-DMZ rule 1 state 'established'
+set firewall ipv4 name WAN-DMZ rule 1 state 'related'
+set firewall ipv4 name WAN-DMZ rule 2 action 'drop'
+set firewall ipv4 name WAN-DMZ rule 2 log
+set firewall ipv4 name WAN-DMZ rule 2 state 'invalid'
+set firewall ipv4 name WAN-DMZ rule 100 action 'return'
+set firewall ipv4 name WAN-DMZ rule 100 destination address '172.16.36.10'
+set firewall ipv4 name WAN-DMZ rule 100 destination port '80,443'
+set firewall ipv4 name WAN-DMZ rule 100 protocol 'tcp'
+set firewall ipv4 name WAN-GUEST default-action 'drop'
+set firewall ipv4 name WAN-GUEST default-log
+set firewall ipv4 name WAN-GUEST rule 1 action 'return'
+set firewall ipv4 name WAN-GUEST rule 1 state 'established'
+set firewall ipv4 name WAN-GUEST rule 1 state 'related'
+set firewall ipv4 name WAN-GUEST rule 2 action 'drop'
+set firewall ipv4 name WAN-GUEST rule 2 log
+set firewall ipv4 name WAN-GUEST rule 2 state 'invalid'
+set firewall ipv4 name WAN-GUEST rule 1000 action 'return'
+set firewall ipv4 name WAN-GUEST rule 1000 destination address '172.31.0.184'
+set firewall ipv4 name WAN-GUEST rule 8000 action 'return'
+set firewall ipv4 name WAN-GUEST rule 8000 destination address '172.31.0.200'
+set firewall ipv4 name WAN-GUEST rule 8000 destination port '10000'
+set firewall ipv4 name WAN-GUEST rule 8000 protocol 'udp'
+set firewall ipv4 name WAN-LAN default-action 'drop'
+set firewall ipv4 name WAN-LAN default-log
+set firewall ipv4 name WAN-LAN description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name WAN-LAN rule 1 action 'return'
+set firewall ipv4 name WAN-LAN rule 1 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv4 name WAN-LAN rule 1 state 'established'
+set firewall ipv4 name WAN-LAN rule 1 state 'related'
+set firewall ipv4 name WAN-LAN rule 2 action 'drop'
+set firewall ipv4 name WAN-LAN rule 2 log
+set firewall ipv4 name WAN-LAN rule 2 state 'invalid'
+set firewall ipv4 name WAN-LAN rule 1000 action 'return'
+set firewall ipv4 name WAN-LAN rule 1000 destination address '172.16.33.40'
+set firewall ipv4 name WAN-LAN rule 1000 destination port '3389'
+set firewall ipv4 name WAN-LAN rule 1000 protocol 'tcp'
+set firewall ipv4 name WAN-LAN rule 1000 source group network-group 'SSH-IN-ALLOW'
+set firewall ipv4 name WAN-LOCAL default-action 'drop'
+set firewall ipv4 name WAN-LOCAL rule 1 action 'return'
+set firewall ipv4 name WAN-LOCAL rule 1 state 'established'
+set firewall ipv4 name WAN-LOCAL rule 1 state 'related'
+set firewall ipv4 name WAN-LOCAL rule 2 action 'drop'
+set firewall ipv4 name WAN-LOCAL rule 2 log
+set firewall ipv4 name WAN-LOCAL rule 2 state 'invalid'
+set firewall ipv4 name WAN-LOCAL rule 22 action 'return'
+set firewall ipv4 name WAN-LOCAL rule 22 destination port '22'
+set firewall ipv4 name WAN-LOCAL rule 22 protocol 'tcp'
+set firewall ipv4 name WAN-LOCAL rule 22 source group network-group 'SSH-IN-ALLOW'
+set firewall ipv4 name WAN-LOCAL rule 1990 action 'return'
+set firewall ipv4 name WAN-LOCAL rule 1990 destination port '10666'
+set firewall ipv4 name WAN-LOCAL rule 1990 protocol 'udp'
+set firewall ipv4 name WAN-LOCAL rule 1990 source address '100.64.55.1'
+set firewall ipv4 name WAN-LOCAL rule 10000 action 'return'
+set firewall ipv4 name WAN-LOCAL rule 10000 destination port '80,443'
+set firewall ipv4 name WAN-LOCAL rule 10000 protocol 'tcp'
+set firewall ipv4 name WAN-LOCAL rule 10100 action 'return'
+set firewall ipv4 name WAN-LOCAL rule 10100 destination port '10100'
+set firewall ipv4 name WAN-LOCAL rule 10100 protocol 'udp'
+set firewall ipv4 name WAN-LOCAL rule 10100 source port '10100'
+set firewall ipv4 name WAN-LOCAL rule 10200 action 'return'
+set firewall ipv4 name WAN-LOCAL rule 10200 destination port '10200'
+set firewall ipv4 name WAN-LOCAL rule 10200 protocol 'udp'
+set firewall ipv4 name WAN-LOCAL rule 10200 source address '100.64.89.98'
+set firewall ipv4 name WAN-LOCAL rule 10200 source port '10200'
+set firewall ipv6 name ALLOW-ALL-6 default-action 'return'
+set firewall ipv6 name ALLOW-ALL-6 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv6 name ALLOW-BASIC-6 default-action 'drop'
+set firewall ipv6 name ALLOW-BASIC-6 default-log
+set firewall ipv6 name ALLOW-BASIC-6 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv6 name ALLOW-BASIC-6 rule 1 action 'return'
+set firewall ipv6 name ALLOW-BASIC-6 rule 1 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv6 name ALLOW-BASIC-6 rule 1 state 'established'
+set firewall ipv6 name ALLOW-BASIC-6 rule 1 state 'related'
+set firewall ipv6 name ALLOW-BASIC-6 rule 2 action 'drop'
+set firewall ipv6 name ALLOW-BASIC-6 rule 2 description 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata'
+set firewall ipv6 name ALLOW-BASIC-6 rule 2 state 'invalid'
+set firewall ipv6 name ALLOW-BASIC-6 rule 10 action 'return'
+set firewall ipv6 name ALLOW-BASIC-6 rule 10 protocol 'ipv6-icmp'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 default-action 'drop'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 default-log
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 1 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 1 state 'established'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 1 state 'related'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 2 action 'drop'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 2 state 'invalid'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 10 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 10 destination group network-group 'LOCAL-ADDRESSES'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 10 protocol 'ipv6-icmp'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 10 source address 'fe80::/10'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 20 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 20 icmpv6 type-name 'echo-request'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 20 protocol 'ipv6-icmp'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 21 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 21 icmpv6 type-name 'destination-unreachable'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 21 protocol 'ipv6-icmp'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 22 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 22 icmpv6 type-name 'packet-too-big'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 22 protocol 'ipv6-icmp'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 23 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 23 icmpv6 type-name 'time-exceeded'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 23 protocol 'ipv6-icmp'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 24 action 'return'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 24 icmpv6 type-name 'parameter-problem'
+set firewall ipv6 name ALLOW-ESTABLISHED-6 rule 24 protocol 'ipv6-icmp'
+set firewall ipv6 name WAN-LOCAL-6 default-action 'drop'
+set firewall ipv6 name WAN-LOCAL-6 default-log
+set firewall ipv6 name WAN-LOCAL-6 rule 1 action 'return'
+set firewall ipv6 name WAN-LOCAL-6 rule 1 state 'established'
+set firewall ipv6 name WAN-LOCAL-6 rule 1 state 'related'
+set firewall ipv6 name WAN-LOCAL-6 rule 2 action 'drop'
+set firewall ipv6 name WAN-LOCAL-6 rule 2 state 'invalid'
+set firewall ipv6 name WAN-LOCAL-6 rule 10 action 'return'
+set firewall ipv6 name WAN-LOCAL-6 rule 10 destination address 'ff02::/64'
+set firewall ipv6 name WAN-LOCAL-6 rule 10 protocol 'ipv6-icmp'
+set firewall ipv6 name WAN-LOCAL-6 rule 10 source address 'fe80::/10'
+set firewall ipv6 name WAN-LOCAL-6 rule 50 action 'return'
+set firewall ipv6 name WAN-LOCAL-6 rule 50 destination address 'fe80::/10'
+set firewall ipv6 name WAN-LOCAL-6 rule 50 destination port '546'
+set firewall ipv6 name WAN-LOCAL-6 rule 50 protocol 'udp'
+set firewall ipv6 name WAN-LOCAL-6 rule 50 source address 'fe80::/10'
+set firewall ipv6 name WAN-LOCAL-6 rule 50 source port '547'
+set firewall zone DMZ default-action 'drop'
+set firewall zone DMZ from GUEST firewall name 'GUEST-DMZ'
+set firewall zone DMZ from LAN firewall name 'LAN-DMZ'
+set firewall zone DMZ from LOCAL firewall name 'LOCAL-DMZ'
+set firewall zone DMZ from WAN firewall name 'WAN-DMZ'
+set firewall zone DMZ interface 'eth0.50'
+set firewall zone GUEST default-action 'drop'
+set firewall zone GUEST from DMZ firewall name 'DMZ-GUEST'
+set firewall zone GUEST from LAN firewall name 'LAN-GUEST'
+set firewall zone GUEST from LOCAL firewall ipv6-name 'ALLOW-ALL-6'
+set firewall zone GUEST from LOCAL firewall name 'LOCAL-GUEST'
+set firewall zone GUEST from WAN firewall ipv6-name 'ALLOW-ESTABLISHED-6'
+set firewall zone GUEST from WAN firewall name 'WAN-GUEST'
+set firewall zone GUEST interface 'eth1.20'
+set firewall zone LAN default-action 'drop'
+set firewall zone LAN from DMZ firewall name 'DMZ-LAN'
+set firewall zone LAN from GUEST firewall name 'GUEST-LAN'
+set firewall zone LAN from LOCAL firewall ipv6-name 'ALLOW-ALL-6'
+set firewall zone LAN from LOCAL firewall name 'LOCAL-LAN'
+set firewall zone LAN from WAN firewall ipv6-name 'ALLOW-ESTABLISHED-6'
+set firewall zone LAN from WAN firewall name 'WAN-LAN'
+set firewall zone LAN interface 'eth0.5'
+set firewall zone LAN interface 'eth0.10'
+set firewall zone LAN interface 'wg100'
+set firewall zone LAN interface 'wg200'
+set firewall zone LOCAL default-action 'drop'
+set firewall zone LOCAL from DMZ firewall name 'DMZ-LOCAL'
+set firewall zone LOCAL from GUEST firewall ipv6-name 'ALLOW-ESTABLISHED-6'
+set firewall zone LOCAL from GUEST firewall name 'GUEST-LOCAL'
+set firewall zone LOCAL from LAN firewall ipv6-name 'ALLOW-ALL-6'
+set firewall zone LOCAL from LAN firewall name 'LAN-LOCAL'
+set firewall zone LOCAL from WAN firewall ipv6-name 'WAN-LOCAL-6'
+set firewall zone LOCAL from WAN firewall name 'WAN-LOCAL'
+set firewall zone LOCAL local-zone
+set firewall zone WAN default-action 'drop'
+set firewall zone WAN from DMZ firewall name 'DMZ-WAN'
+set firewall zone WAN from GUEST firewall ipv6-name 'ALLOW-ALL-6'
+set firewall zone WAN from GUEST firewall name 'GUEST-WAN'
+set firewall zone WAN from LAN firewall ipv6-name 'ALLOW-ALL-6'
+set firewall zone WAN from LAN firewall name 'LAN-WAN'
+set firewall zone WAN from LOCAL firewall ipv6-name 'ALLOW-ALL-6'
+set firewall zone WAN from LOCAL firewall name 'LOCAL-WAN'
+set firewall zone WAN interface 'pppoe0'
+set firewall zone WAN interface 'wg666'
+set nat destination rule 8000 destination port '10000'
+set nat destination rule 8000 inbound-interface name 'pppoe0'
+set nat destination rule 8000 protocol 'udp'
+set nat destination rule 8000 translation address '172.31.0.200'
+set nat source rule 50 outbound-interface name 'pppoe0'
+set nat source rule 50 source address '100.64.0.0/24'
+set nat source rule 50 translation address 'masquerade'
+set nat source rule 100 outbound-interface name 'pppoe0'
+set nat source rule 100 source address '172.16.32.0/21'
+set nat source rule 100 translation address 'masquerade'
+set nat source rule 200 outbound-interface name 'pppoe0'
+set nat source rule 200 source address '172.16.100.0/24'
+set nat source rule 200 translation address 'masquerade'
+set nat source rule 300 outbound-interface name 'pppoe0'
+set nat source rule 300 source address '172.31.0.0/24'
+set nat source rule 300 translation address 'masquerade'
+set nat source rule 400 outbound-interface name 'pppoe0'
+set nat source rule 400 source address '172.18.200.0/21'
+set nat source rule 400 translation address 'masquerade'
+set nat source rule 1000 destination address '192.168.189.0/24'
+set nat source rule 1000 outbound-interface name 'wg666'
+set nat source rule 1000 source address '172.16.32.0/21'
+set nat source rule 1000 translation address '172.29.0.1'
+set nat source rule 1001 destination address '192.168.189.0/24'
+set nat source rule 1001 outbound-interface name 'wg666'
+set nat source rule 1001 source address '172.16.100.0/24'
+set nat source rule 1001 translation address '172.29.0.1'
+set policy route-map MAP-OSPF-CONNECTED rule 1 action 'deny'
+set policy route-map MAP-OSPF-CONNECTED rule 1 match interface 'eth1.20'
+set policy route-map MAP-OSPF-CONNECTED rule 20 action 'permit'
+set policy route-map MAP-OSPF-CONNECTED rule 20 match interface 'eth0.10'
+set policy route-map MAP-OSPF-CONNECTED rule 40 action 'permit'
+set policy route-map MAP-OSPF-CONNECTED rule 40 match interface 'eth0.50'
+set qos policy shaper QoS bandwidth '50mbit'
+set qos policy shaper QoS default bandwidth '100%'
+set qos policy shaper QoS default burst '15k'
+set qos policy shaper QoS default queue-limit '1000'
+set qos policy shaper QoS default queue-type 'fq-codel'
diff --git a/smoketest/configs/basic-vyos b/smoketest/configs/basic-vyos
index 76aa52039..e95d7458f 100644
--- a/smoketest/configs/basic-vyos
+++ b/smoketest/configs/basic-vyos
@@ -86,9 +86,25 @@ service {
domain-name vyos.net
domain-search vyos.net
range LANDynamic {
- start 192.168.0.20
+ start 192.168.0.30
stop 192.168.0.240
}
+ static-mapping TEST1-1 {
+ ip-address 192.168.0.11
+ mac-address 00:01:02:03:04:05
+ }
+ static-mapping TEST1-2 {
+ ip-address 192.168.0.12
+ mac-address 00:01:02:03:04:05
+ }
+ static-mapping TEST2-1 {
+ ip-address 192.168.0.21
+ mac-address 00:01:02:03:04:21
+ }
+ static-mapping TEST2-2 {
+ ip-address 192.168.0.21
+ mac-address 00:01:02:03:04:22
+ }
}
}
}
diff --git a/smoketest/configs/dialup-router-wireguard-ipv6 b/smoketest/configs/dialup-router-wireguard-ipv6
index 33afb9b04..058582148 100644
--- a/smoketest/configs/dialup-router-wireguard-ipv6
+++ b/smoketest/configs/dialup-router-wireguard-ipv6
@@ -4,11 +4,13 @@ firewall {
config-trap disable
group {
address-group DMZ-WEBSERVER {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
address 172.16.36.10
address 172.16.36.40
address 172.16.36.20
}
address-group DMZ-RDP-SERVER {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
address 172.16.33.40
}
address-group DOMAIN-CONTROLLER {
@@ -35,11 +37,14 @@ firewall {
}
ipv6-name ALLOW-ALL-6 {
default-action accept
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
}
ipv6-name ALLOW-BASIC-6 {
default-action drop
enable-default-log
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
rule 1 {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
action accept
state {
established enable
@@ -47,6 +52,7 @@ firewall {
}
}
rule 2 {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
action drop
state {
invalid enable
@@ -185,7 +191,9 @@ firewall {
name DMZ-LAN {
default-action drop
enable-default-log
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
rule 1 {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
action accept
state {
established enable
@@ -194,6 +202,7 @@ firewall {
}
rule 2 {
action drop
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
log enable
state {
invalid enable
@@ -201,6 +210,7 @@ firewall {
}
rule 100 {
action accept
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
destination {
group {
address-group DOMAIN-CONTROLLER
@@ -210,6 +220,7 @@ firewall {
protocol tcp_udp
}
rule 300 {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
action accept
destination {
group {
@@ -226,6 +237,7 @@ firewall {
name DMZ-LOCAL {
default-action drop
enable-default-log
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
rule 1 {
action accept
state {
@@ -241,6 +253,7 @@ firewall {
}
}
rule 50 {
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
action accept
destination {
address 172.16.254.30
@@ -258,6 +271,7 @@ firewall {
}
name DMZ-WAN {
default-action accept
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
}
name GUEST-DMZ {
default-action drop
@@ -737,9 +751,11 @@ firewall {
}
name WAN-LAN {
default-action drop
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
enable-default-log
rule 1 {
action accept
+ description "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
state {
established enable
related enable
diff --git a/smoketest/scripts/cli/base_interfaces_test.py b/smoketest/scripts/cli/base_interfaces_test.py
index a40b762a8..9b705c801 100644
--- a/smoketest/scripts/cli/base_interfaces_test.py
+++ b/smoketest/scripts/cli/base_interfaces_test.py
@@ -318,6 +318,22 @@ class BasicInterfaceTest:
self.assertEqual(tmp, str())
self.assertEqual(Interface(intf).get_alias(), str())
+ # Test maximum interface description lengt (255 characters)
+ test_string='abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789___'
+ for intf in self._interfaces:
+
+ self.cli_set(self._base_path + [intf, 'description', test_string])
+ for option in self._options.get(intf, []):
+ self.cli_set(self._base_path + [intf] + option.split())
+
+ self.cli_commit()
+
+ # Validate interface description
+ for intf in self._interfaces:
+ tmp = read_file(f'/sys/class/net/{intf}/ifalias')
+ self.assertEqual(tmp, test_string)
+ self.assertEqual(Interface(intf).get_alias(), test_string)
+
def test_add_single_ip_address(self):
addr = '192.0.2.0/31'
for intf in self._interfaces:
diff --git a/smoketest/scripts/cli/base_vyostest_shim.py b/smoketest/scripts/cli/base_vyostest_shim.py
index 140642806..c49d3e76c 100644
--- a/smoketest/scripts/cli/base_vyostest_shim.py
+++ b/smoketest/scripts/cli/base_vyostest_shim.py
@@ -102,6 +102,29 @@ class VyOSUnitTestSHIM:
ssh_client.close()
return output, error
+ # Verify nftables output
+ def verify_nftables(self, nftables_search, table, inverse=False, args=''):
+ nftables_output = cmd(f'sudo nft {args} list table {table}')
+
+ for search in nftables_search:
+ matched = False
+ for line in nftables_output.split("\n"):
+ if all(item in line for item in search):
+ matched = True
+ break
+ self.assertTrue(not matched if inverse else matched, msg=search)
+
+ def verify_nftables_chain(self, nftables_search, table, chain, inverse=False, args=''):
+ nftables_output = cmd(f'sudo nft {args} list chain {table} {chain}')
+
+ for search in nftables_search:
+ matched = False
+ for line in nftables_output.split("\n"):
+ if all(item in line for item in search):
+ matched = True
+ break
+ self.assertTrue(not matched if inverse else matched, msg=search)
+
# standard construction; typing suggestion: https://stackoverflow.com/a/70292317
def ignore_warning(warning: Type[Warning]):
import warnings
diff --git a/smoketest/scripts/cli/test_firewall.py b/smoketest/scripts/cli/test_firewall.py
index bc2848492..9e8473fa4 100755
--- a/smoketest/scripts/cli/test_firewall.py
+++ b/smoketest/scripts/cli/test_firewall.py
@@ -22,7 +22,6 @@ from time import sleep
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
-from vyos.utils.process import cmd
from vyos.utils.process import run
sysfs_config = {
@@ -67,28 +66,6 @@ class TestFirewall(VyOSUnitTestSHIM.TestCase):
self.verify_nftables(nftables_search, 'ip vyos_filter', inverse=True)
- def verify_nftables(self, nftables_search, table, inverse=False, args=''):
- nftables_output = cmd(f'sudo nft {args} list table {table}')
-
- for search in nftables_search:
- matched = False
- for line in nftables_output.split("\n"):
- if all(item in line for item in search):
- matched = True
- break
- self.assertTrue(not matched if inverse else matched, msg=search)
-
- def verify_nftables_chain(self, nftables_search, table, chain, inverse=False, args=''):
- nftables_output = cmd(f'sudo nft {args} list chain {table} {chain}')
-
- for search in nftables_search:
- matched = False
- for line in nftables_output.split("\n"):
- if all(item in line for item in search):
- matched = True
- break
- self.assertTrue(not matched if inverse else matched, msg=search)
-
def wait_for_domain_resolver(self, table, set_name, element, max_wait=10):
# Resolver no longer blocks commit, need to wait for daemon to populate set
count = 0
@@ -652,8 +629,8 @@ class TestFirewall(VyOSUnitTestSHIM.TestCase):
nftables_search = [
['ct state { established, related }', 'accept'],
['ct state invalid', 'reject'],
- ['ct state new', 'ct status == dnat', 'accept'],
- ['ct state { established, new }', 'ct status == snat', 'accept'],
+ ['ct state new', 'ct status dnat', 'accept'],
+ ['ct state { established, new }', 'ct status snat', 'accept'],
['ct state related', 'ct helper { "ftp", "pptp" }', 'accept'],
['drop', f'comment "{name} default-action drop"'],
['jump VYOS_STATE_POLICY'],
@@ -808,7 +785,6 @@ class TestFirewall(VyOSUnitTestSHIM.TestCase):
['ct state related', 'accept']
]
- nftables_output = cmd('sudo nft list table ip vyos_filter')
self.verify_nftables(nftables_search, 'ip vyos_filter')
self.verify_nftables(nftables_search_v6, 'ip6 vyos_filter')
diff --git a/smoketest/scripts/cli/test_high-availability_vrrp.py b/smoketest/scripts/cli/test_high-availability_vrrp.py
index 98259d830..9ba06aef6 100755
--- a/smoketest/scripts/cli/test_high-availability_vrrp.py
+++ b/smoketest/scripts/cli/test_high-availability_vrrp.py
@@ -237,5 +237,85 @@ class TestVRRP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'track_interface', config)
self.assertIn(f' {none_vrrp_interface}', config)
+ def test_05_set_multiple_peer_address(self):
+ group = 'VyOS-WAN'
+ vlan_id = '24'
+ vip = '100.64.24.1/24'
+ peer_address_1 = '192.0.2.1'
+ peer_address_2 = '192.0.2.2'
+ vrid = '150'
+ group_base = base_path + ['vrrp', 'group', group]
+
+ self.cli_set(['interfaces', 'ethernet', vrrp_interface, 'vif', vlan_id, 'address', '100.64.24.11/24'])
+ self.cli_set(group_base + ['interface', vrrp_interface])
+ self.cli_set(group_base + ['address', vip])
+ self.cli_set(group_base + ['peer-address', peer_address_1])
+ self.cli_set(group_base + ['peer-address', peer_address_2])
+ self.cli_set(group_base + ['vrid', vrid])
+
+ # commit changes
+ self.cli_commit()
+
+ config = getConfig(f'vrrp_instance {group}')
+
+ self.assertIn(f'interface {vrrp_interface}', config)
+ self.assertIn(f'virtual_router_id {vrid}', config)
+ self.assertIn(f'unicast_peer', config)
+ self.assertIn(f' {peer_address_1}', config)
+ self.assertIn(f' {peer_address_2}', config)
+
+ def test_check_health_script(self):
+ sync_group = 'VyOS'
+
+ for group in groups:
+ vlan_id = group.lstrip('VLAN')
+ vip = f'100.64.{vlan_id}.1/24'
+ group_base = base_path + ['vrrp', 'group', group]
+
+ self.cli_set(['interfaces', 'ethernet', vrrp_interface, 'vif', vlan_id, 'address', inc_ip(vip, 1) + '/' + vip.split('/')[-1]])
+
+ self.cli_set(group_base + ['interface', f'{vrrp_interface}.{vlan_id}'])
+ self.cli_set(group_base + ['address', vip])
+ self.cli_set(group_base + ['vrid', vlan_id])
+
+ self.cli_set(group_base + ['health-check', 'ping', '127.0.0.1'])
+
+ # commit changes
+ self.cli_commit()
+
+ for group in groups:
+ config = getConfig(f'vrrp_instance {group}')
+ self.assertIn(f'track_script', config)
+
+ self.cli_set(base_path + ['vrrp', 'sync-group', sync_group, 'member', groups[0]])
+
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+
+ self.cli_delete(base_path + ['vrrp', 'group', groups[0], 'health-check'])
+ self.cli_commit()
+
+ for group in groups[1:]:
+ config = getConfig(f'vrrp_instance {group}')
+ self.assertIn(f'track_script', config)
+
+ config = getConfig(f'vrrp_instance {groups[0]}')
+ self.assertNotIn(f'track_script', config)
+
+ config = getConfig(f'vrrp_sync_group {sync_group}')
+ self.assertNotIn(f'track_script', config)
+
+ self.cli_set(base_path + ['vrrp', 'sync-group', sync_group, 'health-check', 'ping', '127.0.0.1'])
+
+ # commit changes
+ self.cli_commit()
+
+ config = getConfig(f'vrrp_instance {groups[0]}')
+ self.assertNotIn(f'track_script', config)
+
+ config = getConfig(f'vrrp_sync_group {sync_group}')
+ self.assertIn(f'track_script', config)
+
+
if __name__ == '__main__':
unittest.main(verbosity=2)
diff --git a/smoketest/scripts/cli/test_interfaces_ethernet.py b/smoketest/scripts/cli/test_interfaces_ethernet.py
index e414f18cb..8f387b23d 100755
--- a/smoketest/scripts/cli/test_interfaces_ethernet.py
+++ b/smoketest/scripts/cli/test_interfaces_ethernet.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
-# Copyright (C) 2020-2022 VyOS maintainers and contributors
+# Copyright (C) 2020-2024 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@@ -17,7 +17,9 @@
import os
import re
import unittest
+
from glob import glob
+from json import loads
from netifaces import AF_INET
from netifaces import AF_INET6
@@ -27,9 +29,9 @@ from base_interfaces_test import BasicInterfaceTest
from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Section
from vyos.pki import CERT_BEGIN
-from vyos.template import is_ipv6
from vyos.utils.process import cmd
from vyos.utils.process import process_named_running
+from vyos.utils.process import popen
from vyos.utils.file import read_file
from vyos.utils.network import is_ipv6_link_local
@@ -301,5 +303,56 @@ class EthernetInterfaceTest(BasicInterfaceTest.TestCase):
self.cli_delete(['pki', 'ca', name])
self.cli_delete(['pki', 'certificate', cert_name])
+ def test_ethtool_ring_buffer(self):
+ for interface in self._interfaces:
+ # We do not use vyos.ethtool here to not have any chance
+ # for invalid testcases. Re-gain data by hand
+ tmp = cmd(f'sudo ethtool --json --show-ring {interface}')
+ tmp = loads(tmp)
+ max_rx = str(tmp[0]['rx-max'])
+ max_tx = str(tmp[0]['tx-max'])
+
+ self.cli_set(self._base_path + [interface, 'ring-buffer', 'rx', max_rx])
+ self.cli_set(self._base_path + [interface, 'ring-buffer', 'tx', max_tx])
+
+ self.cli_commit()
+
+ for interface in self._interfaces:
+ tmp = cmd(f'sudo ethtool --json --show-ring {interface}')
+ tmp = loads(tmp)
+ max_rx = str(tmp[0]['rx-max'])
+ max_tx = str(tmp[0]['tx-max'])
+ rx = str(tmp[0]['rx'])
+ tx = str(tmp[0]['tx'])
+
+ # validate if the above change was carried out properly and the
+ # ring-buffer size got increased
+ self.assertEqual(max_rx, rx)
+ self.assertEqual(max_tx, tx)
+
+ def test_ethtool_flow_control(self):
+ for interface in self._interfaces:
+ # Disable flow-control
+ self.cli_set(self._base_path + [interface, 'disable-flow-control'])
+ # Check current flow-control state on ethernet interface
+ out, err = popen(f'sudo ethtool --json --show-pause {interface}')
+ # Flow-control not supported - test if it bails out with a proper
+ # this is a dynamic path where err = 1 on VMware, but err = 0 on
+ # a physical box.
+ if bool(err):
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+ else:
+ out = loads(out)
+ # Flow control is on
+ self.assertTrue(out[0]['autonegotiate'])
+
+ # commit change on CLI to disable-flow-control and re-test
+ self.cli_commit()
+
+ out, err = popen(f'sudo ethtool --json --show-pause {interface}')
+ out = loads(out)
+ self.assertFalse(out[0]['autonegotiate'])
+
if __name__ == '__main__':
unittest.main(verbosity=2)
diff --git a/smoketest/scripts/cli/test_nat.py b/smoketest/scripts/cli/test_nat.py
index 1e6435df8..43e374398 100755
--- a/smoketest/scripts/cli/test_nat.py
+++ b/smoketest/scripts/cli/test_nat.py
@@ -21,8 +21,6 @@ import unittest
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
-from vyos.utils.process import cmd
-from vyos.utils.dict import dict_search
base_path = ['nat']
src_path = base_path + ['source']
@@ -47,17 +45,6 @@ class TestNAT(VyOSUnitTestSHIM.TestCase):
self.assertFalse(os.path.exists(nftables_nat_config))
self.assertFalse(os.path.exists(nftables_static_nat_conf))
- def verify_nftables(self, nftables_search, table, inverse=False, args=''):
- nftables_output = cmd(f'sudo nft {args} list table {table}')
-
- for search in nftables_search:
- matched = False
- for line in nftables_output.split("\n"):
- if all(item in line for item in search):
- matched = True
- break
- self.assertTrue(not matched if inverse else matched, msg=search)
-
def wait_for_domain_resolver(self, table, set_name, element, max_wait=10):
# Resolver no longer blocks commit, need to wait for daemon to populate set
count = 0
@@ -100,21 +87,28 @@ class TestNAT(VyOSUnitTestSHIM.TestCase):
address_group_member = '192.0.2.1'
interface_group = 'smoketest_ifaces'
interface_group_member = 'bond.99'
- rule = '100'
self.cli_set(['firewall', 'group', 'address-group', address_group, 'address', address_group_member])
self.cli_set(['firewall', 'group', 'interface-group', interface_group, 'interface', interface_group_member])
- self.cli_set(src_path + ['rule', rule, 'source', 'group', 'address-group', address_group])
- self.cli_set(src_path + ['rule', rule, 'outbound-interface', 'group', interface_group])
- self.cli_set(src_path + ['rule', rule, 'translation', 'address', 'masquerade'])
+ self.cli_set(src_path + ['rule', '100', 'source', 'group', 'address-group', address_group])
+ self.cli_set(src_path + ['rule', '100', 'outbound-interface', 'group', interface_group])
+ self.cli_set(src_path + ['rule', '100', 'translation', 'address', 'masquerade'])
+
+ self.cli_set(src_path + ['rule', '110', 'source', 'group', 'address-group', address_group])
+ self.cli_set(src_path + ['rule', '110', 'translation', 'address', '203.0.113.1'])
+
+ self.cli_set(src_path + ['rule', '120', 'source', 'group', 'address-group', address_group])
+ self.cli_set(src_path + ['rule', '120', 'translation', 'address', '203.0.113.111/32'])
self.cli_commit()
nftables_search = [
[f'set A_{address_group}'],
[f'elements = {{ {address_group_member} }}'],
- [f'ip saddr @A_{address_group}', f'oifname @I_{interface_group}', 'masquerade']
+ [f'ip saddr @A_{address_group}', f'oifname @I_{interface_group}', 'masquerade'],
+ [f'ip saddr @A_{address_group}', 'snat to 203.0.113.1'],
+ [f'ip saddr @A_{address_group}', 'snat prefix to 203.0.113.111/32']
]
self.verify_nftables(nftables_search, 'ip vyos_nat')
diff --git a/smoketest/scripts/cli/test_nat66.py b/smoketest/scripts/cli/test_nat66.py
index 0607f6616..400a895ff 100755
--- a/smoketest/scripts/cli/test_nat66.py
+++ b/smoketest/scripts/cli/test_nat66.py
@@ -22,8 +22,6 @@ import unittest
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
-from vyos.utils.process import cmd
-from vyos.utils.dict import dict_search
base_path = ['nat66']
src_path = base_path + ['source']
@@ -42,17 +40,6 @@ class TestNAT66(VyOSUnitTestSHIM.TestCase):
self.cli_delete(base_path)
self.cli_commit()
- def verify_nftables(self, nftables_search, table, inverse=False, args=''):
- nftables_output = cmd(f'sudo nft {args} list table {table}')
-
- for search in nftables_search:
- matched = False
- for line in nftables_output.split("\n"):
- if all(item in line for item in search):
- matched = True
- break
- self.assertTrue(not matched if inverse else matched, msg=search)
-
def test_source_nat66(self):
source_prefix = 'fc00::/64'
translation_prefix = 'fc01::/64'
diff --git a/smoketest/scripts/cli/test_policy.py b/smoketest/scripts/cli/test_policy.py
index c21d8af4e..ee4445251 100755
--- a/smoketest/scripts/cli/test_policy.py
+++ b/smoketest/scripts/cli/test_policy.py
@@ -1065,6 +1065,7 @@ class TestPolicy(VyOSUnitTestSHIM.TestCase):
'20' : {
'action' : 'permit',
'set' : {
+ 'as-path-exclude' : 'all',
'evpn-gateway-ipv4' : '192.0.2.99',
'evpn-gateway-ipv6' : '2001:db8:f00::1',
},
diff --git a/smoketest/scripts/cli/test_policy_route.py b/smoketest/scripts/cli/test_policy_route.py
index c0b7c1fe7..462fc24d0 100755
--- a/smoketest/scripts/cli/test_policy_route.py
+++ b/smoketest/scripts/cli/test_policy_route.py
@@ -68,17 +68,6 @@ class TestPolicyRoute(VyOSUnitTestSHIM.TestCase):
self.verify_rules(ip_rule_search, inverse=True)
- def verify_nftables(self, nftables_search, table, inverse=False):
- nftables_output = cmd(f'sudo nft list table {table}')
-
- for search in nftables_search:
- matched = False
- for line in nftables_output.split("\n"):
- if all(item in line for item in search):
- matched = True
- break
- self.assertTrue(not matched if inverse else matched, msg=search)
-
def verify_rules(self, rules_search, inverse=False):
rule_output = cmd('ip rule show')
diff --git a/smoketest/scripts/cli/test_protocols_ospf.py b/smoketest/scripts/cli/test_protocols_ospf.py
index 6bffc7c45..82fb96754 100755
--- a/smoketest/scripts/cli/test_protocols_ospf.py
+++ b/smoketest/scripts/cli/test_protocols_ospf.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
-# Copyright (C) 2021-2023 VyOS maintainers and contributors
+# Copyright (C) 2021-2024 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@@ -240,7 +240,7 @@ class TestProtocolsOSPF(VyOSUnitTestSHIM.TestCase):
def test_ospf_07_redistribute(self):
metric = '15'
metric_type = '1'
- redistribute = ['bgp', 'connected', 'isis', 'kernel', 'rip', 'static']
+ redistribute = ['babel', 'bgp', 'connected', 'isis', 'kernel', 'rip', 'static']
for protocol in redistribute:
self.cli_set(base_path + ['redistribute', protocol, 'metric', metric])
diff --git a/smoketest/scripts/cli/test_protocols_ospfv3.py b/smoketest/scripts/cli/test_protocols_ospfv3.py
index 4ae7f05d9..989e1552d 100755
--- a/smoketest/scripts/cli/test_protocols_ospfv3.py
+++ b/smoketest/scripts/cli/test_protocols_ospfv3.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
-# Copyright (C) 2021-2023 VyOS maintainers and contributors
+# Copyright (C) 2021-2024 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@@ -114,14 +114,18 @@ class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase):
def test_ospfv3_03_redistribute(self):
+ metric = '15'
+ metric_type = '1'
route_map = 'foo-bar'
route_map_seq = '10'
- redistribute = ['bgp', 'connected', 'kernel', 'ripng', 'static']
+ redistribute = ['babel', 'bgp', 'connected', 'isis', 'kernel', 'ripng', 'static']
self.cli_set(['policy', 'route-map', route_map, 'rule', route_map_seq, 'action', 'permit'])
for protocol in redistribute:
+ self.cli_set(base_path + ['redistribute', protocol, 'metric', metric])
self.cli_set(base_path + ['redistribute', protocol, 'route-map', route_map])
+ self.cli_set(base_path + ['redistribute', protocol, 'metric-type', metric_type])
# commit changes
self.cli_commit()
@@ -130,7 +134,7 @@ class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase):
frrconfig = self.getFRRconfig('router ospf6', daemon=PROCESS_NAME)
self.assertIn(f'router ospf6', frrconfig)
for protocol in redistribute:
- self.assertIn(f' redistribute {protocol} route-map {route_map}', frrconfig)
+ self.assertIn(f' redistribute {protocol} metric {metric} metric-type {metric_type} route-map {route_map}', frrconfig)
def test_ospfv3_04_interfaces(self):
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py
index 194289567..b582a2108 100755
--- a/smoketest/scripts/cli/test_service_dhcp-server.py
+++ b/smoketest/scripts/cli/test_service_dhcp-server.py
@@ -100,6 +100,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
self.cli_set(pool + ['subnet-id', '1'])
+ self.cli_set(pool + ['ignore-client-id'])
# we use the first subnet IP address as default gateway
self.cli_set(pool + ['option', 'default-router', router])
self.cli_set(pool + ['option', 'name-server', dns_1])
@@ -124,6 +125,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
self.verify_config_value(obj, ['Dhcp4', 'shared-networks'], 'name', shared_net_name)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'subnet', subnet)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'id', 1)
+ self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'match-client-id', False)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'valid-lifetime', 86400)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'max-valid-lifetime', 86400)
diff --git a/smoketest/scripts/cli/test_service_router-advert.py b/smoketest/scripts/cli/test_service_router-advert.py
index 5fc2019fd..d1ff25a58 100755
--- a/smoketest/scripts/cli/test_service_router-advert.py
+++ b/smoketest/scripts/cli/test_service_router-advert.py
@@ -195,6 +195,34 @@ class TestServiceRADVD(VyOSUnitTestSHIM.TestCase):
for src in ra_src:
self.assertIn(f' {src};', config)
+ def test_nat64prefix(self):
+ nat64prefix = '64:ff9b::/96'
+ nat64prefix_invalid = '64:ff9b::/44'
+
+ self.cli_set(base_path + ['nat64prefix', nat64prefix])
+
+ # and another invalid prefix
+ # Invalid NAT64 prefix length for "2001:db8::/34", can only be one of:
+ # /32, /40, /48, /56, /64, /96
+ self.cli_set(base_path + ['nat64prefix', nat64prefix_invalid])
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+ self.cli_delete(base_path + ['nat64prefix', nat64prefix_invalid])
+
+ # NAT64 valid-lifetime must not be smaller then "interval max"
+ self.cli_set(base_path + ['nat64prefix', nat64prefix, 'valid-lifetime', '500'])
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+ self.cli_delete(base_path + ['nat64prefix', nat64prefix, 'valid-lifetime'])
+
+ # commit changes
+ self.cli_commit()
+
+ config = read_file(RADVD_CONF)
+
+ tmp = f'nat64prefix {nat64prefix}' + ' {'
+ self.assertIn(tmp, config)
+ self.assertIn('AdvValidLifetime 65528;', config) # default
if __name__ == '__main__':
unittest.main(verbosity=2)
diff --git a/smoketest/scripts/cli/test_service_snmp.py b/smoketest/scripts/cli/test_service_snmp.py
index 52a72ec4f..b3daa90d0 100755
--- a/smoketest/scripts/cli/test_service_snmp.py
+++ b/smoketest/scripts/cli/test_service_snmp.py
@@ -229,5 +229,22 @@ class TestSNMPService(VyOSUnitTestSHIM.TestCase):
tmp = call(f'snmpwalk -v 3 -u {snmpv3_user} -a MD5 -A {snmpv3_auth_pw} -x DES -X {snmpv3_priv_pw} -l authPriv 127.0.0.1', stdout=DEVNULL)
self.assertEqual(tmp, 0)
+ def test_snmpv3_view_exclude(self):
+ snmpv3_view_oid_exclude = ['1.3.6.1.2.1.4.21', '1.3.6.1.2.1.4.24']
+
+ self.cli_set(base_path + ['v3', 'group', snmpv3_group, 'view', snmpv3_view])
+ self.cli_set(base_path + ['v3', 'view', snmpv3_view, 'oid', snmpv3_view_oid])
+
+ for excluded in snmpv3_view_oid_exclude:
+ self.cli_set(base_path + ['v3', 'view', snmpv3_view, 'oid', snmpv3_view_oid, 'exclude', excluded])
+
+ self.cli_commit()
+
+ tmp = read_file(SNMPD_CONF)
+ # views
+ self.assertIn(f'view {snmpv3_view} included .{snmpv3_view_oid}', tmp)
+ for excluded in snmpv3_view_oid_exclude:
+ self.assertIn(f'view {snmpv3_view} excluded .{excluded}', tmp)
+
if __name__ == '__main__':
unittest.main(verbosity=2)
diff --git a/smoketest/scripts/cli/test_system_conntrack.py b/smoketest/scripts/cli/test_system_conntrack.py
index ce237a6e7..2d76da145 100755
--- a/smoketest/scripts/cli/test_system_conntrack.py
+++ b/smoketest/scripts/cli/test_system_conntrack.py
@@ -21,7 +21,6 @@ import unittest
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.firewall import find_nftables_rule
-from vyos.utils.process import cmd
from vyos.utils.file import read_file
base_path = ['system', 'conntrack']
@@ -43,17 +42,6 @@ class TestSystemConntrack(VyOSUnitTestSHIM.TestCase):
self.cli_delete(base_path)
self.cli_commit()
- def verify_nftables(self, nftables_search, table, inverse=False, args=''):
- nftables_output = cmd(f'sudo nft {args} list table {table}')
-
- for search in nftables_search:
- matched = False
- for line in nftables_output.split("\n"):
- if all(item in line for item in search):
- matched = True
- break
- self.assertTrue(not matched if inverse else matched, msg=search)
-
def test_conntrack_options(self):
conntrack_config = {
'net.netfilter.nf_conntrack_expect_max' : {
@@ -186,12 +174,16 @@ class TestSystemConntrack(VyOSUnitTestSHIM.TestCase):
'pptp': {
'driver': ['nf_nat_pptp', 'nf_conntrack_pptp'],
'nftables': ['ct helper set "pptp_tcp"']
- },
+ },
+ 'rtsp': {
+ 'driver': ['nf_nat_rtsp', 'nf_conntrack_rtsp'],
+ 'nftables': ['ct helper set "rtsp_tcp"']
+ },
'sip': {
'driver': ['nf_nat_sip', 'nf_conntrack_sip'],
'nftables': ['ct helper set "sip_tcp"',
'ct helper set "sip_udp"']
- },
+ },
'sqlnet': {
'nftables': ['ct helper set "tns_tcp"']
},
diff --git a/smoketest/scripts/cli/test_vrf.py b/smoketest/scripts/cli/test_vrf.py
index 438387f2d..c96b8e374 100755
--- a/smoketest/scripts/cli/test_vrf.py
+++ b/smoketest/scripts/cli/test_vrf.py
@@ -529,5 +529,28 @@ class VRFTest(VyOSUnitTestSHIM.TestCase):
self.assertNotIn(f' no ip nht resolve-via-default', frrconfig)
self.assertNotIn(f' no ipv6 nht resolve-via-default', frrconfig)
+ def test_vrf_conntrack(self):
+ table = '1000'
+ nftables_rules = {
+ 'vrf_zones_ct_in': ['ct original zone set iifname map @ct_iface_map'],
+ 'vrf_zones_ct_out': ['ct original zone set oifname map @ct_iface_map']
+ }
+
+ self.cli_set(base_path + ['name', 'blue', 'table', table])
+ self.cli_commit()
+
+ # Conntrack rules should not be present
+ for chain, rule in nftables_rules.items():
+ self.verify_nftables_chain(rule, 'inet vrf_zones', chain, inverse=True)
+
+ self.cli_set(['nat'])
+ self.cli_commit()
+
+ # Conntrack rules should now be present
+ for chain, rule in nftables_rules.items():
+ self.verify_nftables_chain(rule, 'inet vrf_zones', chain, inverse=False)
+
+ self.cli_delete(['nat'])
+
if __name__ == '__main__':
unittest.main(verbosity=2)