76

Odp: iptv / multicast - internetia

szwabek napisał/a:

Zainstalowałem mcproxy, ale nie mogę znaleźć wskazówek jak to skonfigurować.

Dla Twojego przypadku konfiguracja powinna wyglądać jakoś tak:

/etc/config/mcproxy

# Use your own MCProxy config file
config mcproxy 'mcproxy_file'
        option disabled '0'
        option respawn '1'
        option file '/etc/mcproxy.conf'

/etc/mcproxy.conf

# Protocol: IGMPv1|IGMPv2|IGMPv3 (IPv4) - MLDv1|MLDv2 (IPv6)
protocol IGMPv2;

# Proxy Instance: upstream ==> downstream
pinstance proxy1: "eth0.1000" ==> "br-lan";

Nie zapomnij wyłaczyć/zatrzymać igmpproxy (bo razem z mcproxy mogą się gryść)

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

77 (edytowany przez szwabek 2016-01-03 12:20:49)

Odp: iptv / multicast - internetia

Niestety nie działa. Widze takie logi:

Sun Jan  3 00:19:44 2016 daemon.info procd: Instance mcproxy::instance1 s in a crash loop 6 crashes, 1 seconds since last crash
Sun Jan  3 00:21:10 2016 daemon.info procd: Instance mcproxy::instance1 s in a crash loop 6 crashes, 1 seconds since last crash

gdzie moja konfiguracja wygląda następująco:

######################################
##-- mcproxy configuration script --##
######################################

# Protocol: IGMPv1|IGMPv2|IGMPv3 (IPv4) - MLDv1|MLDv2 (IPv6)
protocol IGMPv2;

###########################################

# Proxy Instance: upstream ==> downstream
pinstance proxy1: "eth0.1000" ==> "br-lan";
#pinstance B: bp b1 ==> bp b2;

Ciekawe jest to, ze jak napisałem posta, to zobaczyłem, ze zrobiłem blad w konfiguracji, zamiast:

pinstance proxy1: "eth0.1000" ==> "br-lan";

dalem

pinstance proxy1: "eth0.1000" ==> br-lan";

Po zmianie objaw jest dokładnie identyczny.
Oczywiście igmpproxy zatrzymane.

Ogólnie to nie rozumiem czemu nie działa igmpproxy, skoro przeniosłem config na nowy router. Zmieniłem OpenWrt z AA na CC. Telewizja działa przez 10min i koniec. Jak mogę spróbować namierzyć, co jest problemem. Wolałbym naprawić bieżący config...

EDIT
Znalazłem w logu jeszcze taka pozycje:
Sun Jan  3 10:14:27 2016 user.warn igmpproxy[2115]: select() failure; Errno(4): Interrupted system call

Troche pogooglowalem i znalazłem podobne problemy:
https://forum.openwrt.org/viewtopic.php?id=53952
https://dev.openwrt.org/changeset/41011

Nadal jednak mam błąd, co wcześniej:
igmpproxy[4534]: MRT_DEL_MFC; Errno(2): No such file or directory

Googlujac trafiam tylko na rosyjskie fora i nie potrafię znaleźć rozwiązania, o ile w tym tkwi problem, bo błąd ten sie pojawia nawet jak TV działa poprawnie, wiec nie wiem czy łączyć te problemy.

78

Odp: iptv / multicast - internetia

Rozumiem że chcesz naprawić istniejącą konfigurację, jednak sugestia dot. mcproxy
miała za zadanie wykluczyć problem z igmpproxy (mimo wszystko próbowałbym tej drogi - w kategoriach diagnostycznych).

Co do problemów z igmpproxy w CC jest pewien problem z skryptem inicjującym (https://dev.openwrt.org/ticket/20443)
ten problem może nie dotyczy Ciebie bezpośrednio, ale pośednio może wpływa na to np. DHCP.

Możesz prześledzić ten issue a taże historię pliku by zobaczyć w czym problem (u mnie na przykład wersja z BB działa, poźniejsze nie)
https://github.com/openwrt-mirror/openw … proxy.init

Aktualnie używam zmiksowanej wersji z CC i tej z ticket 20443.
http://pastebin.com/DSLMvbnt

Nie wiem czy u Ciebie to coś zmieni, ale spróbować nie zaszkodzi.
Może warto zobaczyć co się dzieje z siecią w okolicach "10 minuty" może coś na to wpływa ?

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

79 (edytowany przez szwabek 2016-01-03 19:40:39)

Odp: iptv / multicast - internetia

alossek napisał/a:

Rozumiem że chcesz naprawić istniejącą konfigurację, jednak sugestia dot. mcproxy
miała za zadanie wykluczyć problem z igmpproxy (mimo wszystko próbowałbym tej drogi - w kategoriach diagnostycznych).

Jasna sprawa. Zrobię wszystko byle by TV zaczęło w końcu działać;)
Tak jak pisałem jednak, przy zastosowaniu mcproxy nadal TV nie działa, a w logach mam poniższe komunikaty:

Sun Jan  3 00:19:44 2016 daemon.info procd: Instance mcproxy::instance1 s in a crash loop 6 crashes, 1 seconds since last crash
Sun Jan  3 00:21:10 2016 daemon.info procd: Instance mcproxy::instance1 s in a crash loop 6 crashes, 1 seconds since last crash

I niezależnie czy w konfiguracji (plik mcproxy_file) był błąd czy nie to objaw jest taki sam i komunikat ten występuje.

Wracając do igmpproxy, to faktycznie wygląda jakby podczas odnawiania dzierżawy z DHCP (co 10min?!?) igmpproxy się wywalało. Teraz użyłem skryptu inicjujacego z Twojego linka: http://pastebin.com/DSLMvbnt
Sytuacja bez zmian, aczkolwiek... zauważyłem coś interesującego.

Po wydaniu komendy:

echo "0" > /sys/devices/virtual/net/br-lan/bridge/multicast_snooping

TV zaczyna działać, oglądałem 20min ale... przestaje działać sieć - ot pingi w lan (moment zmiany konfiguracji widać dokładnie):

Reply from 192.168.1.5: bytes=32 time=3ms TTL=64
Reply from 192.168.1.5: bytes=32 time=2ms TTL=64
Reply from 192.168.1.5: bytes=32 time=1ms TTL=64
Reply from 192.168.1.5: bytes=32 time=1ms TTL=64
Reply from 192.168.1.5: bytes=32 time=1ms TTL=64
Reply from 192.168.1.5: bytes=32 time=1ms TTL=64
Reply from 192.168.1.5: bytes=32 time=149ms TTL=64
Request timed out.
Reply from 192.168.1.5: bytes=32 time=112ms TTL=64
Request timed out.
Reply from 192.168.1.5: bytes=32 time=280ms TTL=64
Request timed out.
Reply from 192.168.1.5: bytes=32 time=134ms TTL=64
Request timed out.
Reply from 192.168.1.5: bytes=32 time=99ms TTL=64

Jestem pewien na 99%, że wcześniej tego nie było. Ciekawe było to, że wrzucenie powyższej komendy zarówno z wartością "0" jak i "1" oraz restart igmpproxy powodowało przywrócenie TV do działania na 10min. Teraz na dodatek z opcją "1" TV nie działa w ogóle...


Odnośnie historii wersji igmpproy, to sugerujesz, ze powrót do wersji z BB ma sens? Jak to zrobić?

alossek napisał/a:

Może warto zobaczyć co się dzieje z siecią w okolicach "10 minuty" może coś na to wpływa ?

Jakie testy masz na myśli? W logu pusto.

80

Odp: iptv / multicast - internetia

szwabek napisał/a:

(...) Po wydaniu komendy:

echo "0" > /sys/devices/virtual/net/br-lan/bridge/multicast_snooping

TV zaczyna działać, oglądałem 20min ale... przestaje działać sieć (...)

cyt. http://wiki.openwrt.org/doc/howto/udp_multicast

This will forward all multicast packets to all ports on your bridge, making igmpproxy or udpxy unnecessary. In large networks, this may not be desirable.

Czyli jak rozumiem, przekazywane multicastów powinno być wyłączone
gdyż przeczy to używania igmpproxy i IGMP snooping

cyt. https://en.wikipedia.org/wiki/IGMP_snooping

"a switch will, by default, flood multicast traffic to all the ports"

Zatem by temu przeciw działać należy włączyć "IGMP snooping".

To tyle "teoretycznie", w praktyce IPTV pewnie działo z powodu włączonego "multicast forward"
ale efektem ubocznym jest "zamulanie lan".

Wiem że przenosiłeś konfigurację, ale gwoli sprawdzenie przebiegnij się przez tą checklist
1. zainstaluj kmod-bridge

