[26-06-02 09:14:32] START access_openvpn_snat_vip scenario: cases/access_openvpn_snat_vip.sh header : openvpn client reaches sw2 vip through sw1 snat topology: vpn1 10.96.0.10; v OpenVPN tcp/1194; sw1 192.52.0.1 -- output + SNAT --> sw2 192.52.0.2; VIP 10.252.0.12 topology: # Topology: topology: # - Diagram: topology: # vpn1 10.96.0.10 topology: # | topology: # v OpenVPN tcp/1194 topology: # sw1 192.52.0.1 -- output + SNAT --> sw2 192.52.0.2 topology: # VIP 10.252.0.12 topology: # - Docker mgmt network: 172.250.0.0/24 topology: # sw1=172.250.0.241, sw2=172.250.0.242. topology: # - OpenLAN service network "example": 192.52.0.0/24 topology: # sw1=192.52.0.1, sw2=192.52.0.2. topology: # - sw2 VIP: topology: # lo=10.252.0.12/32. topology: # - OpenVPN overlay on sw1: topology: # tcp/1194, subnet 10.96.0.0/24, vpn1@example fixed address 10.96.0.10. topology: # Validation: topology: # vpn client reaches sw2 VIP (10.252.0.12) through sw1 with SNAT enabled. Started switch pause container: tests-sw-openvpn-snat-vip.sw1-pause Started switch frr container: tests-sw-openvpn-snat-vip.sw1-frr Started switch ipsec container: tests-sw-openvpn-snat-vip.sw1-ipsec Started switch container: tests-sw-openvpn-snat-vip.sw1 [26-06-02 09:14:33][ASSERT#0001][expect] at cases/access_openvpn_snat_vip.sh:47 fn=setup_sw1 retry=30 cmd="docker logs -f tests-sw-openvpn-snat-vip.sw1" expect="Http.Start" 2026/06/02 09:14:34 INFO|root|Wait: ... 2026/06/02 09:14:34 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/02 09:14:34 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/02 09:14:34 INFO|root|Http.Start 0.0.0.0:10000 [26-06-02 09:14:34][ASSERT#0001][OK] cost=1.033s [26-06-02 09:14:34][ASSERT#0002][cmd] at cases/access_openvpn_snat_vip.sh:49 fn=setup_sw1 cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan crypt update --algorithm aes-128 --secret ea64d5b0c96c" [26-06-02 09:14:34][ASSERT#0002][OK] cost=0.062s [26-06-02 09:14:34][ASSERT#0003][cmd] at cases/access_openvpn_snat_vip.sh:50 fn=setup_sw1 cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan network --name example add --address 192.52.0.1/24" [26-06-02 09:14:34][ASSERT#0003][OK] cost=0.244s [26-06-02 09:14:34][ASSERT#0004][cmd] at cases/access_openvpn_snat_vip.sh:51 fn=setup_sw1 cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan user add --name uplink@example --password 123456" # total 1 username password role lease uplink@example 123456 guest 2027-06-02T09 [26-06-02 09:14:34][ASSERT#0004][OK] cost=0.063s [26-06-02 09:14:34][ASSERT#0005][cmd] at cases/access_openvpn_snat_vip.sh:52 fn=setup_sw1 cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan user add --name vpn1@example --password 123456" # total 1 username password role lease vpn1@example 123456 guest 2027-06-02T09 [26-06-02 09:14:34][ASSERT#0005][OK] cost=0.062s Started switch pause container: tests-sw-openvpn-snat-vip.sw2-pause Started switch frr container: tests-sw-openvpn-snat-vip.sw2-frr Started switch ipsec container: tests-sw-openvpn-snat-vip.sw2-ipsec Started switch container: tests-sw-openvpn-snat-vip.sw2 [26-06-02 09:14:35][ASSERT#0006][expect] at cases/access_openvpn_snat_vip.sh:63 fn=setup_sw2 retry=30 cmd="docker logs -f tests-sw-openvpn-snat-vip.sw2" expect="Http.Start" 2026/06/02 09:14:36 INFO|root|Wait: ... 2026/06/02 09:14:36 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/02 09:14:36 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/02 09:14:36 INFO|root|Http.Start 0.0.0.0:10000 [26-06-02 09:14:36][ASSERT#0006][OK] cost=1.032s [26-06-02 09:14:36][ASSERT#0007][cmd] at cases/access_openvpn_snat_vip.sh:65 fn=setup_sw2 cmd="docker exec tests-sw-openvpn-snat-vip.sw2 openlan crypt update --algorithm aes-128 --secret ea64d5b0c96c" [26-06-02 09:14:36][ASSERT#0007][OK] cost=0.070s [26-06-02 09:14:36][ASSERT#0008][cmd] at cases/access_openvpn_snat_vip.sh:66 fn=setup_sw2 cmd="docker exec tests-sw-openvpn-snat-vip.sw2 openlan network --name example add --address 192.52.0.2/24" [26-06-02 09:14:36][ASSERT#0008][OK] cost=0.255s [26-06-02 09:14:37][ASSERT#0009][cmd] at cases/access_openvpn_snat_vip.sh:67 fn=setup_sw2 cmd="docker exec tests-sw-openvpn-snat-vip.sw2 openlan router address add --device lo --address 10.252.0.12/32" [26-06-02 09:14:37][ASSERT#0009][OK] cost=0.061s [26-06-02 09:14:37][ASSERT#0010][cmd] at cases/access_openvpn_snat_vip.sh:68 fn=setup_sw2 cmd="docker exec tests-sw-openvpn-snat-vip.sw2 openlan user add --name uplink@example --password 123456" # total 1 username password role lease uplink@example 123456 guest 2027-06-02T09 [26-06-02 09:14:37][ASSERT#0010][OK] cost=0.062s [26-06-02 09:14:37][ASSERT#0011][cmd] at cases/access_openvpn_snat_vip.sh:71 fn=setup_sw2 cmd="docker exec tests-sw-openvpn-snat-vip.sw2 openlan network --name example output add --remote 172.250.0.241 --protocol tcp --secret uplink@example:123456 --crypt aes-128:ea64d5b0c96c" [26-06-02 09:14:37][ASSERT#0011][OK] cost=0.067s [26-06-02 09:14:37][ASSERT#0012][cmd] at cases/access_openvpn_snat_vip.sh:77 fn=setup_openvpn cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan network --name example route add --prefix 10.252.0.12/32 --nexthop 192.52.0.2" [26-06-02 09:14:37][ASSERT#0012][OK] cost=0.060s [26-06-02 09:14:37][ASSERT#0013][cmd] at cases/access_openvpn_snat_vip.sh:78 fn=setup_openvpn cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan network --name example openvpn add --listen :1194 --protocol tcp --subnet 10.96.0.0/24 --dns 8.8.8.8" [26-06-02 09:14:37][ASSERT#0013][OK] cost=0.106s [26-06-02 09:14:37][ASSERT#0014][cmd] at cases/access_openvpn_snat_vip.sh:79 fn=setup_openvpn cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan network --name example client add --user vpn1 --address 10.96.0.10" [26-06-02 09:14:37][ASSERT#0014][OK] cost=0.064s Started OpenVPN client container: tests-sw-openvpn-snat-vip.vpn1 [26-06-02 09:14:37][ASSERT#0015][expect] at cases/access_openvpn_snat_vip.sh:89 fn=setup_openvpn retry=40 cmd="docker logs -f tests-sw-openvpn-snat-vip.vpn1" expect="Initialization Sequence Completed" 2026-06-02 09:14:37 net_route_v4_add: 10.96.0.0/24 via 10.96.0.1 dev [NULL] table 0 metric 300 2026-06-02 09:14:37 net_route_v4_add: 192.52.0.0/24 via 10.96.0.1 dev [NULL] table 0 metric 300 2026-06-02 09:14:37 net_route_v4_add: 10.252.0.12/32 via 10.96.0.1 dev [NULL] table 0 metric 300 2026-06-02 09:14:37 Initialization Sequence Completed [26-06-02 09:14:38][ASSERT#0015][OK] cost=1.034s [26-06-02 09:14:38][ASSERT#0016][cmd] at cases/access_openvpn_snat_vip.sh:94 fn=test_vpn_to_vip cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan network --name example snat disable" [26-06-02 09:14:38][ASSERT#0016][OK] cost=0.091s [26-06-02 09:14:38][ASSERT#0017][unmatch] at cases/access_openvpn_snat_vip.sh:95 fn=test_vpn_to_vip retry=3 cmd="docker exec tests-sw-openvpn-snat-vip.vpn1 ping -c 3 10.252.0.12" unexpected="bytes from" Last output: PING 10.252.0.12 (10.252.0.12) 56(84) bytes of data. --- 10.252.0.12 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2029ms [26-06-02 09:15:09][ASSERT#0017][OK] cost=30.482s [26-06-02 09:15:09][ASSERT#0018][cmd] at cases/access_openvpn_snat_vip.sh:98 fn=test_vpn_to_vip cmd="docker exec tests-sw-openvpn-snat-vip.sw1 openlan network --name example snat enable --scope openvpn" [26-06-02 09:15:09][ASSERT#0018][OK] cost=0.080s [26-06-02 09:15:09][ASSERT#0019][match] at cases/access_openvpn_snat_vip.sh:99 fn=test_vpn_to_vip retry=20 cmd="docker exec tests-sw-openvpn-snat-vip.vpn1 ping -c 3 10.252.0.12" expect="bytes from" PING 10.252.0.12 (10.252.0.12) 56(84) bytes of data. 64 bytes from 10.252.0.12: icmp_seq=1 ttl=63 time=0.692 ms 64 bytes from 10.252.0.12: icmp_seq=2 ttl=63 time=2.33 ms 64 bytes from 10.252.0.12: icmp_seq=3 ttl=63 time=2.38 ms --- 10.252.0.12 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2045ms [26-06-02 09:15:11][ASSERT#0019][OK] cost=2.127s [26-06-02 09:15:12] END access_openvpn_snat_vip status=PASS cost=39.741s