Jump to content
Калькуляторы

Broadcast - как!? (головоломка) 255.255.255.255 - как сделать чтоб подключённым всем доходило?

Есть локалка: 192.168.1.0/24

Стоит роутер на фряхе, через который инет и с инета подключаются клиенты по L2TP с винды, получают адреса из локалки.

mpd5 заведует инетом и vpn.

 

 

Как сделать так, чтобы любой пакет отправленный клиентом сети 192.168.1.0/24 на адрес 255.255.255.255 доставлялся всем?

 

 

 

 

PS: что есть/опробовано

по умолчанию пакеты на 255.255.255.255 пропадают в роутере и в сеть от клиента впн или из сети клиенту впн не проходят.

 

- if_bridge - отказался жрать ng* интерфейсы

 

- роутинг принимает только один адрес назначения для адреса назначения 255.255.255.255

 

- pf в принципе не отказывался, и конструкция вида: pass in quick on ng0 dup-to (em0 192.168.1.1) from any to 255.255.255.255 (em0 -сетевуха в локалке, 192.168.1.1 - существующий и доступный адрес в локалке, если адрес не доступен - слать не будет ибо мак не найдёт) работает, но она совсем статическая и прописывать придётся много, в случае больше 1 клиента

 

- ipfw не пробовал, думаю будет тоже самое что с пф: придётся как то генерировать оч много правил

 

- сорсроутинг: не пробовал даже читать про него

 

- ng_bridge: не хватило ума подцепить ноду iface от mdp5 к бриджу :(

сам бридж создал, физ сетевуху добавил, eiface создал, IP назначил - работает

Share this post


Link to post
Share on other sites

Ну так пусть вот это:

 

pass in quick on ng0 dup-to (em0 192.168.1.1) from any to 255.255.255.255

добавляется/убирается автоматом при создании/удалении ngX

proxy arp используется?

Share this post


Link to post
Share on other sites
proxy arp используется?
да

set iface enable proxy-arp tcpmssfix

 

 

добавляется/убирается автоматом при создании/удалении ngX
Мне нужно будет генерировать !n+1 правил (или больше) и в случае с pf - перезагружать правила.

Почему много правил?

- потому что нужно прописывать будет чтобы от каждого впн клиента пакет дублировался всем остальным впн клиентам + локалка + обновлять/добавлять правила для тех кто уже в сети, чтобы теперь и от них пакеты уходили новичку.

Share this post


Link to post
Share on other sites

Тогда попробовать ipfw divert broadcasta в демон, видимо самописный :(, и из него уже рассылку всем.

Возьмёшься портировать bcrelay под FreeBSD?

 

Edited by Deac

Share this post


Link to post
Share on other sites

Портировать - врядли.

Скорее написать своё на ipfw+divert, но в исходники конечно загляну, благо опыт есть.

 

Надеюсь пока на всемогущий нетграф :)

Share this post


Link to post
Share on other sites

Пробовал вклиниваться в цепочку:

 

 

ng0.inet <-> out.tcpmss.in <-> inet.ppp...

 

 

 

вариант 1:

ng0.inet <-> out.tcpmss.in <-> inet.rfc1490.ethernet <-> link2.bridge.link3 <-> ethernet.rfc1490.inet <-> inet.ppp...

с реконфигурирование ноды tee

пинги не идут, ничего нет

 

 

 

вариант 2:

ng0.inet <-> inet.rfc1490.ethernet <-> link2.bridge.link3 <-> ethernet.rfc1490.inet <-> inet.ppp...

пинги не идут, ничего нет

 

 

 

вариант 3:

ng0.inet <-> link2.bridge.link3 <-> inet.ppp...

 

тут пинги идут, но кроме пингов ещё мусор на интерфейсе

(trafshow -p на em0 (192.168.1.254))

Source Destination Protocol Size CPS

192.168.1.1,echo-reply 192.168.1.4 icmp 26K 59

192.168.1.4,echo-reqst 192.168.1.1 icmp 26K 59

00:00:80:11:58:3f 45:00:01:f8:34:a3 AC10 504

00:00:80:11:5a:6b 45:00:01:f8:32:77 AC10 504

00:00:80:11:5a:56 45:00:01:f8:32:8c AC10 504

00:00:80:11:5a:75 45:00:01:f8:32:6d AC10 504

00:00:80:11:57:72 45:00:01:f8:35:70 AC10 504

00:00:80:11:58:18 45:00:01:f8:34:ca AC10 504

 

Видимо вместо ethernet заголовка пакета сразу IP

 

 

Сеть:

172.16.0.3 (192.168.1.4 - впн) <-> 172.16.0.77 / 192.168.1.254 <-> 192.168.1.1

 

 

 

 

Чем можно ещё попробовать получить из inet<->ether ?

 

 

 

PS: есть сильное подозрение что если отбросить физ сеть, то для виртуальной как мнимум хаб работать будет для все включённых в него.

Share this post


Link to post
Share on other sites

Я написал ng ноду: ng_ether2inet

 

 

Реконфигурирую ноды от мпд5:

было: ng0.inet <-> out.tcpmss.in <-> inet.ppp...

стало: ng0.inet <-> inet.ether2inet.ethernet <-> link2.bridge.link3 <-> ethernet.ether2inet.inet <-> inet.ppp...

 

 

к бриджу ещё прицеплен eiface на котором IP с сетевухи забранный, сетевуха своими ethet.lower/upper тоже к бриджу.

ethernet->inet работает без проблем, а в обратку нада бы dstMac ставить не нулевой, похоже :)

 

 

Вопрос к знатокам:

ethernet->inet - тупо отбрасываем заголовок ethernet и гоним IP дальше

inet->ethernet -

сейчас кому 00::00 а от 00:00:ip отправителя

когда адрес назначения 255.255.255.255 то мак назначения ff::ff

как правильно заполнять маки от и кому?

 

 

 

 

PS: Нафик скрипт, проще на сях тоже самое наваять, из моего uTP блокиратора.

Edited by Ivan_83

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this