IPTV+Data avec IGMP Proxy

Démarré par kangoo01fr, 01 Avril 2013 à 17:10:25

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

Boujour à tous

Malgré toutes mes lectures sur le forum je ne trouve pas la réponse à mes questions.

Je voudrais avoir la TV et les datas sur mon LAN.
J'ai un router Mikrotik qui tourne sous RouterOS (qui offre la fonction IGMP proxy)
WAN(CPE 1): port ethernet 1 [DHCP]
LAN:              port ethernet 2 [172.16.0.1]
TV(CPE 3):    port ethernet 3 [DHCP-10.X.X.X]

Je pense avoir configuré le proxy IGMP tel que: ether3=downstream / ether2=upstream

Quel fichier m3u utiliser avec VLC pour avoir la TV sur le LAN?

Si un guru de l'IGMP pouvais me conseiller, je lui en serait très reconnaissant!! :-)

Merci

Kangoo01fr




Mikrotik hEX | Routeur
Ubiquiti Unifi | Switches + APs
MilkyWAN | Réseau SIEA

Merci Frank

J'y vois déjà beaucoup plus clair (surtout pour les routes)

Par contre, ça marche toujours pas.. surement un truc qui m'échappe dans la config de l`IGMP proxy dans routeros

y'a quand même un truc que je n'explique pas: altnet 10.66.0.0/16  ?? pourquoi 66??

Si quelqu'un pouvais avoir la bonté de m'expliquer...

autre-chose pour les routes: le dhcp m'attribue une adresse en 10.1.x.x, ça change quelque-chose??

Merci

Thanks, Marc ;)

Pour kangoo01fr:
*10.66.0.0/16 : pour moi, c'est lui qui livre le flux TV, donc j'ai mis celui-ci ;)

Pour toi, essaie de te brancher directement sur le port 3, de lancer un wireshark, et de regarder une chaine TV ou radio, tu verras bien quels sont les ranges utilisés à ce moment ;)

Pour le DHCP, normalement, pas de prob. Faudra juste changer les routes/gw correspondantes.

Tu as bien réaugmenté le TTL de tes paquets TV ?

Merci frank pour ton aide!!

Ok je vois le concept!! Je vais sniffer directement sur le CPE, L'adresse qui envoi les packets doit être différente, car je suis en zone pilote!!!
J'aurai d'ailleurs dû commencer par là!!

Oui, j'ai bien augmenté le TTL à 5 (enfin j'espère  ;) )
Et j'ai bien corrigé les routes en 10.1.x.x

en espérant que ça va le faire... cette fois-ci..

Je suis aussi en zone pilote :p

Dis nous-si ca marche (ou pas :p) ;)

C'est bon
J'ai réussi!!! même a travers le wifi!!!

Entre le firewall un peu trop restrictif et VLC qui déconnait, je cumulais les problèmes...

Merci pour tout


#9
Hello,
J'ai réussi à faire un bout de quelque chose dans un sophos UTM virtualisé - mais j'ai dû y coller 2 cartes réseau sur le même vswitch qui taguent au niveau de la carte (impossible de faire fonctionner les vlan autrement).
J'ai ajouté igmpproxy, et je l'ai configuré comme ça:
igmpproxy.conf:
quickleave
phyint eth3 upstream ratelimit 0 threshold 1
altnet 10.0.0.0/8
altnet 233.97.72.0/24
altnet 172.16.0.0/16

phyint eth1 downstream ratelimit 0 threshold 1
altnet 172.16.0.0/16
phyint eth1 disabled
phyint eth0 disabled
phyint lo disabled

Vous aurez compris qu'eth3 est ma carte TV et eth1 mon lan, en 172.16.0.0/16
Du côté du script de lancement, j'ai ceci:
igmprtd:
#! /bin/sh
# Copyright (c) 1995-2004 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: [email]ol@fson[/email]
#
# /etc/init/igmprtd
#
### BEGIN INIT INFO
# Provides:          igmprtd
# Short-Description: IGMP-Proxy
### END INIT INFO
#
#

####################################################################
# Please set the following values to your needs
# Interface over which ppp is established
INTERNET_IF=eth0
INTERNET_TV=eth3
# If given virtual MAC is set it will be used on the VLAN8 interface
# Some users reported problems if VLAN7 and 8 are using the same MAC
# Set to 00:00:00:00:00:00 if no change is required
VIRTUAL_MAC=00:00:00:00:00:00
# Set the time in seconds the dhcpd needs to get an IP address
# If time is too short IGMP proxy daemon fails to start
DHCPD_TIME=6
####################################################################

# Path to IGMPProxy
IGMPRTD_BIN=/sbin/igmpproxy
IGMPRTD_LOG=/var/log/igmpproxy.log
IGMPRTD_CONFIG=/etc/igmpproxy.conf
#DEBUG=-d
# Path to DHCP-daemon
DHCPD_BIN=/sbin/dhcpcd

test -x $IGMPRTD_BIN || exit 5
test -x $DHCPD_BIN || exit 5
. /etc/rc.status
# Reset status of this service
rc_reset

