我有这种情况,我需要通过站点到站点 ipsec 隧道连接两个站点。其中一个对等点(我无法访问另一端)是带有 Strongswan(Ubuntu 16.04)的 EC2 实例。我可以使用以下配置连接两个站点:
type=tunnel
authby=secret
left=10.1.0.124 (private ip address assigned by AWS to our EC2 instance)
leftid=18.21.xxx.xxx (public Elastic ip)
leftsubnet=10.153.94.0/24 (this is a requirement from the other side, I don't manage this)
right=45.17.xxx.xxx (public peer ip)
rightsubnet=10.153.105.0/24 (private subnet of peer side)
keyexchange=ikev1
ike=aes256-sha1-modp1024!
ikelifetime=86400s
esp=aes256-sha1-modp1024!
keylife=3600s
auto=start
rekey=yes
keyingtries=%forever
aggressive=no
dpdaction=restart
dpdtimeout=120
问题出在对等方所需的远程子网(leftsubnet)上。我们的 vpc 中没有这个子网,对等方无法将其更改为他们的加密映射。我该如何解决这个问题?我需要在 EC2 实例中创建某种虚拟 IP(例如 10.153.94.2),或 NAT iptables 规则,或两者兼而有之?我无法添加具有任意地址的第二个物理接口,并且我尝试创建子接口(例如 ens5:0),但没有成功。只有设置了“真实”左 IP(10.1.0.124)时,隧道才会启动。提前致谢!
答案1
添加私有地址的位置无所谓,也可以是环回设备lo
:
ip -4 addr add 10.153.94.1/24 dev lo
要在启动时添加 IP 地址,请输入:
iface lo:0 inet static
address 10.153.94.1
netmask 24
至/etc/network/interfaces
。您应该能够对 执行相同操作ens5
。