|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (11)
просмотр истории страницыДля работы с программой tcpdump необходимы права пользователя root. |
h3. Для работы с программы необходимы права пользователя root, поэтому нужно включить режим [помощника|Пользователь root. Режим удаленного помощника. Постоянный удаленный помощник]: |
|
Для примеров примем следующие значения: * локальный интерфейс Leth0 ip 10.0.0.1/24 |
Для диагностики работы системы рекомендуем использовать следующие программы: *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-адрес в этой таблице с адресом сетевой карты (локальной) сервера Carbon Billing. Соединение с адресом <ip> и портом <port> {code}telnet <ip> <port>{code} 6) Проведите диагностику системы; {code}/usr/local/ics/bin/test_full{code} h3. traceroute В случае если при вводе команды traceroute вы получаете что то вроде {code} [root@server root]# traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 38 byte packets traceroute: sendto: Operation not permitted {code} Нужно настроить [файервол|asrdocnew:Добавление своих правил iptables. Разрешить все одному адресу. Доступ при отрицательном балансе] 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: |
Задача - просмотреть icmp (ping) пакеты на локальный интерфейс Carbon Billing. |
{code}tcpdump -i Leth0 -nn proto ICMP{code} |
... |
{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} |
... |
{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} *Пример 2. *{color:#494949}Для отладки различных ситуаций с проблемами rx/tx нужна подробная статистика, она выводится с помощью следующей команды:{color} {code} [root@www-example-com root]$ ethtool -S Leth1 NIC statistics: rx_packets: 9244765078 tx_packets: 12132738524 rx_bytes: 2844075321346 tx_bytes: 12330719323485 rx_broadcast: 3982759 tx_broadcast: 487538 rx_multicast: 2972 tx_multicast: 0 rx_errors: 18 tx_errors: 0 tx_dropped: 0 multicast: 2972 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 9 rx_frame_errors: 0 rx_no_buffer_count: 3 rx_missed_errors: 2475 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_window_errors: 0 tx_abort_late_coll: 0 tx_deferred_ok: 0 tx_single_coll_ok: 0 tx_multi_coll_ok: 0 tx_timeout_count: 0 tx_restart_queue: 409 rx_long_length_errors: 0 rx_short_length_errors: 0 rx_align_errors: 0 tx_tcp_seg_good: 0 tx_tcp_seg_failed: 0 rx_flow_control_xon: 0 rx_flow_control_xoff: 0 tx_flow_control_xon: 0 tx_flow_control_xoff: 0 rx_long_byte_count: 2844075321346 rx_csum_offload_good: 8824741871 rx_csum_offload_errors: 17871 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 {code} h3. iperf *Пример 1.* Чтобы проверить ширину канала утилитой, с одной стороны запускаем ее в режиме сервера: {code} iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ {code} На второй машине в режиме клиента с указанием адреса ПК, на котором включен режим сервера. {code} iperf -c 192.168.1.1 ------------------------------------------------------------ Client connecting to 192.168.1.1, TCP port 5001 TCP window size: 49.7 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.1.2 port 54593 connected with 192.168.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 95.31 GBytes 96.28 Gbits/sec {code} Аналогичный вывод будет на стороне сервера. |