Exchange, outlook… dans un monde de serveurs Linux

closeCet article a été publié il y a 11 ans 2 mois 5 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Je passe sur les raisons longuement discutées (pendant environ un an) qui nous ont poussés à installer un Exchange pour son calendrier offline (pour les hommes pressés en déplacement), sur un smartphone/outlook (port de la cravate obligatoire), son outil de CRM (cravate et grosse bagnole sont de mises), etc etc. La partie e-mail reste en Linux et la cohabitation des 2 mondes (exchange+imap linux) dans un Outlook se passera honorablement.
Il y aurait tant à dire sur les solutions de contournement qu’on n’a qu’à troller dans les commentaires si vous le souhaitez.

Avant de capituler, sachez juste que j’ai testé en long en large et en travers les solutions de synchro outlook<-> egroupware type Funambol (ex Sync4j), Funambol server et blablabli et je ne sais quoi d’autres généralement bien moisi. S’il fallait donner un bilan : Funambol, ça marche, mais ça se limite à remonter des créneaux horaires (pas des participants, pas de pièce jointe etc). Les autres solutions, ça vaut pas un cachou. Et du Zimbra etc, c’est finalement à peine moins cher qu’un Exchange, chiffres à l’appui.

Voilà, maintenant qu’on ne peut plus m’accuser d’avoir déserté sans livrer bataille, je vous livre 2/3 remarques sur le fonctionnement d’Outlook 2003 et 2007, vis-à-vis d’Exchange et d’une intégration d’un Exchange dans un environnement Linux, notamment un DNS Linux (BIND9 en l’occurrence).

Petite intro

Ces cons de clients mail fonctionnent différemment et Exchange 2007 conserve les deux modes d’accès (pour compatibilité) à certains types de données, notamment aux données disponibilités de chacun pour planifier des réunions facilement. On trouve de la doc sur le sujet, mais c’est pas simple. Et fidèle à lui-même, Microsoft n’a pas cru bon de rendre ses applications bavardes (ie, générer des logs) et à trop vouloir simplifier l’interface utilisateur (même dans un mode de configuration manuelle), certains mécanismes sont complètement occultés et quand ça merde, l’appli ne dit rien !
(Tiens j’oubliais une note positive : en Outlook 2007, l’IMAP est un peu mieux géré : on peut désigner un répertoire d’envoi sans bidouiller comme un malade…)

Imaginons donc le scénario suivant

– un serveur Exchange 2007 dans un domaine (forêt) autonome qui n’est pas le domaine SAMBA « principal » de notre réseau
(- une double maintenance d’utilisateurs dans l’Active Directory et dans l’OpenLDAP (Linux), moyennement quelques scripts, c’est tout à fait vivable.)
– des clients Outlook 2003 et 2007 avec un compte Exchange pour le calendrier et un compte IMAP pour le mail (IMAP hébergé sur Linux)

Imaginons que ça bug après une installation toute fraîche (facile hein ?)

– lorsque je planifie une réunion, je ne vois pas les infos de dispo des gens alors que je peux consulter l’agenda d’un collègue s’il m’autorise (partage)

La solution, après 12000 recherches et forums

– Pour outlook 2003 :
Disons que le serveur ait un FQDN « test.exchg.societe.com ». Le petit « exchq » dans le nom vient du nom du domaine sur lequel est installé Exchange. Donc tous les applicatifs connaissent cette machine sous ce nom complet, et pas « test.societe.com », encore moins « test ».
Manque de bol, lorsque vous déclarez votre compte Exchange dans Outlook, vous spécifiez le serveur « test » et ce tocard vous dit qu’il a trouvé et remplace votre saisie par « test.exchg.societe.com », alors même que votre PC (faisant tourner Outlook) ne sait pas résoudre ce nom complet.
De là, tout marche à peu près *sauf* l’accès aux « public folders » du serveur, donc aux infos de dispo des gens…
Il suffit donc de déclarer ce nom test.exchg dans la zone « societe.com » de votre DNS bind.
Et hop, tout se met à marcher.
Bien sûr, si outlook avait dit dès le départ « cannot find test.exchg.societe.com », j’aurais gagné 2 semaines…

– Pour Outlook 2007 :
Même genre de bordel, sauf que lui, avec un nouveau procédé « autodiscover », veut tout faire tout seul. Même souci : quand il ne trouve pas le serveur comme il le souhaite, il ne dit rien, mais ça marche mal.
Avec une trace tcpdump sur le DNS (genre : tcpdump -i ethxxx port 53 src host mon-ip-PC-client-outlook), et avec l’aide de quelques personnes sur un forum bien sympa, j’ai vu que ce bouffon de client cherchait deux enregistrements DNS :
– l’un de type A pour chercher autodiscover.masociete.com
– l’autre de type SRV, nommé _autodiscover._tcp.masociete.com
Une remarque, pour être sûr de voir la requête lors du tcpdump, videz votre cache DNS du poste client Windows avant :

C:\Documents and Settings\toto>ipconfig /flushdns

Configuration IP de Windows

Cache de résolution DNS vidé.

Enfin, pour régler le problème, vous créerez donc 2 entrées dans votre DNS, zone masociete.com :

autodiscover    A       10.x.y.z ;serveur exchange
_autodiscover._tcp      1D IN SRV 0 1 443       test.exchg ;serveur exchange

Et là, « par magie », vous voyez les infos de dispo des gens lors d’une réservation de réunion.
C’est pas bioutifoule ça ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.