opkg install kmod-bridge 

2. włącz IGMP snooping w interface lan

config interface lan
        option type bridge
        option igmp_snooping 1
        ...

3. wyłącz przekazywanie multicastów

echo "1" > /sys/devices/virtual/net/br-lan/bridge/multicast_snooping

Jeśli nie zadziała pozostaje już tylko walka z mcproxy lub pochwaleniem się aktualnymi:
- route -n
- logami
- /etc/config/network
- /etc/config/firewall
- /etc/config/igmpproxy

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

81

Odp: iptv / multicast - internetia

szwabek napisał/a:

Odnośnie historii wersji igmpproy, to sugerujesz, ze powrót do wersji z BB ma sens? Jak to zrobić?

Miałem na myśli init skrypt z BB i to w kontekście https://dev.openwrt.org/ticket/20443
(a skrypt ten możesz wyjąć choćby z z historii na github'ie.)

Nie wiem tylko czy ten trop jest dla Ciebie (napisałem o tym gdyż ja w swojej konfiguracji miałem z tym problem).
Możesz to badać jako alternatywną ścieżkę pod warunkiem że coś faktycznie "zatrzymuje działanie" igmpproxy.
W ticket jest to mowa o restartowaniu, w moim przypadku było to rozłączanie internetu.
Nie wiem co u Ciebie mogłoby to powodować (DHCP ?), jeśli jednak uważasz ten trop za dobry - wypróbuj skrypt inicjujący nawet z AA (pisałeś że na tej wersji ostatnio działałeś) u mnie działa ten z BB (ale używam tego którego dostałeś we wcześniejszym linku).

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

82

Odp: iptv / multicast - internetia

No to jedziemy;)
Sytuacja wygląda obecnie tak, że TV w ogóle nie działa. Na poprzedniej konfiguracji skrytpu /etc/init.d/igmpproxy działała przez 10min...

root@OpenWrt:~# opkg install kmod-bridge
Package kmod-bridge (3.18.23-1) installed in root is up to date.

/etc/config/network

root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd45:7c2f:9c87::/48'

config interface 'lan'
        option ifname 'eth1'
        option force_link '1'
        option type 'bridge'
        option igmp_snooping '1'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
        option macaddr '00:12:2a:xx:xx:xy'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'
        option enable_vlan4k '1'
        option mirror_source_port '0'
        option mirror_monitor_port '0'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 2 3 4 5'
        option vid '1'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6'
        option vid '2'

config interface 'IPTV'
        option proto 'dhcp'
        option ifname 'eth0.1000'
        option metric '20'
        option macaddr '00:12:2a:xx:xx:xx'
        option mtu '1496'
        option defaultroute '0'
        option vendorid 'NETIASPOT'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '1000'
        option ports '0t 1t 6t'

route -n

root@OpenWrt:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         87.99.47.1      0.0.0.0         UG    0      0        0 eth0
10.204.32.0     0.0.0.0         255.255.240.0   U     20     0        0 eth0.1000
10.204.47.129   0.0.0.0         255.255.255.255 UH    20     0        0 eth0.1000
87.99.47.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
87.99.47.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan

/etc/config/igmpproxy

root@OpenWrt:~# cat /etc/config/igmpproxy
config igmpproxy
        option quickleave 1

config phyint IPTV
        option network IPTV
        option direction upstream
        list altnet 224.0.0.0/4
        list altnet 10.0.0.0/8
        list altnet 195.0.0.0/8
        list altnet 172.24.0.0/16
        list altnet 172.28.0.0/16
        list altnet 192.168.1.0/24
        list altnet 83.238.252.0/24

config phyint lan
        option network lan
        option direction downstream

phyint lo disabled
phyint eth0 disabled

/etc/config/firewall

root@OpenWrt:~# cat /etc/config/firewall

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'wan wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config zone
        option name 'IPTV'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'IPTV'

config forwarding
        option src 'lan'
        option dest 'IPTV'

config rule
        option name 'Allow-DHCP-Renew-wan_iptv'
        option src 'IPTV'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option src 'IPTV'
        option proto 'igmp'
        option target 'ACCEPT'

config rule
        option src 'IPTV'
        option proto 'udp'
        option dest_ip '224.0.0.0/4'
        option target 'ACCEPT'

config include
        option path '/etc/firewall.user'

