LINUX.ORG.RU
ФорумAdmin

Помогите с сетью пж

 , ,


0

1

Схема сети:

Роутер
192.168.0.1 ------ 192.168.0.2 
     |
     |
     |
  wlp1s0
192.168.0.4 enp2s0 ------ 192.168.0.10

В роутере:

# ip route add 192.168.0.10 via 192.168.0.4
# ip route
default via 100.XXX.XXX.X dev pppoe-wan 
100.XXX.XXX.X dev pppoe-wan scope link  src 100.YYY.YYY.YYY 
192.168.0.0/24 dev br-lan scope link  src 192.168.0.1 
192.168.0.10 via 192.168.0.4 dev br-lan 

На 192.168.0.4:

# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.0.4/32 scope global noprefixroute enp2s0
       valid_lft forever preferred_lft forever
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.0.4/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp1s0
       valid_lft 35309sec preferred_lft 35309sec
# ip route
default via 192.168.0.1 dev wlp1s0 proto dhcp src 192.168.0.4 metric 600 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.4 metric 600 
192.168.0.10 dev enp2s0 proto static scope link metric 700 
# echo 1 > /proc/sys/net/ipv4/ip_forward

Но достучаться до 192.168.0.10 не могу ни с роутера, ни с 192.168.0.2 разумеется.
Чего не хватает?

Решение: Помогите с сетью пж (комментарий)

★★★★☆

Последнее исправление: superuser (всего исправлений: 4)

Чего не хватает?

Знаний азов.

Сеть роутера 192.168.0.0/24 - это link-local сеть. 192.168.0.10 несмотря на это находится за вторым роутером. Соответственно, либо сбриджевать enp2s0 и wlp1s0, что не всегда возможно, либо таки использовать другую.

inet 192.168.0.4/32 inet 192.168.0.4/24

Абсолютная бессмысленность.

Anoxemian ★★★★★
()

Запусти tcpdump -i any -e -n icmp на всех компах и сделай пинг с роутера до 0.10, запиши что получилось в дампах, затем сделай пинг с 0.10 до роутера и тоже запиши.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от Anoxemian

Ну либо маршруты прописать на всех роутерах и самих конечных клиентах, что нужный IP адрес находится не в его же сети (в широковещательном сегменте), а за шлюзом.

Ещё можно netmap сделать или NAT для конкретного IP, но тогда нужно менять адрес не 192.168.0.2 и 192.168.0.10, а допустим 192.168.1.2 и 192.168.2.10.

kostik87 ★★★★★
()

«ip route add 192.168.0.10 via 192.168.0.4» нафиг ненужен.

нужно чтобы 192.168.0.4 отвечал на arp запрос к 192.168.0.10 своим адресом. Это называется proxy-arp.

NAT тут тоже ненужен.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от Anoxemian

Ну, я проверил, оказалось что ты врёшь. Через роутинговую таблицу прекрасно редиректятся исходящие пакеты на другой хост в той же сети.

Речь про команду route add 192.168.0.10 gw 192.168.0.4 на роутере, у автора кажется её аналог через другую прогу.

О том как заставить .0.4 изображать одинаковый айпи-адрес на обоих интерфейсах - не смотрел, возможно схема автора и рабочая. Пришлёт дампы увидим.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от Anoxemian

Ну, вообще всё логично. link-local это просто флажок на маршруте, указывающий что к этим узлам не надо искать роутер. Никакого повышенного приоритета маршруту он не создаёт. То есть у тебя есть роут для 192.168.0.0/24 link-local и более специфичный для 192.168.0.10 который для этого айпи-адреса используется приоритетно и уже не link-local.

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

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

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

Я конкретно про роутер пишу, что link-local не даёт автоматического приоритета. А так да это всем участникам придётся прописывать если идти этим путём. arp proxy или полноценный мост удобнее выходит.

firkax ★★★★★
()

Интересно, Допустим, в сторону адреса 192.168.0.10 пакеты идут через gw 192.168.0.4

А обратно от 192.168.0.10 пакеты через какой шлюз пойдут? У шлюза должно быть два адреса, по одному в каждом сегменте, иначе на него не отправить пакеты из этого сегмента.

а какой шлюз будет в обратн

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

Да там, ЕМНИП, ещё страшнее можно сделать, на 192.168.0.4 прописать:

echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp

ip route add 192.168.0.10/32 dev enp2s0

и никаких маршрутов на 192.168.0.1, 192.168.0.2, 192.168.0.10 не надо. 192.168.0.4 будет в обе стороны «фековый» arp-ответы давать, получать пакеты и маршрутизировать.

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

Да я старый, всё забываю про ip n.

Оно делает ровно тоже, что и arp -Ds ...

Но вот смотреть такие установки приходится через «ip n s proxy», что длиннее чем «arp -n»

А вот sysctl net.ipv4.conf.all.proxy_arp=1 в данном случае не нужно.

proxy_arp нужен когда мы заранее не знаем какой адрес проксировать. Такая настройка нужна когда мы раздаём адреса локалки через vpn.

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

Обратно, думаю, настраивается так:

192.168.0.4/32 = link-local

192.168.0.0/24 = gw 192.168.0.4

Какой адрес у шлюза в соседнем сегменте - для его клиентов несущественно.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от mky

Да это помогло, спасибо
Полное решение:
Прописать на 192.168.0.4

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
ip route add 192.168.0.10/32 dev enp2s0

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 3)
Ответ на: комментарий от firkax

сделай пинг с роутера до 0.10

делал

Запусти tcpdump -i any -e -n icmp на всех компах

запускал на 0.4, пакеты приходят и уходят, но уходят через enp2s0 и пингеру не приходят

затем сделай пинг с 0.10 до роутера и тоже запиши.

на железяке 0.10 нет консоли (в голове уже каша была, только щас додумался что м.б. что угодно подключить вместо неё)

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от vel

Хорошо, а то я стал сомневаться, случайно нагуглил http://linux-ip.net/html/tools-ip-neighbor.html

For those who insist on such a thing, there is support for creating and deleting proxy ARP entries with ip neighbor, although this has been deprecated. For a long discussion of this topic, see this discussion on the kernel mailing list. Other tools should be used to create proxy ARP entries.

Попытался найти ещё что-то, касательно «deprecated», но ничего не нашёл, потом понял, что это высказывание из 2003 года. Видимо всё давно пофиксили.

А «sysctl ...proxy_arp=1» позволит на 192.168.0.10 прописывать сеть 192.168.0.0/32 и шлюз 192.168.0.1. Ну то есть, удобнее, если этот комп подключать к локалке то через 192.168.0.4, то напрямую. Хотя, не знаю, может ТС такое и не нужно. Просто до кучи упомянул, надясь, что все кто не знал, побегут читать доки :)

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)