场景:
公司A(Server)—IPSec—公司B(Server)–公司B其他公网主机
公司A IPSec VPN Server 公网IP:103.1.1.1 内网段10.255.203.0/24
公司B IPSec VPN Server 公网IP:116.1.1.1 内网段10.0.0.0/24
实现效果:公司A Server 可以与公司B公网主机互相访问

公有云VPN连接不支持本地标识、对方标识修改,默认是IPv4地址,所以没法使用,只能在物理机上安装Strongswan来实现对接,site-to-site vpn连接后,本机ip a是看不到虚拟网卡的,也不需要分配内网互联IP,连接成功后路由表里也是看不到的,需要通过ipsec命令查看
# yum install strongswan
# more /etc/strongswan/ipsec.conf | grep -v "#\|^$"
config setup
strictcrlpolicy=no
charondebug = "all"
uniqueids = yes
nat_traversal=yes
conn hb-drms-ipsec
auto=route
authby=secret
left=103.1.1.1
leftid="beijing@test"
right=116.1.1.1
rightid="duck@test"
leftsubnet=10.205.203.0/24
rightsubnet=10.0.0.0/24
type=tunnel
leftauth=psk
rightauth=psk
keyexchange=ikev1
ikelifetime=24h
ike=aes128-sha1-modp1024
esp=aes128-sha1-modp1024
lifetime=1h
keyingtries=%forever
dpddelay=30s
dpdtimeout=300s
dpdaction=restart
# more /etc/strongswan/ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
103.1.1.1 116.1.1.1 : PSK "xxxx"
beijing@test duck@test : PSK "xxxx"
# more /export/sh/ipip-tunnel/set-up-drms.sh
#!/usr/bin/env bash
ip tunnel add hb-drms1 mode ipip remote 198.1.1.2 local 116.1.1.1 ttl 255
ip addr add 10.0.0.254/32 peer 10.0.0.253/32 dev hb-drms1
ip link set hb-drms1 up
ip route add 10.0.0.11 via 10.0.0.253 dev hb-drms1
ip tunnel add hb-drms2 mode ipip remote 198.1.1.3 local 116.1.1.1 ttl 255
ip addr add 10.0.0.252/32 peer 10.0.0.251/32 dev hb-drms2
ip link set hb-drms2 up
ip route add 10.0.0.14 via 10.0.0.251 dev hb-drms2
iptables放行
iptables -A INPUT -p udp -s 103.1.1.1/32 -j ACCEPT
iptables -A OUTPUT -p udp -d 103.1.1.1/32 -j ACCEPT
iptables -A INPUT -p 50 -s 103.1.1.1/32 -j ACCEPT
iptables -A INPUT -p 51 -s 103.1.1.1/32 -j ACCEPT
iptables -A OUTPUT -p 50 -d 103.1.1.1/32 -j ACCEPT
iptables -A OUTPUT -p 51 -d 103.1.1.1/32 -j ACCEPT
# ipip allow
iptables -A INPUT -i eth0 -p 4 -s 198.1.1.1/32 -d 116.1.1.1/32 -j ACCEPT
iptables -A OUTPUT -o eth0 -p 4 -s 116.1.1.1/32 -d 198.1.1.1/32 -j ACCEPT
...
iptables -A INPUT -i hb-drms+ -j ACCEPT
iptables -A OUTPUT -o hb-drms+ -j ACCEPT
iptables -A FORWARD -i hb-drms+ -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o hb-drms+ -j ACCEPT
云主机上配置
ip tunnel add bj-test mode ipip remote 116.1.1.1 local 10.0.0.11 ttl 255
ip addr add 10.0.0.253 peer 10.0.0.254 dev bj-test
ip link set bj-test up
ip route add 10.255.203.0/24 via 100.0.0.254 dev bj-test
ip tunnel add bj-test mode ipip remote 116.1.1.1 local 10.0.0.14 ttl 255
ip addr add 10.0.0.251 peer 10.0.0.252 dev bj-test
ip link set bj-test up
ip route add 10.255.203.0/24 via 10.0.0.252 dev bj-test
ipsec vpn连接成功后,要看到Routed Connections才行

查看ipsec转发流量
watch swanctl –list-sas

公司B IPSec Server上测试,可以访问公司A的Server
# ping 10.255.203.254 -I 10.0.0.252
PING 10.255.203.254 (10.255.203.254) from 10.0.0.252 : 56(84) bytes of data.
64 bytes from 10.255.203.254: icmp_seq=1 ttl=63 time=13.3 ms
64 bytes from 10.255.203.254: icmp_seq=2 ttl=63 time=4.22 ms
64 bytes from 10.255.203.254: icmp_seq=3 ttl=63 time=4.12 ms
64 bytes from 10.255.203.254: icmp_seq=4 ttl=63 time=8.59 ms



