July 24th, 2008

  • dil

всё чудесатее и чудесатее

имеется обычный линукс с единственным адресом 127.0.0.1/8 на lo.

~# /sbin/ip addr sh dev lo
1: lo: <LOOPBACK,UP,LOWER_UP^gt; mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

~# ping -c 1 127.1.2.3
PING 127.1.2.3 (127.1.2.3) 56(84) bytes of data.
64 bytes from 127.1.2.3: icmp_seq=1 ttl=64 time=0.033 ms


Вопрос: почему оно работает с другими адресами из этой сети, если поднят только один - 127.0.0.1?
И это не только для icmp,
$ telnet -b 127.1.2.3 127.0.0.1 587
или, скажем,
$ telnet 127.3.4.5 22
тоже замечаетльно работают.

Опыт показывает, что Windows ведёт себя точно так же.
А Solaris и AIX - нет, они отвечают только на 127.0.0.1, хотя сеть у них тоже указана как /8. По-моему, последнее поведение разумно. Других ОС у меня под рукой не нашлось.

Ещё вопрос: почему вообще принято поднимать сразу весь 127.0.0.1/8, а не /32?

RFC 3330:
127.0.0.0/8 - This block is assigned for use as the Internet host
loopback address. A datagram sent by a higher level protocol to an
address anywhere within this block should loop back inside the host.
This is ordinarily implemented using only 127.0.0.1/32 for loopback...
Стандарт

ARP-флуд

Есть домашняя сеть. Около 1000 компьютеров.
Последнее время участники сети повадились юзать всякие NetLook’и и прочую беду, и со временем их становится все больше и больше. Еще иногда бывает подделывают arp-ответы.
В связи с этим несколько вопросов:
- как заморозить arp-таблицу
- как заставить свой комьпютер принимать arp-пакеты только от тех хостов, которые я введу руками (arptables?)
- если заблокировать всех и разрешить только сервер провайдера, смогу ли я попасть на остальные компьютеры в сети?
- возможно ли сделать так, чтобы мой компьютер принимал arp-ответы только в ответ на arp-запрос от него же?

система: Debian