LINUX.ORG.RU
ФорумAdmin

задачка про сети


0

0

есть компьютер с двумя сетевухами: eth0, eth1

eth0 Link encap:Ethernet
HWaddr 00:02:B3:50:88:D3 inet addr:5.5.5.98 Bcast:5.5.5.255
Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

eth1 Link encap:Ethernet HWaddr 00:02:B3:50:88:D4 inet addr:192.168.1.12
Bcast:192.168.1.63 Mask:255.255.255.192 UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1

cat /proc/sys/net/ipv4/ip_forward
0
route:
192.168.1.17 * 255.255.255.255 UH 0 0 0 eth1
192.168.1.16 * 255.255.255.255 UH 0 0 0 eth1
192.168.1.19 * 255.255.255.255 UH 0 0 0 eth1
5.5.5.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 5.5.5.1 0.0.0.0 UG 0 0 0 eth0

За гейтвыем 5.5.5.1 (Cisco router) стоит комп:

eth0 Link encap:Ethernet
HWaddr 00:D0:B7:72:EC:0B inet addr:5.5.5.138 Bcast:5.5.5.255
Mask:255.255.255.0 inet6 addr: fe80::2d0:b7ff:fe72:ec0b/10 Scope:Link

route:
5.5.5.0 * 255.255.255.0 U 0 0 0 eth0
loopback localhost 255.0.0.0 UG 0 0 0 lo
default 5.5.5.1 0.0.0.0 UG 0 0 0 eth0

Вопрос: Странно, что с 5.5.5.138 пингуется 192.168.1.12. Почему так ?
причём, если запустить ifconfig lo:0 192.168.1.10 up, по .10 с .138 не
пингуется, а если поднять eth1:1 192.168.1.10, то .10 с .138 пингуется,
потом .10 опускаем - не пингуется, а потом поднимает lo:0 192.168.1.10, с
.138 опять пингуется .10 !!! что за загадка такая - я не понимаю,
подскажите, plz.

anonymous

IP-адрес на интерфейсе говорит только о том, куда пакеты отсылать. То бишь, если приходит пакет от 5.138, то и отвечать ему надо с 5.98.
А "своими" машина считает адреса на всех интерфейсах (lo - по-видимому особый случай) и при приходе на эти адреса пакетов отвечает на них куда следует.
Короче, пинги машина будет принимать на любой ip-адрес, который у нее имеется. А отвечать на них будет в ту сторону, которая определяется таблицей маршрутизации.
Если рассмотреть цепочки iptables, то данный процесс даже forwarding'ом не является.

Gelin
()
Ответ на: комментарий от Gelin

т.е. как бы все ip-интерфейсы являются доступными через все сетевухи ? Т.к. если я хочу в сегменте 5.5.5 сделать ещё одну сеть 192.168, то надо на компе закрывать .12 для 5.5.5. iptables'ом ?

anonymous
()
Ответ на: комментарий от anonymous

Грубо говоря, для локального процесса, никаких различных интерфейсов-то и нет. Он слушает какой-то порт либо на одном ip-шнике, либо на всех сразу.
Есть список ip-шников, принадлежащих этому компу. Есть таблица маршрутизации, которая работает только при отправке пакетов.

Если хочешь, чтобы .12 не видился из 5.5.5. надо проверять интерфейсы:
iptables -A INPUT -i eth0 -s 5.5.5.0/24 -d 192.168.1.12 -j DROP

Насчет lo - черт его знает. На Debian 3.0 (2.4.18) его даже в таблице маршрутизации нет.

Gelin
()
Ответ на: комментарий от Gelin

А откуда 5.5.5.1 знает что надо отправлять на 5.5.5.98 ? или при поднятии .12 на eth1 он об этом сообщает и через eth0 ?

anonymous
()
Ответ на: комментарий от anonymous

Сделай tcpdump и все увидишь.

arp who-has x.x.x.12 tell 5.5.5.1
arp reply x.x.x.12 is-at y:y:y:y:y:y
5.5.5.1 > x.x.x.12: icmp: echo request (DF)
x.x.x.12 > 5.5.5.1: icmp: echo reply

Gelin
()
Ответ на: комментарий от Gelin

А как такое запретить ? нашёл vlan, а её кто-то посоветовал в ядре какую-то опцию routefilter в ядре, только я такую не нашёл.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.