Диагностика сети для начинающих.
Это краткий обзор утилит.
1.ifconfig
Как посмотреть состояние интерфейсов?
Как посмотреть ip адрес?
Как посмотреть mac адрес?
Как посмотреть маску?
Как посмотреть MTU?
Все это можно сделать при помощи одной утилиты.
Посмотрите на вывод команды первое слово это название вашего интерфейса. Чтобы вывести информацию о конкретном интерфейсе нужно выполнить команду ifconfig название интерфейса
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
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.
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
Проверяем доступность шлюза.
Вывод читается следующим образом.
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 количество пакетов
Пингом можно пофлудить мягко с помощью опции -i интервал в секунадх и жестко с помощью опции -f.
Было послано 10 пакетов 0% потерь за время 87 миллисекунд, минимальная задержка 75.607 мс, средняя 81.818мс, максимальная 86.251мс, среднее отклонение 4.165(его еще называют jitter или по русски дрожанием канала), новый параметр pipe точного ответа что этот параметр обозначает я к сожалению не нашел, наиболее вероятный ответ на мой взгляд это количество потоков которые обработали ICMP запросы.
Давайте пофлудим
Было послано 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.
Первые две строки это 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
В CentOs по умолчанию traceroute работает по протоколу UDP чтобы использовать протокл ICMP нужно указать опцию -I.
6.mtr
mytraceroute
Инструмент вобравший в себя возможности утилит traceroute и ping. Строиться маршрут следования, после чего кажды узел маршрута пингуеться. Маршрут следования вычисляется после каждого цикла.
Давайте пробовать.
Команда без дополнительных опций будет выполняться то тех пор пока вы не прервете ее выполнение нажатие клавиши q (quit). При этом результат не будет сохранен на экране. Чтобы получить отчет нужно добавить опцию -r(--report). При это вы не увидите хода выполнения программы а получите только готовый результат. По умолчанию отправляется 10 пакетов.
Расшифровываем.
Snt: 10 было послано 10 пакетов.
Loss% потеряно в %.
Last последний пинг мс.
Avg средняя задержка мс.
Best лучший пинг мс.
Wrst (worst) худший пинг мс.
StDev Стандартное отклонение тоже само что и среднее.
Чтобы отправить определенное количество пакетов воспользуйтесь опцией -c
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)
[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
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
метрику — числовой показатель, задающий предпочтительность маршрута. Чем меньше число, тем более предпочтителен маршрут (интуитивно представляется как расстояние).RX packets:1357 errors:0 dropped:0 overruns:0 frame:0 RX resive получено, packets пакеты, errors ошибки, dropped количество отклоненных пакетов, overruns переполнение очереди, frame неверный формат пакетов.
Wikipedia Таблица маршрутизации
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
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
[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
Давайте пофлудим
[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
Очень аккуратно используйте опции -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
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.Очень хорошо про traceroute написано тут.
Wikipedia
В CentOs по умолчанию traceroute работает по протоколу UDP чтобы использовать протокл ICMP нужно указать опцию -I.
6.mtr
mytraceroute
Инструмент вобравший в себя возможности утилит traceroute и ping. Строиться маршрут следования, после чего кажды узел маршрута пингуеться. Маршрут следования вычисляется после каждого цикла.
Давайте пробовать.
[root@yourhostname ~]# mtr google.com
[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
Комментарии
Отправить комментарий