config rule
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config include 'miniupnpd'
        option type 'script'
        option path '/usr/share/miniupnpd/firewall.include'
        option family 'any'
        option reload '1'

wybrane logi

Mon Jan  4 22:46:04 2016 user.warn igmpproxy[2039]: select() failure; Errno(4): Interrupted system call
Mon Jan  4 22:46:04 2016 user.warn igmpproxy[2039]: MRT_DEL_MFC; Errno(2): No such file or directory
Mon Jan  4 22:46:04 2016 user.warn igmpproxy[2039]: MRT_DEL_MFC; Errno(2): No such file or directory
Mon Jan  4 22:46:04 2016 user.warn igmpproxy[2039]: MRT_DEL_MFC; Errno(2): No such file or directory
Mon Jan  4 22:47:00 2016 user.warn igmpproxy[2654]: The origin for route 239.255.255.250 changed from 192.168.1.5 to 192.168.1.4
Mon Jan  4 22:47:02 2016 user.warn igmpproxy[2654]: The origin for route 239.255.255.250 changed from 192.168.1.4 to 192.168.1.8
Mon Jan  4 22:47:03 2016 user.warn igmpproxy[2654]: The origin for route 239.255.255.250 changed from 192.168.1.8 to 192.168.1.5

/etc/init.d/igmpproxy stąd: http://pastebin.com/DSLMvbnt przy uwzględnieniu: https://forum.openwrt.org/viewtopic.php?id=53952 czyli zakomentowane:
    # procd_open_trigger
    # config_foreach igmp_add_network phyint
    # procd_close_trigger

root@OpenWrt:~# cat /etc/init.d/igmpproxy
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2014 OpenWrt.org

START=99
USE_PROCD=1
PROG=/usr/sbin/igmpproxy
CONFIGFILE=/var/etc/igmpproxy.conf

# igmpproxy supports both a debug mode and verbosity, which are very useful
# when something isn't working.
#
# Debug mode will print everything to stdout instead of syslog. Generally
# verbosity should NOT be set as it will quickly fill your syslog.
#
# Put any debug or verbosity options into IGMP_OPTS
#
# Examples:
# OPTIONS="-d -v -v" - debug mode and very verbose, this will land in
#                        stdout and not in syslog
# OPTIONS="-v" - be verbose, this will write aditional information to syslog

OPTIONS=""

igmp_header() {
    local quickleave
    config_get_bool quickleave "$1" quickleave 0

    mkdir -p /var/etc
    rm -f /var/etc/igmpproxy.conf
    [ $quickleave -gt 0 ] && echo "quickleave" >> /var/etc/igmpproxy.conf

    [ -L /etc/igmpproxy.conf ] || ln -nsf /var/etc/igmpproxy.conf /etc/igmpproxy.conf
}

igmp_add_phyint() {
    local network direction altnets device up

    config_get network $1 network
    config_get direction $1 direction
    config_get altnets $1 altnet

    local status="$(ubus -S call "network.interface.$network" status)"
    [ -n "$status" ] || return

    json_load "$status"
    json_get_var device l3_device
    json_get_var up up

    [ -n "$device" -a "$up" = "1" ] || {
        procd_append_param error "$network is not up"
        return;
    }

    append netdevs "$device"

    [[ "$direction" = "upstream" ]] && has_upstream=1

    echo -e "\nphyint $device $direction ratelimit 0 threshold 1" >> /var/etc/igmpproxy.conf

    if [ -n "$altnets" ]; then
        local altnet
        for altnet in $altnets; do
            echo -e "\taltnet $altnet" >> /var/etc/igmpproxy.conf
        done
    fi
}

igmp_add_network() {
    local network

    config_get network $1 network
    procd_add_interface_trigger "interface.*" $network /etc/init.d/igmpproxy reload
}

igmp_add_firewall_routing() {
    config_get network $1 network
    config_get direction $1 direction

    [[ "$direction" = "downstream" ]] || return 0

    json_add_object ""
    json_add_string type rule
    json_add_string src "$upstream"
    json_add_string dest "$network"
    json_add_string family ipv4
    json_add_string proto udp
    json_add_string dest_ip "224.0.0.0/4"
    json_add_string target ACCEPT
    json_close_object
}

