跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 创建网络隧道如何防止默认路由造成的环路?
未分類
25 11 月 2020

创建网络隧道如何防止默认路由造成的环路?

创建网络隧道如何防止默认路由造成的环路?

資深大佬 : feng32 5

假设有 1 台家用路由器和 1 台服务器

  br-lan    +--------+   eth0          eth0   +--------+ 192.168.1.1 | router | 60.0.0.1      80.0.0.1 | server |             +--------+                        +--------+ 

现在我们要在两者之间建立一个简单的隧道,基本思想是,把原本准备发出去的包,放在 udp payload 中,发送给 server 的某个指定端口,由 server 代为转发

  br-lan    +--------+   eth0          eth0   +--------+ 192.168.1.1 | router | 60.0.0.1      80.0.0.1 | server |             |        |   tun0          tun0   |        |             |        | 10.0.0.2      10.0.0.1 |        |             +--------+                        +--------+ 

为了把所有的 IP 流量都进行一次封装,需要建立一条 tun0 的默认路由 (优先级最高)

原先 client (192.168.1.2) -> target (8.8.8.8) 的流量,首先经过一次 NAT,变成 10.0.0.2 -> 8.8.8.8,这个和路由器原本就一直在做的 NAT 没有什么区别

隧道处理程序从 client 的 tun0 口读取 IP 包,添加到 udp payload 中,然后发送给 server eth0 的指定端口 (60.0.0.1 -> 80.0.0.1)

这样上行包的一半逻辑已经设计完了,但是问题来了,既然 tun0 的默认路由是优先级最高的默认路由 (我们要保证所有包都进 tun0 去被封装一次),封装完的包按照这个规则,还会继续被送到 tun0 去封装第二次、第三次

如何能避免这个问题呢?

大佬有話說 (3)

  • 資深大佬 : fasionchan

    加一条到 80.0.0.1 的主机路由,从正常的上网路劲出去?

  • 主 資深大佬 : feng32

    @fasionchan 好像只要这条路由比 tun0 路由优先级还要高就行了 -_- 等下周试下

  • 資深大佬 : bearice

    #1 的说法是正确的 路由永远是最长匹配优先,不需要改优先级什么的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具