Диагностика сети для начинающих.

Это краткий обзор утилит.
  1. ifconfig
  2. route
  3. ping
  4. nslookup
  5. traceroute
  6. mtr



1.ifconfig
Как посмотреть состояние интерфейсов?
Как посмотреть ip адрес?
Как посмотреть mac адрес?
Как посмотреть маску?
Как посмотреть MTU?

Все это можно сделать при помощи одной утилиты.
[root@yourhostname ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D8:9C:11
inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2207 errors:0 dropped:0 overruns:0 frame:0
TX packets:2456 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:181021 (176.7 KiB)  TX bytes:323884 (316.2 KiB)
Interrupt:169 Base address:0x1080

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1136 (1.1 KiB)  TX bytes:1136 (1.1 KiB)
Посмотрите на вывод команды первое слово это название вашего интерфейса. Чтобы вывести информацию о конкретном интерфейсе нужно выполнить команду ifconfig название интерфейса
[root@yourhostname ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:1E:D8:18
inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:1357 errors:0 dropped:0 overruns:0 frame:0
TX packets:606 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112009 (109.3 KiB)  TX bytes:91115 (88.9 KiB)
Interrupt:169 Base address:0x1080
Link encap:Ethernet - метод инкапсуляции Ethernet
HWaddr 00:0C:29:1E:D8:18 сокращение от Hardware addres или по другому Mac адрес
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0 ip адрес, широковещательный адрес, маска подсети.
UP BROADCAST RUNNING MULTICAST Означает что ваш интерфейс включен, поддерживает широковещание BROADCAST и групповую передачу MULTICAST
MTU:1500 MTU
Metric:1
метрику — числовой показатель, задающий предпочтительность маршрута. Чем меньше число, тем более предпочтителен маршрут (интуитивно представляется как расстояние).
Wikipedia Таблица маршрутизации
RX packets:1357 errors:0 dropped:0 overruns:0 frame:0 RX resive получено, packets пакеты, errors ошибки, dropped количество отклоненных пакетов, overruns переполнение очереди, frame неверный формат пакетов.
TX packets:606 errors:0 dropped:0 overruns:0 carrier:0 TX Transmit отправлено, packets пакеты, errors ошибки, dropped количество отклоненных пакетов, overruns переполнение очереди, carrier ошибки несущей частоты.
collisions:0 txqueuelen:1000 collisions коллизии, txqueuelen длина очереди передачи для устройства.

2.route
Как посмотреть таблицу маршрутизации?
Как посмотреть шлюз по умолчанию?
Таблицу маршрутизации можно посмотреть командой route.
[root@yourhostname ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
Destination адрес назначения ip сети или ip хоста
Gateway шлюз * если не задан
Genmask маска подсети для хоста маска будет 255.255.255.255
Flags доступные флаги U маршрут включен, H цель хост, G используется шлюз, R восстановить маршрут для динамической маршрутизации, D динамически установлен демоном или перенаправлением, M изменен демоном или перенаправлением, A установлен утилитой addconf, С запись из кеша, ! игнорировать маршрут.
Metric Метрика
Ref Количество ссылок на этот маршрут. (Не используется в ядре Linux.)
Iface интерфейс через который будут проходить пакеты.
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 Это и есть наш шлюз по умолчанию.

3.ping
Самая простая утилита для проверки доступности хоста. Используется протокол ICPM
Синтаксис ping [опции] имя хоста или его ip адрес
В отличии от аналогичной утилиты в Windows в Lnux-е утилита будет работать до тех пор пока вы явно не прервете. Чтобы прервать выполнение нужно нажать сочетание клавиш Ctrl+c
Проверяем доступность шлюза.
[root@yourhostname ~]# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.90 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.37 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=1.61 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.978 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=1.23 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=1.86 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=1.44 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=1.58 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=1.10 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=1.57 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=1.61 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=1.54 ms

--- 192.168.0.1 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11007ms
rtt min/avg/max/mdev = 0.978/1.569/2.902/0.465 ms
Вывод читается следующим образом.
PING 192.168.0.1{имя хоста} (192.168.0.1{ip адрес}) 56{размер данных в байтах}(84{размер пакета в байтах |данные+заголовок icmp+заголовок IP| 56+8+20}) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.90 ms Получено 64 байт от хоста 192.168.0.1, пакет №1, время жизни пакета 64(ttl) за время 2.90 миллисекунд
--- 192.168.0.1 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11007ms
rtt min/avg/max/mdev = 0.978/1.569/2.902/0.465 ms
статистика пинга 12 пакетов отправлено 12 получено 0% потерь, затраченное время 11007 миллисекунд.
rtt ((RTT, от англ. Round Trip Time) позволяет определять двусторонние задержки минимальная задержка 0.978, среднее значение 1.569, максимальная задержка 2.902, среднее отклонение (mdev для потоковых сервисов таких как skype, youtube, онлайн игры данный параметр наряду с задержкой играет важную роль, по сути он означает стабильность канала.) 0.465
Также проверим доступность DNS сервера.
Что если мы хотим отправить определенное количество пакетов например 10? Для этого нам нужно использовать опцию -c количество пакетов
[root@yourhostname ~]# ping -c 10 8.8.4.4
PING 8.8.4.4 (8.8.4.4) 56(84) bytes of data.
64 bytes from 8.8.4.4: icmp_seq=1 ttl=51 time=279 ms
64 bytes from 8.8.4.4: icmp_seq=2 ttl=51 time=305 ms
64 bytes from 8.8.4.4: icmp_seq=3 ttl=51 time=225 ms
64 bytes from 8.8.4.4: icmp_seq=4 ttl=51 time=304 ms
64 bytes from 8.8.4.4: icmp_seq=5 ttl=51 time=291 ms
64 bytes from 8.8.4.4: icmp_seq=6 ttl=51 time=277 ms
64 bytes from 8.8.4.4: icmp_seq=7 ttl=51 time=291 ms
64 bytes from 8.8.4.4: icmp_seq=8 ttl=51 time=294 ms
64 bytes from 8.8.4.4: icmp_seq=9 ttl=51 time=308 ms
64 bytes from 8.8.4.4: icmp_seq=10 ttl=51 time=308 ms

--- 8.8.4.4 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9000ms
rtt min/avg/max/mdev = 225.374/288.686/308.575/23.670 ms
Пингом можно пофлудить мягко с помощью опции -i интервал в секунадх и жестко с помощью опции -f.
[root@yourhostname ~]# ping -c 10 -i 0.001 8.8.4.4
PING 8.8.4.4 (8.8.4.4) 56(84) bytes of data.
64 bytes from 8.8.4.4: icmp_seq=1 ttl=52 time=75.6 ms
64 bytes from 8.8.4.4: icmp_seq=2 ttl=52 time=75.9 ms
64 bytes from 8.8.4.4: icmp_seq=3 ttl=52 time=76.0 ms
64 bytes from 8.8.4.4: icmp_seq=4 ttl=52 time=81.6 ms
64 bytes from 8.8.4.4: icmp_seq=5 ttl=52 time=82.2 ms
64 bytes from 8.8.4.4: icmp_seq=6 ttl=52 time=84.3 ms
64 bytes from 8.8.4.4: icmp_seq=7 ttl=52 time=84.1 ms
64 bytes from 8.8.4.4: icmp_seq=8 ttl=52 time=86.0 ms
64 bytes from 8.8.4.4: icmp_seq=9 ttl=52 time=85.8 ms
64 bytes from 8.8.4.4: icmp_seq=10 ttl=52 time=86.2 ms

--- 8.8.4.4 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 87ms
rtt min/avg/max/mdev = 75.607/81.818/86.251/4.165 ms, pipe 8
Было послано 10 пакетов 0% потерь за время 87 миллисекунд, минимальная задержка 75.607 мс, средняя 81.818мс, максимальная 86.251мс, среднее отклонение 4.165(его еще называют jitter или по русски дрожанием канала), новый параметр pipe точного ответа что этот параметр обозначает я к сожалению не нашел, наиболее вероятный ответ на мой взгляд это количество потоков которые обработали ICMP запросы.
Давайте пофлудим
[root@yourhostname SOURCES]# ping  -c10 -f 8.8.4.4
PING 8.8.4.4 (8.8.4.4) 56(84) bytes of data.

--- 8.8.4.4 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 111ms
rtt min/avg/max/mdev = 76.611/79.931/81.929/1.472 ms, pipe 7, ipg/ewma 12.360/80.157 ms
Было послано 10 пакетов, вернулось 10 паетов, 0% потерь, за время 111мс, мин задержка 76.611, средняя 79.931мс, максимальная 81.929мс, среднее отклонение 1.472мс, pipe 7, ipg интервал между кадрами(этот интервал предназначен для того чтобы адаптер подготовился к принятию следующего кадра(фрейма) чтобы избежать колизий) 12.360мс, ewma (экспоненциально взвешенное скользящее среднее) это почти тоже самое что и среднее значение только для каждого пакета указан его вес(значимость), более поздние пакеты имеют больший вес чем более ранние. Сравнив среднее значение с ewma мы может сделать вывод что задержка увеличилась в конце пинга 79.931<80.157.
Очень аккуратно используйте опции -i и -f это может противоречить законодательству вашей страны и договору с провайдером см тут.
4.nslookup
Проверим работоспособность нашего DNS.
[root@yourhostname ~]# nslookup google.com
Server:         8.8.4.4
Address:        8.8.4.4#53

Non-authoritative answer:
Name:   google.com
Address: 74.125.79.104
Name:   google.com
Address: 74.125.79.99
Name:   google.com
Address: 74.125.79.147
Первые две строки это ip адрес и порт DNS сервера с которого была получена информация.
Non-authoritative answer: означает что данный DNS не отвечает за зону то есть не является primary для доменного имени google.com
Далее мы видим что google.com доступен по трем ip адресам 74.125.79.104, 74.125.79.99, 74.125.79.147
5.traceroute
Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP. Traceroute основана на протоколе ICMP.
Wikipedia
Очень хорошо про traceroute написано тут.
В CentOs по умолчанию traceroute работает по протоколу UDP чтобы использовать протокл ICMP нужно указать опцию -I.
6.mtr
mytraceroute
Инструмент вобравший в себя возможности утилит traceroute и ping. Строиться маршрут следования, после чего кажды узел маршрута пингуеться. Маршрут следования вычисляется после каждого цикла.
Давайте пробовать.
[root@yourhostname ~]# mtr google.com
Команда без дополнительных опций будет выполняться то тех пор пока вы не прервете ее выполнение нажатие клавиши q (quit). При этом результат не будет сохранен на экране. Чтобы получить отчет нужно добавить опцию -r(--report). При это вы не увидите хода выполнения программы а получите только готовый результат. По умолчанию отправляется 10 пакетов.
[root@yourhostname ~]# mtr -r google.com
yourhostname                      Snt: 10    Loss%  Last   Avg  Best  Wrst StDev
192.168.0.1                                   0.0%   3.0   2.3   1.4   3.0   0.5
???                                          100.0   0.0   0.0   0.0   0.0   0.0
94.141.64.125                                 0.0%  34.0  44.8  34.0  98.3  19.0
94.141.64.158                                 0.0%  38.9  44.2  32.1  75.3  14.0
94.141.64.161                                 0.0%  49.3  41.1  27.4  49.3   6.2
80.80.209.149                                 0.0%  32.4  70.5  29.1 311.3  86.9
80.80.209.2                                   0.0%  42.8  57.4  11.6 244.3  66.4
195.69.188.146                                0.0%  41.9  53.2  25.5 176.3  44.7
82.200.157.249                               10.0% 103.5 103.7  56.6 119.1  18.3
???                                          100.0   0.0   0.0   0.0   0.0   0.0
82.200.154.222                                0.0%  93.3 100.8  93.3 107.6   4.0
209.85.255.176                                0.0% 102.0 104.3  96.4 112.6   5.3
209.85.254.116                                0.0%  98.0 102.6  97.4 110.4   4.4
209.85.249.166                               50.0% 108.9 108.9  99.2 119.9   8.8
fx-in-f105.1e100.net                         10.0% 106.1 109.4 100.3 132.3  10.5
Расшифровываем.
Snt: 10 было послано 10 пакетов.
Loss% потеряно в %.
Last последний пинг мс.
Avg средняя задержка мс.
Best лучший пинг мс.
Wrst (worst) худший пинг мс.
StDev Стандартное отклонение тоже само что и среднее.
Чтобы отправить определенное количество пакетов воспользуйтесь опцией -c

Комментарии

Популярные сообщения