igmp_add_firewall_network() {
    config_get network $1 network
    config_get direction $1 direction

    json_add_object ""
    json_add_string type rule
    json_add_string src "$network"
    json_add_string proto igmp
    json_add_string target ACCEPT
    json_close_object

    [[ "$direction" = "upstream" ]] && {
        upstream="$network"
        config_foreach igmp_add_firewall_routing phyint
    }
}

service_triggers() {
    procd_add_reload_trigger "igmpproxy"
}

start_service() {
    has_upstream=
    netdevs=
    config_load igmpproxy

    config_foreach igmp_header igmpproxy
    config_foreach igmp_add_phyint phyint

    procd_open_instance

    if [ -n "$has_upstream" ]; then
         procd_set_param command $PROG
         [ -n "$OPTIONS" ] && procd_append_param command $OPTIONS
         procd_append_param command $CONFIGFILE
    else
         # Ugly hack. This way we register interface trigger
         # without spawning igmpproxy
         procd_set_param command /bin/sleep 3600
    fi

    procd_set_param file $CONFIGFILE
    procd_set_param netdev $netdevs
    procd_set_param respawn
    # procd_open_trigger
    # config_foreach igmp_add_network phyint
    # procd_close_trigger

    procd_open_data

    json_add_array firewall
    config_foreach igmp_add_firewall_network phyint
    json_close_array

    procd_close_data

    procd_close_instance
}

service_started() {
    procd_set_config_changed firewall
}

pomocy.

83

Odp: iptv / multicast - internetia

Kurcze nie jestem pewien tego co teraz napiszę,
ale czy sekcje z /etc/config/network są poprawne ?

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6'
        option vid '2'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '1000'
        option ports '0t 1t 6t'

Interpretuje to tak:
1. na WAN wchodzi nietagowany sygnał (internet ?) idzie do CPU 6 nietagowany
2. na WAN wchodzi tagowany (vid=1000) sygnał (iptv) idzie do CPU 1 (powstaje tagowany eth1.1000) i CPU 6 (powstaje tagowany eth0.1000)

nie powinna wyglądać tak? :

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6t'
        option vid '2'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '1000'
        option ports '1t 6t'

Interpretuje to tak:
3. na WAN wchodzi nietagowany sygnał (internet ?) idzie do CPU 6 (powstaje tagowany eth0.2)
4. na WAN wchodzi tagowany (vid=1000) sygnał (iptv) idzie do CPU 6 (powstaje tagowany eth0.1000)

Nie wiem czy problem z pkt 2 jest istotny, gdyż potem w interface 'IPTV' (którego potem używasz w konfiguracji igmpproxy) i tak posługujesz sie "eth0.1000" więc być może eth1.1000 w niczym nie przeszkadza.

Jednak nie mam pewności co do problemu z pkt 1, tu lepiej żeby wypowiedział się ktoś łebski
(ja w swojej konfiguracji tak mam ale u mnie inaczej jest jeden CPU port). Być może także to w niczym nie przeszkadza.

Możesz także zobaczyć czy dodanie trasy czegoś nie poprawi
/etc/config/network

config 'route'
        option 'interface' 'IPTV'
        option 'target' '224.0.0.0'
        option 'netmask' '240.0.0.0' 

Możesz także podzielić się:
swconfig dev switch0 vlan 1 show
swconfig dev switch0 vlan 2 show
swconfig dev switch0 vlan 3 show

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

84 (edytowany przez snifer 2016-01-05 11:33:48)

Odp: iptv / multicast - internetia

alossek napisał/a:
config 'route'
        option 'interface' 'IPTV'
        option 'target' '224.0.0.0'
        option 'netmask' '240.0.0.0' 

No ewidentnie brakuje rutingu, pakiet igmp zamiast do vlana iptv lecą przez bramę domyślną i się grupy nie rejestrują.
Wyczyść wszystko co nagrzebałeś, włacz igmp_snooping na lan:

option igmp_snooping '1'

, dopisz powyższy ruting i odpal igmpproxy, musi działać.
Jak wyłączasz igmp_snooping to Ci sieje multicastami po wszystkich portach i sieć zdycha, dlatego musi być włączony a tv przestaje działać bo się nie odnawia rejestracja grupy multicastowej, bo pakiet igmp leci nie tam gdzie trzeba.
W konfigu igmpproxy możesz wywalić wszystkie list altnet i dodać jedną 0.0.0.0/0 albo 224.0.0.0/4, też zadziała.
Nie zapomnij wyłączyć serwera dhcp na ifie IPTV

config dhcp 'IPTV'
        option interface 'IPTV'
        option ignore '1'

bo będzie siał.

Archer C7 v.2 + LEDE by Cezary http://beta.speedtest.net/pl/result/6621599402

85 (edytowany przez szwabek 2016-01-06 01:20:05)

Odp: iptv / multicast - internetia

Niestety nadal to samo.

Powróciłem do oryginalnych ustawień igmpproxy. Dodałem wskazany routing. Jak usunąłem altnet'y to TV w ogóle przestało działać.

root@OpenWrt:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         87.99.47.1      0.0.0.0         UG    0      0        0 eth0
10.204.32.0     0.0.0.0         255.255.240.0   U     20     0        0 eth0.1000
10.204.47.129   0.0.0.0         255.255.255.255 UH    20     0        0 eth0.1000
87.99.47.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
87.99.47.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
224.0.0.0       0.0.0.0         240.0.0.0       U     20     0        0 eth0.1000

Co dał ten routing, skoro eth0.1000 wychodzi def gw?

root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd45:7c2f:9c87::/48'

config interface 'lan'
        option ifname 'eth1'
        option force_link '1'
        option type 'bridge'
        option igmp_snooping '1'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
        option macaddr '00:12:2a:xx:xx:xx'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'
        option enable_vlan4k '1'
        option mirror_source_port '0'
        option mirror_monitor_port '0'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 2 3 4 5'
        option vid '1'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6'
        option vid '2'

config interface 'IPTV'
        option proto 'dhcp'
        option ifname 'eth0.1000'
        option metric '20'
        option macaddr '00:12:2a:xx:xx:xx'
        option mtu '1496'
        option vendorid 'NETIASPOT'
        option delegate '0'
        option defaultroute '0'

config route
        option interface 'IPTV'
        option target '224.0.0.0'
        option netmask '240.0.0.0'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '1000'
        option ports '0t 1t 6t'

Z vlan'ami myślę, że jest dobrze, bo jakby było źle to bym nie otrzymał IPka na iptv i interent/tv w ogóle by nie działało - tak myślę. Zrobiłem jednązmianę i przestał TV działać;)

root@OpenWrt:~# swconfig dev switch0 vlan 3 show
VLAN 3:
        vid: 1000
        ports: 0t 1t 6t
root@OpenWrt:~# swconfig dev switch0 vlan 2 show
VLAN 2:
        vid: 2
        ports: 1 6
root@OpenWrt:~# swconfig dev switch0 vlan 1 show
VLAN 1:
        vid: 1
        ports: 0 2 3 4 5

Fragment logu. Po 10min TV przestaje działać.

Wed Jan  6 00:00:27 2016 user.warn igmpproxy[4030]: The origin for route 239.255.255.250 changed from 192.168.1.4 to 192.168.1.8
Wed Jan  6 00:00:30 2016 daemon.info dnsmasq-dhcp[2106]: DHCPREQUEST(br-lan) 192.168.1.7 14:2d:27:0a:f4:70
Wed Jan  6 00:00:30 2016 daemon.info dnsmasq-dhcp[2106]: DHCPACK(br-lan) 192.168.1.7 14:2d:27:0a:f4:70 drukarka
Wed Jan  6 00:00:34 2016 user.warn igmpproxy[4030]: The origin for route 239.255.255.250 changed from 192.168.1.8 to 192.168.1.5
Wed Jan  6 00:00:42 2016 user.warn igmpproxy[4030]: The origin for route 239.255.1.7 changed from 10.100.40.23 to 83.238.252.169
Wed Jan  6 00:00:42 2016 user.warn igmpproxy[4030]: The source address 172.28.0.25 for group 239.255.1.7, is not in any valid net for upstream VIF.
Wed Jan  6 00:00:42 2016 user.warn igmpproxy[4030]: The source address 172.28.0.42 for group 239.255.1.7, is not in any valid net for upstream VIF.
Wed Jan  6 00:00:42 2016 user.warn igmpproxy[4030]: The origin for route 239.255.255.250 changed from 192.168.1.5 to 192.168.1.7
Wed Jan  6 00:00:59 2016 user.warn igmpproxy[4030]: The origin for route 239.255.255.250 changed from 192.168.1.7 to 192.168.1.1
Wed Jan  6 00:01:02 2016 user.warn igmpproxy[4030]: The origin for route 239.255.255.250 changed from 192.168.1.1 to 192.168.1.187
Wed Jan  6 00:01:36 2016 user.warn igmpproxy[4030]: MRT_DEL_MFC; Errno(2): No such file or directory
Wed Jan  6 00:01:37 2016 user.warn igmpproxy[4030]: The origin for route 239.255.255.250 changed from 192.168.1.187 to 192.168.1.226
Wed Jan  6 00:05:47 2016 user.warn igmpproxy[4030]: MRT_DEL_MFC; Errno(2): No such file or directory
Wed Jan  6 00:09:57 2016 user.warn igmpproxy[4030]: MRT_DEL_MFC; Errno(2): No such file or directory

