Catégories
Open-source Reseau

Tester une liaison TCP/IP avec nttcp

NTTcp est un petit utilitaire bien pratique, dans la lignée des IPerf, pour tester une liaison TCP/IP (ou UDP) en ligne de commande sous Linux. A ajouter à votre liste d’outils pour l’administrateur réseau

Installation de NTTcp

Il faut installer le logiciel sur les deux machines (ou plus) entre lesquelles vous voulez tester votre réseau TCP/IP.

Sous Ubuntu:

[shell]sudo aptitude install nttcp[/shell]

Utilisation de NTTcp

Sur la machine A ayant comme adresse IP 192.168.0.100 (d’un coté du réseau):

[shell]nttcp -i -v[/shell]

Sur la machine B (de l’autre coté du réseau à tester):

[shell]nttcp -t -T 192.168.0.100[/shell]

Par défaut, NTtcp va transférer 2048 « buffers » de 4 Kilo octets (4KB), soit un total de 8 Mo de B vers A.

Le résultat devrait ressembler à:

     Bytes  Real s   CPU s Real-MBit/s  CPU-MBit/s   Calls  Real-C/s   CPU-C/s
l  8388608    0.71    0.02     93.8840   3355.2754    2048   2865.11  102394.9
1  8388608    0.72    0.06     92.7279   1198.3084    5209   7197.55   93012.9

Les options disponibles

Pour inverser et effectuer un test de débit de A vers B, il faut utiliser l’option -r au lieu de l’option -t.

On peut notamment noter l’option -u pour forcer l’utilisation du protocole UDP en lieu et place de TCP.

Un petit coup de man:

[shell]

Usage: nttcp [local options] host [remote options]
local/remote options are:
-t transmit data (default for local side)
-r receive data
-l# length of bufs written to network (default 4k)
-m use IP/multicasting for transmit (enforces -t -u)
-n# number of source bufs written to network (default 2048)
-u use UDP instead of TCP
-g#us gap in micro seconds between UDP packets (default 0s)
-d set SO_DEBUG in sockopt
-D don’t buffer TCP writes (sets TCP_NODELAY socket option)
-w# set the send buffer space to #kilobytes, which is
dependent on the system – default is 16k
-T print title line (default no)
-f give own format of what and how to print
-c compares each received buffer with expected value
-s force stream pattern for UDP transmission
-S give another initialisation for pattern generator
-p# specify another service port
-i behave as if started via inetd
-R# calculate the getpid()/s rate from # getpid() calls
-v more verbose output
-V print version number and exit
-? print this help
-N remote number (internal use only)
default format is: %9b%8.2rt%8.2ct%12.4rbr%12.4cbr%8c%10.2rcr%10.1ccr

[/shell]

Catégories
Nagios Open-source Reseau

VNStat surveille votre bande passante

Obsolete
Merci de consulter ce billet plus récent.

VNStat est un petit utilitaire bien sympathique pour surveiller la bande passante utilisée sur les interfaces réseaux de ses machines GNU/Linux ou BSD.

Installation de VNstat

Sous GNU/Linux Ubuntu:

# sudo apt-get install vnstat

Sous FreeBSD:

# pkg_add -r vnstat

Puis ajouter la ligne suivant dans votre crontab (seulement sous FreeBSD):

*/5 * * * * root if [ -x /usr/local/bin/vnstat ] && [ `ls -l /var/db/vnstat/ | wc -l` -ge 1 ]; then /usr/local/bin/vnstat -u; fi

Déclaration des interfaces réseaux à surveiller

Imaginons que la machine à surveiller est un routeur avec deux interfaces réseaux: em0 qui est l’interface coté Internet (c’est à dire l’interface connecté à votre modem/routeur DSL) et em1 qui est l’interface coté LAN (celle connecté à vos machines).

Il faut donc effectuer la déclaration suivante qui va créer automatiquement les fichiers de base de données.

# vnstat -u -i em0 –nick « Internet »
# vnstat -u -i em1 –nick « LAN »

Utilisation de VNStat

Le crontab que nous avons configuré dans la première étape de l’installation est programmé pour se lancer toutes les 5 minutes. Il faut donc attendre un petit moment avant de pouvoir utiliser VNStat.

La première commande permet d’afficher un résumé des statistiques par interface.:

# vnstat
rx      /     tx      /    total    /  estimated
Internet (em0):
yesterday    421.40 MB  /  984.95 MB  /    1.37 GB
today     91.20 MB  /   86.35 MB  /  177.54 MB  /     294 MB

LAN (em1):
yesterday    626.97 MB  /  242.34 MB  /  869.32 MB
today      1.46 GB  /  565.40 MB  /    2.01 GB  /    3.36 GB

Statistiques sur la dernière heure avec l’option -h:

# vnstat -h
Internet (em0)                                                           14:25
^                                                        r
|                                                        r
|                                                        r
|                                                        r
|                                                        r
|                                                        r
|                                                        r
|     r                                                  r     r
|     r                                                  r  r  r
|  r  r  r                  t                 t  t       r  r  rt r  r
-+—————————————————————————>
|  15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14

h   rx (kB)    tx (kB)      h   rx (kB)    tx (kB)      h   rx (kB)    tx (kB)
15     117458      17933    23       7006      69069    07       4913      31545
16     205687      21665    00      26175      23108    08      61198      19855
17     112410      14211    01       5373       5281    09     682414      39748
18       4981       6441    02       3734       4623    10     191760      16684
19       5792      42644    03       3822       4842    11     238408      95350
20       4211       4416    04      31824      23303    12     135037      37811
21       5571       6457    05      17429     111179    13      91544      24793
22       5680      32557    06       6706     135740    14      40126       6404

Statistiques journalières avec l’option -d:

# vnstat -d
Internet (em0)  /  daily

day         rx      |     tx      |  total
————————+————-+—————————————-
14.04.    626.97 MB  |  242.34 MB  |  869.32 MB   %%%%%%%:::
15.04.      1.47 GB  |  566.67 MB  |    2.02 GB   %%%%%%%%%%%%%%%%%%:::::::
————————+————-+—————————————-
estimated     2.43 GB  |     937 MB  |    3.35 GB

Statistiques hebdomadaire avec l’option -w:

# vnstat -w
Internet (em0)  /  weekly

rx      |       tx      |    total
—————————-+—————+————–
last 7 days      2.09 GB  |    810.27 MB  |      2.89 GB
current week      2.09 GB  |    810.27 MB  |      2.89 GB
—————————-+—————+————–
estimated      5.67 GB  |      2.14 GB  |      7.82 GB

Statistiques mensuelle avec l’option -m:

# vnstat -m
Internet (em0)  /  monthly

month         rx      |      tx      |   total
————————-+————–+————————————–
Apr ’09       2.09 GB  |   810.27 MB  |     2.89 GB   %%%%%%%%%%%%%%%%::::::
————————-+————–+————————————–
estimated      4.31 GB  |     1.63 GB  |     5.93 GB

D’autres options permette d’avoir une vu en « temps réel » de la consomation de bande passante:

Calcul sur les 5 dernières secondes:

# vnstat -tr
19 packets sampled in 5 seconds
Traffic average for em4

rx           0.14 kB/s              2 packets/s
tx           0.13 kB/s              1 packets/s

Calcul instantané:

# vnstat -l
Monitoring em0…    (press CTRL-C to stop)

rx:       2.36 kB/s    11 p/s            tx:       1.46 kB/s    13 p/s

Le texte c’est bien , mais les graphes c’est mieux

Si vous avez l’âme d’un futur manager, vous êtes en train de vous dire que cet utilitaire n’est pas mal mais qu’une présentation sous forme de graphe ferait un plus bel effet dans mon prochain rapport… Heureusement, les auteurs de VNStat ont pensé à vous et vous proposent VNStati.

L’utilisation est presque la même que pour VNStat. La première commande permet de génèrer (au format PNG) un résumé des statistiques par interface (utiliser l’option -i pour fixer l’interface):

# vnstati -i em0

Statistiques sur la dernière heure avec l’option -h:

# vnstati -h

Statistiques journalières avec l’option -d:

# vnstati -d

Statistiques mensuelle avec l’option -m:

# vnstati -m

Conclusion

Bien que VNStat ne boxe pas dans la même catégorie que des logiciels comme Cacti, je trouve que c’est un bon complément à des outils comme iftop ou ntop (en beaucoup plus léger pour ce dernier). Il existe même un projet parallèle pour intégrer ces rapports dans un site Web à partir d’un front-end PHP (projet vnStat PHP frontend).

Catégories
Open-source Reseau

SJitter version 0.18

Grâce à la contribution de Thierry Legras, voici une nouvelle version de SJitter, mon outil en ligne de commande permettant de tester un réseau, notamment au niveau débit, délai et gigue. SJitter est disponible sous Linux, BSD, Mac OS X et Windows (via cygwin).

Cette nouvelle version apporte un meilleur control au niveau du tag permettant de faire les tests en IPv6 et surtout la possibilité (via l’option « -s ») de fixer le champs ToS des paquets IPv4 (très utile pour tester votre configuration QoS).

La page officielle de SJitter est ici, la forge .

Catégories
Open-source Reseau

Des cartes réseaux comme chez Free

Vous êtes admiratifs des cartes réseaux proposées sur le site de l’opérateur pour afficher en temps (presque) réel l’état de leurs liaisons ? Vous voulez faire la même chose chez vous ? Alors ce tutorial est fait pour vous…

Nous allons pour cela utiliser le logiciel open-source WeatherMap4RRD. Ce dernier peut produire des cartes de ce type:

cartefree.png

Vous avez besoin de quoi:

  • d’un logiciel permettant de produire des fichiers RRD (par exemple MRTG ou CACTI). Ces fichiers servirons de sources pour la production de la carte.
  • d’une carte de votre infrastructure (par exemple une carte de France ou de votre bâtiment) au format PNG mais n’est pas obligatoire…
  • d’un système d’exploitation de type Linux ou Windows avec un Apache/PHP correctement configuré.
  • de ce tutorial…

Installation de WeatherMap4RRD

La dernière version (1.2) date de décembre 2005 et elle est téléchargeable à cette adresse. Il existe deux versions: une version Perl (à lancer automatiquement par crontab et qui génère la carte sous la forme d’un fichier) et une version PHP qui génère directement une page HTML avec la carte. J’ai choisi pour ce tutorial d’installer cette deuxième version (le Linux magazine de mars 2008 parle de la version Perl).

# wget http://weathermap4rrd.tropicalex.net/get_file.php?id=19&path=/code&filename=weathermap4rrd-php-1.2final.tgz

# tar zxvf weathermap4rrd-php-1.2final.tgz
# cp -R weathermap4rrd-php-1.2final /var/www/html/weathermap4rrd
(remplacer /var/www/html/ par la racine de votre serveur Web)

En pointant un navigateur Web vers l’adresse de votre serveur vous devriez voir une carte par défaut.

http://localhost/weathermap4rrd

Si vous rencontrez l’erreur suivant:

WeatherMap4RRD 1.2 : An error occured : file /weathermap.conf not found. You should check that /weathermap.conf file exists.

Il est fort possible que cela vienne du fait que le script PHP n’arrive pas à trouver le fichier weathermap.conf dans votre arborescence de fichier. Le plus simple est alors de le passer un paramètre au script PHP:

http://localhost/weathermap4rrd/index.php?config=/var/www/html/weathermap4rrd/weathermap.conf

Configuration de WeatherMap4RRD

Il faut éditer le fichier weathermap.conf avec votre éditeur de texte favori.

La première chose à faire est de déclarer le nom de l’image de fond (si vous n’en avez pas, commentez la ligne avec un #). Il faut préciser au script la taille de l’image (comme si il ne pouvait pas le faire tout seul…)

BACKGROUND macarte.png

HEIGHT 800

WIDTH 421

On continue en fixant la taille de la fonte (valeur de 1 à 5), personnellement, je trouve que 1 est une bonne valeur pour la lisibilité.

FONT 1

Ensuite on fixe la position et les caractéristiques de la légende.

LEGENDPOS 500 380

LEGENDSTYLE line

Ensuite on fixe la position et les caractéristiques du titre de la cartee

TITLE « Ma carte à moi »

TITLEPOS 0 1

TITLEBACKGROUND 255 255 255

TITLEFOREGROUND 0 0 0

On doit ensuite configurer l’emplacement des fichiers HTML et PNG générés par le script (attention, le répertoire doit être en lecture/écriture pour l’utilisateur apache):

OUTPUTFILE /var/www/html/weathermap4rrd/weathermap.png

HTMLFILE /var/www/html/weathermap4rrd/weathermap.html

On entre enfin dans le vif du sujet en définissant les noeuds de notre réseau et les liaisons entre ces noeuds.

NODE PointA
POSITION 300 300
LABELTYPE round

NODE PointB
POSITION 550 75
LABELTYPE round

LINK A-B
NODES PointA – PointB
TARGET /usr/share/cacti/rra/firewall_traffic_in_130.rrd
INPOS 2
OUTPOS 1
UNIT bytes
BANDWIDTH 2000 4000
DISPLAYVALUE 1

La principale difficulté est de trouver l’emplacement du fichier RRD correspondant à cette liaison. Sous Cacti, le plus simple est d’aller dans le menu « Data sources » de la console d’administration, d’aller dans les détails de la liaison et de regarder le nom du fichier RRD.

Cacti.jpg

Une fois le fichier de configuration sauvegardé, votre nouvelle carte devrait s’afficher sans aucun problème !

Si vous avez besoin d’aller plus loin dans la configuration, je vous conseille cette lecture sur le site officiel (en Anglais).

Catégories
Reseau

Test de bande passante sur les réseaux Wifi

Le but de ce post est de tester le débit réel (pas celui inscrit sur l’emballage) des réseaux Wifi. Nous allons pour cela utiliser le logiciel Iperf dont vous pouvez trouver un tutoriel ici.

Pour effectuer ce test il faut:

  • un PC (PC°1) branché en direct (par cable Ethernet) à votre borne Wifi (ou à votre box).
  • un autre PC (PC°2) disposant d’une interface Wifi. Le plus simple étant que ce PC soit protable pour faciliter les tests.
  • une borne Wifi (ou une box) correctement configurée.

Voici un exemple de configuration:

Installation de Iperf

La première chose à faire est d’installer Iperf sur les deux PC (voir le tuto pour plus d’informations).

Test de référence sans le Wifi

C’est le test de référence sans Wifi.

Voici la configuration du test:
PC°1: Branché directement par un câble Ethernet à la borne Wifi.
PC°2: Branché directement par un câble Ethernet à la borne Wifi.

Et le test à effectuer:

TEST°1:

Sur le PC°1:
# iperf -s
------------------------------------------------------------
Client connecting to al-firewall1, TCP port 5001
TCP window size: 65.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.2 port 50953 connected with 192.168.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 66.7 MBytes 55.8 Mbits/sec

Sur le PC°2:
# iperf -c
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 56.0 KByte (default)
------------------------------------------------------------
[ 6] local 192.168.1.1 port 5001 connected with 192.168.1.2 port 50953
[ 6] 0.0-10.0 sec 66.7 MBytes 55.9 Mbits/sec

Le résultat du TEST°1 est donc: 55.9 Mbits/sec
On est déjà loin des 100 Mbps des ports Ethernet…

Test de référence avec le Wifi

C’est le test de référence avec Wifi. Le PC Wifi (PC°2) étant le plus proche que possible de la borne.

Voici la configuration du test:
PC°1: Branché directement par un câble Ethernet à la borne Wifi.
PC°2: En Wifi, proche de la borne (moins de 1 mètre).

Et le test à effectuer:

TEST°2: Moins de 1 mètre

Sur le PC°1:
# iperf -s

Sur le PC°2:
# iperf -c

Test du réseau Wifi

On va alors s’éloigner petit à petit de la borne Wifi et effectuer le même test à chaque fois.

Voici la configuration du test:
PC°1: Branché directement par un câble Ethernet à la borne Wifi.
PC°2: En Wifi, la distance à la borne dépend du test.

TEST°3: 2 mètres
TEST°4: 5 mètres
TEST°5: 10 mètres
TEST°6: 15 mètres
TEST°7: 20 mètres
TEST°8: 30 mètres

Notes: Il faut bien entendu noter si il y a des murs entre le PC°2 et la borne Wifi et si oui noter le nombre de murs.

Rapport final

Le rapport final ressemblera à:

Type de borne Wifi: Réference, configuration…
Type de PC°1: CPU, Mémoire, OS
Type de PC°2: CPU, Mémoire, OS, Chipset Wifi
Resultat du TEST°1: … Mbits/secs
Resultat du TEST°2: … Mbits/secs
Resultat du TEST°3: … Mbits/secs
Resultat du TEST°4: … Mbits/secs
Resultat du TEST°5: … Mbits/secs
Resultat du TEST°6: … Mbits/secs
Resultat du TEST°7: … Mbits/secs
Resultat du TEST°8: … Mbits/secs

Si vous faite le test chez vous merci de nous faire connaître vos résultats !