我想通过ZeroTier连接来自不同地点的两个SIP电话。我没有问题配置星号,但我迷失了如何连接远程(局域网2)电话使用转发。
这种情况可以这样描绘:
--------------------------+---------------------------------
LAN 1 I LAN 2
192.168.2.0/24 I 192.168.3.0/24
--------------------------+---------------------------------
I
ASTERISK + I
ZeroTier node 1 I ZeroTier node 2
192.168.192.117 <================> 192.168.192.128
192.168.2.117 I 192.168.3.105
^ I ^
| I |
v I v
SIP phone 1 I SIP phone 2
192.168.2.101 I 192.168.3.101我在192.168.2.117上运行了星号服务器。在LAN 1上看电话没有问题。问题是如何在LAN 2上看到电话。
我阅读了关于iptable的一些说明,并取得了部分成功--似乎我可以在LAN-1上的ZeroTier节点上看到来自远程电话的数据包,因为有以下规则:
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A PREROUTING -p udp -i eth0 -j DNAT --to 192.168.192.117这个想法是把所有传入的UDP从LAN 2转发到LAN 1上的ZeroTier。我必须承认我不完全理解这里写的是什么。而且这可能是完全错误的:
不过仅此而已。回不去了。
ZeroTier在本地支持一些桥接,但我必须承认,网络对我来说是“高数学”。
有人能帮忙吗?
发布于 2019-12-16 20:22:49
在同事的大力帮助下,我设法使它发挥作用。这个想法是用星号来显示来自ZeroTier节点2的电话2数据包--使192.168.3.101看起来像192.168.192.128。所以:
iptables -t nat -A PREROUTING -p udp -s 192.168.3.101 -j DNAT --to 192.168.192.117
iptables -t nat -A POSTROUTING -p udp -s 192.168.3.101 -j SNAT --to 192.168.192.128
iptables -t nat -A PREROUTING -p udp -s 192.168.192.117 -j DNAT --to 192.168.3.101
iptables -t nat -A POSTROUTING -p udp -s 192.168.192.117 -j SNAT --to 192.168.192.128现在,使用一些超级基本的星号配置,我可以通过ZeroTier调用远程some,而无需对ZeroTier节点进行任何额外的配置,也不需要以任何方式更改LAN-2配置。
https://serverfault.com/questions/987965
复制相似问题