h3. Для работы с программы необходимы права пользователя root, поэтому нужно включить режим [помощника|Пользователь root. Режим удаленного помощника. Постоянный удаленный помощник]:
Для диагностики работы системы рекомендуем использовать следующие программы:
*1. ping* \- доступность адреса в сети
*2. traceroute \-I* \- трассировка до узла
*3. ifconfig (утилита является устаревшей, рекомендуем использовать ip addr)* \- сетевые настройки
*4. ip addr* \- сетевые настройки
*5. ip route* \- маршрутизация
*6. ip rule* \- правила таблиц маршрутизации
*7. arp* \- просмотр таблицы arp записей
*8. arping* \- аналог команды пинг на уровне 2
*9. telnet* \- соединение с адресом по произвольному порту
*10. tcpdump* \- перехват и анализ сетевого трафика
*11. tshark* \- перехват и анализ сетевого трафика
*12 iptables* \- настройки firewall
*13. render.sh *\- построение дерева шейперов
*14. iperf* \- проверка ширины канала
*15. ethtool* \- информация по режиму работы сетевого адаптера
h2. Примеры:
h3. Стандартные
ping
{code}ping <ip>{code}
При потери пакетов, а также для различной диагностики рекомендуется проверять канал и локальную сеть.
Для сети 100мб должно быть не более 1% потерь пакетов
{code}ping -f -l 30 <ip>{code}
Для сети 1000мб должно быть не более 2-3% потерь пакетов
{code}ping -f -l 300 <ip>{code}
p.s. При этом если пингуется аппаратный маршрутизатор, данные могут сильно зависеть от его загруженности и проверять лучше связь до ПК расположенного за маршрутизатором.
Проверка наличия ip-адреса(абонента) в сети (широковещательном сегменте)
{code}
arp -n | grep ip_адрес
{code}
Проверка подмены адреса
{code}arping -D -I <название локального интерфейса> <ip>{code}
Если будет получен ответ - значит в сети произошла подмена адреса сервера. Необходимо искать виновника.
Также подмену можно обнаружить с тестового ПК:
{code}ping <ip>
arp{code}
Будет выведена arp-таблица. Необходимо сравнить mac-адрес в этой таблице с адресом сетевой карты (локальной) сервера Ideco.
Соединение с адресом <ip> и портом <port>
{code}telnet <ip> <port>{code}
6) Проведите диагностику системы;
{code}/usr/local/ics/bin/test_full{code}
h3. netstat
Данная команда показывает содержимое различных структур данных, связанных с сетью, в различных форматах в зависимости от указанных опций.
*Пример 1.*
Задача - проверить какая служба/демон "слушает" на порту 1443 и слушают ли вообще
{code}netstat -antp | grep 1443{code}
Данная команда выведет информацию какая служба/демон "слушает" на порту 1443. Если не будет никакого вывода, значит данный порт никто не "слушает"
h3. tcpdump
Для примеров примем следующие значения:\* локальный интерфейс Leth0 ip 10.0.0.1/24
* внешний интерфейс Eeth1 1.1.1.1/30 шлюз 1.1.1.2
* подсеть серых адресов абонентов 10.0.0.0/24 шлюз 10.0.0.1 dns 10.0.0.1
* тестовый абонент 10.0.0.101 и его мак-адрес 01:23:45:67:89:0a
*Пример 1.*
Задача - просмотреть icmp (ping) пакеты на локальный интерфейс ideco.
{code}tcpdump -i Leth0 -nn proto ICMP{code}
Эта команда выдаст все ICMP пакеты, проходящие через локальный интерфейс.
{code}tcpdump -i Leth0 -nn proto ICMP and host 10.0.0.1{code}
Выдает информацию о ICMP пакетах, приходящих и исходящих на локальный IP адрес.
{code}tcpdump -i Leth0 -nn proto ICMP and net 10.0.0.0/24{code}
Выдает информацию о ICMP пакетах, приходящих и исходящих из локальной сети.
{code}tcpdump -i Leth0 -nn proto ICMP and not host 10.0.0.1{code}
Выдаст все ICMP пакеты, проходящие через локальный интерфейс, кроме пакетов, которые относятся к хосту 10.0.0.1
*Пример 2.*
Нам необходимо увидеть, кто в локальной сети создает большое количество новых сессий.
{code}tcpdump -i Leth0 -nn tcp[13] == 2{code}
Команда выдаст все TCP пакеты с флагом SYN (начало сессии).
{code}tcpdump -i Leth0 -nn tcp[13] == 2 and src net 10.0.0.0/24{code}
Выдаст все SYN пакеты, где ip источника будет ip-адрес локальной сети.
*Пример 3.*
Нам необходимо проверить, что от пользователя приходят запросы к DNS серверу.
{code}tcpdump -i Leth0 -nn port 53 and host 10.0.0.101{code}
Команда выдает все dns запросы и ответы для заданного адреса.
*Пример 4.*
Анализ ARP пакетов в локальной сети.
{code}tcpdump arp -i Leth0 -nn{code}
Команда выдает все ARP пакеты на интерфейсе.
{code}tcpdump arp -i Leth0 -nn -e | grep 01:23:45:67:89:0a{code}
Команда выдает все arp запросы тестового абонента с заданным MAC-адресом.
*Пример 5.*
Проверить работу dhcp relay
{code}
tcpdump -nv -i Leth1 'udp and port 67 and port 68'
{code}
*Пример 6.*
Проверить работу PPPoE, нет ли посторонних PPPoE-серверов в сети
{code}
tcpdump -e -i Leth1 -nv 'ether proto 0x8863 or ether proto 0x8864'
{code}
*Пример 7.*
Посмотреть входящие/исходящие пакеты на порту 1443
{code}
tcpdump -nvi any port 1443
{code}
Зная определенный хост, например отправителя 1.1.1.1
{code}
tcpdump -nvi any port 1443 and host 1.1.1.1
{code}
----
Для более детального анализа различных сетевых протоколов есть очень удобная утилита Wireshark. Программа бесплатна и может быть установлена как на ОС Windows, так и на ОС Linux. Чтобы провести анализ сетевого трафика с помощью этой программы, нужно сделать на сервере дамп трафика за интересующий интервал времени и с нужными фильтрами:
{code}tcpdump arp -i Leth0 -nn -s 0 -w /mnt/rw_disc/Leth0_dump{code}
Пакеты, проходящие через локальный интерфейс, целиком запишутся в файл mnt/rw_disc/Leth0_dump. После этого нужно скачать этот файл на локальную машину и с помощью программы Wireshark провести детальный анализ.
*Пример 8.* Получить от днс сервера запись
{code}
Linux:
dig vk.com @8.8.8.8
или
host yandex.ru 8.8.8.8
windows:
nslookup mail.ru 8.8.8.8
{code}
*Пример 9.* Найти кто-шлет broadcast в сети:
Команда выведет пакеты с указанием мак-адресов посылающих широковещательные запросы.
{code}
tcpdump -nveei <interface> host 255.255.255.255
{code}
h3. Ethtool
*Пример 1.*
{code}
[root@www-example-com root]# ethtool Leth1
Settings for Leth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
{code}
Для диагностики работы системы рекомендуем использовать следующие программы:
*1. ping* \- доступность адреса в сети
*2. traceroute \-I* \- трассировка до узла
*3. ifconfig (утилита является устаревшей, рекомендуем использовать ip addr)* \- сетевые настройки
*4. ip addr* \- сетевые настройки
*5. ip route* \- маршрутизация
*6. ip rule* \- правила таблиц маршрутизации
*7. arp* \- просмотр таблицы arp записей
*8. arping* \- аналог команды пинг на уровне 2
*9. telnet* \- соединение с адресом по произвольному порту
*10. tcpdump* \- перехват и анализ сетевого трафика
*11. tshark* \- перехват и анализ сетевого трафика
*12 iptables* \- настройки firewall
*13. render.sh *\- построение дерева шейперов
*14. iperf* \- проверка ширины канала
*15. ethtool* \- информация по режиму работы сетевого адаптера
h2. Примеры:
h3. Стандартные
ping
{code}ping <ip>{code}
При потери пакетов, а также для различной диагностики рекомендуется проверять канал и локальную сеть.
Для сети 100мб должно быть не более 1% потерь пакетов
{code}ping -f -l 30 <ip>{code}
Для сети 1000мб должно быть не более 2-3% потерь пакетов
{code}ping -f -l 300 <ip>{code}
p.s. При этом если пингуется аппаратный маршрутизатор, данные могут сильно зависеть от его загруженности и проверять лучше связь до ПК расположенного за маршрутизатором.
Проверка наличия ip-адреса(абонента) в сети (широковещательном сегменте)
{code}
arp -n | grep ip_адрес
{code}
Проверка подмены адреса
{code}arping -D -I <название локального интерфейса> <ip>{code}
Если будет получен ответ - значит в сети произошла подмена адреса сервера. Необходимо искать виновника.
Также подмену можно обнаружить с тестового ПК:
{code}ping <ip>
arp{code}
Будет выведена arp-таблица. Необходимо сравнить mac-адрес в этой таблице с адресом сетевой карты (локальной) сервера Ideco.
Соединение с адресом <ip> и портом <port>
{code}telnet <ip> <port>{code}
6) Проведите диагностику системы;
{code}/usr/local/ics/bin/test_full{code}
h3. netstat
Данная команда показывает содержимое различных структур данных, связанных с сетью, в различных форматах в зависимости от указанных опций.
*Пример 1.*
Задача - проверить какая служба/демон "слушает" на порту 1443 и слушают ли вообще
{code}netstat -antp | grep 1443{code}
Данная команда выведет информацию какая служба/демон "слушает" на порту 1443. Если не будет никакого вывода, значит данный порт никто не "слушает"
h3. tcpdump
Для примеров примем следующие значения:\* локальный интерфейс Leth0 ip 10.0.0.1/24
* внешний интерфейс Eeth1 1.1.1.1/30 шлюз 1.1.1.2
* подсеть серых адресов абонентов 10.0.0.0/24 шлюз 10.0.0.1 dns 10.0.0.1
* тестовый абонент 10.0.0.101 и его мак-адрес 01:23:45:67:89:0a
*Пример 1.*
Задача - просмотреть icmp (ping) пакеты на локальный интерфейс ideco.
{code}tcpdump -i Leth0 -nn proto ICMP{code}
Эта команда выдаст все ICMP пакеты, проходящие через локальный интерфейс.
{code}tcpdump -i Leth0 -nn proto ICMP and host 10.0.0.1{code}
Выдает информацию о ICMP пакетах, приходящих и исходящих на локальный IP адрес.
{code}tcpdump -i Leth0 -nn proto ICMP and net 10.0.0.0/24{code}
Выдает информацию о ICMP пакетах, приходящих и исходящих из локальной сети.
{code}tcpdump -i Leth0 -nn proto ICMP and not host 10.0.0.1{code}
Выдаст все ICMP пакеты, проходящие через локальный интерфейс, кроме пакетов, которые относятся к хосту 10.0.0.1
*Пример 2.*
Нам необходимо увидеть, кто в локальной сети создает большое количество новых сессий.
{code}tcpdump -i Leth0 -nn tcp[13] == 2{code}
Команда выдаст все TCP пакеты с флагом SYN (начало сессии).
{code}tcpdump -i Leth0 -nn tcp[13] == 2 and src net 10.0.0.0/24{code}
Выдаст все SYN пакеты, где ip источника будет ip-адрес локальной сети.
*Пример 3.*
Нам необходимо проверить, что от пользователя приходят запросы к DNS серверу.
{code}tcpdump -i Leth0 -nn port 53 and host 10.0.0.101{code}
Команда выдает все dns запросы и ответы для заданного адреса.
*Пример 4.*
Анализ ARP пакетов в локальной сети.
{code}tcpdump arp -i Leth0 -nn{code}
Команда выдает все ARP пакеты на интерфейсе.
{code}tcpdump arp -i Leth0 -nn -e | grep 01:23:45:67:89:0a{code}
Команда выдает все arp запросы тестового абонента с заданным MAC-адресом.
*Пример 5.*
Проверить работу dhcp relay
{code}
tcpdump -nv -i Leth1 'udp and port 67 and port 68'
{code}
*Пример 6.*
Проверить работу PPPoE, нет ли посторонних PPPoE-серверов в сети
{code}
tcpdump -e -i Leth1 -nv 'ether proto 0x8863 or ether proto 0x8864'
{code}
*Пример 7.*
Посмотреть входящие/исходящие пакеты на порту 1443
{code}
tcpdump -nvi any port 1443
{code}
Зная определенный хост, например отправителя 1.1.1.1
{code}
tcpdump -nvi any port 1443 and host 1.1.1.1
{code}
----
Для более детального анализа различных сетевых протоколов есть очень удобная утилита Wireshark. Программа бесплатна и может быть установлена как на ОС Windows, так и на ОС Linux. Чтобы провести анализ сетевого трафика с помощью этой программы, нужно сделать на сервере дамп трафика за интересующий интервал времени и с нужными фильтрами:
{code}tcpdump arp -i Leth0 -nn -s 0 -w /mnt/rw_disc/Leth0_dump{code}
Пакеты, проходящие через локальный интерфейс, целиком запишутся в файл mnt/rw_disc/Leth0_dump. После этого нужно скачать этот файл на локальную машину и с помощью программы Wireshark провести детальный анализ.
*Пример 8.* Получить от днс сервера запись
{code}
Linux:
dig vk.com @8.8.8.8
или
host yandex.ru 8.8.8.8
windows:
nslookup mail.ru 8.8.8.8
{code}
*Пример 9.* Найти кто-шлет broadcast в сети:
Команда выведет пакеты с указанием мак-адресов посылающих широковещательные запросы.
{code}
tcpdump -nveei <interface> host 255.255.255.255
{code}
h3. Ethtool
*Пример 1.*
{code}
[root@www-example-com root]# ethtool Leth1
Settings for Leth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
{code}