社区讨论

雷竞技网站MikroTik应用
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

工作DLNA路由示例(基本)

2018年6月8日星期五上午12:44

嗨。这次我试图理解PIM-SM在microrotik设备上的实现。雷竞技网站我把基本的工作配置贴在这里。对于那些好奇的人,我将在以后的帖子中分享更多细节。希望这个配置能节省大家的时间。我无法直接在相关主题中找到答案(那些我完全理解的)wiki的例子

我的测试实验室如下:
  • Qnap NAS -内容生产者(Prod)
  • Map2nd
  • Windows 10 1803笔记本电脑-内容消费者(缺点)

模式(点击)
图像 图像

这可能发生在你的设备上,你可能需要更少或更多的配置,但无论如何,这是上图的一个工作配置。
代码:选择所有
/interface bridge add arp=enabled fast-forward=no name= con -br protocol-mode=none add arp=enabled fast-forward=no name=Prod-Br protocol-mode=none /ip pool add name=dhcp_pool0 ranges=192.168.0.10-192.168.0.20 add name=dhcp_pool2 ranges=192.168.1.10-192.168.1.20 /ip dhcp-server add address-pool=dhcp_pool0 dhcp-option-set= Cons-Br -opts disabled=no interface=\ con -br租约时间=2m name=dhcp1 add address-pool=dhcp_pool2 dhcp-option-set= Prod-Br租约时间=2mname = dhcp2 /接口桥端口添加桥= Cons-Br hw =没有接口= ether1添加桥= Prod-Br hw =没有接口= ether2 / ip地址添加地址= = Cons-Br 192.168.0.1/24接口网络= 192.168.0.0添加地址= = Prod-Br 192.168.1.1/24接口网络= 192.168.1.0 / ip dhcp服务器网络添加地址= 192.168.0.0 / 24 dns-none =是的网关= 192.168.0.1子网掩码= 24添加地址= 192.168.1.0/24 dns-none =是的网关= 192.168.1.1子网掩码= 24 / ip防火墙地址列表添加地址列表= = 192.168.0.1桥梁添加address=192.168.1.1 list=Bridges /ip firewall mangle add action=change-ttl chain=prerouting st-address-type="" log-prefix=TTL+ \ new-ttl=set:64 passthrough=yes port=1900 protocol=udp add action=change-ttl chain=prerouting new-ttl=set:64 passthrough=yes protocol=\ igmp /ip upnp set enabled=yes /ip upnp interfaces add interface= con - br type=internal /routing pim bsr-candidates add interface= con - br /routing pim interface add interface= con - br /routing pim interface add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface= con - br add interface=Cons-Br add interface= con - br addinterface=Prod-Br /routing pim rp add address=192.168.1.1 /routing pim rp-candidate add interface=Prod-Br

不要忘记在媒体服务器上添加静态路由(在我的例子中是NAS)
代码:选择所有
路由添加-net 224.0.0.0 netmask 240.0.0.0 gw 192.168.1.1 dev eth0

考虑安全性,并将管理规则限制在所需的接口上:)
最后编辑:Chiverel2018年6月8日星期五12:56,共编辑1次。
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例

2018年6月8日星期五上午12:54

如果您对某种TLDR手册不感兴趣,请跳过此消息。
我们从一个什么都不做的场景开始。Map设备有一个网桥和两个接口,DHCP服务器,就是这样。只是为了确保在生产者和消费者设备上没有问题。

模式(点击)
图像 图像

配置
代码:选择所有
/interface bridge add arp=enabled fast-forward=no name= con - br protocol-mode=none add name=dhcp_pool0 ranges=192.168.0.10-192.168.0.20 /ip dhcp-server add address-pool=dhcp_pool0 disabled=no interface= con - br request -time=2m name=dhcp1 /interface bridge port add bridge= con - br hw=no interface=ether1 add bridge= con - br hw=no interface=ether2 /ip address add address=192.168.0.1/24 interface= con - br network=192.168.0.0 /ip dhcp-server network add address=192.168.0.0/24 dns-none=yes网关= 192.168.0.1子网掩码= 24

下一步,我们将以太网端口移动到不同的桥中(可单击)。

图像 图像

这就是问题开始的地方。设备可以相互ping通,因为另一个网络通过默认网关可用。我可以在电脑上打开NAS管理页面。但是笔记本电脑无法发现NAS作为DLNA服务器。
代码:选择所有
/interface bridge add fast-forward=no name= con - br protocol-mode=none add fast-forward=no name=Prod-Br protocol-mode=none /ip pool add name=dhcp_pool0 ranges=192.168.0.10-192.168.0.20 add name=dhcp_pool2 ranges=192.168.1.10-192.168.1.20 /ip dhcp-server add address-pool=dhcp_pool0 disabled=no interface= con - br lease-time=2m name=dhcp1 add address-pool=dhcp_pool2 disabled=no interface=Prod-Br lease-time=2m name=dhcp2 /interface bridge port add bridge= con - br hw=no interface=ether1 addbridge=Prod-Br hw=no interface=ether2 /ip address add address=192.168.0.1/24 interface= con - br network=192.168.0.0 add address=192.168.1.1/24 interface=Prod-Br network=192.168.1.0 /ip dhcp-server network add address=192.168.0.0/24 dns-none=yes gateway=192.168.0.1 netmask=24 add address=192.168.1.0/24 dns-none=yes gateway=192.168.1.1 netmask=24

