Routing
我有 OPNsense
擁有這種網路佈局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.這其實是一件很荒唐的事情
這就是我所擁有的/你需要的: 對於兩者
- 安裝https://github.com/EugenMayer/tinc-opnsense,查看自述文件了解更多資訊
- 按照自述文件創建您的網路
/usr/local/etc/tinc/example
,如果您願意,可以將其用作樣板量子
- 您需要創建一個網關 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 be
10.1.6.0/24 tinc0` 而不是 ip 172.16.0.5 .. 這樣,當你結束 tincd 並且 tinc0 失去它的 ip ,該路線不會被刪除,因為 tinc0 仍然存在。因此,這將在 tincd 重新啟動或類似情況下繼續存在。稍後我會將其合併到我的答案中,以讓人們了解問題/工作流程。