Linux

VPN 伺服器/客戶端如何避免通過自己路由自己的遠端連接數據包?

  • January 11, 2016

我正在嘗試概念化網路如何在使用 TUN 介面的 linux VPN 的幕後工作。

我目前最好的猜測如下(請糾正我):

  1. 與遠端客戶端/伺服器建立連接。
  2. 創建並啟動 TUN 介面
  3. 更新路由表以將預設網關設置為 TUN 介面

但是,發往遠端客戶端/伺服器的數據包不會最終進入 TUN 介面並形成某種循環嗎?VPN 系統如何解決這個問題?我的理解有什麼差距?

您是正確的,如果您通過隧道到達的目的地與建立隧道所需的路由重疊等,那麼對於純粹基於目的地的路由來說,這是一個問題……

我通常看到這樣做並在各種路由器上自己完成的方式是使用策略路由:

  • 充當 VPN 端點的路由器通過其 ISP 鏈路保持其指向 Internet 的預設路由
  • 它還有一個策略路由,其中​​包含基於源的規則,表示來自其後面的子網的流量,無論其目的地是什麼,都應該通過隧道發送。

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