如果我没理解错的话,这个发现是SSDP的功劳。报文总是发送到UDP端口1900,但源端口可能不同。有许多帖子说SSDP数据包的TTL=1,因此这些数据包不会转发到任何地方。好吧,我想我们可以用一个轧布规则来解决这个问题:
代码:选择所有
/ip firewall mangle add action=change-ttl chain=prerouting disabled=yes dst-address-type=multicast \ log-prefix=TTL+ new-ttl=set:64 passthrough=yes port=1900 protocol=udp

请注意,根据规范,数据包必须以TTL=4发送,尽管有些设备忽略了这一点。我不确定更高的TTL是否会导致问题,至少我的设置不会。

然后我们需要配置PIM以确保在网桥之间路由组播数据包。困难的部分来了。在PIM示例中,它说在PIM接口中添加桥接器并配置静态会合点(RP)就足够了。我们不需要添加任何替代地址,因为设备可以很容易地相互连接。从维基:
您可能还需要进行配置alternative-subnets在上游接口-如果多播发送地址是在一个IP子网,不能从本地路由器直接访问
建议RP位于离Producer更近的位置,因为流量从Media服务器向下发送到订阅了某些组的所有设备。在我的例子中,我使用Br-Prod 192.168.1.1RP。我不确定是否需要定义Bsr,我还没有理解它的目的。
代码:选择所有
/routing pim bsr-candidates add interface=Cons-Br /routing pim interface add interface=Cons-Br /routing pim rp add interface=Prod-Br /routing pim rp-candidates add interface= 192.168.1.1 /routing pim


在生产者上添加静态路由时提到的另一件事。DLNA使用239.255.255.250组。否则,我们可以指定所有默认的多播组224.0.0.0/4,所以我通过连接Nas的网桥的IP地址添加了到该网络的路由。命令在Nas上执行:
代码:选择所有
路由添加-net 224.0.0.0 netmask 240.0.0.0 gw 192.168.1.1 dev eth0


添加新路由。请注意,该路由在重启之前一直存在。检查这个页面以了解如何使用autorun脚本永久地执行此操作。
代码:选择所有
route -n内核IP路由表目的网关通用掩码标志度量值Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 0 lo 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 qvs0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 224.0.0.0 192.168.1.1 240.0.0.0 UG 0 0 0 eth0


现在我需要确保NAS和笔记本电脑都在向路由器发送SSDP数据包。添加以下规则。第一个显示SSDP数据包到达网桥接口,第二个显示网桥之间转发的数据包。
代码:选择所有
/ip firewall filter add action=passthrough chain=input st-address-type=multicast st-port=1900 \ log=yes log-prefix=in-SSDP协议=udp添加action=passthrough chain=forward st-address-type=multicast log=yes \ log-prefix=fw-SSDP端口=1900协议=udp


到目前为止一切顺利,计数器在变化,日志显示数据包到达和转发。我可以看到从笔记本电脑发送到两个网桥的SSDP。笔记本电脑的尺寸较小,Nas的尺寸较大(可点击)。

图像 图像

PIM结果如下,在我看来是有效的。
代码:选择所有
/routing pim> bsr print区域类型=active bsr-address=192.168.0.1 scope-zone=224.0.0.0/4 bsr-priority=1 local-address=192.168.0.1 local-priority=1 state=elected timeout=31s区域类型=configured bsr-address=192.168.0.1 scope-zone=224.0.0.0/4 bsr-priority=1 local-address=192.168.0.1 local-priority=1 state=init /routing pim> mrib print标志:X - disabled, I - inactive, D - dynamic #目的网关METRIC INTERFACE 0 D 192.168.0.0/24 0.0.0.0 0 con - br 1 D 192.168.1.0/24 0.0.0.0 0 Prod-Br /routing pim> mfc print GROUP源RP 239.192.152.143 192.168.1.18 192.168.1.1 239.255.255.250 192.168.0.18 192.168.1.1 239.255.255.250 192.168.1.18 192.168.1.1 /routing pim> join print标志:RP - (*,*,RP), WC - (*,G), SG - (S,G), SG_rpt - (S,G) GROUP源RP WC 224.0.0.0 192.168.1.1 192.168.1.1 SG 239.192.168.2.143 0.0.0.0 192.168.1.1 SG_rpt 239.192.152.143 192.168.1.18 192.168.1.1 SG_rpt 239.255.255.250 192.168.0.18 192.168.1.1 SG_rpt 239.255.255.250 192.168.1.18 192.168.1.1 /routing pim> igmp-group print标志:v1 - IGMPv1, v2 - IGMPv2, v3 - IGMPv3, I - include, E - exclude, F - forward, D - not forward接口组源超时v2E Cons-Br 224.0.0.2 0.0.0.0 3m44s v2E Cons-Br 224.0.0.13 0.0.0.0 3m45s v2E Cons-Br 224.0.0.2 0.0.0.0 3m45s v2E Prod-Br 224.0.0.22 0.0.0.0 3m55s v2E Prod-Br 224.0.0.22 0.0.0.0 3m48s v2E Prod-Br 239.255.255.250 0.0.0.0 3m48s


但整个安排似乎并不奏效。设备嗅探工具来自开发人员工具的UPnP技术让我可以查看我的笔记本电脑看到了哪些信息。使用ssdp的唯一合理的NOTIFY消息:来自Nas的alive消息(尽管这种情况非常罕见)。因此,似乎有什么东西在起作用“文档。问题是数据包到达时带有NT头,这意味着是NAS通知网络他的存在。对M-Search的响应应该已经到达,并且在NOTIFY包内带有ST头。

