Journal Problème avec 2 cartes réseau

Posté par  .
Étiquettes :
0
14
nov.
2003
bonjour,

Je voudrais que mon serveur avec 2 cartes réseau serve de firewall et qu'il transmette ensuite les paquets au routeur ADSL. Mon problème n'est pas le masquerading, qui se fait en une ligne avec iptables, mais le fait que les 2 cartes réseaux ne fonctionnent pas comme il faut ensemble.

Avec eth0 (10.69.12.254) je suis relié à un routeur ADSL (ip : 10.69.13.1).
et eth1 (10.69.12.253) est relié au réseau de l'entreprise (10.69.x.x - 10.69.12.14 par ex)

Les 2 cartes sont bien detectées, ont bien une ip qui répond. Mais lorsque je veux pinguer ce qu'il y à au bout de la carte, ca ne marche que sur une des 2 cartes.
Par défaut ca marche avec eth0 mais pas avec eth1.
Mais si je stop eth0 (ifdown eth0), je peux pinguer derrière eth1.
Donc les 2 cartes réseau marchent bien.

Je soupçonne un problème de routage, et vu que ca n'est pas mon fort, je ne sais pas comment faire pour que ca marche.


Voici la config de mon serveur :

Debian Woody avec mise à jour du noyau de la testing (2.4.22).

Une carte réseau integrée : #modprobe via-rhine

Nov 13 15:35:23 serveur kernel: via-rhine.c:v1.10-LK1.1.19 July-12-2003 Written by Donald Becker
Nov 13 15:35:23 serveur kernel: http://www.scyld.com/network/via-rhine.html(...)
Nov 13 15:35:23 serveur kernel: eth0: VIA VT6102 Rhine-II at 0xe800, 00:0c:76:3b:d1:b1, IRQ 23.
Nov 13 15:35:23 serveur kernel: eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.

Une carte réseau Fast Ethernet : # modprobe 8139too
Nov 13 15:36:54 serveur kernel: 8139too Fast Ethernet driver 0.9.26
Nov 13 15:36:54 serveur kernel: eth1: RealTek RTL8139 Fast Ethernet at 0xd0918f00, 00:4f:4e:14:e0:66, IRQ 18
Nov 13 15:36:54 serveur kernel: eth1: Setting half-duplex based on auto-negotiated partner ability 0000.

La configuration de ces cartes réseau (/etc/network/interfaces) :
# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 10.69.12.254
netmask 255.255.0.0
network 10.69.0.0
broadcast 10.69.255.255
gateway 10.69.13.1

auto eth1
iface eth1 inet static
address 10.69.12.253
netmask 255.255.0.0
network 10.69.0.0
broadcast 10.69.255.255
gateway 10.69.13.1


La sortie ifconfig (sans localhost pour pas encomber plus ) :
eth0 Link encap:Ethernet
inet addr:10.69.12.254 Bcast:10.69.255.255 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 TX bytes:2478 (2.4 KiB)
Interrupt:23 Base address:0xe800

eth1 Link encap:Ethernet
inet addr:10.69.12.253 Bcast:10.69.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:353 errors:0 dropped:0 overruns:0 frame:0
TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:32771 (32.0 KiB) TX bytes:12683 (12.3 KiB)
Interrupt:18 Base address:0x8f00


Et pour finir, la table de routage :
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.69.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
10.69.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 10.69.13.1 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 10.69.13.1 0.0.0.0 UG 0 0 0 eth0


