IPtv multicast
-
Процесс очень прост. Upstream - это тот нитерфейс, на котором к тебе приходит мультикаст (провайдер я предполагаю, т.е. WAN).
Downstream - интерфейсы где хочешь видеть этот multicast трафик. На счёт altnet можно не заморачиваться, этот параметр сейчас игнорируется. Что в правилах будет разрешено, то и будет проходить. -
Что в правилах будет разрешено, то и будет проходить.
И чего в правилах нужно добавить для воркания ИП-ТВ? Типа фром 239.0.2.17 ту эни локал?
-
На LAN нужно прежде всего разрешить IGMP c LAN на Multicast address (типа 239.0.2.17) и указать вышеупомянутую опция в Advanced Options.
На WAN нужно разрешить с (кто вещает) на 239.0.2.17 -
Если на интерфейсе LAN Везде Any, этого достаточно?
На WAN нужно разрешить с 239.0.2.17 (он вещает) на 192.168.1.0/24 ? -
На LAN any to any достаточно (хоть это и самое идиотское правило), только флажок Options нужен для некоторых плэйеров.
На WAN "кто вещает" будет какой-то НЕмультикаст адрес от провайдера, destination будет как раз 239.0.2.17. Можно для теста попробовать from any to 224.0.0.0/4 - это охватит всех потенциальных "вещателей" -
ОК буду тестить. Спасибо за помощь.
-
Вопрос про dump еще актуален?
-
Да.
-
Все заработало!!!
поставил галку System>Advansed>Disables the PF scrubbing option which can sometimes interfere with NFS and PPTP traffic. и все пошло IPTV - работаетСделано на PFSense 1.2.2
Сейчас сделаю DUMP -
Глобально…
-
login as: root
Using keyboard-interactive authentication.
Password:
Access denied
Using keyboard-interactive authentication.
Password:*** Welcome to pfSense 1.2.2-pfSense on pfsense ***
LAN* -> rl0 -> 192.168.1.1
WAN* -> rl1 -> 192.168.0.197(DHCP)pfSense console setup
0) Logout (SSH only)
1) Assign Interfaces
2) Set LAN IP address
3) Reset webConfigurator password
4) Reset to factory defaults
5) Reboot system
6) Halt system
7) Ping host
8) Shell
9) PFtop
10) Filter Logs
11) Restart webConfigurator
12) pfSense PHP shell
13) Upgrade from console
14) Disable Secure Shell (sshd)Enter an option: 8
Tcpdump -ni rl0 igmp
Tcpdump: Command not found.
tcpdump -ni rl0 igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
21:02:00.809035 IP 192.168.1.10 > 239.255.255.250: igmp v2 report 239.255.255.250
21:02:02.309062 IP 192.168.1.10 > 239.255.0.149: igmp v2 report 239.255.0.149
21:02:14.989864 IP 192.168.1.10 > 224.0.0.2: igmp leave 239.255.0.149
21:02:14.990634 IP 192.168.0.1 > 239.255.0.149: igmp query v2 [max resp time 10] [gaddr 239.255.0.149]
21:02:14.996316 IP 10.255.189.193 > 239.255.0.149: igmp query v2 [max resp time 10] [gaddr 239.255.0.149]
21:02:15.351567 IP 192.168.1.10 > 239.255.0.147: igmp v2 report 239.255.0.147
21:02:15.809513 IP 192.168.1.10 > 239.255.0.147: igmp v2 report 239.255.0.147
21:02:15.989921 IP 192.168.0.1 > 239.255.0.149: igmp query v2 [max resp time 10] [gaddr 239.255.0.149]
21:02:15.994993 IP 10.255.189.193 > 239.255.0.149: igmp query v2 [max resp time 10] [gaddr 239.255.0.149]
21:02:21.852423 IP 192.168.1.10 > 224.0.0.2: igmp leave 239.255.0.147
21:02:21.852563 IP 192.168.0.1 > 239.255.0.147: igmp query v2 [max resp time 10] [gaddr 239.255.0.147]
21:02:21.858282 IP 10.255.189.193 > 239.255.0.147: igmp query v2 [max resp time 10] [gaddr 239.255.0.147]
21:02:22.213463 IP 192.168.1.10 > 239.255.0.148: igmp v2 report 239.255.0.148
21:02:22.309727 IP 192.168.1.10 > 239.255.0.148: igmp v2 report 239.255.0.148
21:02:22.851775 IP 192.168.0.1 > 239.255.0.147: igmp query v2 [max resp time 10] [gaddr 239.255.0.147]
21:02:22.855880 IP 10.255.189.193 > 239.255.0.147: igmp query v2 [max resp time 10] [gaddr 239.255.0.147]
21:02:26.687382 IP 192.168.1.10 > 224.0.0.2: igmp leave 239.255.0.148
21:02:26.687536 IP 192.168.0.1 > 239.255.0.148: igmp query v2 [max resp time 10] [gaddr 239.255.0.148]
21:02:26.694203 IP 10.255.189.193 > 239.255.0.148: igmp query v2 [max resp time 10] [gaddr 239.255.0.148]
21:02:27.106393 IP 192.168.1.10 > 239.255.1.126: igmp v2 report 239.255.1.126
21:02:27.309885 IP 192.168.1.10 > 239.255.1.126: igmp v2 report 239.255.1.126
21:02:27.687591 IP 192.168.0.1 > 239.255.0.148: igmp query v2 [max resp time 10] [gaddr 239.255.0.148]
21:02:27.691460 IP 10.255.189.193 > 239.255.0.148: igmp query v2 [max resp time 10] [gaddr 239.255.0.148]
21:02:31.790911 IP 192.168.1.10 > 224.0.0.2: igmp leave 239.255.1.126
21:02:31.791035 IP 192.168.0.1 > 239.255.1.126: igmp query v2 [max resp time 10] [gaddr 239.255.1.126]
21:02:31.796586 IP 10.255.189.193 > 239.255.1.126: igmp query v2 [max resp time 10] [gaddr 239.255.1.126]
21:02:32.113347 IP 192.168.1.10 > 239.255.0.145: igmp v2 report 239.255.0.145
21:02:32.310384 IP 192.168.1.10 > 239.255.0.145: igmp v2 report 239.255.0.145
21:02:32.790948 IP 192.168.0.1 > 239.255.1.126: igmp query v2 [max resp time 10] [gaddr 239.255.1.126]
21:02:32.796553 IP 10.255.189.193 > 239.255.1.126: igmp query v2 [max resp time 10] [gaddr 239.255.1.126] -
Спасибо ОГРОМНОЕ Eugene !!!
Очень много помогал по данному вопросуPS обидно успел приобрести коробочный роутер еще и D-Link ???
-
Всегда пожалуйста. А dump мне нужен как cap-file, мне надо внутрь пакетиков заглянуть. Я нигде таких, как у тебя не видел.
-
поставил тут на днях pfsense, вроде все норм, но столкнулся с такойже проблемой - не работает iptv..
вроде сделал все как писалось выше но работать оно не захотело..
присоеденись к Ilya S. Kalugin с просьбой: мб всеже кто напишет четкую инструкцию что, как и куда? :)вот что я делал..
*** Welcome to pfSense 1.2.3-RC1-pfSense on defnet *** WAN* -> sis0 -> 91.191.250.27(DHCP) LAN* -> vr0 -> 192.168.1.1
# tcpdump -ni vr0 igmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on vr0, link-type EN10MB (Ethernet), capture size 96 bytes 19:39:39.789444 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:40.179795 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:41.563793 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:41.571837 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:41.680626 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 2 group record(s) 19:39:42.347966 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:42.355771 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:42.681146 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 2 group record(s) 19:39:43.212449 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:43.221377 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:43.681643 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 2 group record(s) 19:39:44.564976 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:44.573201 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:39:44.682222 IP 192.168.1.10 > 224.0.0.22: igmp v3 report, 2 group record(s)
# tcpdump -ni sis0 igmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on sis0, link-type EN10MB (Ethernet), capture size 96 bytes 19:41:04.976403 IP 10.255.127.1 > 224.0.0.1: igmp query v2 19:41:12.920133 IP 10.255.233.68 > 224.0.0.22: igmp v2 report 224.0.0.22 19:42:05.032997 IP 10.255.127.1 > 224.0.0.1: igmp query v2 19:42:09.948738 IP 10.255.233.68 > 224.0.0.22: igmp v2 report 224.0.0.22 19:42:52.367719 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:42:56.202578 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:42:56.217472 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:42:56.397560 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:05.957488 IP 10.255.127.1 > 224.0.0.1: igmp query v2 19:43:06.177387 IP 10.255.233.68 > 224.0.0.22: igmp v2 report 224.0.0.22 19:43:06.877298 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:06.887321 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:07.142308 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:10.886225 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:10.901231 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:11.267114 IP 10.255.127.16 > 224.0.0.22: igmp v3 report, 1 group record(s) 19:43:13.836187 IP 10.255.127.16 > 224.0.0.252: igmp v2 report 224.0.0.252 19:43:13.846169 IP 10.255.127.16 > 224.0.0.252: igmp v2 report 224.0.0.252 19:43:14.925215 IP 10.255.127.16 > 224.0.0.252: igmp v2 report 224.0.0.252 19:43:15.382127 IP 10.255.127.16 > 224.0.0.252: igmp v2 report 224.0.0.252 19:43:23.836924 IP 10.255.127.16 > 224.0.0.252: igmp v2 report 224.0.0.252 19:44:06.281112 IP 10.255.127.1 > 224.0.0.1: igmp query v2 19:44:10.095863 IP 10.255.127.16 > 224.0.0.252: igmp v2 report 224.0.0.252 19:44:11.745837 IP 10.255.233.68 > 224.0.0.22: igmp v2 report 224.0.0.22
/tmp/igmpproxy.conf
##------------------------------------------------------ ## Enable Quickleave mode (Sends Leave instantly) ##------------------------------------------------------ quickleave phyint sis0 upstream ratelimit 0 threshold 1 altnet 212.49.127.0/24 phyint vr0 downstream ratelimit 0 threshold 1 phyint lo disabled
# netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 91.191.250.25 UGS 0 1187329 sis0 91.191.250.24/29 link#1 UC 0 0 sis0 91.191.250.25 00:12:01:e0:94:80 UHLW 2 355 sis0 425 91.191.250.27 127.0.0.1 UGHS 0 0 lo0 127.0.0.1 127.0.0.1 UH 1 0 lo0 192.168.1.0/24 link#2 UC 0 0 vr0 192.168.1.10 00:1d:72:c6:37:75 UHLW 1 119174 vr0 1199 192.168.1.12 00:15:e9:69:c0:07 UHLW 1 25377 vr0 1016 192.168.1.255 ff:ff:ff:ff:ff:ff UHLWb 1 1 vr0
эта галка стоит в обоих правилах
мб я чтото упустил?)
-
Кто такой 10.255.127.16 ?
-
-
Дык на WAN вроде другая подсеть… странно, что провайдер маршрутизирует IGMP. Ну да фик с ними.
Я бы присоветовал прибить igmpproxy и запустить его с консоли:
igmpproxy -d -c /tmp/igmpproxy.conf
Вывод сюда пожалуйста.PS: howto напишу. Обязательно на русском?
-
Дык на WAN вроде другая подсеть… странно, что провайдер маршрутизирует IGMP. Ну да фик с ними.
тут такое дело
изначально всем выдается серый внешний ип + внутресевой ип вида 10...*
если же клиент заказывает былый ип то у него толи заберают этот внутресетевой ип и внешний становится ему равен, толи он остается, но посмотреть какой он нигде нельзяЯ бы присоветовал прибить igmpproxy и запустить его с консоли:
igmpproxy -d -c /tmp/igmpproxy.conf
Вывод сюда пожалуйста.# igmpproxy -d -c /tmp/igmpproxy.conf igmpproxy, Version 0.1 beta2, Build 090427 Copyright 2005 by Johnny Egeland <johnny@rlo.org>Distributed under the GNU GENERAL PUBLIC LICENSE, Version 2 - check GPL.txt Debu: Searching for config file at '/tmp/igmpproxy.conf' Debu: Config: Quick leave mode enabled. Debu: Config: Got a phyint token. Debu: Config: IF: Config for interface sis0. Debu: Config: IF: Got upstream token. Debu: Config: IF: Got ratelimit token '0'. Debu: Config: IF: Got threshold token '1'. Debu: Config: IF: Got altnet token 212.49.127.0/24. Debu: Config: IF: Altnet: Parsed altnet to 212.49.127/24. Debu: IF name : sis0 Debu: Next ptr : 0 Debu: Ratelimit : 0 Debu: Threshold : 1 Debu: State : 1 Debu: Allowednet ptr : 2820c030 Debu: Config: Got a phyint token. Debu: Config: IF: Config for interface vr0. Debu: Config: IF: Got downstream token. Debu: Config: IF: Got ratelimit token '0'. Debu: Config: IF: Got threshold token '1'. Debu: IF name : vr0 Debu: Next ptr : 0 Debu: Ratelimit : 0 Debu: Threshold : 1 Debu: State : 2 Debu: Allowednet ptr : 0 Debu: Config: Got a phyint token. Debu: Config: IF: Config for interface lo. Debu: IF name : lo Debu: Next ptr : 0 Debu: Ratelimit : 0 Debu: Threshold : 1 Debu: State : 2 Debu: Allowednet ptr : 0 Debu: Adding Physical Index value of IF 'sis0' is 1 Debu: buildIfVc: Interface sis0 Addr: 91.191.250.27, Flags: 0xffff8843, Network: 91.191.250.24/29 Debu: Adding Physical Index value of IF 'vr0' is 2 Debu: buildIfVc: Interface vr0 Addr: 192.168.1.1, Flags: 0xffff8843, Network: 192.168.1/24 Debu: Adding Physical Index value of IF 'lo0' is 3 Debu: buildIfVc: Interface lo0 Addr: 127.0.0.1, Flags: 0xffff8049, Network: 127/8 Debu: Found config for vr0 Note: adding VIF, Ix 0 Fl 0x0 IP 0x1bfabf5b sis0, Threshold: 1, Ratelimit: 0 Debu: Network for [sis0] : 91.191.250.24/29 Note: adding VIF, Ix 1 Fl 0x0 IP 0x0101a8c0 vr0, Threshold: 1, Ratelimit: 0 Debu: Network for [vr0] : 192.168.1/24 ERRO: There must be at least 2 Vif's where one is upstream. (vifcount 2, upStreamVif -1)</johnny@rlo.org>
PS: howto напишу. Обязательно на русском?
ну я думаю что желательно на русском)))
-
Это старый igmpproxy, он не будет работать. Я даже не знаю, зависят ли пакеты от версии pfSense. Попробуй поставить последний снапшот отсюда http://snapshots.pfsense.org/FreeBSD_RELENG_7_2/pfSense_RELENG_1_2/livecd_installer/
-
Это старый igmpproxy, он не будет работать. Я даже не знаю, зависят ли пакеты от версии pfSense. Попробуй поставить последний снапшот отсюда http://snapshots.pfsense.org/FreeBSD_RELENG_7_2/pfSense_RELENG_1_2/livecd_installer/
Скажите Eugene!!!! А как обстоят дела с igmpproxy в это версии pfSense-Developers-2.0-ALPHA-ALPHA,я на фри родной мучаюсь и ни как немогу поднять iptv. Зарания спасибо за ответ???????
-
Ко мне можно на ты -)
в 2.0 обстоят ещё лучше ибо сейчас весь код (всё новое) пишется для 2.0, я имею ввиду всю инфраструктуру для разработчиков https://rcs.pfsense.org/projectsВ 1.3 устраняются только баги. Таким образом получается я корректирую под 2.0, а потом прошу Богов имплементировать то же самое под 1.3
-
Ко мне можно на ты -)
в 2.0 обстоят ещё лучше ибо сейчас весь код (всё новое) пишется для 2.0, я имею ввиду всю инфраструктуру для разработчиков https://rcs.pfsense.org/projectsВ 1.3 устраняются только баги. Таким образом получается я корректирую под 2.0, а потом прошу Богов имплементировать то же самое под 1.3
Так что можно ставит 2,0 а то я уже и не знаю где рабочая igmpproxy. У меня голова идёт кругом.
-
Я могу выслать рабочие (последние) бинарники под 1.2.2 (должно и с 1.3 работать) и под 2.0.
-
Сейчас я 2 попробую поставить,если и там не полуться могу ли я разчитовать на твою помощь по настр.iptv ? :o
-
Как говорится, чем могу…
-
Что то 2.0 не хочет ставиться.Ты бы не мог скинуть бинарник рабочий под 1,22.И куда его ставить или как там ,а то я не силён юникс !вот мыло tokar1980@ukr.net а лучше было бы по аськи пообщаться,что бы не спамить.
-
Это старый igmpproxy, он не будет работать. Я даже не знаю, зависят ли пакеты от версии pfSense. Попробуй поставить последний снапшот отсюда http://snapshots.pfsense.org/FreeBSD_RELENG_7_2/pfSense_RELENG_1_2/livecd_installer/
а есть ли последний релиз в виде обновления?
а то чет с нуля лень ставить)Я могу выслать рабочие (последние) бинарники под 1.2.2 (должно и с 1.3 работать) и под 2.0.
кинь на defalt_аt_bk_dоt_ru плз)
-
Как говорится, чем могу…
Подскажи, а появилась ли возможность заставить работать IP-TV когда он приходит по адресам с DHCP, а интернет по PPPoE
вот в этом посте я про нашу конфигурацию сети писал.
http://forum.pfsense.org/index.php/topic,16995.msg90526.html#msg90526
мне надо чтобы на одной сетевой плате было одновременно и DHCP и PPPoE.
В висте всё работает "из коробки", а в пфсенсе зачем-то перемудрили. -
- А вообще такая конфигурация "одна сетевая плата одновременно и DHCP, и PPPoE" работает (без igmpproxy)?
- Если виста работает, то может на ней и смотреть IP-TV?
-
- А вообще такая конфигурация "одна сетевая плата одновременно и DHCP, и PPPoE" работает (без igmpproxy)?
- Если виста работает, то может на ней и смотреть IP-TV?
версия 1.2.3 и 2.0(пару месяцев назад не могла) не могли одновременно на одном интерфейсе завести DHCP+PPPoE приходится выбирать или то или другое.
Вот скажи мне, как разведчик разведчику, зачем при поднятии PPPoE линка идет переопределение WAN ? Ну поднялся виртуальный интерфейс, зачем родительский то перекрывать ? Когда OVPN поднимается прекрасно создаётся новый интерфейс и все счастливы.ну я на Висте и пытаюсь смотреть, но пфсенс не пускает ;D
Надеюсь мы не будем разбирать тему "откажитесь / замените на другой маршрутизатор"
P.S.
моновал работает http://code.google.com/p/m0n0wall-mod/
d-link работает http://www.d-link.ru/ru/faq/68/278.html
давайте пфсенс научим? -
Ясно.
1. Значит вопрос не про igmpproxy. Как разведчик я давал зарок хранить тайну. А серьёзно, я не знаю, никогда не использовал такую конфигурацию.
2. В нашем непростом мире возможно всё. Есть такая ветка http://forum.pfsense.org/index.php/board,34.0.html . Может кто и откликнется. Насколько я понимаю, тут ведь как новые возможности появляются? а) если кто-то заплатит. б) если кому-то умеющему программировать нужна эта возможность, тогда он/она делает и наслаждаются все. -
Была пара человек из тех, кому я помогал настроить IPTV c IGMP V3. Если всё ещё интересно - стучитесь, igmpproxy теперь умеет работать с V3. Сам протестировать не могу ибо мой плэйер упорно генерирует IGMP версии два.
-
Подскажите плз, что дальше..
# tcpdump -ni rl0 igmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes 18:56:15.251308 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:56:17.278801 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:56:53.042732 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:56:56.159959 IP 10.210.1.200 > 224.0.0.1: igmp query v2 18:57:15.323896 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1] 18:57:16.341249 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1] 18:57:17.393358 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1] 18:57:42.352780 IP 10.210.1.200 > 234.5.2.8: igmp query v2 [max resp time 10] [gaddr 234.5.2.8] 18:57:43.308243 IP 10.210.1.200 > 234.5.2.8: igmp query v2 [max resp time 10] [gaddr 234.5.2.8] 18:57:44.309642 IP 10.210.1.200 > 234.5.2.8: igmp query v2 [max resp time 10] [gaddr 234.5.2.8] 18:57:56.416000 IP 10.210.1.200 > 224.0.0.1: igmp query v2 18:57:56.899283 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:58:47.816228 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:58:56.578934 IP 10.210.1.200 > 224.0.0.1: igmp query v2 18:59:47.857401 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:59:49.964658 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 18:59:57.314657 IP 10.210.1.200 > 224.0.0.1: igmp query v2 19:00:50.324884 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 19:00:51.122336 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250] 19:00:57.431385 IP 10.210.1.200 > 224.0.0.1: igmp query v2 19:01:01.874728 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1] 19:01:02.876799 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1] 19:01:03.911375 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1] ^C 23 packets captured 170582 packets received by filter 0 packets dropped by kernel
-
Стучись в личку. Какая версия? я тебе вышлю рабочие файлы.
-
Сначала опишу свою ситуацию, может быть у кого есть похожая.
Есть два провайдера. Первый раздаёт интернет через PPTP, а второй - раздаёт интернет через ADSL, одновременно он же является оператором предоставления услуг IPTV, тоже по технологии ADSL. Интернет и IPTV у последнего провайдера висят на разных VPI/VCI-каналах.
Что я сделал. Чтобы не покупать 2-WAN-овый роутер, я достал свой старый комп (PII-266/320M) и всунул туда 4 сетевухи Realtek :)Скачал и установил pfSense, версия 1.2.3 (сборка LiveCD ), типа последняя из стабильных. Настойка и превращение старого компа в роутер прошла практически без проблем.
Шнур от первого провайдера воткнул в rl0 (это WAN), ADSL-модем воткнул в rl1 (это OPT1), а rl2 назначил в качестве LAN-интерфейса, и его соединил с рабочим компом.Короче, проблема. Интернет трафик от первого и второго провайдера проходят, а IPTV от последнего - нет, в логах пишет, что заблокированы IGMP-пакеты, хотя в рулах тупо поставил Pass any any и поднял bridge между LAN и OPT1 интерфейсами, поставил галку System -> Advansed -> "Disables the PF scrubbing option which can sometimes interfere with NFS and PPTP traffic", кстати, в своей версии pfSense я не обнаружил опцию "This allows packets with ip options to pass otherwise they are blocked by default i.e. with multicast routing/proxing." (Rules -> Edit -> Advanced options) :(
Когда на ADSL-модеме стоит режим bridge, и между LAN и OPT1 тоже проброшен bridge, то я без проблем могу поднять виртуальное PPPoE соединение на рабочем компе, и интернет трафик от второго прова (тот который ADSL) спокойно проходит через роутер, но при прочих равных в режиме IPTV, этот канал к сожалению не фурычит :(Вопросы:
1. Что надо сделать, чтобы pfSense пропускал IGMP-пакеты через роутер ?
2. Поможет ли установка pfSense, версия 2 (последней бэты, LiveCD), и прикручивание к нему демона igmpproxy? Да, и насколько нужен этот демон, если смотреть IPTV буду я один, да и то лишь через бридж на OPT1, без ретрансляции далее в локальную сетку.Конфигурация рабочего компа:
Ось: Vista, в брандмауэре IGMP протокол разрешён через "Брандмауэр Windows в режиме повышенной безопасности"
Плеер: "IP-TV Player", если воткнуть ADSL-модем непосредственно в комп, то есть без роутера, IPTV тоже прекрасно работает.Заранее спасибо за ответы и с Новым Годом ! :)
ПС. Всё таки неплохо бы увидеть подробный HOWTO с решением проблемы IGMP в pfSense …
-
кстати, в своей версии pfSense я не обнаружил опцию "This allows packets with ip options to pass otherwise they are blocked by default i.e. with multicast routing/proxing." (Rules -> Edit -> Advanced options)
Эта опция появляется, когда устанавливаешь пакет igmpproxy.
По твоей ситуации - я не работал с bridge между двумя интерфейсами, поэтому точно не скажу. Но на сколько я понимаю "бриджей", нужно сделать следующее.
1. Установить пакет igmpproxy - только для того, чтобы появилось поле "allow ip options".
2. Остановить сервис igmpproxy (если запустился)
3. На OPT1 и LAN создать правила, разрешающие IGMP с "allow ip options".pfSense 2.0 пробовать можно, но на свой страх и риск, ибо сырой ещё.
-
2 Eugene
Всё сделал по твоёму, igmpproxy запустился, галку поставил, потом я его снёс, а галка осталась ;D
версия роутера 1.2.3
Кстати, опция "Disables the PF scrubbing option which can sometimes interfere with NFS and PPTP traffic" оказалась не нужнаЩаз смотрю IPTV, спасибо :)
Выкладываю сюда страничку с рабочими настройками проброса моста между OPT1 и LAN интерфейсами
-
Вот и славненько, будем знать, что и с бриджом работает.
-
Howto
Я свято и наивно верю, что если человек понимает, что он делает, то он делает это намного эффективнее, чем если просто тупо следует алгоритму, а посему - немного теории.
Смотрим схему - PC1 хочет смотреть IPTV.
(1) player генерирует IGMP-report, тем самым говоря, что хочет получать multicast поток с неким multicast адресом (пусть будет 239.0.0.1), multicast поток - это поток UDP пакетов (звук + изображение). Разные multicast адреса - разные каналы. Данный IGMP-report также является multicast пакетом, потом транслируется локальным свичом на все порты (в пределах сегмента сети), т.е. его получают все устройства, подключенные к данному свичу (если свич не шибко умный).
(2) Но всем устройствам глубоко фиолетово на этот IGMP-report, однако, только не pfSense'у с работающим igmpproxy, который осознаёт, что у него на LAN появилось какое-то устройство, жаждущее получить multicast-поток с адресом 239.0.0.1. LAN на данной схеме в терминологии igmpproxy является Downstream интерфейсов, т.е. интерфейс, где находится получатель(и) потока. Теперь pfSense'у надо где-то взять этот поток и он формирует IGMP-report на Upstream интерфейсе (WAN), надеясь поиметь этот поток с провайдера. Заметим, что это не пакет (1) просто смаршрутизированный на WAN интерфейс, это совершенно новый пакет, сгенерированный самим pfSense'ом (хотя это сути не меняет).
(3) Устройство провайдера, получив, IGMP-report с интересным адресом 239.0.0.1 восклицает "ба! да здесь кто-то хочет смотреть первый канал!" и начинает лупить в вашу сторону UDP-поток с destination IP address 239.0.0.1.
(4) pfSense уже знает, кто хочет смотреть первый канал, ибо на шаге (2) igmpproxy ядру сказал, что этот поток желают на интерфейсе LAN и ядро FreeBSD уже без какого-либо участия igmpproxy начинает маршрутизировать этот UDP поток на LAN-интерфейс, где благодарные пользователи видят оживший экран своего Player'а.Процедура установки/конфигурирования.
1. Установить пакет igmpproxy из System->Packages
2. Создать правило на LAN-интерфесе в Firewall->Rules
Pass Proto=IGMP Source=LANnet Destination=224.0.0.0/4 AdvancedOptions отметить "This allows packets with ip options to pass …"
Save/Apply
3. Создать правило на WAN-интерфейсе в Firewall->Rules
Pass Proto=UDP Destination=224.0.0.0/4
Save/Apply
4. Сконфигурировать igmpproxy в Services->IGMP proxy. Сделать LAN Downstream, а WAN Upstream.
5. Проверить, что igmpproxy запустился в Status->Services.Всё, в 90% случаев это заработает.
Опционные шаги:
6. Сложный случай раз - провайдер вещает из какой-то сети, отличной от той, что прописана на Upstream (от 1.1.1.0/24 на моей диаграмме), например с адреса 3.4.5.42. Необходимо в конфигурации igmpproxy на Upstream интерфейсе добавить эту сеть в Networks - 3.4.5.0/24 (можно 3.4.5.42/32 для пущего страха).
7. Сложный случай два - у вас крутая сеть и на pfSense LAN есть маршрутизатор, который может маршрутизировать multicast пакеты и за этим маршрутизатором, скажем в сети 10.10.10.0/24, есть устройство, которое хочет смотреть первый канал. Необходимо в конфигурации igmpproxy на Downstream интерфейсе добавить эту сеть в Networks. Возможно, придётся создать правило, аналогичное пункту 2 для данной сети, хотя врядли (зависит от того, как работает этот маршрутизатор).
8. Сложный случай три - это одновременно имеем сложные случаи раз и два. Выполняем пункты 6 и 7.PS: правила могут быть (и должны быть) жёстче, здесь приведён пример, аналогичный "разрешить всё" для обычного трафика.
PPS: UDP-поток IPTV - это обычно много маленьких пакетов, т.е. довольно интенсивная нагрузка на pfSense, если изображение рассыпается, посмотрите на нагрузку - тянет ли Ваше железо.
PPPS: наверняка что-то забыл, поправки и вопросы приветствуются.Рекомендовано чтение: IGMP protocol.
-
Добавлю свои пять копеек.
У меня милая для России конфигурация сети
локальный IP по DHCP + PPPoE всё это добро на одной сетевухе. PFsense такие конфигурации штатно не поддерживает.IPTV ходит ес-но по локалке.
нам нужно получить локальный IP на интерфейсе WAN.
Делаем согласно http://forum.pfsense.org/index.php/topic,2996.msg17972.html#msg17972
я дописал в config.xml<system>.... <shellcmd>dhclient vr0;</shellcmd></system>
ну и есно загрузить этот конфиг (делаем бекап, правим его ручками, делаем Restore)
остальное согласно предыдущего поста.
прописать правила для мультикаст на WAN и LAN
и настроить igmpproxy
пример моей настройки на скриншотеP.S.
Спасибо "Eugene" за помошь ;D
P.P.S.
Как показала практика этой настройки не хватает для полностью автоматической работы. Необходимо, чтобы в настройках igmpproxy Upstream указывал на физический интерфейс сетевой платы, а не на PPPoe.
Пока приходится в файле igmpproxy.conf править ручками интерфейс, например для меня, ng0 -> vr0
Сейчас думаю как изменить скрипт генерации конфига для igmpproxy для автоматизации этого процесса.