图像 图像

这个问题使我得出结论,其他网桥没有收到一些IGMP数据包。首先,就像SSDP TTL一样,添加可以增加IGMP流量TTL的mangle规则。
代码:选择所有
Chain =prerouting action=change-ttl new-ttl=set:64 passthrough=yes protocol=igmp log=no log-prefix=""


在那之后,一切都开始正常运转。
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例

2018年6月8日星期五上午12:55

改进
将静态多播路由分发到假定有媒体服务器的网络。因此,不需要手动添加路由。这可以使用DHCP选项121和后辅助
代码:选择所有
/ip dhcp-server option add code=121 name=cons-mcast-routes value=0x04e0c0a80001 add code=121 name=prod-mcast-routes value=0x04e0c0a80101 /ip dhcp-server option set [find interface=Cons-Br] dhcp-option-set= Cons-Br -opts set [find interface=Prod-Br] dhcp-option-set= Prod-Br -opts

不幸的是,我的Qnap不理解这个选项,所以我像前面所示的那样手动添加它。值得一提的是,有些设备需要249选项才能正确接收路由。这不是我的情况,但你可以很容易地找到更多的信息。

还有一个提示。直到我将网桥上的代理模式从启用更改为proxy-arp,我的一台计算机才看到NAS。

谢谢你的阅读。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月4日星期三下午1:55

大家好,
我找到了这个线程,因为我在同样的问题上有点挣扎。也许有人能帮我做这个具体的设置,因为我有点忙不过来了。

我有一个在VLAN10的qnap上运行的Twonky- DLNA-Server。客户端(如三星电视)在VLAN40…两个vlan都在同一个桥上,并进行了vlan过滤。如果两台设备在同一vlan-子网内,则环境正常。

我已经安装了PIM,并添加了VLAN10(172.16.10.0/24)和VLAN40(172.16.40.0/24)接口,但没有发生任何事情。
为了使VLAN40上的Twonky DLNA-Server可见,还需要什么?

提前感谢,
基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月4日星期三下午2:20

嗨,下面的命令是什么意思?
代码:选择所有
/routing pim MFC打印细节
应该有以下值的条目:
-合适的组(我想应该是239.255.255.250)
—VLAN10为上行接口
—下行接口为VLAN40

你有定义RP吗?你能看到你的设备ip加入了RP吗
代码:选择所有
/routing pim join打印
你有防火墙规则吗?它们允许多播流量吗?

您可以使用上面所示的Device Sniffer来查看是否在两个vlan中都收到了Upnp数据包。

我运行类似于你的设置,除了我的一个PIM接口是VLAN,另一个是带VPN接口的桥接。我可以通过VPN连接正常接收DLNA。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月4日星期三下午3:03

嗨Chiverel,
感谢您的快速回复!

我也使用PIM为我的Sonos网络,它的工作原理。播放器在vlan30上,控制器在vlan10和vlan60上(但似乎在PIM中是不必要的)

日志如下:
代码:选择所有
/路由pim mfc打印细节组= 239.255.255.250源= 172.16.10.10 rp = 172.16.30.1 upstream-interface = vlan10 downstream-interfaces = vlan30 vlan40组= 239.255.255.250源= 172.16.10.20 rp = 172.16.30.1 upstream-interface = vlan10 downstream-interfaces = vlan30 vlan40组= 239.255.255.250源= 172.16.30.11 rp = 172.16.30.1 upstream-interface = vlan30 downstream-interfaces = vlan10 vlan40组= 239.255.255.250源= 172.16.30.34 rp = 172.16.30.1 upstream-interface = vlan30downstream-interfaces=vlan10,vlan40 group=239.255.255.250 source=172.16.30.36 rp=172.16.30.1 upstream-interface=vlan30 downstream-interfaces=vlan10,vlan40 #### /routing pim join print标志:Rp - (*,*, Rp), wc - (*, g), sg - (s, g),SG_rpt - (S,G,rpt) GROUP源RP WC 224.0.0.0 172.16.30.1 172.16.30.1 WC 224.0.0.0 172.16.40.1 SG 224.0.1.60 0.0.0.0 172.16.40.1 SG 239.255.255.250 0.0.0.0 172.16.3246 0.0.0.0 172.16.40.1 SG 239.255.255.250 0.0.10.10 172.16.30.1 SG_rpt 239.255.255.250 172.16.10.20 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.11 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.34 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.36172.16.30.1


Interface-Lists:
代码:选择所有
/interface list member add interface=vlan10 list="Sonos Control" comment= Sonos /interface list member add interface=vlan60 list="Sonos Control" comment= Sonos

Sonos的FW规则实现:
代码:选择所有
/ip firewall filter add action=accept chain=forward dst-address=239.255.255.250 comment="SONOS:转发组播流量" /ip firewall filter add action=accept chain=forward dst-port=1400,4444,4070 in-interface-list=" SONOS:转发控制器事件给玩家" /ip firewall filter add action=accept chain=forward dst-port=3400,3401,3500,4070 in-interface=vlan30 out- port= "SONOS:转发控制器事件给玩家" //ip firewall filter add action=accept chain= Forward dest -port=1900,1901,5353,6969 in-interface=vlan30 out-interface-list="Sonos Control"协议=udp comment=" Sonos . net "玩家转发UPnP设备发现事件

关于设备嗅探器:

我不知道如何开始,但这似乎是我必须在RB3011上启用upnp,或者你是什么意思?
很抱歉我的愚蠢问题,但我不是这方面的专家;-)
非常感谢,
基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月4日星期三下午3:47

我也不是专家。但我一直在调查PIM。

我确实看到你配置了2个rp。我假设在您的设置中应该只有1个RP,即172.16.30.1。你能把你的
代码:选择所有
/routing pim export

此外,您需要允许来自VLAN40的SSDP流量,类似于您为VLAN30所做的。我相信DLNA至少使用SSDP udp/1900作为发现目的。因此,流量应该能够到达您的VLAN40接口(我想是172.16.40.1)。

关于设备嗅探器。您需要下载该工具,在PC/VM/其他任何设备上运行它,并将该主机连接到您的VLAN40。通过这种方式,您可以检查该网络中出现的Upnp消息。然后在VLAN30上使用相同的方法。您可以通过搜索菜单启动设备发现过程:
-搜索所有设备
-搜索特定类型-> AV媒体服务器

然后,随着时间的推移,您可以看到多个upnp消息以及对这些消息的响应。检查从哪个IP消息到达。最终,您应该能够在连接到VLAN40时看到来自VLAN30 IP范围的一些消息,反之亦然。仔细查看带有NT头的NOTIFY消息。如果没有发生这种情况,则可能是防火墙或TTL问题。您可能可以使用VLAN30中的工作设置来分析应该出现哪些消息。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月4日星期三晚上9:23

你好,
又是我。我有点沮丧;这行不通:-(
电视和Windows“网络环境”无法在qnap上看到twonky - server
我可以在Windows上访问Twonky的Web界面(172.16.10.10:9000)

我所做的:
  • 我进入了一个带有额外udp端口的转发链(似乎对Twonky是必要的;我还尝试了输入链,但没有成功,我认为这对我来说是不必要的)
  • 我还允许vlan10和vlan40之间完全通信(vlan10和vlan40是VlanFriends的成员)。
  • 路由/pim的导出
  • 在Vlan40中的Windows PC上的DeviceSniffer,我可以看到我收到UPnP-Packages。但我不明白我所看到的

FW-Rules
代码:选择所有
/ip firewall filter add action=passthrough chain=forward dst-address-type=multicast port=1900, 1080, 9080 protocol=udp /ip firewall filter add action=accept chain=forward dst-address-list=VlanFriends in-interface-list=LAN src-address-list=VlanFriends comment="允许VLAN间与VLAN朋友通信"

PIM出口:
代码:选择所有
/routing pim interface add comment="Sonos player" interface=vlan30 add comment=IPTV interface=vlan40 add interface=vlan10 /routing pim rp add address=172.16.30.1

设备嗅探日志:
DeviceScanner.png

也许你知道我该怎么做。

基督教
您没有必要的权限来查看本文附带的文件。
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月4日星期三下午9:52

漂亮的输入。

当您将windows主机连接到VLAN40时,它能看到您的Qnap NAS吗?例如,你启动标准的windows媒体播放器,你能看到Twonky吗?它通常看起来像下图中的“HDHome…”条目
图像
我只是想知道这是不是电视本身的问题。直接连接VLAN30是否可以使用?

因为根据您显示的图像:Twonky IP地址是172.16.10.10,它被宣传为媒体服务器。因此,据我所知,PIM设置工作正常。

还有什么可以检查的。你的电视如何连接到VLAN40?是有线的还是无线的?是否将该端口配置为VLAN内的access端口?
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月4日星期三晚上10:45

你好,
否VLAN40中的Windows PC看不到qnap DLNA-Server。我只能使用Twonky的qnap和web界面。但如果我试着打开一部电影,什么也没发生。
我也试过在安卓系统上使用Kodi。无法找到DLNA服务器!这不是电视问题!

只要我将标签连接到VLAN10,我就可以找到DLNA服务器

基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四上午12:20

你可以在android上使用“slick upnp”应用程序来查看DLNA设备。效果很好。

我的问题正好相反。当您在vlan10中运行嗅探工具时,您是否看到来自vlan40的消息?

PIM主题的microtik日志中是否有错误或警告?雷竞技网站你能在调整后再分享一下你的PIM细节吗?我想检查接口,mrib, mfc,连接和igmp组。
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四12:25 am

顺便说一句,当我通过vpn连接时,我在网络环境中也看不到我的nas。但它出现在windows媒体播放器一段时间后,刷新周期完成。可能需要几分钟。vlc也是一样。

为了在Windows上使用DLNA,将连接设置为私有是很重要的。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月5日星期四上午8:34

你好,
今天我将在vlan10测试嗅探器。顺便说一句:android标签是在VLAN60。

PIM细节:
代码:选择所有
国旗:Rp - (*,*, Rp), wc - (*, g), sg - (s, g),SG_rpt - (S,G,rpt) GROUP源RP WC 224.0.0.0 172.16.30.1 172.16.30.1 SG 224.0.1.1 0.0.0.0 172.16.30.1 SG 224.0.1.60 0.0.0.0 172.16.30.1 SG 239.255.255.250 172.16.10.10 172.16.30.1 SG_rpt 239.255.255.250 172.16.10.30 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.11 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.21 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.22 172.16.30.1 SG_rpt 239.255.255.250172.16.30.31 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.33 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.34 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.35 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.41 172.16.30.1 SG_rpt 239.255.255.250 172.16.30.50 172.16.30.1 SG_rpt 239.255.255.250 172.16.40.100 172.16.30.1 SG_rpt 239.255.255.250 172.16.60.198 172.16.30.1

代码:选择所有
/路由pim mfc打印细节组= 239.255.255.250源= 172.16.10.10 rp = 172.16.30.1 upstream-interface = vlan10 downstream-interfaces = vlan30 vlan40, vlan60组= 239.255.255.250源= 172.16.10.20 rp = 172.16.30.1 upstream-interface = vlan10 downstream-interfaces = vlan30 vlan40, vlan60组= 239.255.255.250源= 172.16.10.30 rp = 172.16.30.1 upstream-interface = vlan10 downstream-interfaces = vlan30 vlan40 vlan60组= 239.255.255.250源= 172.16.30.12 rp = 172.16.30.1 upstream-interface = vlan30downstream-interfaces = vlan10 vlan40 vlan60组= 239.255.255.250源= 172.16.30.21 rp = 172.16.30.1 upstream-interface = vlan30 downstream-interfaces = vlan10 vlan40, vlan60组= 239.255.255.250源= 172.16.30.31 rp = 172.16.30.1 upstream-interface = vlan30 downstream-interfaces = vlan10 vlan40, vlan60组= 239.255.255.250源= 172.16.30.33 rp = 172.16.30.1 upstream-interface = vlan30 downstream-interfaces = vlan10 vlan40 vlan60组= = 172.16.30.35 rp = 172.16.30.1 239.255.255.250来源上游-接口=vlan30下游-接口=vlan10,vlan40,vlan60组=239.255.255.250源=172.16.30.36 rp=172.16.30.1上游-接口=vlan30下游-接口=vlan10,vlan40,vlan60组=239.255.255.250源=172.16.40.100 rp=172.16.30.1上游-接口=vlan40下游-接口=vlan10,vlan30,vlan60组=239.255.255.250源=172.16.60.198 rp=172.16.30.1上游-接口=vlan60下游-接口=vlan10,vlan30,vlan40
但是你说:“我。为了在Windows上使用DLNA,将连接设置为私有是很重要的。”。我在VLAN10中没有windows客户端问题。DLNA工作完美。问题只存在于不同的子网中。

谢谢,
基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四上午9:42

好了,现在我可以看到您的172.16.40.100设备连接到您的媒体服务器和其他工作客户端使用的相同RP和组239.255.255.250。上游和下游也可以正常检测。这使我认为PIM配置得很好,问题可能在其他地方,除了日志会给我们提示什么是错误的。有关于PIM的条目吗?

通过输入“别处”,我们可以检测VLAN10是否接收到来自VLAN40的消息。即使允许这些vlan之间的所有通信,也可能会出现问题,具体取决于拓扑结构。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月5日星期四上午11:50

你好,
我检查了VLAN10中的嗅探器:
Sniffer2.png
Sniffer.png

您可以在vlan60(172.16.60.199)中看到来自我的android选项卡的请求,并且似乎连接将关闭。我不知道这是否正确,但似乎是一个问题

我还断开了路由器与WAN的连接,并禁用了所有FW规则,除了dna -组播直通…这行不通!

我在日志中也没有看到任何问题。似乎是vlan配置本身有问题,但为什么我的Sonos在子网中播放?
Logfile.png
基督教
您没有必要的权限来查看本文附带的文件。
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四下午2:06

我不太确定,但可能是某些数据包上的TTL问题。Sonos可以发送比其他设备具有更高TTL的数据包,因此它的数据包确实被转发了。不是我在我的第一个帖子中发布的轧口规则。调整这些并确保它只涵盖所需的接口列表
代码:选择所有
/ip firewall mangle add action=change-ttl chain=prerouting st-address-type="" log-prefix=TTL+ \ new-ttl=set:64 passthrough=yes port=1900 protocol=udp add action=change-ttl chain=prerouting new-ttl=set:64 passthrough=yes protocol=igmp
如果这还没有帮助的话。那么在设备嗅探器的详细调查中就没有其他选择了。学习资料:
-Upnp发现章
发现
当具有UPnP功能的设备加入网络并想知道网络上有哪些UPnP服务可用时,它通过UDP协议向端口1900上的多播地址239.255.255.250发送发现消息。此消息包含一个报头,类似于HTTP请求。这个协议有时被称为HTTPU (HTTP over UDP):

M-search * http /1.1
主持人:239.255.255.250:1900
男:ssdp:发现
MX: 10
圣:ssdp:所有

所有其他UPnP设备或程序都需要响应此消息,通过使用UDP单播向设备发送类似的消息,宣布设备或程序实现的UPnP配置文件。一个有趣的怪癖:它用UDP单播发送回设备发现消息的发送端口。对于它实现的每个配置文件,都会发送一条消息:

Http /1.1 200 ok
cache - control:信息= 1800
EXT:
地点:http://10.0.0.138:80/IGD.xml
服务器:SpeedTouch 510 4.0.0.9.0 UPnP/1.0 (DG233B00011961)
圣:urn: schemas-upnp-org服务:WANPPPConnection: 1
USN: uuid: UPnP-SpeedTouch510:: urn: schemas-upnp-org服务:WANPPPConnection: 1

以上是由Alcatel/Thomson Speedtouch ADSL调制解调器发送的稍微编辑的响应,该调制解调器实现了WANPPPConnection配置文件。

支持UPnP的设备或程序必须定期发送消息以宣布其服务。通知消息或多或少与发现的响应消息相同,但通过UDP发送到端口1900上的UPnP组播地址239.255.255.250,并将ST报头替换为类似的报头NT。
-接着是一个漂亮的图表。起源
图像
-或者是真实的核心文件。至少下面几章
  • 1.3.2使用M-SEARCH的搜索请求
  • 1.3.3搜索响应
您需要确保这些M-SEARCH消息在放置DLNA接收器(VLAN40)的源网络中生成,通过路由器并在您的DLNA服务器(VLAN10)的网络中可见。然后跟踪来自VLAN10的回复,也应该在VLAN40中可见。我用那个嗅探器工具来查看丢失的部分和位置。如果嗅探器没有显示任何消息,则转到路由器并在输入和输出端口/vlan上使用torch来定义数据包丢失的位置。然后使用您的知识来解决丢失包的问题,如果需要的话。

为了简化调查,在检查过程中断开或关闭不必要的UPNP设备。否则,您可能会被您不想看到的数据包淹没。

恐怕这是我唯一能帮上忙的了。我没有那么多的经验和技巧来给你提示如何缩小问题的范围。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月5日星期四下午3:37

你好,
好吧,让我们用“嗅探”的方式:

测试环境:
  • VLAN60: Android Tab with Kodi(比电视好,因为安装在墙上: -)
  • VLAN60:带有嗅探器的Windows笔记本
  • VLAN10:带嗅探器的Windows PC机
我可以在VLAN60上看到239.255.255.255:9000标签上的M-Search包。但是我如何在vlan10嗅探器上找到这些包呢?时间戳后面的#是包标识符#,它被发送出去,应该是相同的在vlan10?如果是这种情况,包将不会收到vlan10。

另一方面,当我启动Kodi时,我可以从选项卡中看到vlan10m - Search-packages:
代码:选择所有
M-SEARCH * HTTP/1.1 MX: 5 ST: upnp:rootdevice MAN: "ssdp:discover" User-Agent: upnp /1.0 dllnadoc /1.50 Platinum/1.0.5.13 Connection: close Host: 239.255.255.250:1900
但是Twonky并没有回应。这就是我不明白的地方。

另一方面,Twonky的任何Notify包(它们将以不规则的周期进行处理)都不会收到vlan60。似乎没有通知包从vlan10将到vlan60

你知道我在哪儿能查到这个吗?
基督教

Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四下午5:06

这是非常棘手的部分。

我是这样做的:
—vlan10有192.168.10.58,这是我的QNAP
—Ovpn-Bridge通过OpenVPN-TAP适配器(L2)连接Android设备,主IP地址为192.168.11.14
—在vlan10上启动报文嗅探
代码:选择所有
/tool sniffer set filter-interface=vid10-home-1G filter-ip-protocol=udp \ filter-operator-between-entries=and filter-port=1900 only-headers=yes
或在WinBox(图像是可点击的)
图像 图像
-启动嗅探(/工具嗅探器启动)或通过单击winbox中的按钮
-在android上启动“Slick Upnp”,点击“Refresh”图标
图像 图像
-等一会儿
-停止对microtik的嗅探雷竞技网站
-检查包(/工具嗅探包打印)
图像 图像
您可以连续看到4个类似的数据包。这符合Upnp要求重复M-SEARCH消息几次,因为它是通过UDP发送的,不能保证传递。
这表明我的vlan10(但不是DLNA服务器的目标接口)收到了来自远程连接的Android设备的搜索消息

然后更改界面以查看PIM设置的反面。在这里,我嗅探作为网桥成员的接口(例如,我的路由器上的边缘接口,我认为网桥上也会有类似的图片)。
图像 图像

我想可能有其他端口镜像和wireshark使用的选项。但我不是这方面的专家,这可能不是最好的研究方式。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月5日星期四下午6:01

你好,
非常感谢你的支持,这真是太棒了!

以下是嗅探工具的结果:

VLAN10中的嗅探器

您可以看到来自DLNA-Server的通知包
也可以看到来自VLAN40和VLAN60的搜索包
SnifferVLAN10.png

VLAN40和VLAN50的嗅探器
你可以看到搜索包,但是你看不到任何来自VLAN10的通知。这意味着通知不会从VLAN10转到VLAn40/ VLAN60

VLAN40
Sniffer_VLAN40.png

VLAN60
Sniffer_VLAN60.png
这是PIM问题吗?防火墙规则中的多播问题?

基督教
您没有必要的权限来查看本文附带的文件。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月5日星期四下午6:15

你好,
我注意到一些有趣的事情,也许你有一个想法来解决这个问题:

我把机器人放在VLAN10,它工作。之后,我将标签连接到vlan60,而不关闭Slik UPnP-App,我可以从DLNA接收流。当您关闭标签上的应用程序时,无法找到DLNA-Server…

…一个nd whow!有时它似乎工作,DLNA可以在vlan60和vlan40中找到。这只需要几分钟,但很快就见效了!
你有什么办法能让它更快吗?我现在和电视核对一下,然后回来给你。

基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四晚上9:16

我对时间也有同样的问题。当我在Android或Windows上通过VPN连接时,我想说的是,在75%的情况下,DLNA的发现会有明显的延迟。大约需要10秒到2分钟左右。这就是为什么我希望您检查网络数据包,而不是仅仅运行“网络发现”并确定它不起作用。因为据我所知,您的PIM配置总体上是正确的,但问题隐藏在细节中。

我还注意到,例如VLC可能无法发现DLNA,或者可能在多次尝试后找到它。这可能与前面提到的服务轮询延迟有关。根据我的个人经验,在windows上接收DLNA最可靠的方式是标准的windows Media Player和Android上的Slick,后者可以稍后将播放委托给你最喜欢的播放器。

到目前为止我还没找到根本原因。我还有更多我的设置问题不幸的是,在这里无法获得任何帮助,以及许多其他PIM主题。但我认为这可能与某些界面设置有关,特别是那些对我来说不是很清楚的设置:
  • HELLO -holdtime,或者更确切地说,是HELLO消息的目的和行为
  • 你好,从名字上看很不错的候选人:)
  • require-hello
  • tracking-support
  • override-interval