86 (edytowany przez snifer 2016-01-07 23:47:38)

Odp: iptv / multicast - internetia

szwabek napisał/a:
root@OpenWrt:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         87.99.47.1      0.0.0.0         UG    0      0        0 eth0
10.204.32.0     0.0.0.0         255.255.240.0   U     20     0        0 eth0.1000
10.204.47.129   0.0.0.0         255.255.255.255 UH    20     0        0 eth0.1000
87.99.47.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
87.99.47.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
224.0.0.0       0.0.0.0         240.0.0.0       U     20     0        0 eth0.1000

Co dał ten routing, skoro eth0.1000 wychodzi def gw?

Jak widać def gw wychodzi via eth0 (87.99.47.1) a nie eth0.1000 więc ruting jest potrzebny.

szwabek napisał/a:

Jak usunąłem altnet'y to TV w ogóle przestało działać.

Nie miałeś ich wszystkich usuwać tylko zostawić 0.0.0.0/0

Jak samo 0.0.0.0/0 nie działa to dodaj te altnety tak jak były i dopisz jeszcze 172.28.0.0/16

Spróbuj dołożyć jeszcze do firewalla (albo zmienić regułkę przy IPTV)

config rule
        option name 'Allow-IGMP'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

Pakiety IGMP muszą też być wpuszczane od LANa.

Thu Jan  7 22:27:15 2016 user.warn igmpproxy[24992]: MRT_DEL_MFC; Errno(2): No such file or directory

U mnie też są takie w logach ale igmpproxy i TV działa normalnie.

Możesz sobie też uruchomić strace -p xxx (gdzie xxx to nr PID procesu igmpproxy, do sptawdzenia przez ps) i obserwować na żywo co tam przez niego przelatuje.

Archer C7 v.2 + LEDE by Cezary http://beta.speedtest.net/pl/result/6621599402

87

Odp: iptv / multicast - internetia

Działa ponownie! Pytanie czemu;)
Zrobiłem kilka zmian na raz, bo już mi ręce opadały i szukałem po omacku... z tego co pamiętam, to różnice były tylko w network i firewall.

/etc/config/network - mała modyfikacja tagowania vlanów

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option vid '1'
        option ports '0 2 3 4 5'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option vid '2'
        option ports '1 6'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '1000'
        option ports '1t 6t'

/etc/config/firewall - dodałem jedną regułę

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'wan wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config zone
        option name 'IPTV'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'IPTV'

config forwarding
        option src 'lan'
        option dest 'IPTV'

config rule
        option name 'Allow-DHCP-Renew-wan_iptv'
        option src 'IPTV'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option src 'IPTV'
        option proto 'igmp'
        option target 'ACCEPT'

config rule
        option src 'IPTV'
        option proto 'udp'
        option dest_ip '224.0.0.0/4'
        option target 'ACCEPT'

config include
        option path '/etc/firewall.user'

config rule
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option dest 'lan'
        option proto 'udp'
        option target 'ACCEPT'
        option dest_ip '224.0.0.0/4'
        option src 'IPTV'

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         87.99.47.1      0.0.0.0         UG    0      0        0 eth0
10.204.32.0     0.0.0.0         255.255.240.0   U     20     0        0 eth0.1000
10.204.47.129   0.0.0.0         255.255.255.255 UH    20     0        0 eth0.1000
87.99.47.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
87.99.47.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
224.0.0.0       0.0.0.0         240.0.0.0       U     20     0        0 eth0.1000

Jest jednak jeden problem. Gdy coś ściągam, to TV się tnie niemiłosiernie. Pojawiają się straszliwe artekafty i nie da się oglądać....

88

Odp: iptv / multicast - internetia

