[RESOLU] Prob de routage

Salut à tous,
Je souhaite utiliser mon serveur comme passerelle pour le web.
En claire, j’ai un lan de plusieurs PC : (IP: 192.168.0.x/y ; mask: 255.255.255.0 ; gw: 192.168.0.1 connecté sur la première carte eth0 du serveur(IP: 192.168.0.1, mask: 255.255.255.0, gw: 192.168.0.0).
Et
un wan sur la deuxième carte eth1 du serveur(IP: 192.168.1.2, mask: 255.255.255.0, gatway: 192.168.1.1), le routeur est en 192.168.1.1

Donc : toutes les requêtes de 192.168.0.xy doivent passer de 192.168.0.1 à 192.168.1.1 ?!?

Je me perds un peu :confused: et quand je fais un :

y a plus rien fonctionne :cry:

Je commets une erreur et je l’identifie pas !

Quelqu’un peut me renseigner ?
Par avance merci à tous.

salut,

[quote=pascal_1212]la première carte eth0 du serveur(IP: 192.168.0.1, mask: 255.255.255.0, gw: 192.168.0.0).[/quote] ta passerelle ne peux pas être 192.168.0.0 c’est l’adresse du réseau lui même elle ne peut être attribuée ni à une passerelle ni à une machine.

ensuite je dirais que

route add default netmask 0.0.0.0 gw 192.168.0.1 dev eth0 sur les machine clientes devrait être suffisant (voir si ton interface réseau est bien eth0).

sur le serveur la route qui va bien devrait déjà exister.

Mais je n’en suis pas sûr.

te remercie diodio13fr,
Mais cela n’a rien changé :frowning:
Quand je fait un ping de www.google.com, j’ai toujours un unknow host. Idem avec l’ip de google :frowning:
Une autre piste ?

donne les routes du serveur et d’un client, qu’on y voit plus clair. Quelles sont les règles iptables sur le serveur? iptables -S en root.

[quote=“pascal_1212”]te remercie diodio13fr,
Mais cela n’a rien changé :frowning:
Quand je fait un ping de google.com, j’ai toujours un unknow host. Idem avec l’ip de google :frowning:
Une autre piste ?
…[/quote]

ce message d’erreur peut également être issu d’un problème de DNS comme tu ping un nom de domaine, tu as bien un serveur DNS valide déclaré sur le poste?

Il faut aussi activer le partage de connexion entre tes 2 interfaces réseau sur ta passerelle :

Sinon, j’ai mis en place une passerelle comme la tienne (il y a quelques années) sur un serveur Debian en suivant ce tutoriel (qui a beaucoup évolué depuis mais qui devrait pas mal t’aider) :
formation-debian.via.ecp.fr/firewall.html

Salut à tous,
Merci du soutiens :slightly_smiling:
En effet, j’ai un 1 if_forward.
un iptables -L :

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp any
ACCEPT     esp  --  anywhere             anywhere
ACCEPT     ah   --  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ipp
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:ha-cluster
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

et un route :

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.aa.b    *               255.255.255.0   U     0      0        0 xenbr0
192.168.a.b     *               255.255.255.0   U     0      0        0 xenbr1
169.254.a.b     *               255.255.0.0     U     0      0        0 xenbr1
default         dsldevice.lan   0.0.0.0         UG    0      0        0 xenbr0

au reboot de la machine, j’ai plus mes add -net … donc ???

C’est élo0quant ?

je présume que tu as donné les routes du serveur, il faudrait aussi les routes d’un client. Et ne cache pas la fin des adresse en 192.168.x.y, ça rend la table chiante à lire, il ne peut rien t’arriver tant que tu ne donne pas ton adresse IP publique (celle qui est visible depuis le l’exterieur)

Ok, c’est un réflexe :confused:
route client(n):

192.168.0.0     *               255.255.255.0     U     0      0        0 eth0
default         192.168.0.1   0.0.0.0         UG    0      0        0 eth0

Avec les IP :
server eth1 : 192.168.0.1 255.255.255.0 192.168.0.1
server eth0 : 192.168.8.15 255.255.255.0 192.168.8.1

[quote=“pascal_1212”]
Avec les IP :
server eth1 : 192.168.0.1 255.255.255.0 192.168.0.1
server eth0 : 192.168.8.15 255.255.255.0 192.168.8.1

…[/quote]
Là tu dis que les interfaces de ton serveur sont eth0 et eth1, et dans les routes de celui ci les interfaces sont xenbr1 et xenbr0 ??

ton serveur il pingue bien www.google.fr?
tu pourrait donner dans un meme poste

  • les routes d’un client
  • les route du serveur
  • cat /etc/hosts du serveur
  • l’IP côté LAN de la passerelle (192.x.y.z) qui te permet d’aller sur internet (une box je pense)
  • tu as aussi une route vers le réseau 192.257.0.0/16, c’est quoi ce réseau?

Ok, c’est un peu brouillon.
J’ai rechargé une lenny sur un vieux disque, histoire de pas tout massacrer…
serveur lenny :
route:

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
localnet        *               255.255.255.0   U     0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         lenny1.pascal-1     0.0.0.0         UG    0      0        0 eth0
default         dsldevice.lan   0.0.0.0         UG    0      0        0 eth1

/etc/network/interfaces :

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameserver 192.168.0.1

allow-hotplug eth1
iface eth1 inet static
        address 192.168.84.15
        netmask 255.255.255.0
        network 192.168.84.0
        broadcast 192.168.84.255
        gateway 192.168.84.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.84.1

/etc/hosts:

127.0.0.1       localhost
192.168.84.15   lenny1.pascal-1 lenny1
192.168.0.1   lenny1.pascal-1  lenny1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Workstation lenny :
route :

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

/etc/network/interfaces :

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 192.168.0.12
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameserver 192.168.0.1

Là, j’ai tout donné. Y a un truc qui manque et j’arrive pas à mettre la main dessus :imp:

Note :
Serveur :
192.168.0.1 = IP serveur ET passerelle

Workstation :
192.168.0.1 = passerelle

depuis le serveur que donne

ping -c3 www.google.fr ping -c3 192.168.84.1 ping -c3 dsldevice.lan

re,
ping -c3 www.google.fr :

lenny1:~# ping -c3 www.google.fr
PING www.l.google.com (209.85.135.105) 56(84) bytes of data.
64 bytes from mu-in-f105.1e100.net (209.85.135.105): icmp_seq=1 ttl=54 time=30.0 ms
64 bytes from mu-in-f105.1e100.net (209.85.135.105): icmp_seq=2 ttl=54 time=28.1 ms
64 bytes from mu-in-f105.1e100.net (209.85.135.105): icmp_seq=3 ttl=54 time=27.9 ms

--- www.l.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 27.906/28.709/30.073/0.969 ms

ping -c3 192.168.84.1

PING 192.168.84.1 (192.168.84.1) 56(84) bytes of data.
64 bytes from 192.168.84.1: icmp_seq=1 ttl=64 time=1.61 ms
64 bytes from 192.168.84.1: icmp_seq=2 ttl=64 time=0.724 ms
64 bytes from 192.168.84.1: icmp_seq=3 ttl=64 time=0.740 ms

--- 192.168.84.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.724/1.026/1.614/0.415 ms

ping -c3 dsldevice.lan

PING dsldevice.lan (192.168.84.1) 56(84) bytes of data.
64 bytes from dsldevice.lan (192.168.84.1): icmp_seq=1 ttl=64 time=1.54 ms
64 bytes from dsldevice.lan (192.168.84.1): icmp_seq=2 ttl=64 time=0.752 ms
64 bytes from dsldevice.lan (192.168.84.1): icmp_seq=3 ttl=64 time=1.52 ms

--- dsldevice.lan ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 0.752/1.274/1.548/0.370 ms

Je suis pas sûr de comprendre le but ?

Les pings depuis le server fonctionnent.
C’est le client qui arrive pas à pinger des adresses au travers du server. Un prob de translation et/ou de routage de paquet, je dirais ?!

En fouillant sur le net,
cette fonction :

iptables -A FORWARD -i eth0 -o eth1 -m --state RELATED,ESTABLISHED -j ACCEPT

serait une instruction de routage ou translation ?

pour les pings, j’'ai cru que ton serveur ne trouvait pas dsldevice.lan c’était pour m’en assurer.
pour la règle iptables que tu as trouvé tu n’en a pas besoin puisque la politique de ton serveur sur la table FORWARD est ACCEPT donc tout peut être forwardé.

sinon Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface localnet * 255.255.255.0 U 0 0 0 eth1 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 default lenny1.pascal-1 0.0.0.0 UG 0 0 0 eth0 default dsldevice.lan 0.0.0.0 UG 0 0 0 eth1

[quote=“man route”]Gateway
The gateway address or ’*’ if none set.[/quote]
apparement les passerelles vers localnet et 192.168.0.0 ne sont pas définies

donc essaye

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 route add -net 192.168.84.0 netmask 255.255.255.0 gw 192.168.84.15 dev eth1

Ok,Je te remercie.
Il y a un truc qui me gène.
dans la config server, eth0 j’ai ip et passerelle en 192.168.0.1
Donc, quand je ping depuis une machine (exemple)192.168.0.12 sur 192.168.0.1, j’ai une sortie sans loss. Avec la même machine, je ping 192.168.84.15, jai une autre sortie aussi sans loss. Mais, toujours avec la même machine, je ping 192.168.84.1, j’ai rien :frowning: 100% loos !
C’est vrais que j’ai pas de dns sur le serveur, mais il est au bout de 192.168.84.1 que j’arrive pas à pinger.
Donc, si de 192.168.0.12 j’atteinds pas 192.168.84.1, j’atteindrais jamais ping www.google.fr !

C’est là que je me perds dans la logique !

Une piste ?

dans un client , sans trop de conviction essaye

edit dans un client!!

hélas …

dernier essai puis j’abandonne car je ne vois plus rien d’autre

[code]route add -net 0.0.0.0 netmask 0.0.0.0 gw 195.132.3.1 dev 195.132.3.198

[/code]

edit: sur le serveur

Que c’est confus, tout ça… On va reprendre de bonnes habitudes.

  1. Lister les règles iptables avec iptables-save au lieu d’iptables -L qui n’affiche qu’une information incomplète. Ainsi on fait d’une pierre deux coups : la lisibilité des règles est bien meilleure et on affiche toutes les tables en une seule commande.

  2. Afficher la table de routage avec des adresses numériques sans faire de résolution inverse qui nuit à la lisibilité, grâce à l’option -n de la commande route, ou mieux, avec la commande “ip route”.

  3. Ne pas maquiller les adresses IP privées (sert à rien) et ne pas utiliser des adresses IP privées pour maquiller des adresses publiques (confusion), la plage 192.0.2.0/24 réservées aux exemples et à la documentation les remplacera avantageusement.

  4. Rester cohérent, ne pas changer de noms d’interfaces et de plages d’adresses à chaque message.

  5. Utiliser traceroute au lieu de ping, ça permet de mieux voir où ça coince.

Accessoirement, pour que ça marche il manque probablement une route de retour vers le préfixe du LAN sur le routeur ou bien une règle de SNAT/MASQUERADE sur le “serveur”.

“Unknown host” avec une adresse IP, vraiment ?

[quote=“diodio13fr”]dernier essai puis j’abandonne car je ne vois plus rien d’autre

C’est n’importe quoi, ça. D’où sortent ces 195.132.3.x ? dev attend un nom d’interface, pas une adresse IP.