gemini137 a écrit 1 commentaire

  • # j'ai une solution ;-)

    Posté par  . En réponse au message passerelle résidence étudiante. Évalué à 2.

    bin j'avais exactement le meme besoin, on est 400 et on avait une seule freebox, et on est passé à 4.

    Config :
    eth0 : interne, eth1 à 4, 4 freebox
    un DHCP (172.20.0.0/255.255.252.0)

    Ma solution est donc :

    Un script php/mysql pour s'inscrire, ca recupère la MAC, l'utilisateur paye, et ca crée une liste des MAC autorisé avec son numéro de ligne.

    iptables marque les paquets (10, 20, 30 ou 40) en fonction de cette liste de MAC,
    Puis fait un SNAT.

    Et apres je gère le routage dans les differentes tables de routage :
    # ip route list table ligne1
    82.234.30.0/24 dev eth1 proto kernel scope link src 82.234.30.170
    default via 82.234.30.254 dev eth1
    # ip route list table ligne2
    82.234.30.0/24 dev eth2 proto kernel scope link src 82.234.30.167
    default via 82.234.30.254 dev eth2
    etc...

    Et des règles de routage en fonction de la marque mise par iptables :
    # ip rule list
    0: from all lookup local
    32326: from all fwmark 0x31 lookup ligne4
    32327: from all fwmark 0x2b lookup ligne4
    32328: from all fwmark 0x2a lookup ligne4
    32329: from all fwmark 0x29 lookup ligne4
    32330: from all fwmark 0x28 lookup ligne4
    32331: from all fwmark 0x27 lookup ligne3
    32332: from all fwmark 0x21 lookup ligne3
    32333: from all fwmark 0x20 lookup ligne3
    32334: from all fwmark 0x1f lookup ligne3
    32335: from all fwmark 0x1e lookup ligne3
    32336: from all fwmark 0x1d lookup ligne2
    32337: from all fwmark 0x17 lookup ligne2
    32338: from all fwmark 0x16 lookup ligne2
    32339: from all fwmark 0x15 lookup ligne2
    32340: from all fwmark 0x14 lookup ligne2
    32341: from all fwmark 0x13 lookup ligne1
    32342: from all fwmark 0xd lookup ligne1
    32343: from all fwmark 0xc lookup ligne1
    32344: from all fwmark 0xb lookup ligne1
    32345: from all fwmark 0xa lookup ligne1
    32766: from all lookup main
    32767: from all lookup default

    En plus de ca j'ai mis de la QoS, qui priotérise en fonction du port (et c'est super efficace : ping en upload non saturé : 45ms, upload saturé 500ms, saturé + QoS 55-60ms)

    Et je choisis les ports sortants ouvert en fonction de la ligne, mais le choix pourais tres bien etre en fonction de la MAC.

    J'ai essayé le load balancing mais toutes les 10 minutes MSN se déconnectait, donc je prefère attribuer les utilisateurs statiquement. Et l'usage moyen des lignes est semblablement le meme.

    Si vous voulez des morceau de mon script (520 lignes), il suffit de me demander.