#!/bin/bash # # /etc/ipsec-vti.sh # IP=$(which ip) IPTABLES=$(which iptables) PLUTO_MARK_OUT_ARR=(${PLUTO_MARK_OUT//// }) PLUTO_MARK_IN_ARR=(${PLUTO_MARK_IN//// }) case "$PLUTO_CONNECTION" in AWS-VPC-GW1) VTI_INTERFACE=vti1 VTI_LOCALADDR=CONN1_TUNNEL1_ONPREM_INSIDE_IP VTI_REMOTEADDR=CONN1_TUNNEL1_AWS_INSIDE_IP ;; AWS-VPC-GW2) VTI_INTERFACE=vti2 VTI_LOCALADDR=CONN1_TUNNEL2_ONPREM_INSIDE_IP VTI_REMOTEADDR=CONN1_TUNNEL2_AWS_INSIDE_IP ;; esac case "${PLUTO_VERB}" in up-client) #$IP tunnel add ${VTI_INTERFACE} mode vti local ${PLUTO_ME} remote ${PLUTO_PEER} okey ${PLUTO_MARK_OUT_ARR[0]} ikey ${PLUTO_MARK_IN_ARR[0]} $IP link add ${VTI_INTERFACE} type vti local ${PLUTO_ME} remote ${PLUTO_PEER} okey ${PLUTO_MARK_OUT_ARR[0]} ikey ${PLUTO_MARK_IN_ARR[0]} sysctl -w net.ipv4.conf.${VTI_INTERFACE}.disable_policy=1 sysctl -w net.ipv4.conf.${VTI_INTERFACE}.rp_filter=2 || sysctl -w net.ipv4.conf.${VTI_INTERFACE}.rp_filter=0 $IP addr add ${VTI_LOCALADDR} remote ${VTI_REMOTEADDR} dev ${VTI_INTERFACE} $IP link set ${VTI_INTERFACE} up mtu 1436 $IPTABLES -t mangle -I FORWARD -o ${VTI_INTERFACE} -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu $IPTABLES -t mangle -I INPUT -p esp -s ${PLUTO_PEER} -d ${PLUTO_ME} -j MARK --set-xmark ${PLUTO_MARK_IN} $IP route flush table 220 #/etc/init.d/bgpd reload || /etc/init.d/quagga force-reload bgpd ;; down-client) #$IP tunnel del ${VTI_INTERFACE} $IP link del ${VTI_INTERFACE} $IPTABLES -t mangle -D FORWARD -o ${VTI_INTERFACE} -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu $IPTABLES -t mangle -D INPUT -p esp -s ${PLUTO_PEER} -d ${PLUTO_ME} -j MARK --set-xmark ${PLUTO_MARK_IN} ;; esac # Enable IPv4 forwarding sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.conf.ens5.disable_xfrm=1 sysctl -w net.ipv4.conf.ens5.disable_policy=1