KPN IPTV Routing via Ubuntu 18.04 - Wat gaat er mis?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Wellicht dat mensen hier ervaringen hebben die kunnen helpen;

Ik heb KPN glasvezel, ik wil geen KPN modem maar wel IPTV. Ik gebruik een Ubuntu box, 18.04, met 2 netwerkkaarten als router.

Dit is mijn netwerksituatie:

Afbeeldingslocatie: https://tweakers.net/i/7cUwth1VdHx17X-C7CzFM1OsAcw=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/3KFG0bebUDvvHk3pZDNnZ6IB.png?f=user_large

Er gaat een UTP van het KPN punt naar een NIC. Daar loopt een PPPoE sessie overheen op eth0.6 en een dhcp sessie op eth0.4 als vlan4;
code:
1
2
3
4
5
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
interface "vlan4" {
  request subnet-mask, broadcast-address, routers, rfc3442-classless-static-routes;
  send vendor-class-identifier "IPTV_RG";
}


Dat geeft een route;
code:
1
2
3
# ip route | grep vlan4
10.128.252.0/22 dev vlan4 proto kernel scope link src 10.128.254.46
213.75.112.0/21 via 10.128.252.1 dev vlan4


Internet werkt op mijn hele LAN, via eenvoudige NAT masquarading. Echter, die Set Top Box met IPTV werkt niet. Mijn routers, DSG-1100's, hebben IGMP snooping aanstaan. En de Ubuntu box zelf ook op deze manier;
code:
1
2
3
4
5
6
quickleave

phyint vlan4 upstream  ratelimit 0  threshold 1
        altnet 192.168.40.0/24
        altnet 213.75.0.0/16
        altnet 217.166.0.0/16


Mijn iptables zien er zo uit;
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

# iptables -L -t raw
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             base-address.mcast.net/4  TTL match TTL < 7

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.84.86.0/24        anywhere
MASQUERADE  all  --  anywhere             anywhere


Ik zou denken, ook gebaseerd op alle handleidingen en tips die ik online vondt, dat dat zou moeten werken. Echter, tot nu toe niets. De STB blijft telkens opnieuw proberen software te downloaden. Zonder veel success.

Ik zie wel dat de STB een group addres 224.3.2.6 heeft. Maar blijft verder weinig doen. Ik heb niet echt een idee meer hoe af wat. Rechtstreeks via die experia werkt het wel, maar ja, dat was nu net niet de bedoeling.

Iemand enig idee of richting?

Code, justify, code - Pitr Dubovich

Alle reacties


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
In je IGMP proxy configuratie mis je de downstream interface.

Daarnaast mis je iptables regels om IGMP verkeer vanuit zowel WAN VLAN4 als je LAN toe te staan (die moeten op de input chain).

[ Voor 6% gewijzigd door ik222 op 27-06-2020 19:40 ]


Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Bedankt voor het antwoord.

Moet ik dan mijn enp5s0 interface als downstream definiëren? Zoiets
code:
1
phyint enp5s0 downstream ratelimit 0 threshold 1


En is het als policy "ACCEPT" zetten van iptables niet genoeg? Moet ik specifiek iets doen zoals dit?
code:
1
-A INPUT -m pkttype --pkt-type multicast -j ACCEPT

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
CrimsonRider schreef op zaterdag 27 juni 2020 @ 19:59:
Bedankt voor het antwoord.

Moet ik dan mijn enp5s0 interface als downstream definiëren? Zoiets
code:
1
phyint enp5s0 downstream ratelimit 0 threshold 1
Ja inderdaad, dat stukje config moet je toevoegen. Immers op die interface zitten je downstream clients.
En is het als policy "ACCEPT" zetten van iptables niet genoeg? Moet ik specifiek iets doen zoals dit?
code:
1
-A INPUT -m pkttype --pkt-type multicast -j ACCEPT
Dat zou ook moeten voldoen lijkt me.

Wat je trouwens ook nog moet doen is via sysctl rp_filter van de default strict mode (1) afhalen voor de WAN VLAN4 interface. Ik zou die daar helemaal uitzetten (0). Met loose mode (2) zal het ook al werken maar dat voegt niets toe.

Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Helaas, het werkt nog niet. Ik zie ook helemaal niets erover heen gaan;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
iptables -L -n -v
Chain INPUT (policy ACCEPT 56 packets, 4315 bytes)
 pkts bytes target     prot opt in     out     source               destination
   25  1981 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            PKTTYPE = multicast
    0     0 ACCEPT     all  --  vlan4  *       0.0.0.0/0            224.0.0.0/4

