Имею pfsense 2.0.1-RELEASE (amd64). Какая то хрень творится с парой igmpproxy и udpxy.
Проблема: IPTV через igmpproxy работает нормально за исключением того, что каждые минут 5 картинка останавливается, стоит секунд 20 и снова стартует.
Решил побороть с помощью udpxy, но в итоге он поборол меня.
Параметры сети2 WAN с балансировкой через System: Advanced: Miscellaneous ->Allow default gateway switching
1 провайдер
WAN interface (re0)
IP address 10.120.68.129
Subnet mask 255.255.255.0
Gateway WAN 10.120.68.1
2 провайдер (default routing)
SPIDYLINE interface (re1)
IP address 10.18.65.51
Subnet mask 255.255.255.0
Gateway spidygate 10.18.65.254
LAN2 interface (re2) он же OPT2
IP address 192.168.1.1
Subnet mask 255.255.255.0
Настройка IGMP Proxy
WAN upstream 77.94.0.0/16, 224.0.0.0/4
OPT2 downstream 192.168.1.0/24
Где 77.94.0.0/16 сетка с которой вещает провайдер (выявлено по логам IGMP Proxy)
Поставил пакет udpxy из
http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/8.1-RELEASE/packages/Latest/.
Пошаманил согласно этому посту с конфигурационным файлом
http://forum.pfsense.org/index.php/topic,45354.msg237260.html#msg237260Имеем в /usr/local/etc/rc.d/udpxy.sh:
. /etc/rc.subr
name="udpxy"
rcvar=$(set_rcvar)
load_rc_config ${name}
udpxy_enable=${udpxy_enable-"YES"}
udpxy_port=${udpxy_port-"4022"}
udpxy_flags=${udpxy_flags-" -a re2 -c 6 -M 60 -m re0"}
command="/usr/local/sbin/${name}"
pidfile="/var/run/${name}${udpxy_port}.pid"
udpxy_flags="-p ${udpxy_port} ${udpxy_flags}"
run_rc_command "$1"
По адресу
http://192.168.1.1:4022/status успешно показывает интерфейс udpxy
Теперь самое загадочное. В качестве клиента выступает VLC запущеный на 192.168.1.9
Сценарий 1: попытка показать первый канал через
http://192.168.1.1:4022/udp/234.5.2.1:20000 ничего не дает.
http://192.168.1.1:4022/status показывает что подключен один клиент.
В логах pfsense имеем:
Mar 31 11:39:17 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:39:17 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:39:18 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:39:22 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:39:22 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:39:24 udpxy[55201]: read_buf: read: Resource temporarily unavailable
Через tcpdump имеем следующее:
tcpdump -n -i re2 port 2000 or igmp
11:51:58.936099 IP 192.168.1.9 > 239.255.255.250: igmp v2 report 239.255.255.250
11:52:00.194217 IP 192.168.1.5 > 224.0.0.22: igmp v3 report, 1 group record(s)
11:52:01.194002 IP 192.168.1.1 > 224.0.0.252: igmp query v2 [gaddr 224.0.0.252]
11:52:01.194123 IP 192.168.1.1 > 224.0.0.1: igmp query v3 [gaddr 224.0.0.252]
11:52:01.624845 IP 192.168.1.1 > 224.0.0.2: igmp v2 report 224.0.0.2
11:52:06.617799 IP 192.168.1.1 > 224.0.0.252: igmp query v2 [gaddr 224.0.0.252]
11:52:06.617920 IP 192.168.1.1 > 224.0.0.1: igmp query v3 [gaddr 224.0.0.252]
11:52:07.359022 IP 192.168.1.8 > 224.0.0.252: igmp v2 report 224.0.0.252
11:52:11.354138 IP 192.168.1.1 > 224.0.0.252: igmp query v2 [gaddr 224.0.0.252]
11:52:11.354234 IP 192.168.1.1 > 224.0.0.1: igmp query v3 [gaddr 224.0.0.252]
11:52:15.936480 IP 192.168.1.9 > 224.0.0.252: igmp v2 report 224.0.0.252
11:52:15.936955 IP 192.168.1.1 > 224.0.0.252: igmp query v2 [gaddr 224.0.0.252]
11:52:15.937020 IP 192.168.1.1 > 224.0.0.1: igmp query v3 [gaddr 224.0.0.252]
11:52:20.353730 IP 192.168.1.8 > 224.0.0.252: igmp v2 report 224.0.0.252
11:52:21.353282 IP 192.168.1.1 > 224.0.0.252: igmp query v2 [gaddr 224.0.0.252]
11:52:21.353375 IP 192.168.1.1 > 224.0.0.1: igmp query v3 [gaddr 224.0.0.252]
11:52:26.346973 IP 192.168.1.1 > 224.0.0.252: igmp query v2 [gaddr 224.0.0.252]
11:52:26.347096 IP 192.168.1.1 > 224.0.0.1: igmp query v3 [gaddr 224.0.0.252]
11:52:26.858862 IP 192.168.1.8 > 224.0.0.252: igmp v2 report 224.0.0.252
Сценарий 2:
Запускаем просмотр через udp://@234.5.2.1:20000. Все естественно работает.
Mar 31 11:40:31 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:40:31 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:40:34 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:40:34 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 234.5.2.1 (ip_hl 24, data

Mar 31 11:40:34 igmpproxy: Note: joinMcGroup: 234.5.2.1 on re0
Mar 31 11:40:35 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 234.5.2.1 (ip_hl 24, data

Mar 31 11:40:35 igmpproxy: Note: New origin for route 234.5.2.1 is 77.94.170.3, flood -1
Mar 31 11:40:35 igmpproxy: Note: Adding MFC: 77.94.170.3 -> 234.5.2.1, InpVIf: 0
Mar 31 11:40:35 igmpproxy: Note: New origin for route 234.5.2.53 is 77.94.170.4, flood -1
Mar 31 11:40:37 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:40:37 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Снова запускаем
http://192.168.1.1:4022/udp/234.5.2.1:20000 и о чудо! Оно работает! Но счастье будет не долгим. Такое впечатление, что как только поток с видео пошел от провайдера (а он пошел после предыдущего шага), то udpxy его нормально транслирует. Но сам udpxy запрос на показ отослать не может.
Mar 31 11:41:22 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:22 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:25 igmpproxy: Note: RECV Leave message from 192.168.1.9 to 224.0.0.2 (ip_hl 24, data

Mar 31 11:41:25 igmpproxy: Note: leaveMcGroup: 234.5.2.1 on re0
Mar 31 11:41:25 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 234.5.2.1 (ip_hl 24, data

Mar 31 11:41:25 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:26 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:26 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:26 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:30 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data

Mar 31 11:41:30 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:31 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:31 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 239.255.255.250 (ip_hl 24, data

Через секунд 20 воспроизведение через updxy останавливается. Ниже логи сего печального момента:
Mar 31 11:41:41 igmpproxy: Warn: MRT_DEL_MFC; Errno(49): Can't assign requested address
Mar 31 11:41:41 igmpproxy: Warn: age_table_entry: SIOCGETSGCNT failing for (77.94.170.3 234.5.2.12); Errno(49): Can't assign requested address
Mar 31 11:41:41 igmpproxy: Note: Removing MFC: 77.94.170.3 -> 234.5.2.12, InpVIf: 0
Mar 31 11:41:41 igmpproxy: Warn: MRT_DEL_MFC; Errno(49): Can't assign requested address
Mar 31 11:41:41 igmpproxy: Warn: age_table_entry: SIOCGETSGCNT failing for (77.94.170.3 234.5.2.15); Errno(49): Can't assign requested address
Mar 31 11:41:41 igmpproxy: Note: Removing MFC: 77.94.170.3 -> 234.5.2.15, InpVIf: 0
Mar 31 11:41:41 igmpproxy: Warn: MRT_DEL_MFC; Errno(49): Can't assign requested address
Mar 31 11:41:41 igmpproxy: Note: Route is not active. No kernel updates done.
Mar 31 11:41:41 igmpproxy: Warn: age_table_entry: SIOCGETSGCNT failing for (77.94.170.4 234.5.2.53); Errno(49): Can't assign requested address
Mar 31 11:41:41 igmpproxy: Note: Removing MFC: 77.94.170.4 -> 234.5.2.53, InpVIf: 0
Mar 31 11:41:41 igmpproxy: Warn: MRT_DEL_MFC; Errno(49): Can't assign requested address
Mar 31 11:41:42 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:42 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:42 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 234.5.2.1 (ip_hl 24, data

Mar 31 11:41:42 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:42 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:47 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:47 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:48 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:52 igmpproxy: Note: Removing MFC: 77.94.170.3 -> 234.5.2.1, InpVIf: 0
Mar 31 11:41:52 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:52 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:52 igmpproxy: Note: New origin for route 234.5.2.1 is 77.94.170.3, flood -1
Mar 31 11:41:52 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:57 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:41:57 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:41:57 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:01 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:01 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:02 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:07 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:07 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:12 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:12 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:12 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:17 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:17 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:22 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:22 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:23 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:25 udpxy[62839]: read_buf: read: Resource temporarily unavailable
Mar 31 11:42:27 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:27 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:27 igmpproxy: Note: RECV V2 member report from 192.168.1.9 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:27 igmpproxy: Note: New origin for route 234.5.2.81 is 77.94.170.4, flood -1
Mar 31 11:42:32 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:32 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:37 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.252 (ip_hl 24, data

Mar 31 11:42:37 igmpproxy: Note: RECV Membership query from 192.168.1.1 to 224.0.0.1 (ip_hl 24, data 12)
Mar 31 11:42:37 igmpproxy: Note: RECV V2 member report from 192.168.1.8 to 224.0.0.252 (ip_hl 24, data
Что делать? В никсах не силен, сегодня пошел мой второй день копания в них. Раньше никогда с ними дела не имел вообще.
P.S. Не знаю поможет ли понять проблему, но вот на всякий случай логи фаервола при попытке посмотреть
http://192.168.1.1:4022/udp/234.5.2.1:20000:
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 10.120.68.231.56521 > 255.255.255.255.7533: UDP, length 26
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.062628 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 20667, offset 0, flags [none], proto UDP (17), length 54)
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 10.120.70.152.59559 > 255.255.255.255.7533: UDP, length 26
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.147993 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 22979, offset 0, flags [none], proto UDP (17), length 54)
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 10.120.69.74.137 > 10.120.71.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.396131 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 63097, offset 0, flags [none], proto UDP (17), length 78)
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 10.120.68.35.54675 > 255.255.255.255.7533: UDP, length 26
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.161004 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 2064, offset 0, flags [none], proto UDP (17), length 54)
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 10.120.68.128.62032 > 255.255.255.255.7533: UDP, length 26
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.136552 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 14512, offset 0, flags [none], proto UDP (17), length 54)
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 10.120.68.129 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 234.5.2.1 to_ex, 0 source(s)]
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.038855 rule 18/0(match): block in on re0: (tos 0xc0, ttl 1, id 886, offset 0, flags [DF], proto IGMP (2), length 40, options (RA))
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 172.19.0.1 > 235.1.1.1: igmp query v2 [max resp time 10] [gaddr 235.1.1.1]
03-31-2012 13:11:40 Local0.Info 192.168.1.1 Mar 31 13:11:49 pf: 00:00:00.017450 rule 28/0(match): block in on re1: (tos 0xc0, ttl 1, id 48224, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 10.120.69.74.137 > 10.120.71.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 00:00:00.039410 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 63040, offset 0, flags [none], proto UDP (17), length 78)
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 10.120.68.231.56521 > 255.255.255.255.7533: UDP, length 26
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 00:00:00.062656 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 20666, offset 0, flags [none], proto UDP (17), length 54)
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 10.120.70.152.59559 > 255.255.255.255.7533: UDP, length 26
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 00:00:00.028271 rule 18/0(match): block in on re0: (tos 0x0, ttl 128, id 22965, offset 0, flags [none], proto UDP (17), length 54)
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 10.120.69.218.5353 > 224.0.0.251.5353: 0 [2q] A (QM)? retracker.local. AAAA (QM)? retracker.local. (39)
03-31-2012 13:11:39 Local0.Info 192.168.1.1 Mar 31 13:11:48 pf: 00:00:00.205562 rule 18/0(match): block in on re0: (tos 0x0, ttl 255, id 20099, offset 0, flags [none], proto UDP (17), length 67)