Jakie szybkie masz łącze, jak jest zlinkowany port WAN, na 100M czy 1G? Prawdopodobnie wysycasz przy ściąganiu możliwości linku (nie wiem w jakiej technologii masz to doprowadzone) a operator nie ustawił priorytetów na multicast i jak ciągniesz to dla tv już brakuje pasma, może nie dosłownie ale przy większym obciążeniu zwiększają się i skaczą opóźnienia pakietów a transmisje multicastów są na takie fluktuacje bardzo czułe. Sprawdź też obciążenie proca w ruterku w czasie ściągania, chociaż to nie powinno aż tak wpływać, chyba że ściągasz powyżej 100-150Mbitów/s wtedy może faktycznie ruterek powodować zakłócenia.

Archer C7 v.2 + LEDE by Cezary http://beta.speedtest.net/pl/result/6621599402

89 (edytowany przez szwabek 2016-02-09 01:35:16)

Odp: iptv / multicast - internetia

Hej,

Milczałem, bo próbowałem w wolnych chwilach trochę podziałać.
Łącze mam marne: 20/4 Mb/s. Do czasu zmiany routera (z 1043ND) TV zawsze działała płynnie niezależnie od wysycenia łącza. Teraz ewidentnie jest problem - artefakty, zacięcia, smugi... Nie są super częste i da się oglądać, ale jest to irytujące... Nie po to zmieniałem router, zeby było gorzej.

Próbowałem różnych rzeczy. Odseparowałem interfejs LAN1 (tam podłączyłem netiaplayera) od pozostałych - wydzieliłem VLAN dedykowany. Próbowałem również powalczyć z jakimś QoS - SQM czy jakieś skrypty. Niestety bez efektów...

Poniżej config. W logach pusto. Pomocy :\

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         87.99.47.1      0.0.0.0         UG    0      0        0 eth0
10.204.32.0     0.0.0.0         255.255.240.0   U     20     0        0 eth0.1000
10.204.47.129   0.0.0.0         255.255.255.255 UH    20     0        0 eth0.1000
87.99.47.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
87.99.47.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1.10
224.0.0.0       0.0.0.0         240.0.0.0       U     20     0        0 eth0.1000

/etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd45:7c2f:9c87::/48'

config interface 'lan'
        option ifname 'eth1'
        option force_link '1'
        option type 'bridge'
        option igmp_snooping '1'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option delegate '0'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
        option macaddr '00:12:2a:81:xx:xx'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'
        option enable_vlan4k '1'
        option mirror_source_port '0'
        option mirror_monitor_port '0'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option vid '1'
        option ports '0 3 4 5'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option vid '2'
        option ports '1 6'

config interface 'IPTV'
        option proto 'dhcp'
        option ifname 'eth0.1000'
        option metric '20'
        option macaddr '00:12:2a:81:xx:xx'
        option mtu '1496'
        option vendorid 'NETIASPOT'
        option delegate '0'
        option defaultroute '0'

config route
        option interface 'IPTV'
        option target '224.0.0.0'
        option netmask '240.0.0.0'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '1000'
        option ports '1t 6t'

config interface 'LAN_IPTV'
        option proto 'static'
        option ifname 'eth1.10'
        option igmp_snooping '1'
        option ipaddr '192.168.2.1'
        option netmask '255.255.255.0'

config switch_vlan
        option device 'switch0'
        option vlan '4'
        option ports '0t 2'
        option vid '10'

/etc/config/firewall

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'wan wan6'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config zone
        option name 'IPTV'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'IPTV'

config rule
        option name 'Allow-DHCP-Renew-wan_iptv'
        option src 'IPTV'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option src 'IPTV'
        option proto 'igmp'
        option target 'ACCEPT'

config rule
        option src 'IPTV'
        option proto 'udp'
        option dest 'LAN_IPTV'
        option dest_ip '224.0.0.0/4'
        option target 'ACCEPT'

config include
        option path '/etc/firewall.user'

config rule
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config include 'miniupnpd'
        option type 'script'
        option path '/usr/share/miniupnpd/firewall.include'
        option family 'any'
        option reload '1'

config zone
        option name 'LAN_IPTV'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option network 'LAN_IPTV'
        option forward 'ACCEPT'

config forwarding
        option dest 'IPTV'
        option src 'LAN_IPTV'

config forwarding
        option dest 'wan'
        option src 'LAN_IPTV'

config forwarding
        option dest 'wan'
        option src 'lan'