Jump to content

Recommended Posts

Posted

Беру мультикаст у нескольких поставщиков iptv. Их адресация пересекается, соответственно нужно сделать трансляцию одного мультикаст ip в другой.

Пока есть две мысли как это сделать:

- Сервер, который делает подобие NAT. Не знаю умеют ли традиционные iptables или pf такое делать?

- Сервер на котором стоит vlc и тупо принимает один мультикаст, а вещает другой.

 

Может быть есть более элегантные решения?

Posted

Попробуйте в PF:

pass in quick on ng1 dup-to (em0 172.16.0.3) from any to 255.255.255.255

 

Адреса и интерфейсы свои поставите.

Вообще, для мультикаста в ядре свои функции, я особо в это не вдавался.

Posted
Попробуйте в PF:

pass in quick on ng1 dup-to (em0 172.16.0.3) from any to 255.255.255.255

 

Адреса и интерфейсы свои поставите.

Вообще, для мультикаста в ядре свои функции, я особо в это не вдавался.

А где в вашей строчке указывать destination ip мультикаст группы и ip в который их nat-ить?
Posted

255.255.255.255 - куда предназначался пакет

172.16.0.3 - куда его переслали

 

если не поможет так, то ещё можно ng_path раскурить, на предмет замены IP адреса в пакете.

И rdr из Pf тоже попробовать стоит.

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

Что происходило с маком я не знаю.

 

Для мультикаста IP мапится в мак назначения, потому возможно что придётся всё таки править пакет, если ни dup ни rdr из PF не помогут.

Posted

Коллеги из тв отдела, говорят что такого оборудования как грязи, по русски это стриммер. Вам нужен из IP в IP, это относительно дешево.

Posted

Ну можете за пару вечеров написать свою ng ноду, которая и будет менять в пакете ip и мак.

Там кода строчек на 20, остальное готовый шаблон ноды.

Posted

Коллеги из тв отдела, говорят что такого оборудования как грязи, по русски это стриммер. Вам нужен из IP в IP, это относительно дешево.

Интересный вариант. Может быть ваши коллеги посоветуют хотя бы одну модель? Чтоб я мог по образу и подобию найти нужное мне. Самосотоятельное гугление дает мало результатов.

Posted (edited)

можно попробовать iptables netmap - вроде бы не ругается при попытке заставить его кушать -p udp -j NETMAP для мультикастовых адресов, но проверить правда нечем.

iptables -t mangle -A PREROUTING -p udp -s 234.5.2.0/24 -j NETMAP --to 234.5.3.0/24

 

.. хотя что то мне подсказывает что затея с натом изначально обречена на провал - кто то ж должен igmp запросы обрабатывать

Edited by darkagent
Posted
iptables -t mangle -A PREROUTING -p udp -s 234.5.2.0/24 -j NETMAP --to 234.5.3.0/24
И через какой интерфейс по вашему это уйдёт?

полагаю полетит в дефаулт гейтвей.

 

Posted
iptables -t mangle -A PREROUTING -p udp -s 234.5.2.0/24 -j NETMAP --to 234.5.3.0/24
И через какой интерфейс по вашему это уйдёт?

полагаю полетит в дефаулт гейтвей.

задать интерфейс не проблема:

-i eth0

-o eth1

если пожелаете принять на eth0 и отдать в eth1.

Posted
Если я напишу ноду для замены ip вы готовы её протестировать?

 

И что с pf - не получилось dup-to или не пробовали?

Я пока еще ничего не пробовал. Я лишь рассматриваю возможные варианты решения.
Posted

По iptables не подскажу, а вот решение с vlc поругаю =) так делать однозначно не стоит. Мы тестировали транскодинг

мультикаст каналов через него, работает нестабильно, как под Win так и под Linux. Наверное, лучше будет поискать

аппаратное решение.

Posted (edited)

Ничего не получиться при простом изменении мультикаст адресов в заголовках , т.к. join пакеты в теле имеет поле к какой группе джониться.

Но в потоке не только UDP пакеты бегают - mschedrin я давал захват на форуме.

 

ИХМО надо состыковаться с автором IGMPPROXY на счет возможности допилки под ваши задачи.

Edited by Tsvetkov
Posted
Ничего не получиться при простом изменении мультикаст адресов в заголовках , т.к. join пакеты в теле имеет поле к какой группе джониться.

Но в потоке не только UDP пакеты бегают - mschedrin я давал захват на форуме.

 

ИХМО надо состыковаться с автором IGMPPROXY на счет возможности допилки под ваши задачи.

igmp тут нипричем. Я вылью весь мультикаст серверу в одну сетевуху, хочу в другой получить этот же мультикаст на другой адрес. Дальше дело техники - передать это мультикаст роутеру и отмаршрутизировать в сети.
  • 2 years later...
Posted

А причем здесь igmp и прочий pim в вашей сети - решение эффективно заменяет S,G пары в потоках. В вашей сети оригинальные адреса не видны совсем.

Posted

но ведь чтобы получить группу нужно отправить на неё репорт к роутеру, но он долетит только до первого IP интерфейса - а им будет являться выходной интерфейс нат-устройства

Posted

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

Лучше попробовать ng_bpf + ng_path чтобы менял по маске IP в пакетах и join/leave запросах.

Posted

На самом деле всё заработало с igmpproxy+dnat.

На приеме две группы с разными адресами, а устройство за натом подписывается вообще на третий адрес в который одна из входящих групп натится и всё работает.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.