mDNS Announcements for _adisk._tcp

joltman

Dabbler
Joined
Jul 25, 2012
Messages
21
I'm trying to configure a Time Machine share. I've followed the guide, however I'm still not seeing mDNS announcements from FreeNAS for _adisk._tcp.local. I was under the impression from the doc that when you check TIME MACHINE on the share, that this will "enable" these mDNS annoucements. I'm only seeing _smb._tcp.local announcements from FreeNAS. Also, from asking on the IRC channel, I'm supposed to enable vfs_fruit on all SMB shares otherwise the Macs will never see the _adisk._tcp.local announcement? I'm not seeing that listed in the guide specifically. I can enable that, but I don't know what the syntax of the AUXILIARY PARAMETERS are. Is it a new parameter on each line, or do I have to throw a comma in between parameters? Here's what I currently have on my Time Machine Share:

Code:
fruit:time machine max size = 1 T
vfs_fruit


I'd really like to get this working. Thanks for the help!
 

joltman

Dabbler
Joined
Jul 25, 2012
Messages
21
OK, so I did some more poking around, and I think I was supposed to enable the "VFS Object" named "fruit". I've done that on all my SMB shares, but I'm still not seeing _adisk._tcp.local announcements. I'm seeing MANY more announcements from the NAS, more than before I did this.
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,554
If you check "time machine", then fruit will be automatically added to all shares when the smb.conf is generated. The _adisk._tcp. advertisements /registration are generated by the parent smbd process when it starts. This means that after configuring a time machine share, you will need to restart the SMB server. I think 11.2 U7 will and 11.3-Beta-1 prompts to restart the SMB service after configuring a time machine share. Automatically restarting services on share configuration changes is usually a bad idea and so we leave it up to the admin to choose whether to do this.
 

joltman

Dabbler
Joined
Jul 25, 2012
Messages
21
If you check "time machine", then fruit will be automatically added to all shares when the smb.conf is generated. The _adisk._tcp. advertisements /registration are generated by the parent smbd process when it starts. This means that after configuring a time machine share, you will need to restart the SMB server. I think 11.2 U7 will and 11.3-Beta-1 prompts to restart the SMB service after configuring a time machine share. Automatically restarting services on share configuration changes is usually a bad idea and so we leave it up to the admin to choose whether to do this.

Anodos:

Thank you for responding! So, should I remove my fruit entry from all VFS Objects, or leave it in? And I never saw a mention of restarting the service in the docs, but thank you for telling me about it! I'll give it a shot.
 

joltman

Dabbler
Joined
Jul 25, 2012
Messages
21
Anodos:

Thank you for responding! So, should I remove my fruit entry from all VFS Objects, or leave it in? And I never saw a mention of restarting the service in the docs, but thank you for telling me about it! I'll give it a shot.

OK, so there's no button in the GUI to restart the SMB service, so I went to the CLI and issued:

Code:
service samba_server restart


This restarted the service and now I'm seeing _adisk._tcp.local being announced! Huzzah!!

As part of my config, I've got my FreeNAS sitting in a different SUBNET than my LAN and WLAN clients. In order to have these mDNS announcements travel across VLANs, I had to configure Cisco's Service Routing feature. I'm running two Cisco 3750X switches in a stack. They're acting as my core switches and have VLAN interfaces for all my VLANs (LAN, WLAN, Servers, Phones, Media). I have a pfSense router above this and I'm using OSPF between the two devices. I've got a GUEST VLAN, but the interface doesn't land on the switch stack, it lands on the pfSense device. Here's my config that's allowing mDNS annoucements to cross VLANs.

Code:
ip multicast-routing distributed
service-routing mdns-sd

service-list mdns-sd REDISTRIBUTE-MDNS permit 10
  match message-type query
!
service-list mdns-sd REDISTRIBUTE-MDNS permit 20
  match message-type announcement
  match service-type _googlecast._tcp.local
!
service-list mdns-sd REDISTRIBUTE-MDNS permit 30
  match message-type announcement
  match service-type _googlerpc._tcp.local

service-list mdns-sd REDISTRIBUTE-MDNS permit 40
  match message-type announcement
  match service-type _googlezone._tcp.local

service-list mdns-sd REDISTRIBUTE-MDNS permit 50
  match message-type announcement
  match service-type _airplay._tcp.local
!
service-list mdns-sd REDISTRIBUTE-MDNS permit 60
  match message-type announcement
  match service-type _raop._tcp.local
!
service-list mdns-sd REDISTRIBUTE-MDNS permit 70
  match message-type announcement
  match service-type _adisk._tcp.local

service-list mdns-sd REDISTRIBUTE-MDNS permit 80
  match message-type announcement
  match service-type _smb._tcp.local

service-list mdns-sd REDISTRIBUTE-MDNS permit 90
  match message-type announcement
  match service-type _airport._tcp.local

service-list mdns-sd REDISTRIBUTE-MDNS deny 100
!
!
service-list mdns-sd QUERY-MDNS permit 10
  match message-type query
!
service-list mdns-sd QUERY-MDNS deny 20
!
!
service-list mdns-sd PERMIT-ALL permit 10

service-list mdns-sd ACTIVE-QUERY-CHROMECASTS query
  service-type _googlecast._tcp.local

! Test out mDNS service discovery by permitting ALL mDNS:

interface vlan10

service-routing mdns-sd
    service-policy PERMIT-ALL IN
    service-policy PERMIT-ALL OUT
    service-policy-query ACTIVE-QUERY-CHROMECASTS 110
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan12

service-routing mdns-sd
    service-policy PERMIT-ALL IN
    service-policy PERMIT-ALL OUT
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan666

service-routing mdns-sd
    service-policy PERMIT-ALL IN
    service-policy PERMIT-ALL OUT
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan19
  service-routing mdns-sd
    service-policy PERMIT-ALL IN
    service-policy PERMIT-ALL OUT
    service-policy-query ACTIVE-QUERY-CHROMECASTS 110
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan20
  service-routing mdns-sd
    service-policy PERMIT-ALL IN
    service-policy PERMIT-ALL OUT
    redistribute mdns-sd
ip pim sparse-dense-mode


! Implement locked down mDNS


interface vlan10

service-routing mdns-sd
    service-policy QUERY-MDNS IN
    service-policy PERMIT-ALL OUT
    service-policy-query ACTIVE-QUERY-CHROMECASTS 110
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan12

service-routing mdns-sd
    service-policy QUERY-MDNS IN
    service-policy PERMIT-ALL OUT
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan666

service-routing mdns-sd
    service-policy QUERY-MDNS IN
    service-policy PERMIT-ALL OUT
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan19
  service-routing mdns-sd
    service-policy REDISTRIBUTE-MDNS IN
    service-policy PERMIT-ALL OUT
    service-policy-query ACTIVE-QUERY-CHROMECASTS 110
    redistribute mdns-sd
ip pim sparse-dense-mode

interface vlan20
  service-routing mdns-sd
    service-policy REDISTRIBUTE-MDNS IN
    service-policy PERMIT-ALL OUT
    redistribute mdns-sd
ip pim sparse-dense-mode


For now, I'm using the PERMIT-ALL access list to allow all mDNS announcements/queries to cross VLAN boundaries. When I get this working a bit better, I'll lock this down more.
 
Top