/testing/guestbin/swan-prep
west #
 # confirm that the network is alive
west #
 ../../guestbin/wait-until-alive -I 192.0.1.254 192.0.2.254
destination -I 192.0.1.254 192.0.2.254 is alive
west #
 # ensure that clear text does not get through or go out
west #
 iptables -A INPUT -i eth1 -s 192.0.2.0/24 -j DROP
west #
 iptables -I INPUT -m policy --dir in --pol ipsec -j ACCEPT
west #
 iptables -A OUTPUT -o eth1 -p icmp -j DROP
west #
 iptables -I OUTPUT -m policy --dir out --pol ipsec -j ACCEPT
west #
 ipsec start
Redirecting to: [initsystem]
west #
 ../../guestbin/wait-until-pluto-started
west #
 ipsec auto --add westnet-eastnet-ikev2
002 "westnet-eastnet-ikev2": added IKEv2 connection
west #
 echo "initdone"
initdone
west #
 # establish the tunnel
west #
 ipsec auto --up westnet-eastnet-ikev2
1v2 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: initiating IKEv2 connection
1v2 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: sent IKE_SA_INIT request to 192.1.2.23:500
1v2 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: sent IKE_AUTH request {cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=MODP2048}
003 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: initiator established IKE SA; authenticated peer '2nnn-bit RSASSA-PSS with SHA2_512' digital signature using preloaded certificate '@east'
004 "westnet-eastnet-ikev2"[1] 192.1.2.23 #2: initiator established Child SA using #1; IPsec tunnel [192.0.1.0-192.0.1.255:0-65535 0] -> [192.0.2.0-192.0.2.255:0-65535 0] {ESP/ESN=>0xESPESP <0xESPESP xfrm=AES_GCM_16_256-NONE DPD=active}
west #
 ../../guestbin/ping-once.sh --up -I 192.0.1.254 192.0.2.254
up
west #
 ipsec whack --trafficstatus
006 #2: "westnet-eastnet-ikev2"[1] 192.1.2.23, type=ESP, add_time=1234567890, inBytes=84, outBytes=84, maxBytes=2^63B, id='@east'
west #
 # Let R_U_THERE packets flow
west #
 sleep 15
west #
 # Setting up block via iptables
west #
 iptables -I INPUT -s 192.1.2.23/32 -d 0/0 -j DROP
west #
 iptables -I OUTPUT -d 192.1.2.23/32 -s 0/0 -j DROP
west #
 # DPD should have triggered now
west #
 ../../guestbin/wait-for.sh --match '#1: liveness action' -- cat /tmp/pluto.log
"westnet-eastnet-ikev2"[1] 192.1.2.23 #1: liveness action - putting connection into hold
west #
 # Tunnel should be down with %trap or %hold preventing packet leaks
west #
 # But shuntstatus only shows bare shunts, not connection shunts :(
west #
 ipsec whack --trafficstatus
west #
 ipsec whack --shuntstatus
000 Bare Shunt list:
000  

SHOULD SHOW SHUNT BUT, INSTEAD, AS THIS IS AN INSTANCE, THE SHUNT IS
DELETED:
| liveness warning: dpdaction=hold on instance futile - will be deleted

west #
 # packets should be caught in firewall and no icmp replies should
west #
 # happen
west #
 ../../guestbin/ping-once.sh --down -I 192.0.1.254 192.0.2.254
down
west #
 # Remove the Blockage
west #
 iptables -D INPUT -s 192.1.2.23/32 -d 0/0 -j DROP
west #
 iptables -D OUTPUT -d 192.1.2.23/32 -s 0/0 -j DROP
west #
 # Tunnel should be back up now even without triggering traffic
west #
 ../../guestbin/wait-for.sh --match '#[3-9]: initiator established Child SA' -- cat /tmp/pluto.log
"westnet-eastnet-ikev2"[1] 192.1.2.23 #4: initiator established Child SA using #3; IPsec tunnel [192.0.1.0-192.0.1.255:0-65535 0] -> [192.0.2.0-192.0.2.255:0-65535 0] {ESP/ESN=>0xESPESP <0xESPESP xfrm=AES_GCM_16_256-NONE DPD=active}
west #
 ../../guestbin/ping-once.sh --up -I 192.0.1.254 192.0.2.254
up
west #
 ipsec whack --trafficstatus
006 #4: "westnet-eastnet-ikev2"[1] 192.1.2.23, type=ESP, add_time=1234567890, inBytes=84, outBytes=84, maxBytes=2^63B, id='@east'
west #
 ipsec whack --shuntstatus
000 Bare Shunt list:
000  
west #
 