Chain FORWARD (policy ACCEPT 65 packets, 18815 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 50 packets, 4772 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     2    --  *      vlan4   0.0.0.0/0            224.0.0.2
    0     0 ACCEPT     udp  --  *      vlan4   0.0.0.0/0            0.0.0.0/0            udp dpt:68

# iptables -L -t nat -v
Chain PREROUTING (policy ACCEPT 1256 packets, 126K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 782 packets, 60538 bytes)
 pkts bytes target     prot opt in     out     source               destination

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

Chain POSTROUTING (policy ACCEPT 455 packets, 28461 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  any    vlan4   anywhere             213.75.112.0/21
  941  106K MASQUERADE  all  --  any    ppp0    anywhere             anywhere

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • webfreakz.nl
  • Registratie: November 2003
  • Laatst online: 03-07 21:31

webfreakz.nl

el-nul-zet-é-er

Kan je STB de Ubuntu VM bereiken?

Kan je eens met tcpdump kijken of je IGMP berichten ziet op beide interfaces (uplink en downlink)?

"You smell that, son? What sir? Napalm, I love the smell of napalm in the mornin!" || Children of Bodom fan!


Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
De ubuntu is geen VM, maar rechstreeks ijzer. Ik zal eens een capture uitvoeren.

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
Je hebt rp_filter ook uit staan? Anders inderdaad een capture maken op beide interfaces en ook even igmpproxy in debug mode draaien.

Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
rp_filter staat aan voor zover ik kan zien.

Er gebeurt wel wat op vlan4

code:
1
2
3
4
5
6
7
8
9
# tcpdump -i vlan4
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vlan4, link-type EN10MB (Ethernet), capture size 262144 bytes
00:07:33.588339 IP 10.128.254.46.52827 > 239.255.255.250.1900: UDP, length 101
00:07:35.277277 IP 10.128.254.46.54354 > 10.128.255.255.32414: UDP, length 21
00:07:35.277285 IP 10.128.254.46.34353 > 10.128.255.255.32412: UDP, length 21
00:07:38.614506 IP 10.60.171.5 > all-systems.mcast.net: igmp query v3
00:07:40.277873 IP 10.128.254.46.54354 > 10.128.255.255.32414: UDP, length 21
00:07:40.277882 IP 10.128.254.46.34353 > 10.128.255.255.32412: UDP, length 21


Maar, ik kan nog niet iets op de andere interface zien. Moet ik even uitzoeken welk IP die heeft, aangezien enp5s0 het hele lan is.

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
rp_filter moet juist uitgeschakeld worden, dus op 0 gezet.

Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Zowel met als zonder rp_filter aan heb ik nu beeld.

Maar het hapert. Er is 1 of 2 seconden beeld, dan stopt tie, nog 1 seconde beeld en geeft aan dat de zender niet gevonden is. Zappen naar een ander zender en dan gebeurd hetzelfde.

Iemand nog een idee?

Edit: ik heb ook gewoon beeld als ik igmpproxy uitzet. Ik wou hem herstarten om in debug te kijken wat er gebeurde, maar lijkt of die hele igmpproxy niet gebruikt wordt.

ik start hem in debug
code:
1
2
3
igmpproxy -d -v /etc/igmpproxy.conf
adding VIF, Ix 0 Fl 0x0 IP 0x2efe800a vlan4, Threshold: 1, Ratelimit: 0
The IGMP message was local multicast. Ignoring.


En dat is alles wat er uitkomt.

[ Voor 45% gewijzigd door CrimsonRider op 28-06-2020 13:02 ]

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
Dat komt doordat je de eerste 2 seconden een unicast stream krijgt. Daarna wordt pas naar multicast geschakeld (zo kun je sneller zappen). De unicast stream werken wel met rp_filter aan en zonder igmpproxy.

igmpproxy moet je met -vv starten om volledige debug output te krijgen. Maar sowieso lijkt dus je LAN interface te missen...

[ Voor 8% gewijzigd door ik222 op 28-06-2020 13:55 ]


Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Ja. Ik zit net te kijken in mijn routers, daar komt wel iets voorbij aan IGMP snooping.

Ik run nu igmpproxy -vv en krijg dit;
Current routing table (Insert Route):
code:
1
2
3
4
5
6
7
8
9
10
11
Current routing table (Insert Route):
-----------------------------------------------------
#0: Dst: 225.0.71.1, Age:2, St: I, OutVifs: 0x00000001
#1: Dst: 224.3.2.6, Age:2, St: I, OutVifs: 0x00000001
#2: Dst: 224.0.252.126, Age:2, St: I, OutVifs: 0x00000001
#3: Dst: 239.255.255.246, Age:2, St: I, OutVifs: 0x00000001
#4: Dst: 224.0.0.251, Age:2, St: I, OutVifs: 0x00000001
-----------------------------------------------------
RECV V2 member report   from 192.168.40.78   to 224.0.252.126
Should insert group 224.0.252.126 (from: 192.168.40.78) to route table. Vif Ix : 0
Updated route entry for 224.0.252.126 on VIF #0


En 192.168.40.78 is inderdaad de STB.

Dit zie ik op de router zelf
Afbeeldingslocatie: https://tweakers.net/i/JR0owwYfVZDfeZmhjBVzqJLdDvA=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/2CugJ9zfJxvUDmDzAkxTISEw.png?f=user_large

edit: de igmpproxy.conf

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cat igmpproxy.conf
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave

#phyint eth0 disabled
#phyint eth0.6 disabled
#phyint ppp0 disabled

##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
##------------------------------------------------------
phyint enp5s0 downstream ratelimit 0 threshold 1


##------------------------------------------------------
## Configuration for eth2 (Disabled Interface)
##------------------------------------------------------
phyint vlan4 upstream  ratelimit 0  threshold 1
    altnet 192.168.40.0/24
        altnet 213.75.112.0/21
    altnet 0.0.0.0/0
#        altnet 217.166.0.0/16


En, om het helemaal duidelijke te krijgen, regionale omroepen doen het wel ok. Maar NL1 bijvoorbeeld niet.

[ Voor 30% gewijzigd door CrimsonRider op 28-06-2020 14:17 ]

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
Dat ziet er allemaal goed uit wat betreft IGMP, ik zou alleen je configuratie nog wat opschonen. Als je 0.0.0.0/0 als altnet erbij zet kan de rest weg. Regionale omroepen zijn volgens mij ook unicast.

Zie je op bijvoorbeeld Nederland 1 de IGMP join wel naar buiten gaan via VLAN4 en zie je daar wel of niet daarna de UDP stream naar de multicast groep binnenkomen?

Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Ik zie een heleboel, maar niets waar door ik denk dat het werkt;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Current routing table (Insert Route):
-----------------------------------------------------
#0: Dst: 225.0.71.1, Age:2, St: I, OutVifs: 0x00000001
#1: Dst: 224.3.2.6, Age:2, St: I, OutVifs: 0x00000001
#2: Dst: 224.0.252.126, Age:2, St: I, OutVifs: 0x00000001
#3: Dst: 224.0.252.134, Age:2, St: I, OutVifs: 0x00000001
#4: Dst: 239.255.255.246, Age:2, St: I, OutVifs: 0x00000001
#5: Dst: 224.0.0.251, Age:2, St: I, OutVifs: 0x00000001
-----------------------------------------------------
The IGMP message was local multicast. Ignoring.
About to call timeout 5 (#0)
Interface id 0 is in group $d
SENT Membership query   from 192.168.40.12   to 224.0.252.134
Sent membership query from 192.168.40.12 to 224.0.252.134. Delay: 10
Created timeout 14 (#8) - delay 5 secs
(Id:6, Time:2)
(Id:7, Time:0)
(Id:8, Time:1)
(Id:9, Time:0)
(Id:10, Time:0)
(Id:11, Time:1)
(Id:12, Time:0)
(Id:13, Time:1)
(Id:14, Time:5)
(Id:4, Time:1)
RECV Membership query   from 192.168.40.12   to 224.0.252.134
RECV Leave message      from 192.168.40.78   to 224.0.0.2
Got leave message from 192.168.40.78 to 224.0.252.126. Starting last member detection.
Interface id 0 is in group $d
SENT Membership query   from 192.168.40.12   to 224.0.252.126
Sent membership query from 192.168.40.12 to 224.0.252.126. Delay: 10
Created timeout 15 (#9) - delay 0 secs
(Id:6, Time:2)
(Id:7, Time:0)
(Id:8, Time:1)
(Id:9, Time:0)
(Id:10, Time:0)
(Id:11, Time:1)
(Id:12, Time:0)
(Id:13, Time:1)
(Id:14, Time:5)
(Id:15, Time:0)
(Id:4, Time:1)
RECV Membership query   from 192.168.40.12   to 224.0.252.126
About to call timeout 6 (#0)
About to call timeout 7 (#1)
RECV V2 member report   from 192.168.40.78   to 224.0.252.126
Should insert group 224.0.252.126 (from: 192.168.40.78) to route table. Vif Ix : 0
Updated route entry for 224.0.252.126 on VIF #0
Joining group 224.0.252.126 upstream on IF address 10.128.254.46
joinMcGroup: 224.0.252.126 on vlan4
MRT_ADD_MEMBERSHIP failed; Errno(98): Address already in use

Current routing table (Insert Route):
-----------------------------------------------------
#0: Dst: 225.0.71.1, Age:2, St: I, OutVifs: 0x00000001
#1: Dst: 224.3.2.6, Age:2, St: I, OutVifs: 0x00000001
#2: Dst: 224.0.252.126, Age:2, St: I, OutVifs: 0x00000001
#3: Dst: 224.0.252.134, Age:1, St: I, OutVifs: 0x00000001
#4: Dst: 239.255.255.246, Age:2, St: I, OutVifs: 0x00000001
#5: Dst: 224.0.0.251, Age:2, St: I, OutVifs: 0x00000001
-----------------------------------------------------
About to call timeout 8 (#0)
About to call timeout 9 (#1)
About to call timeout 10 (#2)
About to call timeout 11 (#0)
About to call timeout 12 (#1)
The IGMP message was local multicast. Ignoring.
About to call timeout 13 (#0)
About to call timeout 14 (#0)
Removing group 224.0.252.134. Died of old age.
Removed route entry for 224.0.252.134 from table.
Leaving group 224.0.252.134 upstream on IF address 10.128.254.46
leaveMcGroup: 224.0.252.134 on vlan4

Current routing table (Remove route):
-----------------------------------------------------
#0: Dst: 225.0.71.1, Age:2, St: I, OutVifs: 0x00000001
#1: Dst: 224.3.2.6, Age:2, St: I, OutVifs: 0x00000001
#2: Dst: 224.0.252.126, Age:2, St: I, OutVifs: 0x00000001
#3: Dst: 239.255.255.246, Age:2, St: I, OutVifs: 0x00000001
#4: Dst: 224.0.0.251, Age:2, St: I, OutVifs: 0x00000001
-----------------------------------------------------
About to call timeout 15 (#1)
RECV V2 member report   from 192.168.40.78   to 224.0.252.126
Should insert group 224.0.252.126 (from: 192.168.40.78) to route table. Vif Ix : 0
Updated route entry for 224.0.252.126 on VIF #0


Al die timeouts en idle's plus totaal geen verschil of ik wel of niet igmpproxy aan heb staan; lijkt alsof er helemaal niets met die igmpproxy gedaan wordt.

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Ik zie wel een grote hoeveelheid, 8000kb/s UDP verkeer over VLAN4 heen gaan. Maar niets op de tv.
Zodra die STB uitgaat, is ook dat UPD verkeer weg.

code:
1
│ UDP (1356 bytes) from 217.166.226.127:49152 to 224.0.252.127:7254 on vlan4

[ Voor 24% gewijzigd door CrimsonRider op 28-06-2020 15:31 ]

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Die UDP stream wordt gestart, maar komt het LAN niet op. Als ik de igmpproxy stop, houdt ook die UDP stream op.

Code, justify, code - Pitr Dubovich


Acties:
  • 0 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
Dan heb je een firewall issue, staat UDP open in de input / forward chain?

Acties:
  • 0 Henk 'm!

  • CrimsonRider
  • Registratie: Februari 2001
  • Laatst online: 16-06 14:21
Ik heb normaal een firehol config, deze nu even vervangen door policy ACCEPT op alles en

code:
1
2
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o vlan4 -d 213.75.112.0/21 -j MASQUERADE


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             213.75.112.0/21
MASQUERADE  all  --  anywhere             anywhere

iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Dat scheelt niets, moet ik specifiek nog zaken opzetten?

Code, justify, code - Pitr Dubovich

Pagina: 1