Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eugene B. Berdnikov                  2:5020/400     01 Apr 2005  16:21:08
 To : Eugene Grosbein
 Subject : Re: arp
 -------------------------------------------------------------------------------- 
 
 Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:
 
 EG> Линукс видит ответы. Более того, при добавлении алиаса на FreeBSD
 EG> она (без всякого arping) сама один раз посылает такой arp-request
 EG> для обновления кеша соседей и Linux его видит:
 EG> 
 EG> tcpdump -e -n -i eth0 arp
 EG> tcpdump: listening on eth0
 EG> 18:31:46.460580 0:c:f1:b8:ce:86 Broadcast arp 60: arp who-has 213.184.64.3
 EG> tell 213.184.64.3
 EG> 18:31:46.460600 0:c:f1:b8:ce:86 0:3:47:32:f0:9a arp 60: arp reply
 EG> 213.184.64.3 is-at 0:c:f1:b8:ce:86
 EG> 18:31:46.867541 0:c:f1:b8:ce:86 0:3:47:32:f0:9a arp 60: arp reply
 EG> 213.184.64.3 is-at 0:c:f1:b8:ce:86
 EG> 18:31:48.861133 0:c:f1:b8:ce:86 0:3:47:32:f0:9a arp 60: arp reply
 EG> 213.184.64.3 is-at 0:c:f1:b8:ce:86
 
  Хм... В общем, похоже на то, что делается в редхатах-7.х (у меня нет
  ASPlinux под рукой, но там, думаю, аналогично). Кусок из ifup:
 
   # update ARP cache of neighboring computers
   arping -q -A -c 1 -I ${REALDEVICE} ${IPADDR}
   ( sleep 2;
     arping -q -U -c 1 -I ${REALDEVICE} ${IPADDR} ) > /dev/null 2>&1 \
   < /dev/null &
 
  Это сначала один пакет arp-reply, а через 2 секунды - arp-request
  с oчень похожим содержимым пакетов.
 
  EBB>>  У линукса первые посылки идут с интервалом в секунду, регулируется,
  EBB>>  по-моему, в neigh.<if>.retrans_time (в jiffies).
 EG> 
 EG> net.ipv4.neigh.eth0.retrans_time = 100
 
  Да, секунда для ядер 2.4.x на x86.
 
  EBB>>  везде log_martians=1 (по всем интерфейсам), и посмотреть, нет ли чего
  EBB>>  подозрительного в логе на уровне kern.debug.
 EG> 
 EG> log_martians какой эффект имеет?
 
  Запись в лог о приходе пакетов с неправильными, с точки зрения ядра,
  адресами. Hапример, из сети 127.0.0.0/8 на нормальных интерфейсах,
  юникастовыми адресами в пакетах с бродкастовым dst_mac и тому подобным.
 
 EG> Ребутнули, не помогло.
 
  ОК. По-моему, круг подозреваемых сужается. :) Вероятнее всего, запросы
  шлёт не адаптер, и не само ядро (хотя загадка с невидимостью этих
  запросов через линуксовый tcpdump остаётся). Думаю, надо искать
  программу, которая работает через PF_PACKET. Программа эта либо
  запускается каждые две секунды, либо сидит где-то резидентно.
 
  Если резидентно, надо глянуть в /proc/net/packet, там регистрируются
  пакетные сокеты. Если непусто - надо искать владельца, через lsof,
  или пробежавшись по всем процессам и посмотрев /proc/<pid>/fd/*.
 
  Есть замечательный тул "ss" от ANK, запускать так: "ss -ap -A packet",
  название процесса, pid, и номер открытого сокета будут сразу выданы.
  Правда, в ASP может его не быть, тогда можно стянуть из пакета iproute
  на ближайшем дебиане, или взять http://sirius.ihep.su/~berd/ss (бинарий).
  По ключу --help он расскажет про свои возможности.
 
  Если в /proc/net/packet пусто, значит, либо сокет открывается перед
  отправкой пакета, и сразу закрывается, либо программа запускается
  каждые две секунды. Возможные пути:
 
  1. переименовать arping, раз уж есть подозрение на него - execve()
     должен обломиться,
  2. повесить цикл с мониторингом /proc/net/packet, задрать приоритет -
     будет большая вероятность того, что открытый сокет попадётся через
     некоторое время,
  3. если в ядре есть process accounting, включить его через pacct,
     насколько я помню, там была возможность регистрировать exec'и.
  4. просмотреть список процессов, на подозрительные натравить
     strace -f -e execve,sendto (только учтите, что где-то в районе
     ядер 2.4.17-2.4.20 была вредная фича - процесс останавливался
     при PTRACE_DETACH, надо было ему делать kill -CONT).
 
  Можно ещё убрать на время дирьку /etc/sysconfig/network-scripts,
  это исключит периодически запускающиеся скрипты.
 
  Да, и обязательно надо посмотреть выдачу "lsof -n -i@213.184.64.3",
  вдруг баг плавает мелко и попадётся на удочку сразу. :)
 -- 
  Eugene Berdnikov
 --- ifmail v.2.15dev5.3
  * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: arp   Eugene B. Berdnikov   01 Apr 2005 16:21:08 
Архивное /ru.linux/3651902a5f33.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional