透過 VTI over IPSec 站點到站點隧道路由一個或多個公用 IP

透過 VTI over IPSec 站點到站點隧道路由一個或多個公用 IP

我在 OVH 的家庭路由器 (UBNT Edgerouter) 和專用伺服器 (Ubuntu 16.04) 之間成功建立了基於 IPSec 的 VTI 網站到網站隧道。我可以透過VTI 設備路由雙方的內部專用網絡,並在另一個站點上訪問它(我可以從站點A 的NAT 設備(例如,從路由器後面的計算機)訪問站點B 專用範圍設備,這很棒),但是我在通過它路由公共網路時遇到問題。

站點 A:家庭路由器:

公有主IP:89.xx81

私有 IP(NAT 家庭設備):10.100.10.1/24

VTI:10.255.12.1/30

~# ip r
default via 89.x.x.1 dev eth0  proto zebra 
10.100.10.0/24 dev eth1  proto kernel  scope link  src 10.100.10.1 
10.255.12.0/30 dev vti0  proto kernel  scope link  src 10.255.12.1 
89.x.x.0/22 dev eth0  proto kernel  scope link  src 89.x.x.81 
172.16.0.0/12 dev vti0  proto zebra 

~# ip tunnel
vti0: ip/ip remote 51.x.x.136 local 89.x.x.81 ttl inherit nopmtudisc ikey 0 okey 1234
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0

網站 B:OVH 的伺服器:

公共IP:51.xx136

分配/路由到伺服器的公共 IP 區塊:51.xx128/28(僅在伺服器上配置了 0.136)

私有 IP (OVH vRack):172.16.0.1/12

VTI:10.255.12.2/30

~# ip r
10.100.10.0/24 dev vti0  scope link 
10.255.12.0/30 dev vti0  proto kernel  scope link  src 10.255.12.2 
51.x.x.142 dev eth0  scope link 
172.16.0.0/12 via 172.16.0.1 dev eth0  scope link 
172.16.0.0/12 dev eth0  proto kernel  scope link  src 172.16.0.1

~# ip tunnel
ip_vti0: ip/ip  remote any  local any  ttl inherit  nopmtudisc key 0
vti0: ip/ip  remote 89.x.x.81  local 51.x.x.136  ttl inherit  nopmtudisc key 1234

目標:

透過家庭路由器上的VTI 設備從OVH 伺服器區塊(51.xx128/28) 配置一個或多個公共IP(然後我將在那裡進行1:1 NAT,以便將IP 分配給路由器後面的伺服器)或直接在在後面的設備上配置如果可能的話家庭路由器。

在 VTI 上是可能的,或者我應該考慮從 VTI 更改為 GRE,然後按照以下步驟操作:https://serverfault.com/a/557949

答案1

好吧,前幾天我自己解決了。

站點A:

新增了公共IP的路由(我想路由到家)透過電壓0裝置

~# ip r
...
51.x.x.134 dev vti0  scope link 

站點 B(從兩個選項之一中選擇):

  1. 將公用 IP 路由到家庭路由器

    加入想要的公共IP到乙太網路0(或者電壓0)設備並透過標記和預設網關建立路由表電壓0,然後將來源輸出流量標記為iptables

    或者

  2. 將公用 IP 路由到家庭路由器後面的設備

    創建一個DNAT:公用IP->NATed設備,然後透過以下方式為預設閘道建立路由表電壓0對於選定的 NAT 設備(從設備到 Internet 的所有流量均透過VPN

所以,我得到了我需要的東西。下一步是從站台 A 上的伺服器設定正確的輸出 IP 位址(現在流量從主 A 站台伺服器 IP 位址退出)。

如果我的解決方案不是最佳實踐,請告訴我。

有其他方法可以實現我的假設嗎?也許私有 BGP 對等互連將是一個解決方案?

相關內容