Version:
- strongswan-5.7.1-1.el7.x86_64
| #!/bin/bash | |
| set -e | |
| NSNAME=${1:-test1} | |
| IFNAME1=veth100 | |
| IFNAME2=veth111 | |
| INNER_ADDR=172.16.50.50 | |
| OUTER_ADDR=172.16.50.1 | |
| NETMASK=255.255.255.0 | |
| teardown(){ | |
| ip netns del $NSNAME || : | |
| ip link del dev $IFNAME1 || : | |
| ip link del dev $IFNAME2 || : | |
| } | |
| trap 'teardown' EXIT | |
| ip netns add $NSNAME | |
| ip netns exec $NSNAME ip link list | |
| ip link add $IFNAME1 type veth peer name $IFNAME2 | |
| ip link set $IFNAME1 netns $NSNAME | |
| ip netns exec $NSNAME ip addr add ${INNER_ADDR}/${NETMASK} dev $IFNAME1 | |
| ip netns exec $NSNAME ip link set dev $IFNAME1 up | |
| ip netns exec $NSNAME ip route add default dev $IFNAME1 via $OUTER_ADDR | |
| ip addr add ${OUTER_ADDR}/${NETMASK} dev $IFNAME2 | |
| ip link set dev $IFNAME2 up | |
| # unshare -m must be issued after ip netns because netns modifies /var/run/netns/* on the root namespace. | |
| ip netns exec $NSNAME unshare -m /bin/bash -e <<SCRIPT | |
| # bind mount for strongswan conf and unix socket dir. | |
| mount --bind ./run /var/run | |
| mount --bind ./etc /etc/strongswan | |
| /usr/sbin/strongswan start --nofork | |
| SCRIPT |