Tinc 在 OPNsense 上

Tinc 在 OPNsense 上

拥有这种网络布局https://i.stack.imgur.com/NQXDl.jpg我可以使用 mode=switch 和 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-----

在火箭上(提示,外部 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 不起作用?

答案1

经过一段时间的思考后,我发现有两个问题阻碍了我更早地找到解决方案:

1. 这其实是一个机会主义的事情

这是我所拥有的/你需要的: 对彼此而言

量子

  • 您需要创建一个 Gateway Rocket,将其配置为以“动态”方式通过 tinc0(不要在 Gateway 字段中输入 IP,请参阅下面的问题并更新)
  • 您需要通过 TINCGW 到 10.1.6.0/24 的路由
  • 在接口部分添加您的 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)

火箭

  • 您需要创建一个 Gateway Rocket,将其配置为使用“动态”通过 tinc0(不要在 Gateway 字段中输入 IP,请查看下面的问题并更新)
  • 您需要通过 TINCGW 到 10.1.5.0/24 的路由
  • 在接口部分添加您的 tinc0 接口,将其命名为 TINCLAN。请参阅上面的 quantum
  • TINCLAN 选项卡上的 FW 规则“dest TINCLAN”允许 TINCLAN 2 TINCLAN
  • TINCLAN 选项卡上的 FW 规则“目标 LAN”允许 TINCLAN 2 LAN(Lan 为 10.1.6.0/24)

这个问题/ 欺骗了我:当您重新启动 tincd 时,tinc0 接口会丢失其 IP 并且路由会被自动删除,启动 tincd 不会重新添加这些路由。要么您需要 opnsense 来强制重新应用它们,要么重新启动服务器,或者最有可能的是,但这些路由会进入 tinc-up。然而,我并没有找到一个完美的解决方案,但也许这也超出了这个问题的范围。

当你启动 tincd 并设置路由后,一切就都应该正常工作。

2. 打字错误,不重要(第二个问题很愚蠢,但给了我一个教训)

我实际上放的是子网 10。0rocket hosts/rocket 文件中的 .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 重新启动或类似情况下仍然存在。

我稍后会将其合并到我的答案中,以便人们了解问题/工作流程。

相关内容