WakeOnLan dans un réseau routé

 Trucs et astuces techniques  Commentaires fermés sur WakeOnLan dans un réseau routé
Déc 222009
 

Dans un réseau routé, les broadcast ne sont pas propagé. Il est donc difficile d’envoyer les magicpackets « Wake on Lan » dans tous les segments si on y possède pas déjà au moins une machine up avec les privilèges nécessaires pour emettre des broadcasts dans ce segment.

On peut bypasser une partie du problème en encapsulant les magic packet en UDP et en l’envoyant à l’IP que le poste est censé avoir.
Cependant, si le poste en question reste inactif, la table ARP du routeur perdra la correspondance IP/MAC et le routeur se contentra de faire des requetes ARP mais sans transmettre le paquet UDP (pas de broadcast) car il n’en connais pas l’adresse unicast de destination. généralement, on recevra un paquet ICMP « host unreachable » après plusieurs timeout ARP.

On peut contourner ce second problème en ajoutant une entree statique dans la table ARP du routeur :

Par exemple, supposons un routeur ayant les interfaces suivantes
eth0 : 192.168.0.254 netmask 255.255.255.0 (MAC 00:11:22:33:44:0A)
eth1 : 192.168.20.254 netmask 255.255.255.0 (MAC 00:11:22:33:44:0B)

un machine cible hors tension ayant normalement pour pour configuration
eth0 : 192.168.20.63 netmask 255.255.255.0 gw 192.168.20.254 (MAC 00:11:22:33:44:0C)

un machine « réveil » active ayant pour pour configuration
eth0 : 192.168.0.10 netmask 255.255.255.0 gw 192.168.0.254 (MAC 00:11:22:33:44:0D)

Si la machine réveil veut envoyer un paquet UDP dans le réseau 20 à la MAC 0D supposée avoir pour IP 192.168.20.63,
Le paquet UDP sera d’abord envoyé au routeur mais celui-ci le jettra car il ne connais pas la MAC de 192.168.20.63.

On pourrait envoyer à l’adresse de broadcast 192.168.20.255 mais la plupart des routeurs ne transfèrent pas ces paquets entre les réseaux pour des raisons de sécurité évidentes… (Il suffirait d’envoyer un paquet à 255.255.255.255 pour que la TOTALITE des quelques milliards de machines qui constituent l’internet le reçoivent!!! vive le flood !!!)
L’astuce consiste donc à ajouter une seconde adresse de broadcast sous la forme d’une entrée statique dans la table ARP du routeur
192.168.20.250 > FF:FF:FF:FF:FF:FF

ainsi, en envoyant le paquet UDP à l’adress IP 192.168.20.250, le routeur l’enverra à la mac FF:FF:FF:FF:FF:FF qui se trouve être l’adresse ethernet de broadcast. Le paquet sera donc reçu par toutes les machines du réseau 20 et la machine possédant la bonne mac s’allumera.

Policy routing sous linux

 Trucs et astuces techniques  Commentaires fermés sur Policy routing sous linux
Sep 072009
 

Une fonction sympa avec linux, c’est qu’en faire un routeur fait partie des fonctions de base.
Par contre, si vous avez plusieurs lignes internet, il peut être intéressant de router sur l’une ou l’autre non pas en fonction de destinations comme le permet la table de routage « normale » mais en fonction du service demandé.

Par exemple, vous pouvez aiguiller le SSH sur la connexion lente mais peu utilisée et donc très réactive. et aiguiller le gros FTP lourdingue sur la grosse connexion rapide où passent déjà vos gros downloads de films X vos documents volumineux.

L’astuce, c’est d’employer la fonction « policy routing » du noyau et d’employer la marque netfilter pour aiguiller le trafic.

Vous n’aurez ensuite qu’a ajouter des règles de ce genre dans la table mangle

/sbin/iptables --table mangle \
               --append PREROUTING $RegleDeFiltrage \
               --jump MARK --set-mark $Direction

(bien evidemment en remplaçant $RegleDeFiltrage par quelque chose de potable et $Direction par un chiffre.)

Concernant les routes, on les crées de cette façon là.

ip rule add fwmark 1 table ADSL1
ip rule add fwmark 2 table ADSL2
ip rule add fwmark 3 table ADSL3

ip route add default via $GW_EXTERNE_ADSL1 table ADSL1
ip route add default via $GW_EXTERNE_ADSL2 table ADSL2
ip route add default via $GW_EXTERNE_ADSL3 table ADSL3
ip route add default via $GW_EXTERNE_ADSL1

Attention cependant il il y une limitation de taille !!!!
Vous ne POUVEZ pas faire conjointement du NAT « Masquerade » sur les 3 connexions.
Ca ne marchera pas.
Vous ne pouvez faire de nat et en particulier de connexion tracking que sur la route par defaut.

Dans mon exemple précédent, il faudra donc que le trafic à destination des ADSL 2 et 3 soit simplement routé et naté par la machine suivante (n’importe quelle box ADSL)

Interface Ldap Active Directory

 Trucs et astuces techniques  Commentaires fermés sur Interface Ldap Active Directory
Sep 052009
 

Apparemment, au sein d’un Active directory sur Windows 2003 R2, un utilisateur sans privilèges peut obtenir via l’interface LDAP la liste des utilisateurs présents avant lui mais ne peut pas accéder aux enregistrements créés après lui.

Si quelqu’un a une explication rationnelle, je suis preneur.