所以我不确定我的问题“必须直接连接”和间隔问题是有联系的,还是一个导致另一个。我需要第二轮“灵感”来继续。并研究Upnp器件的结构和更接近。

现在你可能比我更精通,因为你说log中没有警告。我没有另一个路由器,我可以把它带到远程场所,并有VPN隧道进行故障排除。我非常厌倦了这个PIM重新构建我的家庭设置到测试实验室,至少我还有大约6个月的时间,直到这个话题对我来说再次变得重要。
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月5日星期四晚上9:25

减少轮询周期的负面影响(如果是这样的话)将导致网络中的流量增加,这在许多情况下是非常不需要的。当你拥有少量设备时,这应该不是一个问题,但值得提及。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月5日星期四晚上11:15

嗨Chivere,
我明白你说的话,对我来说也一样。两个月前,我从未听说过microtik Router,我从头开始学习桥接雷竞技网站,vlan以及如何实现cap。
我发现了如何移动我的sonos播放器到一个单独的子网和防火墙是如何工作的。

我的配置肯定不完美,但它正在运行,我所有实现新服务的尝试(例如,使用AVM FritzboxRouter的ipsec - lan2lan)都是在带有2 cAP ac的RB3011的“生产”环境中执行的。

我认为我们需要一个“dlna路由”专家,他可以帮助我们找到新的想法,找出为什么一些包不会被转移到其他vlan。我也会在另一个论坛上发布这个问题,如果有什么事情发生,让你知道!

