Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/01/2016, à 12:53

Toktok

Carte ethernet à latence variable

Bonjours Mesdames, Messieurs,

Voici plus d'une semaine que je m'arrache les cheveux sur la configuration d'un routeur entre deux LAN dans mon entreprise... Le routeur fonctionne, les tram passe bien entre les sous-réseaux cependant par moment (et de façon apparemment aléatoire) de gros problèmes de latences surviennent entre les interfaces de ce dernier...


  1. La topologie :

     ------  eth0: 192.168.0.x/24        enp3s0: 192.168.0.1/24   ---------    enp3s1: 192.168.1.1/24       eth0: 192.168.1.x  ------
    | Pc A |o---------------------------------------------------o| routeur |o------------------------------------------------o| Pc B |
     ------                                                       ---------                                                    ------
  2. Les symptômes :
    Lors d'un ping entre l'interface enps3s0 du routeur et l'un des poste situé sur le réseaux 192.168.0.0 les temps de latence "normaux" sont d'environ 0.150ms.
    Lors d'un ping entre l'interface enps3s1 du routeur et l'un des poste situé sur le réseaux 192.168.1.0 les temps de latence "normaux" sont également d'environ 0.150ms.
    En tant normal, les débit up/down sont aux alentours des 100Mo/s, mais parfois s'éffondre à 100Ko/s...

    Par moment les ping s'emballe et la latence aussi de façon tout à fait surprenante yikes
    Le ping devient décrémentiel !!! Autrement dit je passe de 100ms jusqu’à 0.500ms et POUF je repart a 100ms d'où une latence réseaux variables...

    Voici un extrait :

    64 bytes from 192.168.0.121: icmp_seq=2888 ttl=128 time=16.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2889 ttl=128 time=15.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2890 ttl=128 time=13.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2891 ttl=128 time=12.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2892 ttl=128 time=11.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2893 ttl=128 time=11.3 ms
    64 bytes from 192.168.0.121: icmp_seq=2894 ttl=128 time=9.91 ms
    64 bytes from 192.168.0.121: icmp_seq=2895 ttl=128 time=7.93 ms
    64 bytes from 192.168.0.121: icmp_seq=2896 ttl=128 time=5.93 ms
    64 bytes from 192.168.0.121: icmp_seq=2897 ttl=128 time=3.93 ms
    64 bytes from 192.168.0.121: icmp_seq=2898 ttl=128 time=1.92 ms
    64 bytes from 192.168.0.121: icmp_seq=2899 ttl=128 time=99.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2900 ttl=128 time=99.0 ms
    64 bytes from 192.168.0.121: icmp_seq=2901 ttl=128 time=98.0 ms
    64 bytes from 192.168.0.121: icmp_seq=2902 ttl=128 time=96.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2903 ttl=128 time=96.0 ms
    64 bytes from 192.168.0.121: icmp_seq=2904 ttl=128 time=95.0 ms
    64 bytes from 192.168.0.121: icmp_seq=2905 ttl=128 time=93.9 ms
    64 bytes from 192.168.0.121: icmp_seq=2906 ttl=128 time=92.0 ms
    64 bytes from 192.168.0.121: icmp_seq=2907 ttl=128 time=90.9 ms

    J'ai également remarquer dans le moniteur système qu'au niveau network j'avais graphiquement des plateaux (vraiment très plat lol au niveau des débit mini/maxi).

  3. Les informations :

    1. version :
      Ubuntu 15.10
      Kernel 4.2.0-25-generic x86_64

    2. lspci :

      00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
      00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
      00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
      00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
      00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
      00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
      00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
      00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
      00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5)
      00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
      00:1f.0 ISA bridge: Intel Corporation Z68 Express Chipset Family LPC Controller (rev 05)
      00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller (rev 05)
      00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
      00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller (rev 05)
      02:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 01)
      03:00.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)
      03:01.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)
      04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
      05:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
    3. lshw :

        *-network:0
             description: Ethernet interface
             produit: 82541PI Gigabit Ethernet Controller
             fabriquant: Intel Corporation
             identifiant matériel: 0
             information bus: pci@0000:03:00.0
             nom logique: enp3s0
             version: 05
             numéro de série: 00:0e:0c:da:3c:5a
             taille: 1Gbit/s
             capacité: 1Gbit/s
             bits: 32 bits
             horloge: 66MHz
             fonctionnalités: pm pcix bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full ip=192.168.0.1 latency=32 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s
             ressources: irq:19 mémoire:fe5a0000-fe5bffff mémoire:fe580000-fe59ffff portE/S:e040(taille=64) mémoire:fe560000-fe57ffff
        *-network:1
             description: Ethernet interface
             produit: 82541PI Gigabit Ethernet Controller
             fabriquant: Intel Corporation
             identifiant matériel: 1
             information bus: pci@0000:03:01.0
             nom logique: enp3s1
             version: 05
             numéro de série: 00:0e:0c:d9:e0:41
             taille: 1Gbit/s
             capacité: 1Gbit/s
             bits: 32 bits
             horloge: 66MHz
             fonctionnalités: pm pcix bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full ip=192.168.1.1 latency=32 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s
             ressources: irq:16 mémoire:fe540000-fe55ffff mémoire:fe520000-fe53ffff portE/S:e000(taille=64) mémoire:fe500000-fe51ffff
        *-network
             description: Ethernet interface
             produit: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
             fabriquant: Realtek Semiconductor Co., Ltd.
             identifiant matériel: 0
             information bus: pci@0000:04:00.0
             nom logique: enp4s0
             version: 06
             numéro de série: bc:5f:f4:37:f4:93
             taille: 10Mbit/s
             capacité: 1Gbit/s
             bits: 64 bits
             horloge: 33MHz
             fonctionnalités: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8168e-3_0.0.4 03/27/12 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
             ressources: irq:33 portE/S:d000(taille=256) mémoire:d0004000-d0004fff mémoire:d0000000-d0003fff
    4. ifconfig :

      enp3s0    Link encap:Ethernet  HWaddr 00:0e:0c:da:3c:5a  
                inet adr:192.168.0.1  Bcast:192.168.0.255  Masque:255.255.255.0
                adr inet6: fe80::20e:cff:feda:3c5a/64 Scope:Lien
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                Packets reçus:185672 erreurs:0 :0 overruns:0 frame:0
                TX packets:231886 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 lg file transmission:1000 
                Octets reçus:76631870 (76.6 MB) Octets transmis:341975128 (341.9 MB)
      
      enp3s1    Link encap:Ethernet  HWaddr 00:0e:0c:d9:e0:41  
                inet adr:192.168.1.1  Bcast:192.168.1.255  Masque:255.255.255.0
                adr inet6: fe80::20e:cff:fed9:e041/64 Scope:Lien
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                Packets reçus:1863159 erreurs:0 :34 overruns:0 frame:0
                TX packets:1266748 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 lg file transmission:1000 
                Octets reçus:1720672498 (1.7 GB) Octets transmis:1690260879 (1.6 GB)
      
      enp4s0    Link encap:Ethernet  HWaddr bc:5f:f4:37:f4:93  
                UP BROADCAST MULTICAST  MTU:1500  Metric:1
                Packets reçus:1020324 erreurs:0 :0 overruns:0 frame:0
                TX packets:1453008 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 lg file transmission:1000 
                Octets reçus:854412705 (854.4 MB) Octets transmis:1483575895 (1.4 GB)
      
      lo        Link encap:Boucle locale  
                inet adr:127.0.0.1  Masque:255.0.0.0
                adr inet6: ::1/128 Scope:Hôte
                UP LOOPBACK RUNNING  MTU:65536  Metric:1
                Packets reçus:1296152 erreurs:0 :0 overruns:0 frame:0
                TX packets:1296152 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 lg file transmission:0 
                Octets reçus:95926806 (95.9 MB) Octets transmis:95926806 (95.9 MB)
    5. interfaces :

      # interfaces(5) file used by ifup(8) and ifdown(8)
      auto lo
      iface lo inet loopback
      
      post-up iptables restore < /etc/iptables-rules.save
    6. iptables :

      ------------------------------------------
      iptables -L
      ------------------------------------------
      Chain INPUT (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain FORWARD (policy ACCEPT)
      target     prot opt source               destination         
      ACCEPT     all  --  anywhere             anywhere            
      ACCEPT     all  --  anywhere             anywhere            
      
      Chain OUTPUT (policy ACCEPT)
      target     prot opt source               destination      
         
      ------------------------------------------
      iptables -L -t nat
      ------------------------------------------
      Chain PREROUTING (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain INPUT (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain OUTPUT (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain POSTROUTING (policy ACCEPT)
      target     prot opt source               destination         
      MASQUERADE  all  --  anywhere             anywhere            
      MASQUERADE  all  --  anywhere             anywhere       
           
      ------------------------------------------
      iptables -L -t mangle
      ------------------------------------------
      Chain PREROUTING (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain INPUT (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain FORWARD (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain OUTPUT (policy ACCEPT)
      target     prot opt source               destination         
      
      Chain POSTROUTING (policy ACCEPT)
      target     prot opt source               destination      
         
      ------------------------------------------
      iptables --list-rules
      ------------------------------------------
      -P INPUT ACCEPT
      -P FORWARD ACCEPT
      -P OUTPUT ACCEPT
      -A FORWARD -i enp3s1 -j ACCEPT
      -A FORWARD -i enp3s0 -j ACCEPT
      
      ------------------------------------------
      iptables --list-rules -t nat
      ------------------------------------------
      -P PREROUTING ACCEPT
      -P INPUT ACCEPT
      -P OUTPUT ACCEPT
      -P POSTROUTING ACCEPT
      -A POSTROUTING -o enp3s0 -j MASQUERADE
      -A POSTROUTING -o enp3s1 -j MASQUERADE
      
      ------------------------------------------
      iptables --list-rules -t mangle
      ------------------------------------------
      -P PREROUTING ACCEPT
      -P INPUT ACCEPT
      -P FORWARD ACCEPT
      -P OUTPUT ACCEPT
      -P POSTROUTING ACCEPT
      ------------------------------------------
  4. La question:
    Que puis-je faire pour stabilisé cette latence, à savoir que j'ai de GROS débit de données à géré ( J'entend par la des centaines de Gigo, voir les bons jours des téras... et oui vous avez bien lus des téras !!! )


Je serais donc éternellement reconnaissant à qui pourra me dire déjà d'où provient le problème (Carte Ethernet, configuration du routeur, Bios...) et encore mieux comment résoudre le problème.
Si besoin de plus d'information, merci de me préciser la commande à tapé pour que je puisse vous faire parvenir l'output.

Cordialement,
Toktok

P.S: je sais que la config de iptables n'est pas tout à fait correct (all accept) (je n'ai pas encore eu le temps de m'y pencher...) cependant si vous avez des infos ou des tuyaux pour la bonne configuration de cette dernière en tant que routeur de je suis également preneur ! Sachant que j'ai déja lue la doc officiel du site sur le sujet. Merci !!!

EDIT: Petite précision d'importance ! Lorsque je désactive le réseaux depuis l'interface graphique du Network-Manager, et que je la réactive quelques seconde après je retrouve souvent (mais pas toujours) des temps de latence acceptable (< 1ms) durant un temps incertain...

Dernière modification par Toktok (Le 25/01/2016, à 13:00)

Hors ligne

#2 Le 25/01/2016, à 17:22

Toktok

Re : Carte ethernet à latence variable

Re-bonjours,
Après quelques recherche supplémentaire sur les pilotes lié à ces cartes j'ai remarquer que la version prise en charge par le noyaux n'étais pas la dernière (il me semble)...

Voici la sortie de ethtool --driver enp3s0 et enp3s1:

driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
bus-info: 0000:03:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Sachant que le driver sur le site d'Intel est à la version 8.0.35 !

Cependant, et c'est la où c'est énervant...
Quand je tente de faire "make install" dans le dossier /src du driver 8.0.35 télécharger depuis le site d'Intel... J'obtiens un jolie message d'erreur au combien frustrant !

/bin/sh: 1: [: -ge: unexpected operator
Makefile:198: *** *** Aborting the build. *** This driver is not supported on kernel versions older than 2.4.0. Arrêt.

... Ce driver n'est pas prévus pour un noyaux supérieur a 2.4.0 (sachant que je suis en 4.2.0)

D'où ma question :

Comment faire pour mettre à jours ce driver prévus pour un vieux noyaux ??? Ou...
mieux vaut-il que j'achète deux nouvelles carte Ethernet plus récente en priant que leurs drivers soient compatibles et qu'elles marcheront correctement sous Linux ???

Hors ligne