Forum Linux.debian/ubuntu Comment différencier les interfaces IP ?

Posté par  .
Étiquettes : aucune
0
29
mar.
2005
Salut !

J'ai un serveur définie avec 1 carte réseau en 192.168.0.100. Le client lui a 8 interfaces sous le même sous-réseau (nécessaire pour la simulation), définie manuellement de 192.168.0.1 à 192.168.0.8. (2 cartes D-Link 4 ports 580-TX) Seulement voilà, linux (cela n'est pas vrai sous Windows) n'utilise que la première des interfaces installées. Si je ping du serveur en 192.168.0.1,...,8, que je sois en liaison directe ou non, seulement 192.168.0.1 est utilisée.
Comment faire pour que lorsque je choisis de pinguer une adresse, ce soit effectivement elle qui soit utilisée ?
J'ai eu beau modifier la table de routage, mais rien n'y fait, pas plus que d'intaller les interfaces à la main.

Merci d'avance :D

Lolo
  • # ping -I

    Posté par  . Évalué à 2.

    ping -I eth0 192.168.0.100
    ping -I eth1 192.168.0.100
    etc...
    • [^] # Re: ping -I

      Posté par  . Évalué à 1.

      Ca marche pas, il utilise toujours la même interface (c valable même pour un programme c echo udp où les adresses sont explicitement spécifiées).
  • # table de routage

    Posté par  . Évalué à 3.

    Linux va calculer le chemin le plus court (metric) pour accéder à la destination,
    Si il y a une route sur un réseau (net 192.168.0.0) avec le masque 255.255.255.0. Il peut utiliser la première interface trouvée pour soit envoyer le ping soit y répondre.

    Quand tu ping du client vers le serveur il est pas étonnant que uniquement l'interface 0.1 soit utilisé.

    par contre dans l'autre sens... la RFC dit que les adresses source et destination doivent être inversées pour constituer la réponse... donc si tu ping du serveur 0.100 le client 0.8, c'est le 0.8 qui devrait te répondre ! Cependant ceci peut rentrer en conflit avec le calcul de route optimum et l'implementation réelle. Cependant dans la requete ping ICMP, il y a un champ "Identifier et Sequence Number" qui doivent éviter les confusions pour la réponse.

    Pour la premiere partie tu peux toujours essayer de créer une route fixe pour un "host" (pour le serveur 0.100) avec la commande "route add -host ... dev ethx" avec un metric plus faible que celle utilisé pour la route net 192.168.0.0 à travers l'interface eth0. eth1 sera alors selectioné à la place de la route eth0 uniquement lors de l'acces au serveur 0.100.

    Sinon tu peux toujours créer des alias IP sur ton serveur -host (0.100,0.101,0.102...) ou -net (0.100,1.100,2.100...) et creer des routes pour chaque alias sur ton client.
    • [^] # Re: table de routage

      Posté par  . Évalué à 1.

      Alors chose que je ne savais pas, linux a un cache de routage, dans lequel il stocke côté client une unique route vers le serveur avec la première adresse optimisée en terme de distance, et la prend logiquement en metric 0. Celle-ci n'est pas modifiable en mode inet. Je ne peux donc pas utiliser une nouvelle route qui serait de metric -1 !
      Que faire ?
      • [^] # Re: table de routage

        Posté par  . Évalué à 1.

        Sinon je ne sais pas où et comment tu définis tes alias côté serveur
    • [^] # Re: table de routage

      Posté par  . Évalué à 1.

      Alors chose que je ne savais pas, linux a un cache de routage, dans lequel il stocke côté client une unique route vers le serveur avec la première adresse optimisée en terme de distance, et la prend logiquement en metric 0. Celle-ci n'est pas modifiable en mode inet. Je ne peux donc pas utiliser une nouvelle route qui serait de metric -1 !
      Que faire ?
  • # Re:

    Posté par  . Évalué à 1.

    Ca y est ça marche, mais que avec les alias serveur.
    J'ai mis chaque alias serveur sur un sous-réseau 192.168.10.x, 192.168.20.x, etc. et de même pour les clients.
    @+

Suivre le flux des commentaires

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