@所有DLNA和Mikroti雷竞技网站k路由专家:
有人能帮助解决DLNA路由问题吗?

问候,
基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月7日星期六12:23 am

我这边的最新消息。我只是好奇我们都面临QNAP设备的发现延迟。顺便说一下,我的是入门级TS-253A。

所以我决定推迟深度包检测,并在我的网络上添加另一个DLNA服务器,相当于你的VLAN10。所以我刚刚在Win10主机上启用了DLNA服务器(手册),并尝试使用另一台Win10机器(例如您的VLAN40/60)检查PIM设置的另一侧的情况。
代码:选择所有
接下来在赢得10 windows媒体播放器  \ / ------------------- R1 sm  ------------------ / \ Android W10-DLNA“光滑”
结果非常有趣。我的接收器显示两个DLNA服务器,这是预期的。但是当我连续多次关闭和打开WMP时,Win10的DLNA会在几秒钟内出现。QNAP的行为与之前一样,并且在玩家启动后的几秒到90秒内可用。另一个问题是,Android上的Slick只有在连接到我的VPN网络(或相当于你的VLAN40/60)时才能检测到QNAP设备。

这让我认为问题在于QNAP,而不是路由器和PIM设置。为了进一步分析2个dlna在1个玩家发布时出现延迟的情况,我制作了一个流量转储,也许我以后会关注它。因为在这种情况下,我甚至不知道该写什么给QNAP支持。只是一个一般性的问题“为什么QNAP比另一个DLNA出现得晚”?
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月7日星期六凌晨2:53

