Bonjour à tous
Je suis un noob en Linux :D. En fait, je découvre Linux depuis une semaine à tout casser. Chez moi, j'avais un Windows Server 2008R2 qui faisait tout un tas de trucs (DHCP, serveur web et FTP, etc). J'en ai pas forcément une grande utilité, mais c'est plutôt pour apprendre, me faire la main etc. Au fur et à mesure je lui rajoute des trucs. Il avait aussi une Active Directory.
Histoire de me lancer dans Linux, j'ai remplacé le 2008 R2 par un Debian, pour qu'il fasse la même chose. Sauf que j'ai un problème que je n'arrive pas à résoudre, j'ai presque tout essayé.
D'abord voici mon architecture :
En fait les postes se connectent en wifi à un routeur Netgear Wifi. La fonction DHCP est coupée, et il redirige tout vers le serveur via un système de route. Pourquoi ne pas avoir mis une carte Wifi directement sur le serveur ? Parce que j'en ai pas en rab :D . Ensuite le serveur fait DHCP, et donne internet à tout le monde. Il a 2 carte réseau : 1 connectée au routeur Netgear pour la partie DHCP, 1 connectée à la Freebox pour la partie NAT.
Cela fonctionnait très bien avec le 2008R2.
Actuellement, la partie DHCP fonctionne à peu près (je dis à peu près car les postes clients sous Windows doivent faire un ipconfig /release et un ipconfig /renew pour se connecter, sinon, ils tentent de se connecter avec l'IP fournie par la Freebox (car j'ai réactivé le Wifi de la Free en attendant de finir le serveur).
Nous y voilà enfin, mon problème : il ne veut pas donner internet aux PC. Lui il l'a, mais ne veut pas la partager.
Voici mes différentes configuration :
Fichier interfaces
# Loopback
auto lo
iface lo inet loopback
# Internet - Netgear
auto eth0
iface eth0 inet dhcp
# Reseau - N'force
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
Fichier de conf du dhcp (la 192.168.0.254 est l'adresse de la Freebox)
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.20;
option domain-name-servers 212.27.40.240, 212.27.40.241;
option domain-name "domaine.bipbip.fr";
option routers 192.168.0.254;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}
Mes cartes sont bien reconnues
root@Serveur-Debian:~# ifconfig | grep Ethernet
eth0 Link encap:Ethernet HWaddr 00:09:5b:05:c0:32
eth1 Link encap:Ethernet HWaddr 00:19:66:84:f1:0b
root@Serveur-Debian:~# lspci | grep Ethernet
00:07.0 Bridge: nVidia Corporation MCP61 Ethernet (rev a2)
01:0a.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller
Pour finir, dans le fichier /etc/default/isc-dhcp-server j'ai bien
INTERFACES="eth1"
J'ai tout essayé, rien à faire. D'après certains le simple fait de renseigner ceci dans le dhcp devrait fonctionner : option routers 192.168.0.254. Ce n'est pas le cas. J'ai essayé de faire un pont entre les 2 carte réseau, pas mieux. J'ai essayé l'IP Masquerade, toujours pas.
Bref, je sèche ! Surtout que j'ai déjà pas mal galéré car une des cartes réseau n'était pas reconnue .
Si vous avez une idée je suis preneur ! Merci !
# routes
Posté par mouvda . Évalué à 1.
Comment as-tu défini les routes au niveau de la machine debian?
As-tu fais la jonction entre eth0 et eth1?
bref, … reste a voir
tant va la cruche à l'eau qu'à la fin elle t'explose en pleine tête
[^] # Re: routes
Posté par Bipbip41 . Évalué à 1. Dernière modification le 12 mai 2014 à 03:33.
Voici ce que j'ai comme règles iptables :
J'ai activé le routage via sysctl -w net.ipv4.ip_forward=1 et le l'IP Masquerade via iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Par contre, qu'entends-tu par jonction entre eth0 et eth1 ? Un pont ? Car clairement je pense oublier quelque chose, mais j'ai beau écumer le net, je ne vois pas quoi…
[^] # Re: routes
Posté par benja . Évalué à 1.
Ok c'est du bon tout ça :p
Je suppose qu'il entend l'ip forwarding. Dans le cas bridge, on peut dire grosso-modo que tu n'as plus qu'un réseau (plus besoin de NAT ni de routage).
Ton problème c'est que la gateway que tu envoie au PC est la freebox alors que tu devrais envoyer l'IP LAN1 de ton serveur DHCP (cf. mon commentaire plus bàs, cas 1) NAT).
option routers 192.168.0.254; # mauvais
[^] # Re: routes
Posté par benja . Évalué à 1. Dernière modification le 12 mai 2014 à 04:32.
J'oublais, si ça marche toujours pas, donne un coup de iptables -t nat -F; iptables -F pour virer le firewall (tes policy sont en accept donc bon ça ne devrait pas poser de problème… pas très utile non plus :p)
[^] # Re: routes
Posté par NeoX . Évalué à 3.
je confirme cette reponse,
il faut changer
par
pour que tes PCs prennent ton linux comme passerelle,
qui ensuite passera les infos à la freebox.
le reste est correcte (IP forward et NAT)
mais les regles de parefeu sont inutiles puisque par defaut, tout est accepté.
# .
Posté par benja . Évalué à 1.
Comme tu le sais probablement, DHCP donne généralement une IP, l'IP de serveurs DNS, une route par défaut et un nom d'hôte. Mais il est possible d'envoyer un peu nimporte quoi comme info, cela va des trucs +/- standardisés (les options citées précedemment, un serveur NFS pour du netboot, NTP, NIS, etc) en passant par des truc complètement custom dont seul toi et le client dhcp connaissent la signification (cf. man dhcp-options, pour info il est possible de scripter le client dhcp ISC pour une flexibilité maximale).
Résumons: PC ------ DHCP ------ FREEBOX -WAN. De deux choses l'une: NAT ou pas-NAT.
1) NAT
Le PC doit recevoir la config suivante:
IP: dans le LAN1
Route par défaut: l'addresse du serveur DHCP, dans LAN1.
Au niveau du serveur DHCP: activer le routage et le masquerading sur l'interface LAN2.
2) sans NAT
Le PC reçoit la config suivante:
IP: dans LAN1
Route par défaut: IP FREEBOX dans LAN2
Route pour accéder au LAN2 (ce qui manque dans ta config, sans cela PC ne sait pas comment joindre FREEBOX): IP DHCP LAN1.
Au niveau de la box DHCP: activer le routage uniquement.
(Bon de trois chose l'une)
3) Tu pourrais aussi NATer dans l'autre sens: la freebox sur le LAN2 pour faire "comme si" la freebox est dans le LAN1 vis-à-vis des PC… mais bon là c'est un peu de couper les cheveux en 4 (quoique un bon exercice :p)
(Et de 4)
4) BRIDGE. Ben là tout le monde se retrouve dans LAN2, ton DHCP donne des IP dans LAN2 avec comme gateway la freebox. Faire attention à bien couper (ou bloquer au niveau du part-feu) le DHCP de la freebox pour éviter les interférences.
Pour activer le routage de façon non permanente : echo 1 > /proc/sys/net/ipv4/ip_forwarding (éventuellement faire de même pour ipv6). De façon permanente: éditer le fichier /etc/sysctl.conf et/ou se reporter à la documentation de la distribution.
Pour le NAT (2): iptable -t nat -A POSTROUTING -o eth0 --source 192.168.1.0/24 -j MASQUERADE
Pour envoyer la route manquante: google "dhcpd.conf static route" . Faire attention que si tu utilises les "classless static routes", il te faudra aussi ajouter la route par défaut à cette liste. (BTW, tu remarqueras que MS a décidé de faire autrement que tout le monde, tu devrais définir toi même le type et le numéro de l'option dhcp utilisée par MS).
Ensuite sur le PC, les commandes ping et route (ou leurs équivalents dans le monde MS) devraient te permettre d'avancer le diagnostique. Grosso-merdo il faut vérifier que chaque hote est joignable par les autres.
ping DHCP/LAN1
ping DHCP/LAN2
ping FREEBOX/LAN2
route show (vérifie que tu aie une route pour LAN2 et une route par défaut).
Je te conseille aussi d'essayer sans DHCP, en renseignant les IP et les routes manuellement sur le client. Dans ton cas, je suppose que tu n'as juste pas simplement activé le routage au niveau du serveur dhcp (pour router entre le LAN1 et le LAN2) et qu'il te manque une route au niveau des clients pour joindre LAN2 via l'adresse de ton serveur dans LAN1…
(Note: je fais comme si la borne wifi n'existe pas, il se peut que le problème vienne de là… au pire des cas, tester avec un cable réseau pour l'utiliser comme simple "switch")
# Vite fait
Posté par nanard . Évalué à 1. Dernière modification le 12 mai 2014 à 04:47.
C'est à la vas vite ta conf la, et elle respecte pas ton schéma!
La route donné par dhcp n'est pas la bonne, tu donne celle de la free alors que tu devrais donner l'ip de ta débian, et ensuite configurer debian pour faire du nat via iptable.
Tu a deux rezo, 192.168.1/24 et 192.168.0/24.
Je remarque aussi que le domaine.bipbip.fr existe, pour éviter les problèmes fait plutot un domaine.bipbip.lan.
Allez tous vous faire spéculer.
# Merci
Posté par Bipbip41 . Évalué à 1.
Alors j'ai suivi vos conseils, et cela fonctionne impec (y compris le fait que les clients Windows devaient faire un ipconfig /release puis un /renew pour se connecter). Bref tout est niquel, et ça fonctionne au poil.
Alors je ne l'ai pas fait à la va vite, disons que j'ai testé avec plein de config différentes et qu'au final, le fichier donnait cela au moment où je l'ai posté. Je découvre Linux hein, y a une semaine on m'aurait demandé la différence entre un cd et un cd .. j'aurai pas pu répondre :D
Bon, bah maintenant je vais attaquer les serveurs web, ftp, mail, etc !
Merci milles fois pour votre aide précieuse ;)
[^] # Re: Merci
Posté par machmalabala . Évalué à 1.
"cd" et "cd.." c'est pas Linux, c'est Posix si je ne dis pas de connerie. Et ça fonctionne également sous Windows :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.