mschedrin Posted October 14, 2010 Posted October 14, 2010 Беру мультикаст у нескольких поставщиков iptv. Их адресация пересекается, соответственно нужно сделать трансляцию одного мультикаст ip в другой. Пока есть две мысли как это сделать: - Сервер, который делает подобие NAT. Не знаю умеют ли традиционные iptables или pf такое делать? - Сервер на котором стоит vlc и тупо принимает один мультикаст, а вещает другой. Может быть есть более элегантные решения? Вставить ник Quote
Ivan_83 Posted October 14, 2010 Posted October 14, 2010 Попробуйте в PF: pass in quick on ng1 dup-to (em0 172.16.0.3) from any to 255.255.255.255 Адреса и интерфейсы свои поставите. Вообще, для мультикаста в ядре свои функции, я особо в это не вдавался. Вставить ник Quote
mschedrin Posted October 14, 2010 Author Posted October 14, 2010 Попробуйте в PF:pass in quick on ng1 dup-to (em0 172.16.0.3) from any to 255.255.255.255 Адреса и интерфейсы свои поставите. Вообще, для мультикаста в ядре свои функции, я особо в это не вдавался. А где в вашей строчке указывать destination ip мультикаст группы и ip в который их nat-ить? Вставить ник Quote
Ivan_83 Posted October 14, 2010 Posted October 14, 2010 255.255.255.255 - куда предназначался пакет 172.16.0.3 - куда его переслали если не поможет так, то ещё можно ng_path раскурить, на предмет замены IP адреса в пакете. И rdr из Pf тоже попробовать стоит. В моём случае в пакете адрес 255.255.255.255 не изменялся, но приходилось указывать валидный адрес назначения. Что происходило с маком я не знаю. Для мультикаста IP мапится в мак назначения, потому возможно что придётся всё таки править пакет, если ни dup ни rdr из PF не помогут. Вставить ник Quote
mschedrin Posted October 15, 2010 Author Posted October 15, 2010 C pf все ясно. А может быть у кого-нибудь найдется более элегантное решение? Вставить ник Quote
rus-p Posted October 15, 2010 Posted October 15, 2010 Коллеги из тв отдела, говорят что такого оборудования как грязи, по русски это стриммер. Вам нужен из IP в IP, это относительно дешево. Вставить ник Quote
Ivan_83 Posted October 15, 2010 Posted October 15, 2010 Ну можете за пару вечеров написать свою ng ноду, которая и будет менять в пакете ip и мак. Там кода строчек на 20, остальное готовый шаблон ноды. Вставить ник Quote
mschedrin Posted October 18, 2010 Author Posted October 18, 2010 Коллеги из тв отдела, говорят что такого оборудования как грязи, по русски это стриммер. Вам нужен из IP в IP, это относительно дешево. Интересный вариант. Может быть ваши коллеги посоветуют хотя бы одну модель? Чтоб я мог по образу и подобию найти нужное мне. Самосотоятельное гугление дает мало результатов. Вставить ник Quote
rus-p Posted October 18, 2010 Posted October 18, 2010 Из дешевого dektec, - pci карта в компьютер, из дорогого prostream. Вставить ник Quote
darkagent Posted October 18, 2010 Posted October 18, 2010 (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 October 18, 2010 by darkagent Вставить ник Quote
Ivan_83 Posted October 18, 2010 Posted October 18, 2010 iptables -t mangle -A PREROUTING -p udp -s 234.5.2.0/24 -j NETMAP --to 234.5.3.0/24И через какой интерфейс по вашему это уйдёт?полагаю полетит в дефаулт гейтвей. Вставить ник Quote
Ivan_83 Posted October 18, 2010 Posted October 18, 2010 Если я напишу ноду для замены ip вы готовы её протестировать? И что с pf - не получилось dup-to или не пробовали? Вставить ник Quote
darkagent Posted October 19, 2010 Posted October 19, 2010 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. Вставить ник Quote
mschedrin Posted October 19, 2010 Author Posted October 19, 2010 Если я напишу ноду для замены ip вы готовы её протестировать? И что с pf - не получилось dup-to или не пробовали? Я пока еще ничего не пробовал. Я лишь рассматриваю возможные варианты решения. Вставить ник Quote
eyewing Posted October 19, 2010 Posted October 19, 2010 По iptables не подскажу, а вот решение с vlc поругаю =) так делать однозначно не стоит. Мы тестировали транскодинг мультикаст каналов через него, работает нестабильно, как под Win так и под Linux. Наверное, лучше будет поискать аппаратное решение. Вставить ник Quote
Tsvetkov Posted October 19, 2010 Posted October 19, 2010 (edited) Ничего не получиться при простом изменении мультикаст адресов в заголовках , т.к. join пакеты в теле имеет поле к какой группе джониться. Но в потоке не только UDP пакеты бегают - mschedrin я давал захват на форуме. ИХМО надо состыковаться с автором IGMPPROXY на счет возможности допилки под ваши задачи. Edited October 19, 2010 by Tsvetkov Вставить ник Quote
mschedrin Posted October 19, 2010 Author Posted October 19, 2010 eyewing Ну на самом деле vlc как пример приводился. У меня есть софтина, которая может первещать мультикаст и не падать. Вставить ник Quote
mschedrin Posted October 19, 2010 Author Posted October 19, 2010 Ничего не получиться при простом изменении мультикаст адресов в заголовках , т.к. join пакеты в теле имеет поле к какой группе джониться. Но в потоке не только UDP пакеты бегают - mschedrin я давал захват на форуме. ИХМО надо состыковаться с автором IGMPPROXY на счет возможности допилки под ваши задачи. igmp тут нипричем. Я вылью весь мультикаст серверу в одну сетевуху, хочу в другой получить этот же мультикаст на другой адрес. Дальше дело техники - передать это мультикаст роутеру и отмаршрутизировать в сети. Вставить ник Quote
Minya Posted August 12, 2013 Posted August 12, 2013 Апну тему, есть новости по нату мультикаста? Вставить ник Quote
JoeDoe Posted August 12, 2013 Posted August 12, 2013 Легко. 7750 и MS-ISA в режиме video. работает у многих больших операторов. Вставить ник Quote
Minya Posted August 13, 2013 Posted August 13, 2013 а как быть с igmp запросами? их проксировать ведь надо? Вставить ник Quote
JoeDoe Posted August 13, 2013 Posted August 13, 2013 А причем здесь igmp и прочий pim в вашей сети - решение эффективно заменяет S,G пары в потоках. В вашей сети оригинальные адреса не видны совсем. Вставить ник Quote
Minya Posted August 14, 2013 Posted August 14, 2013 но ведь чтобы получить группу нужно отправить на неё репорт к роутеру, но он долетит только до первого IP интерфейса - а им будет являться выходной интерфейс нат-устройства Вставить ник Quote
Ivan_83 Posted August 14, 2013 Posted August 14, 2013 В худшем случае можно сочинить приложение, которое будет проксировать через себя. Лучше попробовать ng_bpf + ng_path чтобы менял по маске IP в пакетах и join/leave запросах. Вставить ник Quote
Minya Posted August 16, 2013 Posted August 16, 2013 На самом деле всё заработало с igmpproxy+dnat. На приеме две группы с разными адресами, а устройство за натом подписывается вообще на третий адрес в который одна из входящих групп натится и всё работает. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.