VPN 另一端的网关

VPN 另一端的网关

我有 2 台通过 ipsec VPN 连接的 Linux 机器。[PC1] 可以正确 ping [4G-GW]。

我需要允许 [PC1] 通过 VPN 另一端的 [4G-GW] 进行导航。

因此,我尝试在左侧网关接口上添加一个额外的 IP,

ifconfig eth0:1 192.168.1.11 并配置[PC1]使用GW 192.168.1.11。

我添加了以下规则:

iptables -t nat -A PREROUTING -s 192.168.1.2/32 -d 192.168.1.11/32 -j DNAT --to-destination 192.168.2.2

iptables -t nat -A POSTROUTING -s 192.168.2.2/32 -d 192.168.1.2/32 -j SNAT --to-source 192.168.1.11

从 [PC1] 到 [4G-GW] 的 ping 操作正常,但是 [PC1] 无法导航。

有什么问题?谢谢

-- 按要求编辑:

[PC1]:

ip route show
default via 192.168.1.11 dev eth0
127.0.0.0/8 dev lo scope link

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2

[第一重击]:

root:~# ip route show
default via 192.168.0.1 dev eth0 
127.0.0.0/8 dev lo scope link 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.4 
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1 

[第二季]:

root:~# ip route show
default via 192.168.1.1 dev eth0 
127.0.0.0/8 dev lo scope link 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.4 
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.1 

4G路由器是硬件设备。 布局_带有_光纤_路由器

-- 更新 [GW1] 和 [GW2] 建立 VPN

[GW1](主机 vpnhome)

root@vpnhome:~# ipsec status
Security Associations (1 up, 0 connecting):
sinigo-to-home[9]: ESTABLISHED 28 minutes ago, 192.168.0.4[aaaa.ns0.it]...87.A.A.A[xxxx]
sinigo-to-home{9}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cea445de_i cb317c99_o
sinigo-to-home{9}:   192.168.1.0/24 === 192.168.2.0/24

root@vpnhome:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.4  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8639:beff:fe6d:d17e  prefixlen 64  scopeid 0x20<link>
        ether 84:39:be:6d:d1:7e  txqueuelen 1000  (Ethernet)
        RX packets 44320  bytes 3064750 (2.9 MiB)
        RX errors 0  dropped 9  overruns 0  frame 0
        TX packets 9686  bytes 734844 (717.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::8639:beff:fe6d:d17f  prefixlen 64  scopeid 0x20<link>
        ether 84:39:be:6d:d1:7f  txqueuelen 1000  (Ethernet)
        RX packets 429  bytes 57346 (56.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 744  bytes 72568 (70.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 84:39:be:6d:d1:7f  txqueuelen 1000  (Ethernet)

我没有看到 VPN 接口

[GW2](主机 vpnsinigo)

root@vpnsinigo:~# ipsec status
Security Associations (1 up, 0 connecting):
sinigo-to-home[54]: ESTABLISHED 31 minutes ago, 192.168.1.4[xxx]...2.Y.Y.Y[yyyyy]
sinigo-to-home{51}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cb317c99_i cea445de_o
sinigo-to-home{51}:   192.168.2.0/24 === 192.168.1.0/24

root@vpnsinigo:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.4  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::230:18ff:fe03:c652  prefixlen 64  scopeid 0x20<link>
        ether 00:30:18:03:c6:52  txqueuelen 1000  (Ethernet)
        RX packets 228925  bytes 16151386 (15.4 MiB)
        RX errors 0  dropped 14  overruns 0  frame 0
        TX packets 46461  bytes 4461111 (4.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.1  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::230:18ff:fe03:c653  prefixlen 64  scopeid 0x20<link>
        ether 00:30:18:03:c6:53  txqueuelen 1000  (Ethernet)
        RX packets 62716  bytes 5404945 (5.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1589  bytes 235272 (229.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

答案1

如果我从您提供的附加数据中正确理解了您的 VPN 的工作原理,它看起来“直接”(在第 3 层)将 GW1 上的 Eth1 连接到 GW2 上的 Eth0 - 它们的工作方式就像它们在同一个子网上一样。要验证这一点,请尝试从 PC1 ping 192.168.1.4。如果它回答,那么您可能可以直接从 PC1 访问 GW2。

因此,GW1 上的 NAT 规则可能根本没有应用。也许要应用它们,它们实际上应该在 GW2 上,而不是在 GW1 上。

192.168.1.11 回复 ping,但很可能只是eth1:1GW1 上的接口回复了 ping。要验证您是否真的到达了 192.168.1.11 下的 4G-GW,请尝试通过此地址从 PC1 连接到路由器的管理面板。如果您真的到达了路由器,它应该会成功。如果没有 - 那么只是 GW1 在应答,它不会将连接转发到任何地方。

我不确定您是否需要该 NAT。如果您能够从 PC1 ping 192.168.1.4,请尝试删除 NAT 规则和接口,eth1:1并将 PC1 上的默认网关设置为 192.168.1.4。然后检查您是否能够 ping 192.168.2.2。如果这也成功,请将 GW2 上的默认网关设置为 192.168.2.2。您现在应该能够从 PC1 访问互联网。

如果无法更改 GW2 上的默认网关,请尝试将 PC1 上的默认网关直接设置为 192.168.2.2,并通过 192.168.1.4 添加到 192.168.2.2 的路由(也在 PC1 上),以允许 PC1 到达其网关。

如果这些方法有效,请告诉我。

答案2

PC1、GW1 和 GW2 都有 slackware。因此,我对 PC1 进行了以下操作:

  • 删除了默认网关
  • route add -host 192.168.2.2 gw 192.168.1.1

现在route -n说:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.2     192.168.1.1     255.255.255.255 UGH   0      0        0 eth0

但当我尝试执行时

route add -net default gw 192.168.2.2

PC1说

SIOCADDRT: Network is unreachable

我可以 ping 并连接到 192.168.2.2 的 Web 界面,但无法连接到世界其他地方

相关内容