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

Мультикаст NAT ?

Привет.

Такая задача.

 

Есть сервис мультикаст, вещает в сеть каналы с тарелки. Открыто. Все неплохо но иногда сигнал пропадает, PBI ломается или карта не проплачена.... в общем что-то идет не по плану и телевидения нет.

Решили дополнительно получать каналы от другого оператора по IP. Тоже по мультикаст.

Оператор вещает на свои группы например 224.0.10.1-224.0.10.100

У нас плей листах прописаны наши группы (с тарелки) например 224.0.50.1-224.0.50.100

В качестве мультикаст роутера - Cat6506.

Вопрос: как сделать так, что бы при отказе "тарелки" пользователи смогли по прежнему запрашивать группы 224.0.50.1-224.0.50.100. Что б не приходилось менять плей лист.

Возможно ли делать какой то NAT Для мультикаст групп ?

 

Share this post


Link to post
Share on other sites

Но это будет запутаный и муторный конфиг, заводить свой мультикаст с PBI и мультикаст оператора на сервер c астрой в input, а затем создавать другой мультикаст с основным своим и резервным чужим на output.

Будет что-то типа:

 

require("stream")

 

make_channel({

name = "Rossia 1",

input = {

"udp://eth0@224.0.50.1:1234",

"udp://eth1@224.0.10.1:1234",

},

output = {

"udp://eth2@224.0.50.1:1234",

}

})

И так на каждый канал. Хотя почему бы и нет.

Share this post


Link to post
Share on other sites

Астра это значит пропускать все каналы через сервер-транскодер ? Я хотел этого избежать....

Надеялся можно просто модифицировать заголовки пакетов. Что б изменить мультикаст-группу. :-(

 

Какой процессор нужен для транскодинга 10-ти SD каналов ?

Share this post


Link to post
Share on other sites

Ivan Rostovikov

Это не транскодер. Астра к содержимому пакетов даже ts уровня не прикоснётся. Она именно переформирует их заголовки. На циске так точно не сделать. Очень вероятно, что можно сделать нечто такое на iptables.

Share this post


Link to post
Share on other sites

Астра не очень требовательная к ресурсам. Пробовал на уже немолодом Xeon E5420 на Arch Linux запустить около 20 каналов SD загрузка выше 15% не поднималась. При том что он еще немного с другим работает.

Share this post


Link to post
Share on other sites

martiniПочему это не сделать. Вполне возможно. Нужен только один момент - весь мультикаст должен сыпаться на карту как броадкаст.

Share this post


Link to post
Share on other sites

zedsh

Сразу оба не снатить в один адрес иначе рассыпания будут из-за дублирования пакетов. Придётся натить только один, анализировать оба источника где-то и при пропадании одного - переключать скриптом нат.

Share this post


Link to post
Share on other sites

Minya

Да, ты прав. Именно это я и имел ввиду. Тогда может понадобиться 3 сетевухи)

Share this post


Link to post
Share on other sites

Хернёй занимаетесь.

На любом перле пишется простейший демон который на нужном интерфейсе джойнися к нужной группе а на другом выплювывает полученное.

Если прожорливость не устраивает и оптимизировать почему то не получается смотрим на фрю с нетграфом: ng_ether + ng_bpf + ng_patch правда оно там джойнится не умеет, потому снупинги придётся отключать со стороны входа.

Share this post


Link to post
Share on other sites

у меня уже написано такое :) только nat - это побочная функция. основная - принять мультикаст в одной точке, передать через интернеты и раздать его в другой. можно сразу на несколько точек раздать.

 

на раздающей стороне:

# cat sender.conf 
mode: 'send'
defaults: {dst_bsize: 8192, iface: eth0, src_bsize: 2048000}
hosts:
2x2: {src: '233.166.172.215:1301', dst: '0.0.0.0:11500'}
disney: {src: '233.166.172.75:1301', dst: '0.0.0.0:11501'}
5nica: {src: '233.166.172.81:1301', dst: '0.0.0.0:11502'}

 

на принимающей:

# cat reciever.conf 
mode: 'recv'
defaults: {dst_bsize: 262144, src_bsize: 8192, ttl_mc: 4}
hosts:
2x2: {dst: '239.152.0.1:1301', src: '93.xx.xx.zz:11500'}
disney: {dst: '239.152.0.3:1301', src: '93.xx.xx.zz:11501'}
5nica: {dst: '239.152.0.7:1301', src: '93.xx.xx.zz:11502'}

Share this post


Link to post
Share on other sites

А как вы выравнивали поток исходящего мультикаста?)

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