netatalk.gif Je partages de gros volumes sur le réseau, avec majoritairement des Clients Apple .
Jusqu'à maintenant, samba répondait pleinement à mon besoin, mais depuis la version Lion d'OS X, je rencontre des lenteurs plus ou moins prononcées pendant la navigation dans les volumes partagés.
Seuls les anciens postes et autres systèmes d'exploitation se comportent normalement.

N'ayant pas trouvé la cause pour le moment, j'ai décider de tester le protocole AFP, protocole de prédilection Apple ..

Sous linux, AFP == Netatalk, qui est intégré au noyau, afin de nous faciliter la tâche pour interconnecter des réseaux Apple .

Prérequis

Sous linux ( wheezy ) au moment ou j'écris ce tuto

sudo apt-get install netatalk avahi-daemon

Configuration

Afin de diffuser le service Netatalk sur le réseau, il nous faut mettre en place Avahi

netatalk

Pour avoir une idée clair des fichiers de configuration de netatalk, utiliser la commande

afpd -V

Ce qui donne

afpd 2.2.2 - Apple Filing Protocol (AFP) daemon of Netatalk
 
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
 
afpd has been compiled with support for these features:
 
          AFP versions:	1.1 2.0 2.1 2.2 3.0 3.1 3.2 3.3 
DDP(AppleTalk) Support:	Yes
         CNID backends:	dbd last tdb 
           SLP support:	No
      Zeroconf support:	Yes
  TCP wrappers support:	Yes
         Quota support:	Yes
   Admin group support:	Yes
    Valid shell checks:	Yes
      cracklib support:	Yes
        Dropbox kludge:	No
  Force volume uid/gid:	No
            EA support:	ad | sys
           ACL support:	Yes
          LDAP support:	Yes
 
             afpd.conf:	/etc/netatalk/afpd.conf
   AppleVolumes.system:	/etc/netatalk/AppleVolumes.system
  AppleVolumes.default:	/etc/netatalk/AppleVolumes.default
    afp_signature.conf:	/etc/netatalk/afp_signature.conf
      afp_voluuid.conf:	/etc/netatalk/afp_voluuid.conf
         afp_ldap.conf:	/etc/netatalk/afp_ldap.conf
       UAM search path:	/usr/lib/netatalk/
  Server messages path:	/etc/netatalk/msg/
              lockfile:	/var/run/afpd.pid

Dans mon cas, je partage un répertoire commun à tous mes utilisateurs, donc pas de login ni de mot de passe.

vim /etc/netatalk/afpd.conf

pour éviter la demande de mot de passe à la connexion, nous allons dans le fichier afpd.conf modifier la ligne suivante

- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword

par celle-ci

- -tcp -noddp -uamlist uams_guest.so,uams_dhx.so,uams_dhx2.so -nosavepassword

Afin d'activer le compte invité.

Déclarer un partage

Il ne reste plus à déclarer un partage, exemple /var/data/commun . Évidemment ce répertoire doit exister .

Nous allons déclarer ce partage dans le fichier AppleVolumes.default

vim /etc/netatalk/AppleVolumes.default

On y déclare le répertoire à partager, en ajoutant à la fin

/var/data/commun "commun" cnidscheme:dbd options:usedots,upriv,tm

Le fichier contient toutes les explications sur les options disponibles .

Avahi

Nous allons demander à Avahi de déclarer le service afpd de notre serveur sur le réseau . Nous allons donc simplement déclarer un nouveau service à avahi

vim /etc/avahi/services/afpd.service

Voici le contenu ( qui n'est pas à modifier )

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
  </service>
  <service>
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=Xserve</txt-record>
  </service>
</service-group>

Lancement des services

Nous reste plus à lancer les services netatalk et avahi fraichement configurés .

sudo /etc/init.d/netatalk restart
sudo /etc/init.d/avahi-daemon restart

Sur les postes clients, dans l'exploration réseau, vous devriez voir apparaître le partage .

Ch.