LINUX.ORG.RU
ФорумAdmin

Форвардинг широковещательного запроса


0

0

Доброго всем времени суток.

Имеется следующая система: роутер под Linux, он же интернет-шлюз, на интерфейсах eth0 и eth1 у него висят локальные сети 192.168.2.0/24 и 192.168.3.0/24 соответствено, форвардинг между ними в iptables разрешен.

iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.3.0/24 -j ACCEPT

iptables -A FORWARD -s 192.168.3.0/24 -d 192.168.2.0/24 -j ACCEPT

Возникла задача обеспечить возможность пользователям подсетей играть друг с другом в сетевые игры. Но если кто-то из одной подсети создает игру, в другой подсети его не видят. В ходе изучения проблемы стало ясно, что большинство игр ищут сервер в локальной сети с помощью широковещательного запроса на адрес 255.255.255.255 на какой либо специфический порт (например 6125). Отсюда и вопрос - как разрешить форвардинг таких широковещательных пакетов по определенным портам?

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

Мда... поторопился я сказать спасибо. Не все тут так просто как кажется. Я попробовал прописать подобным образом форвардинг по 6125 порту, но из одной локалки в другую широковещательные пакеты проходить так и не стали. Поставил в начале цепочек FORWARD и INPUT записывать в лог все пакеты по этому порту:

iptables -A FORWARD --dport 6125 -j LOG --log-prefix " 6125-For"

iptables -A FORWARD --dport 6125 -j LOG --log-prefix " 6125-Inp"

В результате в логах получил следующее:

Jun 27 13:09:17 localhost kernel: 6112-Inp IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:80:48:1b:1d:c5:08:00 SRC=192.168.3.3 DST=255.255.255.255 LEN=44 TOS=0x00 PREC=0x00 TTL=128 ID=2916 PROTO=UDP SPT=6125 DPT=6125 LEN=24

То есть, широковещательные запросы в данном случае поступают только в цепочку INPUT. Нужно, понятное дело, чтобы они шли в FORWARD. Что где для этого нужно подправить?

Raining_man
() автор топика
Ответ на: комментарий от Cosmicman

А что в данном случае понимать под bridge? Какой-то отдельный аппаратный девайс? Или это можно каким-то образом на машине под linux организовать? Подскажите, в каком хоть направлении копать, статьи может рекомендуете почитать какие-нибудь?

Raining_man
() автор топика
Ответ на: комментарий от spirit

А нельзя ли как-нибудь заменить в Iptables широковещательный пакет на обычный (DNAT 255.255.255.255 => 192.168.2.254), его отфорвардить, а потом опять DNAT в 255.255.255.255? Широковещательный пакет отличается только destination'ом или еще чем-то? Почему он не попадает в цепочку PREROUTING?

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

Вроде с iptables мутить бесполезно.

Можно отказаться от маршрутизации и сделать из этих 2 сетевок bridge (как советовали выше). Тогда у тебя будет не роутер, switch.

Можно попробывать помутить с демоном, который занимается трансляцией broadcast запросов (в pptpd входит под названием bcrelay, может есть и другие реализации).

Только особо не увлекайся, винда шлет много broadcast'ов, и если уж посередине есть сервер, лучше их рубить, чем зря засорять сетку.

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