准备好迎接下一个没有快乐结局的长篇阅读吧:(我们进入了一个我还是新手的领域。而且讨论与主题中提到的基本设置并不匹配。我没想到这里有这么多细节。

我们已经阐明了如何进行发现,但我将再次简单地重复一遍。客户端(媒体播放器)从192.168.11.9:57047
代码:选择所有
M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" ST: urn:schemas-upnp-org:service:ContentDirectory:1 USER-AGENT: OS/version UPnP/1.1 product/version MX: 3

通过说我们正在向多播组发送请求239.255.255.250试图从可用的媒体服务器设备(设备:ContentDirectory)。我们期望在接下来的3秒内任何时间都有一个回复因为MX的值是3大于1小于5。看起来是兼容的,除了我们没有发送用户代理,因为这个头是可选的。由于UDP协议的使用,搜索请求应该多次发送。

必须将来自媒体服务器的预期回复发送回192.168.11.9:57047,而不考虑服务器的位置(注意头):
代码:选择所有
HTTP/1.1 200 OK CACHE-CONTROL: max-age = seconds until advertisement expires DATE:生成响应的时间EXT: LOCATION:根设备UPnP描述的URL SERVER: OS/version UPnP/1.1 product/version ST:搜索目标USN:广告的复合标识符

现在我已经完成了准备工作和测试配置的描述。我在接口上启动流量嗅探,并等待所有我的2个DLNA服务器(win10是192.168.10.40,QNAP是192.168.10.58)出现在应用程序中。

我们可以真正看到3个M-Search数据包,重复时间约为3秒。消息的内容是相同的。样品已显示并完全符合要求。
图像 图像

我们和客户谈完了。让我们看看哪些服务器会在3秒内回复我们的M-Search请求。我们可以在PC上看到DLNA的回复,其中包含正确的HTTP/1.1 200 OK, ST标头和资源位置。所以在我们发送搜索请求2秒后,我可以找到我的一个DLNA服务器。与其他2个搜索/回复序列显示相同的图片。

图像 图像

现在让我们看看QNAP的回复。检查协议列,它只显示UDP而不是之前捕获的SSDP。但是里面的数据看起来像预期的内容。

图像 图像
代码:选择所有
HTTP/1.1 200 OK CACHE-CONTROL: max-age=1800日期:星期五,2018年7月6日20:54:21 GMT时间:位置:http://192.168.10.58:8080/upnpd/583fe79aa7.xml OPT: "http://schemas.upnp.org/upnp/1/0/";ns=01 01- nls: e155542e-809f-11e8-a4ce-934cd74f7952 SERVER: Linux/4.2.8, UPnP/1.0,适用于UPnP设备的便携式SDK /1.6.22 X-User-Agent: redsonic ST: urn:schemas-upnp-org:service:ContentDirectory:1 USN: 787120b7-481b- 4e3g -8488-49170c28608c::urn:schemas-upnp-org:service:ContentDirectory:1

在随后的搜索中也会发生同样的事情。QNAP DLNA目前还没有在我的播放器中显示。如果你看一下位置,那不是DLNA端口8200,它是我设置中的WWW端口。因此,QNAP DLNA根本不会被M-Search请求发现。

那么QNAP最终是如何出现在列表中的呢?让我们检查捕获中的其他M-Search消息。可以看到,从第85秒开始,QNAP开始查询可用的媒体接收器(设备:MediaRenderer),并重复了两次(帧842和844)。期望在MX=5秒内得到回复。

图像 图像

瞧。我们的小火车头媒体播放器回复我是你的渲染器并完成发现。

图像 图像

因此,为了能够使用QNAP,您应该足够幸运,您启动媒体播放器的时间足够接近QNAP搜索媒体播放器的时间,而不是相反,理论上应该是这样的。这太糟糕了。

但是,如果您正在查找同一段中的媒体服务器,Qnap会立即回复。我对下一轮调查还有疑问
  • 看起来M-Search到达了PIM设置的另一端,因为PC DLNA立即出现
  • 禁用WWW服务不是我的选择,虽然也许它拦截SSDP消息,它可以正常工作与禁用web服务(也许?)
  • 了解如何嗅探QNAP上的流量
  • 澄清问题是否与我的QNAP上的QVS配置有关,如果我禁用QVS并尝试使用常规端口配置,情况会有所改善
  • 我怀疑我是否能够调查QNAP DLNA上的事件,但也许那里有一些日志
  • 奇怪的是,斯巴达克斯也有类似的症状,但他使用Twonky而不是本地DLNA应用程序,然而以太网配置和设备型号未知。我想听听你们的评论,也许对理解问题有帮助
到目前为止,它看起来像一个QNAP问题
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月7日星期六上午10:58

你好,
谢谢分享你的成果!
我看到你正在使用本地的DLNA-Server,而不是Twonky,所以这个问题似乎是qnap特定的。

下周我还将使用VLC进行测试,以检查我的路由器配置。
https://www.administrator.de/content/de…nt - 1259332

还有一个提示:
请检查组播FW规则:
代码:选择所有
/ip firewall filter add action=passthrough chain=forward dst-address-type=组播端口=1900,1080,9080协议=udp
因为:
pass -如果数据包与规则匹配,增加计数器并转到下一个规则(对统计有用)。
Accept -接受数据包。报文没有传递到下一个防火墙规则。

我得到的信息是,改变TTL不是正确的方法。我在Wireshark中看到TTL是4,这是>1,ok。所以我们不需要这个规则。我改了,但结果还是一样。时间问题!
下周我将尝试在Fire TV Stick上安装Kodi,并尝试映射我的qnap的网络共享。如果这有效,我将禁用Twonky。

基督教
Chiverel
新手
主题作者
职位: 46
加入: 2018年1月12日星期五下午7:28

回复:工作DLNA路由示例(基本)

2018年7月7日星期六上午11:49

您是对的,该规则除了在日志中添加条目之外什么也不做。我添加它是为了看看mcast数据包是否真的击中了转发链,仅此而已。这个肮脏的解决方案比流量嗅探简单一点,基本上达到了我想要的效果。

我测试了VLC解决方案前一段时间,它工作得很好。唯一的问题是,你知道你需要提前连接到哪个流。而DLNA使用了不同的方法,它发现可用的服务器,然后你可以浏览你的NAS上动态更新的内容。例如,如果你同步一些照片,视频从其他设备到公共文件夹,它立即可用。而在VLC中,您每次都创建您的流。

如果你要运行test,试试我做的那个。在VLAN10中放置一个windows DLNA,并尝试查看它是否比其他vlan中的QNAP更快。
斯巴达克斯
成员的候选人
成员的候选人
职位: 132
加入: 2018年4月19日星期四下午6:38

回复:工作DLNA路由示例(基本)

2018年7月12日星期四下午7:01

嗨Chiverel,
我想给你一个反馈。

我决定在qnap上禁用Twonky。我在amazon Fire TV Stick和android设备上安装了Kodi,在nfs共享下一切都很好…顺便说一句,它非常快!
这对我来说很好,我想我不会再回到Twonky了。

但如果你有办法,请告诉我!
祝你好运,
基督教

谁在线?

浏览本论坛的用户:charlosg87GiallogralemantoubojiSemrush(机器人)11位客人