Routing

我有 OPNsense

  • February 2, 2017

擁有這種網路佈局https://imgur.com/rhLepAU我可以使用 mode=switch in with tinc 使其工作,但不使用 mode=routed

這些是網路詳細資訊

在量子 上,這些是路由/配置(提示,外部 IP 已被混淆為 1.1.1.1)

netstat -rn4
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            1.1.1.1     UGS      vtnet0
8.8.8.8            1.1.1.1     UGHS     vtnet0
10.1.5.0/24        link#2             U        vtnet1
10.1.5.1           link#2             UHS         lo0
10.1.6.0/24        tinc0              US        tinc0
127.0.0.1          link#4             UH          lo0
172.16.0.0/24      link#7             U         tinc0
172.16.0.5         link#7             UHS         lo0
1.1.1.0/29  link#1             U        vtnet0
1.1.1.1     link#1             UHS         lo0


ifconfig vtnet1 | grep inet
   inet 10.1.5.1 netmask 0xffffff00 broadcast 10.1.5.255

ifconfig tinc0 | grep inet
   inet 172.16.0.5 netmask 0xffffff00 broadcast 172.16.0.255

使用這個 tinc 主機條目

Address=1.1.1.1 655
Subnet=10.1.5.0/24
Cipher=aes-256-cbc
Digest=sha256
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

在 Rocket 上(提示,外部 ip 已被混淆為 2.2.2.2)

netstat -rn4
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            2.2.2.2      UGS      vtnet0
8.8.8.8            2.2.2.2      UGHS     vtnet0
10.1.5.0/24        tinc0              US        tinc0
10.1.6.0/24        link#2             U        vtnet1
10.1.6.1           link#2             UHS         lo0
2.2.2.0/29   link#1             U        vtnet0
2.2.2.2      link#1             UHS         lo0
127.0.0.1          link#4             UH          lo0
172.16.0.0/24      link#7             U         tinc0
172.16.0.6         link#7             UHS         lo0

ifconfig vtnet1 | grep inet
   inet 10.1.6.1 netmask 0xffffff00 broadcast 10.1.6.255

ifconfig tinc0 | grep inet
   inet 172.16.0.6 netmask 0xffffff00 broadcast 172.16.0.255

使用這個 tinc 主機條目

Address=2.2.2.2 655
Subnet=10.1.6.0/24
Cipher=aes-256-cbc
Digest=sha256
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

更多細節

在進行ping -S 10.1.5.1 10.1.6.1從量子到火箭的操作時,我在 FW 上看到 ICMP 包通過了防火牆,但它從未到達火箭,沒有阻塞或通過。

問題

我的設置有什麼問題,為什麼 mode=routed 不起作用?

在對此進行了一段時間的思考之後,我發現了 2 個問題,這些問題使我無法更早地找到解決方案:

1.這其實是一件很荒唐的事情

這就是我所擁有的/你需要的: 對於兩者

量子

  • 您需要創建一個網關 Rocket,它被配置為使用“動態”通過 tinc0(不要在網關欄位上輸入 IP,請參閱下面的問題和更新)
  • 您需要通過 TINCGW 到 10.1.6.0/24 的路由
  • 在 Interface 部分添加您的 tinc0 介面,將其命名為 TINCLAN。您可以配置一個 ipv4 地址,也可以不配置,沒關係。如果這樣做,請使用您的 tinc-up 配置地址。這樣做使您能夠為 TINCLAN 創建 FW 規則 - 我們將需要這些規則。提示:介面已創建為 tinc0 而不是 tun0,因為否則您無法在 opnsense 中添加它,因為所有 tun* 都被過濾掉了(遺留錯誤)
  • 允許 TINCLAN 2 TINCLAN 的 FW 規則
  • 分配 TINCLAN 2 LAN 的 FW 規則(Lan 為 10.1.5.0/24)

火箭

  • 您需要創建一個網關 Rocket,它被配置為通過 tinc0 以“動態”(不要在網關欄位上輸入 IP,下面的問題和更新)
  • 您需要通過 TINCGW 到 10.1.5.0/24 的路由
  • 在 Interface 部分添加您的 tinc0 介面,將其命名為 TINCLAN。見上面的量子
  • TINCLAN 選項卡上的 FW RULE “dest TINCLAN”以允許 TINCLAN 2 TINCLAN
  • TINCLAN 選項卡上的 FW RULE “dest LAN”以允許 TINCLAN 2 LAN(Lan 為 10.1.6.0/24)

這個問題/愚弄了我:當您重新啟動 tincd 時,tinc0 介面會失去其 IP,並且路由會自動刪除,啟動 tincd 不會讀取這些。您需要 opnsense 強制重新應用它們,重新啟動伺服器,或者很可能,但這些路由進入 tinc-up。然而,為此我沒有找到一個完美的解決方案,但也許這也超出了這個問題的範圍。

當您啟動 tincd 並在此之後設置 Route 時,事情應該會起作用。

2.錯別字,不重要(愚蠢的第二期,但給了我一個教訓)

實際上,我將 Subnet 10. 0 .6.0/24 而不是 10.1.6.0/24 放在火箭主機/火箭文件中-這會阻止 tinc 級別的包

更新 1

最後,我還解決了 1 的故障/明顯設置問題。您需要的是

  • 創建網關 TINCGW 時,不要在“網關”欄位中輸入網關 IP - 所以它是s dynamic. This way the route is created to be10.1.6.0/24 tinc0` 而不是 ip 172.16.0.5 .. 這樣,當你結束 tincd 並且 tinc0 失去它的 ip ,該路線不會被刪除,因為 tinc0 仍然存在。因此,這將在 tincd 重新啟動或類似情況下繼續存在。

稍後我會將其合併到我的答案中,以讓人們了解問題/工作流程。

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