Une bonne ame pourait-elle m'éclairer sur le probleme ?
  • # Re: Problème avec 2 cartes réseau

    Posté par  (site web personnel) . Évalué à 3.

    Le plus simple serait peut être de configurer les deux cartes sur deux sous-réseaux différents. Dans ta config, tu indiques que le réseau 10.69.0.0 peut être atteint via eth0, ce qui n'est pas vrai puisque ton modem routeur n'est pas accessible par eth0.
    • [^] # Re: Problème avec 2 cartes réseau

      Posté par  . Évalué à 2.

      Je plussoie vigoureuseument. D'ailleurs, cette solution correspond à une réalité : tu as deux réseaux séparés, un réseau côté entreprise et un deuxième réseau avec ton modem. Il est donc logique d'assigner deux sous-réseaux différents (par ex. 10.69.0.0/16 sur eth1 pour pas faire chier tout le monde et 10.70.0.0/16 sur eth0).
      • [^] # Re: Problème avec 2 cartes réseau

        Posté par  . Évalué à 1.

        Ok, je vous remercie, je vais essayer ca.

        Donc si j'ai bien compris, vu que mon routeur ADSL est sur le meme réseau que le reste, le meme routage est utilisé pour les paquet envoyé au routeur ou au reste, cad eth0 ( 10.69.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 )
        Je suppose que les regles suivantes sont donc ignorées car rien n'arrive sur eth1 (je vous est dit que j'étais pas doué en routage :p).

        Le fait de séparer les réseaux résoud ce problème car les paquets envoyés au routeur ne vont pas utiliser la meme regle et seront donc envoyés vers eth1 au lieu de eth0.

        J'en deduis donc que si je veux que ca marche dans l'état actuel, il faut que je rajoute une regle de routage qui soit vérifiée en 1er et qui serve à diriger les paquets à destination du routeur sur eth1.

        Cette regle ressemblerait donc à ca ?
        Destination Gateway Genmask Flags Metric Ref Use Iface
        10.69.13.1 0.0.0.0 255.255.255.255 U 0 0 0 eth1

        Merci pour votre aide :)
    • [^] # Re: Problème avec 2 cartes réseau

      Posté par  . Évalué à 1.

      Les même routes sont indiquées sur les 2 interfaces réseaux. Alors forcément, les 2 ne peuvent marcher en même temps.
      Où que l'on pingue, ça vas forcément partir sur eth0, défini en premier. Si la machine pinguée est bien sur cette interface, ça répondra, mais si elle est sur eth1, le noyau ne chercheras jamais à utilisé l'autre interface pour une même route. Par contre, c'est pour ça que ça marche en arrêtant eth0.

      Il faut donc définir 2 réseaux, comme indiqué plus haut.
      • [^] # Re: Problème avec 2 cartes réseau

        Posté par  . Évalué à 1.

        J'ignorais que si une regle correspondait, les regles suivantes seraient ignorées.
        C'est ce que j'ai déduis des commentaires du dessus.

        Merci pour la précision :)
        • [^] # Re: Problème avec 2 cartes réseau

          Posté par  . Évalué à 1.

          En fait, je ne sais pas comment ça marche exactement. Mais puisqu'il y a 2 routes identiques, et aussi précises, je ne vois pas pourquoi le noyau chercherait à essayer la suivante. Quand tu es en voiture, tu tourne dès que tu vois le panneau de ta destination, non ?

          Par contre, je pense (mais ce serait à vérifier) que si on indique explicitement la route pour le routeur, en précisant l'interface, ça devrait marcher. Mais il est beaucoup plus simple de faire 2 réseaux.
        • [^] # Passerelle sur LAN

          Posté par  . Évalué à 1.

          Accessoirement, ta passerelle figure sur les deux réseaux et c'est surtout cela qui met la brouille...

          Si tu adresses une machine résolue (hosts, resolv.conf, ...) sur 10.69.0.0, la première route passera par la première interface déclarée sur ce réseau.

          Si tu adresses une autre machine externe à 10.69.0.0, en supposant que tu ne fasses pas toi-même la résolution DNS, sur la base du/des DNS externes de /etc/resolv.conf ou de ton modem, la résolution passe par ta passerelle qui définit alors la route <=> l'interface par défaut.

          Tu peux forcer cette route par défaut avec ifconfig (man ifconfig)

          En somme, il y a de multiples façons de réaliser la même chose et si je peux te conseiller une approche :
          - comme conseillé plus haut, différencie tes deux réseaux eth0/Modem en 192.168.0.0 et eth1/LAN en 10.69.0.0. Ca limite les allocations du système de se restreindre à la classe de réseau la plus petite, c'est inutile de prendre du 10.x.x.x pour ta route ADSL et c'est plus facile de comprendre ensuite tes règles de firewall et de masquerading
          - ne définit ta passerelle (192.168.0.x donc) que sur eth0/Modem
          - ne spécifie pas de DNS directement sur la machine reliée au modem, délègue plutôt cette tâche au modem lui-même si c'est possible et configure tes machines ainsi :

          . Serveur "2 cartes réseau" :
          + eth0, gateway "Modem", LAN 192.168.0.0
          + eth1, pas de gateway, LAN 10.69.0.0
          + GLOBAL : pas de DNS ou DNS = Modem en 192.168.0.x

          . autres machines du LAN 10.63.0.0 :
          + eth0, gateway 'Serveur "2 cartes réseau" ', LAN 10.69.0.0
          + GLOBAL : pas de DNS ou DNS = 'Serveur "2 cartes réseau" ' en 10.69.0.x

          J'espère ne pas avoir dit de bêtise...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.