Tôi có một tình huống sau đây.

Mạng gia đình trên 192.168.1.0/24 và sử dụng Zyxel USG50 có thể xử lý các đường hầm IPSec. VPS từ xa chạy Ubuntu 16.04 và lưu trữ một máy chủ PPTP (10.0.0.1) gán địa chỉ 10.0.0.100-200 cho các máy khách. Máy chủ PPTP hoạt động hoàn hảo và khách hàng có thể lướt Internet mà không gặp bất kỳ sự cố nào.

Bây giờ tôi đang thiết lập một đường hầm IPSec để có thể, thông qua một thiết bị được kết nối PPTP, truy cập vào các thiết bị mạng gia đình của tôi. Dù sao, giao tiếp dường như chỉ hoạt động theo một cách: Tôi có thể ping các thiết bị được kết nối VPN (giả sử, 10.0.0.100) từ mạng gia đình (giả sử, 192.168.1.4) nhưng không phải ngược lại. Ngoài ra, VPS không thể ping các thiết bị trên mạng 192.168.1.0 (các gói tin đi ra bên ngoài trên internet)

ipsec.conf

conn home
        authby = secret
        keyexchange = ikev1
        ikelifetime = 86400
        lifetime = 28800
        ike = aes256-sha512-modp2048!
        esp = aes256-sha512-modp2048!
        auto = add
        left = %any
        leftsubnet = 10.0.0.0/24
        leftfirewall = yes
        right = (my_ddns_home_address)
        rightid = %any
        rightsubnet = 192.168.1.0/24

trạng thái ipsec

Security Associations (1 up, 0 connecting):
    home[1]: ESTABLISHED 30 minutes ago, my_vpsip[my_vps_ip]...my_home_ip[my_home_ip]
    home{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: ce9b32e6_i 96369de8_o
    home{1}:   10.0.0.0/24 === 192.168.1.0/24

ifconfig

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:89426 errors:0 dropped:0 overruns:0 frame:0
          TX packets:89426 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:30719387 (30.7 MB)  TX bytes:30719387 (30.7 MB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.0.0.1  P-t-P:10.0.0.100  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1
          RX packets:32314 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44911 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:3108413 (3.1 MB)  TX bytes:49298247 (49.2 MB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:12701126 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11210758 errors:0 dropped:7605 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:11729004253 (11.7 GB)  TX bytes:3015436822 (3.0 GB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:vps_public_ip  P-t-P:212.24.96.165  Bcast:vps_public_ip  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

iptables -L -n -v

Chain FORWARD (policy ACCEPT 1060 packets, 436K bytes)
pkts bytes target     prot opt in     out     source               destination
3   180 ACCEPT     all  --  venet0 *       192.168.1.0/24       10.0.0.0/24          policy match dir in pol ipsec reqid 1 proto 50
9   540 ACCEPT     all  --  *      venet0  10.0.0.0/24          192.168.1.0/24       policy match dir out pol ipsec reqid 1 proto 50

bảng hiển thị tuyến đường ip 220

192.168.1.0/24 via my_home_ip dev venet0  proto static  src 10.0.0.1
answer

Giải quyết bằng cách thêm quy tắc iptables này:

sudo iptables -t nat -I POSTROUTING 1 -j ACCEPT -s 10.0.0.0/24 -m policy --dir out --pol ipsec

Xem tại đây để biết thêm chi tiết: Đường hầm vpn Strongswan được kết nối nhưng giao thông không được định tuyến qua nó