case "$1" in
    start)
        echo -e ":: Starting IGMP Proxy "
        ## Start daemon with startproc( 8) . If this fails
        ## the return value is set appropriately by startproc.

        echo -n "   Starting IGMP Proxy: Requesting IP-address for interface $INTERNET_TV "
        if ! ifconfig $INTERNET_TV 2>/dev/null | grep "inet addr" &>/dev/null; then
                if ps -ef | grep -i $DHCPD_BIN &>/dev/null; then
                        $DHCPD_BIN -k $INTERNET_TV &>/dev/null
                        killproc -TERM $DHCPD_BIN
                        sleep 1
                fi
                startproc $DHCPD_BIN $INTERNET_TV &>/dev/null
                rc_status -v
                sleep $DHCPD_TIME
                echo "-> `ifconfig  $INTERNET_TV | grep inet | sed -e 's/^[ \t]*//'`"
        else
                rc_status -s
        fi
        rc_reset
        iptables -t mangle -A PREROUTING -i $INTERNET_TV -j TTL --ttl-set 5
        iptables -I FORWARD -s 233.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT
        iptables -I FORWARD -s 10.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT
        iptables -I FORWARD -s 239.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT
        iptables -I FORWARD -d 224.0.0.0/4 -j ACCEPT
        iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT
        iptables -I OUTPUT -d 224.0.0.0/4 -j ACCEPT
        iptables -I INPUT -p 2 -j ACCEPT
        iptables -I OUTPUT -p 2 -j ACCEPT
        echo -n "   Starting IGMP Proxy: Starting daemon"
        startproc $IGMPRTD_BIN $IGMPRTD_CONFIG $DEBUG >>$IGMPRTD_LOG 2>&1
        echo "`date` - IGMP Proxy started -> `ifconfig  $INTERNET_TV | grep inet | sed -e 's/^[ \t]*//'`" >>$IGMPRTD_LOG
        rc_status -v
        ;;
    stop)
        echo -e ":: Shutting down IGMP Proxy "
        ## Stop daemon with killproc( 8) and if this fails
        ## killproc sets the return value according to LSB.
        echo -n "   Shutting down IGMP Proxy: Stopping daemon "
        killproc -TERM $IGMPRTD_BIN
        rc_status -v
        iptables -D FORWARD -s 233.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT
        iptables -D FORWARD -s 10.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT
        iptables -D FORWARD -s 239.0.0.0/8 -d 224.0.0.0/4 -j ACCEPT
        iptables -D FORWARD -d 224.0.0.0/4 -j ACCEPT
        iptables -D INPUT -d 224.0.0.0/4 -j ACCEPT
        iptables -D OUTPUT -d 224.0.0.0/4 -j ACCEPT
        iptables -D INPUT -p 2 -j ACCEPT
        iptables -D OUTPUT -p 2 -j ACCEPT
        rc_reset
#       echo -n "   Shutting down IGMP Proxy: Removing IP-address from interface $INTERNET_TV "
#       if (ifconfig $INTERNET_TV 2>/dev/null | grep "inet addr" &>/dev/null) || (ps -ef | grep -i $DHCPD_BIN &>/dev/null); then
#                $DHCPD_BIN -k $INTERNET_TV &>/dev/null
#                killproc -TERM $DHCPD_BIN
#               rc_status -v
#                sleep 1
#        else
#                rc_status -s
#        fi
#       rc_reset
        ;;
    try-restart|condrestart)
        ## Do a restart only if the service was active before.
        ## Note: try-restart is now part of LSB (as of 1.9).
        ## RH has a similar command named condrestart.
        if test "$1" = "condrestart"; then
                echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
        fi
        $0 status
        if test $? = 0; then
                $0 restart
        else
                rc_reset        # Not running is not a failure.
        fi
        # Remember status and be quiet
        rc_status
        ;;
    restart | force-reload )
        ## Stop the service and regardless of whether it was
        ## running or not, start it again.
        $0 stop
        $0 start
        # Remember status and be quiet
        rc_status
        ;;
    reload)
        ## Like force-reload, but if daemon does not support
        ## signaling, do nothing (!)
        echo -n "Reload service IGMP Proxy "
        killproc -HUP ${IGMPRTD_BIN}
        rc_status -v
        ;;
    status)
        echo -n "Checking IGMP components "
        ## Check status with checkproc( 8) , if process is running
        ## checkproc will return with exit status 0.
        # Return value is slightly different for the status command:
        # 0 - service up and running
        # 1 - service dead, but /var/run/  pid  file exists
        # 2 - service dead, but /var/lock/ lock file exists
        # 3 - service not running (unused)
        # 4 - service status unknown :-(
        # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
        # NOTE: checkproc returns LSB compliant status values.
        checkproc $IGMPRTD_BIN && (iptables -L OUTPUT | grep -i igmp &>/dev/null) && (iptables -L INPUT | grep -i igmp &>/dev/null) && (ifconfig -a | grep $INTERNET_TV &>/dev/null) && (ifconfig $INTERNET_TV 2>/dev/null | grep "inet addr" &>/dev/null)
        # NOTE: rc_status knows that we called this init script with
        # "status" option and adapts its messages accordingly.
        rc_status -v
        ;;
    probe)
        ## Optional: Probe for the necessity of a reload, print out the
        ## argument to this init script which is required for a reload.
        ## Note: probe is not (yet) part of LSB (as of 1.2)
        test $IGMPRTD_CONFIG -nt /var/run/igmprtd.pid && echo reload
        ;;
    *)
        echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
        exit 1
        ;;
esac
rc_exit


Tout fonctionne, sauf que lorsque je change de chaîne, le nouveau flux s'additionne à l'ancien, je vois le débit sur la carte eth3 monter, monter, et de même sur ma carte côté client...
Je dois rater un truc, mais je ne vois pas quoi.
Quelqu'un peut m'aider?
Je suis preneur de toute suggestion...
Merci d'avance  :o


Edit: J'ai constaté que si je regarde la TV un moment, je perds a connexion au net - je dois désactiver puis réactiver la carte data  >:(
Je crois que j'ai pas fini...


Je constate également un nombre hallucinant de requêtes DNS (port 53) d'adresses ip 192.168.1.20 et 192.168.1.30 sur le lan TV en direction de ma 10.0.0.250...
Me semble un peu borderline, le lan TV...