The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Iptables + DNAT"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Iptables + DNAT"  +/
Сообщение от Kompik (ok) on 09-Сен-10, 15:19 
Задача: Нужно подменять адрес назначения UDP multicast потока приходящего с eth0 и отправлять полученное в eth1.

Имеем: Сервер с двумя сетевыми интерфейсами. Один входящий, другой исходящий.

На сервере стоит VLC, который принимает multicast UDP поток
IP 77.94.170.4.20000 > 234.5.2.64.20000: UDP, length 1316

Наша задача заменить адрес 234.5.2.64 на что-то другое. Например 235.8.64.21.


Что делал.

echo "1" >  /proc/sys/net/ipv4/ip_forward

В абсолютно пустой Iptables добавил правило в соответствии с мануалом
iptables -t nat -A PREROUTING -i eth0 -p udp -d 234.5.2.64 -j DNAT --to-destination 235.8.64.21

Как результат, правило добавилось, но через него ничего не проходит.

# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 1566K packets, 151M bytes)
pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       udp  --  eth0   *       0.0.0.0/0            234.5.2.64          to:235.8.64.21

Chain POSTROUTING (policy ACCEPT 113 packets, 8427 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 113 packets, 8427 bytes)
pkts bytes target     prot opt in     out     source               destination


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

Вопрос, что делать? :)

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Iptables + DNAT"  +/
Сообщение от KobaLTD on 09-Сен-10, 15:48 
>[оверквотинг удален]
>   out     source  
>          
> destination
>
>
>Судя по времени которое прошло с момента добавления правила и трафику, который
>реально проходит через машину, можно предположить, что в таблицу нат попадает
>далеко не весь трафик.
>
>Вопрос, что делать? :)

Вопрос - а зачем нужен такой извр? если для того чтобы какаято машина в вашей сети видела мультикаст то юзайте igmp прокси всякие (igmpproxy, mroute и т.д.) - а просто завернуть мультикасть трафик натом - не получиться т.к. в обработке мультикаста работают и все промежуточные свичи - если какойто ip "не пройдет регистрации на поток" на промежуточном свиче - то свич просто не пропустит для него этот поток - поэтому когда работает с мультикастом нужно внимателно следить за железом - чтобы оно подерживало igmp иначе не будет бегать мультикаст. Удачи.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Iptables + DNAT"  +/
Сообщение от Kompik (ok) on 09-Сен-10, 15:55 

>
>Вопрос - а зачем нужен такой извр? если для того чтобы какаято
>машина в вашей сети видела мультикаст то юзайте igmp прокси всякие
>(igmpproxy, mroute и т.д.) - а просто завернуть мультикасть трафик натом
>- не получиться т.к. в обработке мультикаста работают и все промежуточные
>свичи - если какойто ip "не пройдет регистрации на поток" на
>промежуточном свиче - то свич просто не пропустит для него этот
>поток - поэтому когда работает с мультикастом нужно внимателно следить за
>железом - чтобы оно подерживало igmp иначе не будет бегать мультикаст.
>Удачи.

Нужно для порядка в сети ...
Уже есть несколько мультикаст потоков на определенной группе.
Сейчас есть возможность брать еще некоторые из других источников, но там другие mcast группы. Вот и хочется переделать :)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Iptables + DNAT"  +/
Сообщение от KobaLTD on 09-Сен-10, 16:03 
>[оверквотинг удален]
>>свичи - если какойто ip "не пройдет регистрации на поток" на
>>промежуточном свиче - то свич просто не пропустит для него этот
>>поток - поэтому когда работает с мультикастом нужно внимателно следить за
>>железом - чтобы оно подерживало igmp иначе не будет бегать мультикаст.
>>Удачи.
>
>Нужно для порядка в сети ...
>Уже есть несколько мультикаст потоков на определенной группе.
>Сейчас есть возможность брать еще некоторые из других источников, но там другие
>mcast группы. Вот и хочется переделать :)

Не получиться - только igmp проксирование. После вашей машины с vlc комп который должен ловить мультикаст должен както "зарегиться" на поток на свичах - просто DNAT? это не риализовать. Да и вообще насколько я помню - NAT (SNAT,DNAT,MASQUERADE) - работают только с юникастом, для брадкаста и мультикаста просто не заточены. - Попробуйте юзать VLAN и бриджы (не пробовал но поидеи должно работать) - а nat точно не канает.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Iptables + DNAT"  +/
Сообщение от Kompik (ok) on 09-Сен-10, 16:09 
>Не получиться - только igmp проксирование. После вашей машины с vlc комп
>который должен ловить мультикаст должен както "зарегиться" на поток на свичах
>- просто DNAT? это не риализовать. Да и вообще насколько я
>помню - NAT (SNAT,DNAT,MASQUERADE) - работают только с юникастом, для брадкаста
>и мультикаста просто не заточены. - Попробуйте юзать VLAN и бриджы
>(не пробовал но поидеи должно работать) - а nat точно не
>канает.

Проблемы по подписке другого компа, отсутствуют.
Тут главное пустить поток в сеть под общей нумерацией групп...

А вот то что iptables не работает с мультикаст потоками ... это может быть объяснением ...
Хотя какая ему разница ? :)

Какого! работает он с мультикастом! Метки в mangle ставит же... Значит работает!

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Iptables + DNAT"  +/
Сообщение от KobaLTD on 09-Сен-10, 16:31 
>[оверквотинг удален]
>
>Проблемы по подписке другого компа, отсутствуют.
>Тут главное пустить поток в сеть под общей нумерацией групп...
>
>А вот то что iptables не работает с мультикаст потоками ... это
>может быть объяснением ...
>Хотя какая ему разница ? :)
>
>Какого! работает он с мультикастом! Метки в mangle ставит же... Значит работает!
>

Iptables - работает с мультикастом - а NAT работает только с юникастом.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Iptables + DNAT"  +/
Сообщение от KobaLTD on 09-Сен-10, 16:36 
>[оверквотинг удален]
>>
>>А вот то что iptables не работает с мультикаст потоками ... это
>>может быть объяснением ...
>>Хотя какая ему разница ? :)
>>
>>Какого! работает он с мультикастом! Метки в mangle ставит же... Значит работает!
>>
>
>Iptables - работает с мультикастом - а NAT работает только с юникастом.
>

Не воспринимайте iptables как монолитную вещь с себе - iptables это вообще не файрвол, а средство управление функционалом ядра и модулей - NAT это один из модулей предоствляющий возможнойть работы с адрисами - вот данный модуль и может работать только с юникаст трафиком, а другие могут работать и с мультикастом и с чем пожелают.

А вот фразы про то что нет проблем "подписаться" на поток с компа который не запрашивал этот поток - можно поподробней? что то слабо себе это предствляеться?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Iptables + DNAT"  +/
Сообщение от KobaLTD on 09-Сен-10, 16:53 
>[оверквотинг удален]
>
>Не воспринимайте iptables как монолитную вещь с себе - iptables это вообще
>не файрвол, а средство управление функционалом ядра и модулей - NAT
>это один из модулей предоствляющий возможнойть работы с адрисами - вот
>данный модуль и может работать только с юникаст трафиком, а другие
>могут работать и с мультикастом и с чем пожелают.
>
>А вот фразы про то что нет проблем "подписаться" на поток с
>компа который не запрашивал этот поток - можно поподробней? что то
>слабо себе это предствляеться?

http://www.netfilter.org/documentation/FAQ/netfilter-faq-3.html

Пункты 3.1, 3.2 - NAT модуль не работает с мультикастом потому что "... unable to determine conntrack information" - что в принцепе логично т.к. это мультикасто и он не попадает в conntrack.
Ищите другие способы. Удачи.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Iptables + DNAT"  +/
Сообщение от Kompik (ok) on 10-Сен-10, 12:05 
>
>http://www.netfilter.org/documentation/FAQ/netfilter-faq-3.html
>
>Пункты 3.1, 3.2 - NAT модуль не работает с мультикастом потому что
>"... unable to determine conntrack information" - что в принцепе логично
>т.к. это мультикасто и он не попадает в conntrack.
>Ищите другие способы. Удачи.

