双网卡主机如何让另一台双网卡主机的 avahi 只能发现本机的其中一个网卡上的的服务?

2 天前
 wniming

我的所有双网卡主机都有一个网络用来访问互联网(以下简称 eth ),另一个网络用于局域网设备之间互相访问(以下简称 lan ,这个带宽更高),linux 通过 avahi 来提供 mdns 服务让其他主机可以发现本机上的服务,默认情况下 avahi 会随机使用 eth 或 lan 其中一个的 ip ,我希望始终使用的是 lan 的 ip ,这个要如何实现?

这个问题我尝试过以下方法:

1 ,通过修改/etc/avahi/avahi-daemon.conf 的 allow-interfaces 来强制 avahi 只为 lan 提供服务,但是这会导没有 lan 网络的设备无法访问本机的服务。

2 ,通过 iptables 阻止其他的双网卡主机通过 eth 来访问本机的 avahi 服务,结果 iptables 的方法也不管用,具体情况如下:

root@server:/home/d# iptables -L INPUT -v -n
Chain INPUT (policy ACCEPT 2698 packets, 253K bytes)
 pkts bytes target     prot opt in     out     source               destination         
   20  4975 DROP       udp  --  *      *       192.168.1.4          0.0.0.0/0            udp dpt:5353
   20  4894 DROP       udp  --  *      *       10.0.0.3             0.0.0.0/0            udp dpt:5353
root@server:/home/d# 

上面的两条规则阻止了 develop 这台机通过 eth 或 lan 来访问本机的 avahi 服务,结果在 develop 这台机上仍然可以看到本机的 smb 服务:

d@develop:~$ avahi-browse -atp | grep -i server
+;lan-br;IPv4;SERVER;_device-info._tcp;local
+;eth-br;IPv4;SERVER;_device-info._tcp;local
+;lan-br;IPv4;SERVER;_smb._tcp;local
+;eth-br;IPv4;SERVER;_smb._tcp;local
d@develop:~$ 

我完全想不通 iptables 为啥不管用,除了 iptables 我也想不到有其他方法能实现我想要的效果,希望有经验的 v 友能指导一下。

1165 次点击
所在节点    Linux
11 条回复
wniming
2 天前
举一个用例:
KDE 的 Dohpin 文件浏览器使用 Avahi 发现其他机器上的 SMB 服务, 默认情况下会出现拷贝文件时有时通过 eth 拷贝,有时通过 lan 拷贝到情况。
bhy
2 天前
我觉得你这么折腾,不如直接 LAN 里固定好 SMB 服务器的 IP ,或者设置好 DNS ,Dohpin 配置到访问指定的 IP/域名就行了。
wniming
2 天前
@bhy 我机器比较多,每台都配置也麻烦, 想找个一劳永逸的办法。
qping
2 天前
> 通过修改/etc/avahi/avahi-daemon.conf 的 allow-interfaces 来强制 avahi 只为 lan 提供服务,但是这会导没有 lan 网络的设备无法访问本机的服务

不太理解,你既要 avahi 为内网提供服务,又希望非内网机器能访问服务,这不是矛盾了?
wniming
2 天前
@qping 没有 lan 网络的设备也是内网设备,比如手机平板这些,lan 网络只不过是给台式机另外多加的万兆网络
kome
2 天前
取消 1G eth 网络, 只使用 10G lan 不行么, 你这既没做网络硬件隔离, 也没做网络软件隔离, 还想内外网互访, 这不是什么问题都没解决, 反而又多了其他问题么.
如果希望服务只在内网使用, 那就服务绑定内网 IP 就行, 没必要广播到外网. 而且, 很多交换机支持 mdns 中继.
最后, mdns 好像是本设备主动发起, 其他设备被动接收的服务类型.
wheat0r
2 天前
这种拓扑是如何形成的
qiuyue0
2 天前
avahi-publish -a -R openwrt.local 192.168.1.254
wniming
1 天前
@kome 两个网络比单个网络的好处主要有 2 点:

1 ,10G lan 可以纯粹用来进行存储相关的服务,不会对访问互联网的网速有影响,(比如对于运行旁路由虚拟机的 all in one 服务器来说即便 lan 口跑满也不影响其他设备通过旁路由下载大文件的速度)

2 ,两个网卡方便网络配置维护,其中一个网卡断网时还可以用另一个网卡 ssh 进去配置网络。
wniming
1 天前
@wheat0r 就是每台双网卡的台式机都有以下两个网段的网卡:

192.168.1.0/24
10.0.0.0/24

192.168.1.0/24 这个网段有网关可以用来访问互联网
VXF2016
1 天前
avahi 支持这种功能吗?建议高速网卡用 ip 访问。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1163581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX