Routing

靜態路由 - 未使用網關

  • November 1, 2020

我正在嘗試使用網關地址10.10.121.10通過這台機器轉發 TCP 流量。我想讓來自我的機器的流量超過10.10.121.10並且該機器10.200.32.107認為它來自10.10.121.10而不是我的機器。似乎無論我在 Windows 中設置什麼 - 它都不關心設置網關地址。

以下是未設置靜態路由的狀態:

在此處輸入圖像描述

這是我所期望的 - 沒有設置路由10.200.32.107,我無法到達該 IP。

但是當我在這裡添加這個靜態路由時

在此處輸入圖像描述

目的地是可到達的,但不能通過10.10.121.10。似乎這個Gateway地址在這裡無關緊要——即使我在這裡放隨機IP(例如我試過1.1.1.1)它也可以工作。

我期望的是流量按照圖像上的綠色步驟定向:

  1. 我想到達10.200.32.107,所以使用路線10.200.32.0 255.255.255.0
  2. 網關是10.10.121.10,所以使用路由10.10.121.10 255.255.255.255
  3. 網關就是192.168.24.1這樣去那裡並將流量轉發到10.10.121.10TAP-Windows 適配器 V9 (VPN)

好的,我最終要做的是安裝pptpd在樹莓上並像這樣配置它:

sudo apt-get install pptpd
sudo nano /etc/pptpd.conf

並在底部添加

localip 199.168.0.1
remoteip 199.168.0.234-238,199.168.0.245

然後我只是添加了規則iptables

# Generated by xtables-save v1.8.2 on Sun Nov  1 21:00:46 2020
*nat
:PREROUTING ACCEPT [3303:295008]
:INPUT ACCEPT [434:44479]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [51:3332]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sun Nov  1 21:00:46 2020
# Generated by xtables-save v1.8.2 on Sun Nov  1 21:00:46 2020
*filter
:INPUT ACCEPT [6349:640268]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3318:257937]
-A FORWARD -i ppp0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Nov  1 21:00:46 2020

在 Windows 上我安裝了新網路:

在此處輸入圖像描述

然後,由於我使用的是 OpenConnect,我編輯了文件vpnc-script.js以自動連接到piVNP- 我剛剛添加

echo("Connecting to piVPN...");
exec("rasdial \"piVPN\" \"default\" \"default\"");
echo("Adding my static route...");
exec("route add 10.200.0.0 mask 255.255.0.0 199.168.0.1 metric 36");

在 connect 方法中,然後在 disconnect 中添加:

echo("Disconnecting from piVPN...");
exec("rasdial \"piVPN\" /disconnect");

現在一切都是自動化的,並且執行良好……

您似乎想管理您所連接的路由器後面的路由方式。您可以設置在路由器上讀取以更改其行為的數據包中沒有可能的選項。

您的電腦唯一能決定的是下一跳是什麼。因此,您所有的路由表只是選擇 192.168.24.1 作為下一跳的一種方式,僅此而已。192.168.24.1 將決定下一步做什麼,您無法從您的電腦更改其行為。

引用自:https://serverfault.com/questions/1040827