Bonjour, et tout d'abord merci pour ce tuto très intéressant
!
J'avais tenté de faire fonctionner la TV sous pfSense il y a bientôt 2 ans lorsque le FTTH est arrivé chez moi (pas de vlan 100 unique à l'époque), mais sans succès... Tes explications m'ont redonné envie de tester mais malheureusement c'est toujours un échec
.
Je suis également sous Opnsense, et pour commencer je n'ai même pas de requête IGMP qui partent sur l'interface WAN, malgré avoir suivi chaque étape et un proxy IGMP qui semble bien actif...
La seule partie que je n'ai pas pu/su faire est
"Côté OPT2 (ou LAN), il faut également cocher l'option "Allow IP options" dans les règles pfsense par défaut.", je n'ai pas trouvé des paramètre équivalent.
Voici les règles floating :
Et la configuration du proxy IGMP :
Voici le retour d'un tcpdump de l'interface WAN :
root@gorgon:~ # tcpdump -li igb0_vlan100 igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on igb0_vlan100, link-type EN10MB (Ethernet), capture size 262144 bytes
20:16:39.571058 IP 0.0.0.0 > all-systems.mcast.net: igmp query v2
20:18:44.559037 IP 0.0.0.0 > all-systems.mcast.net: igmp query v2
20:20:49.546974 IP 0.0.0.0 > all-systems.mcast.net: igmp query v2
20:22:54.535672 IP 0.0.0.0 > all-systems.mcast.net: igmp query v2
Pourtant je vois bien arriver les requêtes côté LAN, donc à priori pas de souci au niveau de mon switch :
root@gorgon:~ # tcpdump -li lagg0_vlan20 igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lagg0_vlan20, link-type EN10MB (Ethernet), capture size 262144 bytes
20:24:31.510217 IP BouygtelTV-271011536111361 > 239.255.3.22: igmp v2 report 239.255.3.22
20:24:32.390169 IP BouygtelTV-271011536111361 > 239.255.255.250: igmp v2 report 239.255.255.250
20:24:36.880556 IP gorgon > all-systems.mcast.net: igmp query v2
20:24:36.884924 IP BouygtelTV-271011536111361 > 232.0.64.211: igmp v2 report 232.0.64.211
20:24:38.760386 IP BouygtelTV-271011536111361 > 239.255.255.250: igmp v2 report 239.255.255.250
20:24:41.400919 IP BouygtelTV-271011536111361 > 239.255.3.22: igmp v2 report 239.255.3.22
20:24:42.920940 IP gorgon > all-systems.mcast.net: igmp query v2
20:24:43.620302 IP BouygtelTV-271011536111361 > 239.255.255.250: igmp v2 report 239.255.255.250
20:24:45.935364 IP BouygtelTV-271011536111361 > all-routers.mcast.net: igmp leave 232.0.64.211
20:24:46.950855 IP BouygtelTV-271011536111361 > 239.255.3.22: igmp v2 report 239.255.3.22
20:24:48.924068 IP gorgon > all-systems.mcast.net: igmp query v2
20:24:49.334811 IP BouygtelTV-271011536111361 > 232.0.31.62: igmp v2 report 232.0.31.62
^C
12 packets captured
2681 packets received by filter
0 packets dropped by kernel
J'ai également tenté le lancement à part de igmpproxy en debug mais rien de plus parlant :
root@gorgon:~ # /usr/local/sbin/igmpproxy -d -vvvv /usr/local/etc/igmpproxy.conf
Searching for config file at '/usr/local/etc/igmpproxy.conf'
Config: Quick leave mode enabled.
Config: Got a phyint token.
Config: IF: Config for interface igb0_vlan100.
Config: IF: Got upstream token.
Config: IF: Got ratelimit token '0'.
Config: IF: Got threshold token '1'.
Config: IF: Got altnet token 193.251.97.0/24.
Config: IF: Altnet: Parsed altnet to 193.251.97/24.
Config: IF: Got altnet token 176.165.8.0/24.
Config: IF: Altnet: Parsed altnet to 176.165.8/24.
Config: IF: Got altnet token 89.86.97.0/24.
Config: IF: Altnet: Parsed altnet to 89.86.97/24.
Config: IF: Got altnet token 89.86.96.0/24.
Config: IF: Altnet: Parsed altnet to 89.86.96/24.
IF name : igb0_vlan100
Next ptr : 0
Ratelimit : 0
Threshold : 1
State : 1
Allowednet ptr : 42a010
Config: Got a phyint token.
Config: IF: Config for interface lagg0_vlan20.
Config: IF: Got downstream token.
Config: IF: Got ratelimit token '0'.
Config: IF: Got threshold token '1'.
IF name : lagg0_vlan20
Next ptr : 0
Ratelimit : 0
Threshold : 1
State : 2
Allowednet ptr : 0
[...]
buildIfVc: Interface lo0 Addr: 127.0.0.1, Flags: 0xffff8049, Network: 127/8
buildIfVc: Interface igb0_vlan100 Addr: 176.159.xxx.xxx, Flags: 0xffff8943, Network: 176.159.xxx/20
buildIfVc: Interface lagg0_vlan20 Addr: 10.42.20.254, Flags: 0xffff8843, Network: 10.42.20/24
Found config for igb0_vlan100
Found config for lagg0_vlan20
Found upstrem IF #0, will assing as upstream Vif 22
adding VIF, Ix 0 Fl 0x0 IP 0x43a29fb0 igb0_vlan100, Threshold: 1, Ratelimit: 0
Network for [igb0_vlan100] : 176.159.xxx/20
Network for [igb0_vlan100] : 193.251.97/24
Network for [igb0_vlan100] : 176.165.8/24
Network for [igb0_vlan100] : 89.86.97/24
Network for [igb0_vlan100] : 89.86.96/24
adding VIF, Ix 1 Fl 0x0 IP 0xfe142a0a lagg0_vlan20, Threshold: 1, Ratelimit: 0
Network for [lagg0_vlan20] : 10.42.20/24
Got 262144 byte buffer size in 0 iterations
Joining all-routers group 224.0.0.2 on vif 10.42.20.254
joinMcGroup: 224.0.0.2 on lagg0_vlan20
Joining all igmpv3 multicast routers group 224.0.0.22 on vif 10.42.20.254
joinMcGroup: 224.0.0.22 on lagg0_vlan20
SENT Membership query from 10.42.20.254 to 224.0.0.1
Sent membership query from 10.42.20.254 to 224.0.0.1. Delay: 10
Created timeout 1 (#0) - delay 10 secs
(Id:1, Time:10)
Created timeout 2 (#1) - delay 21 secs
(Id:1, Time:10)
(Id:2, Time:21)
About to call timeout 1 (#0)
Aging routes in table.
Current routing table (Age active routes):
-----------------------------------------------------
No routes in table...
-----------------------------------------------------
About to call timeout 2 (#0)
SENT Membership query from 10.42.20.254 to 224.0.0.1
Sent membership query from 10.42.20.254 to 224.0.0.1. Delay: 10
Created timeout 3 (#0) - delay 10 secs
(Id:3, Time:10)
Created timeout 4 (#1) - delay 21 secs
(Id:3, Time:10)
(Id:4, Time:21)
About to call timeout 3 (#0)
Aging routes in table.
Current routing table (Age active routes):
-----------------------------------------------------
No routes in table...
-----------------------------------------------------
About to call timeout 4 (#0)
SENT Membership query from 10.42.20.254 to 224.0.0.1
Sent membership query from 10.42.20.254 to 224.0.0.1. Delay: 10
Created timeout 5 (#0) - delay 10 secs
(Id:5, Time:10)
Created timeout 6 (#1) - delay 115 secs
(Id:5, Time:10)
(Id:6, Time:115)
About to call timeout 5 (#0)
Aging routes in table.
J'imagine qu'il manque peut être quelque chose dans mes règles de filtrage côté LAN mais quoi ? J'ai tenté d'autoriser l'IGMP à destination de tout mais ça ne change rien...
Auriez-vous d'autres pistes à suivre ?
Merci d'avance
.
Edit : Le problème venait bien du "Allow options" sur la partie LAN... J'ai effectivement refait une règle autorisant l'IGMP en any/any sur le LAN, et le paramètre "Allow options" était bien là. Tout semble parfaitement fonctionner, aucun bug de zapping, et le flux tient plus de 5 minutes sur les quelques tests réalisés. Je n'ai pas testé la VOD mais tout est configuré pour que ça fonctionne normalement.