А в чем отличие обычного UDP потока от мультикастового ? :)
И там и там без всяких сессий...

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

11. "Iptables + DNAT"  +/
Сообщение от LSTemp (ok) on 28-Сен-10, 05:37 

> Пункты 3.1, 3.2 - NAT модуль не работает с мультикастом потому что
> "... unable to determine conntrack information" - что в принцепе логично
> т.к. это мультикасто и он не попадает в conntrack.
> Ищите другие способы. Удачи.

conntrack решает все? убогое мнение.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

8. "Iptables + DNAT"  +/
Сообщение от Kompik (ok) on 10-Сен-10, 11:17 

>А вот фразы про то что нет проблем "подписаться" на поток с
>компа который не запрашивал этот поток - можно поподробней? что то
>слабо себе это предствляеться?

Суть в том что то где присутствует описанная в первом сообщении проблема, происходит в "ядре" головной станции, где до подписок абонентов дело еще не доходит.
Подписки будут потом и дальше ... А пока сбор потоков.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Iptables + DNAT"  +/
Сообщение от LSTemp (ok) on 28-Сен-10, 05:39 
>[оверквотинг удален]
>>Iptables - работает с мультикастом - а NAT работает только с юникастом.
>>
> Не воспринимайте iptables как монолитную вещь с себе - iptables это вообще
> не файрвол, а средство управление функционалом ядра и модулей - NAT
> это один из модулей предоствляющий возможнойть работы с адрисами - вот
> данный модуль и может работать только с юникаст трафиком, а другие
> могут работать и с мультикастом и с чем пожелают.
> А вот фразы про то что нет проблем "подписаться" на поток с
> компа который не запрашивал этот поток - можно поподробней? что то
> слабо себе это предствляеться?

+1000

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Iptables + DNAT"  +/
Сообщение от LSTemp (ok) on 28-Сен-10, 05:32 
>[оверквотинг удален]
> Имеем: Сервер с двумя сетевыми интерфейсами. Один входящий, другой исходящий.
> На сервере стоит VLC, который принимает multicast UDP поток
> IP 77.94.170.4.20000 > 234.5.2.64.20000: UDP, length 1316
> Наша задача заменить адрес 234.5.2.64 на что-то другое. Например 235.8.64.21.
> Что делал.
> echo "1" >  /proc/sys/net/ipv4/ip_forward
> В абсолютно пустой Iptables добавил правило в соответствии с мануалом
> iptables -t nat -A PREROUTING -i eth0 -p udp -d 234.5.2.64 -j
> DNAT --to-destination 235.8.64.21
> Как результат, правило добавилось, но через него ничего не проходит.

для начала форвард трафика разрешить, который по умолчанию вовсех нормальных дистрах запрещен.
>[оверквотинг удален]
>  destination
> Chain OUTPUT (policy ACCEPT 113 packets, 8427 bytes)
>  pkts bytes target     prot opt in
>    out     source  
>          
>  destination
> Судя по времени которое прошло с момента добавления правила и трафику, который
> реально проходит через машину, можно предположить, что в таблицу нат попадает
> далеко не весь трафик.
> Вопрос, что делать? :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Iptables + DNAT"  +/
Сообщение от Аноним (??) on 12-Июл-11, 09:05 
UP!
Не подскажете чем закончилось?
У нас что-то похожее, только благодаря route и smcroute трафик нормально попадает в  PREROUTING (быстро растут счетчики), а вот в POSTROUTING никак.
Multicat не пробовали покрутить?
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Iptables + DNAT"  +/
Сообщение от Аноним (??) on 12-Июл-11, 11:14 
> Multicat не пробовали покрутить?

Не успел дописать.
Мы с помощью multicat задачу на ура решаем, но про subj в любом случае интересно (естественно: http://lists.netfilter.org/pipermail/netfilter-devel/2005-Fe... и прочее уже давно прочитано)

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру