Auteur Sujet: Template config ER-X firmware 2.X Dual WAN Failover (FTTH Orange + FTTB SFR)  (Lu 13046 fois)

0 Membres et 1 Invité sur ce sujet

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
Bonjour,

Je partage ma configuration d'un EdgeRouter X (v2.0.8-hotfix.1) en fonctionnement double WAN failover avec une connexion FTTH Orange (sans Livebox) et une connexion FTTB RED/SFR (avec modem en mode bridge):
firewall {
    all-ping enable
    broadcast-ping disable
    group {
        network-group PRIVATE_NETS {
            network 192.168.0.0/16
            network 172.16.0.0/12
            network 10.0.0.0/8
        }
    }
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    modify FAILOVER {
        rule 10 {
            action modify
            destination {
                group {
                    network-group PRIVATE_NETS
                }
            }
            modify {
                table main
            }
        }
        rule 20 {
            action modify
            destination {
                group {
                    address-group ADDRv4_eth1.832
                }
            }
            modify {
                table main
            }
        }
        rule 30 {
            action modify
            destination {
                group {
                    address-group ADDRv4_eth2
                }
            }
            modify {
                table main
            }
        }
        rule 110 {
            action modify
            modify {
                lb-group WAN_FAILOVER
            }
        }
    }
    name WAN_IN {
        default-action drop
        description "WAN to internal"
        rule 10 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
        rule 30 {
            action accept
            description Exemple
            destination {
                address 192.168.0.2
                port 443
            }
            log disable
            protocol tcp
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "WAN to router"
        rule 20 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 50 {
            action drop
            description "Drop invalid state"
            log disable
            state {
                invalid enable
            }
        }
    }
    name WAN_OUT {
        default-action accept
        description ""
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        duplex auto
        speed auto
    }
    ethernet eth1 {
        description ORANGE
        duplex auto
        speed auto
        vif 832 {
            address dhcp
            description ORANGE_DATA
            dhcp-options {
                client-option "send vendor-class-identifier "sagem";"
                client-option "send user-class "\053FSVDSL_livebox.Internet.softathome.Livebox4";"
                client-option "send rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;"
                client-option "request subnet-mask, routers, domain-name-servers, domain-name, broadcast-address, dhcp-lease-time, dhcp-renewal-time, dhcp-rebinding-time, rfc3118-auth;"
                default-route update
                default-route-distance 210
                global-option "option rfc3118-auth code 90 = string;"
                name-server update
            }
            egress-qos "0:0 1:0 2:0 3:0 4:0 5:0 6:6 7:0"
            firewall {
                in {
                    name WAN_IN
                }
                local {
                    name WAN_LOCAL
                }
                out {
                    name WAN_OUT
                }
            }
        }
    }
    ethernet eth2 {
        address dhcp
        description SFR
        duplex auto
        firewall {
            in {
                name WAN_IN
            }
            local {
                name WAN_LOCAL
            }
            out {
                name WAN_OUT
            }
        }
        speed auto
    }
    ethernet eth3 {
        duplex auto
        speed auto
    }
    ethernet eth4 {
        duplex auto
        poe {
            output off
        }
        speed auto
    }
    loopback lo {
    }
    switch switch0 {
        address 192.168.0.1/24
        description LAN
        firewall {
            in {
                modify FAILOVER
            }
        }
        mtu 1500
        switch-port {
            interface eth0 {
            }
            interface eth3 {
            }
            interface eth4 {
            }
            vlan-aware disable
        }
    }
}
load-balance {
    group WAN_FAILOVER {
        exclude-local-dns disable
        flush-on-active enable
        gateway-update-interval 20
        interface eth1.832 {
            route-test {
                count {
                    failure 5
                    success 3
                }
                initial-delay 30
                interval 10
                type {
                    ping {
                        target <mettre la passerelle de la connexion>
                    }
                }
            }
            weight 60
        }
        interface eth2 {
            failover-only
            route-test {
                count {
                    failure 5
                    success 3
                }
                initial-delay 30
                interval 10
                type {
                    ping {
                        target <mettre la passerelle de la connexion>
                    }
                }
            }
            weight 40
        }
        lb-local disable
        lb-local-metric-change enable
        transition-script /config/scripts/wan-transition
    }
}
port-forward {
    auto-firewall enable
    hairpin-nat enable
    lan-interface switch0
    wan-interface eth1.832
}
protocols {
    static {
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name LAN {
            authoritative disable
            subnet 192.168.0.0/24 {
                default-router 192.168.0.1
                dns-server 192.168.0.2
                lease 86400
                start 192.168.0.100 {
                    stop 192.168.0.199
                }
            }
        }
        static-arp disable
        use-dnsmasq disable
    }
    dns {
        dynamic {
            interface eth1.832 {
                service dyndns {
                    host-name orange.domain.tld
                    login <login>
                    password ****************
                    server <dyndns.org>
                }
                web dyndns
            }
            interface eth2 {
                service dyndns {
                    host-name sfr.domain.tld
                    login <login>
                    password ****************
                    server <dyndns.org>
                }
            }
        }
    }
    gui {
        http-port 80
        https-port 443
        listen-address 192.168.0.1
        older-ciphers disable
    }
    nat {
        rule 1 {
            description Exemple_Orange
            destination {
                group {
                    address-group ADDRv4_eth1.832
                }
                port 443
            }
            inbound-interface eth1.832
            inside-address {
                address 192.168.0.2
                port 443
            }
            log disable
            protocol tcp
            source {
            }
            type destination
        }
        rule 2 {
            description Exemple_SFR
            destination {
                group {
                    address-group ADDRv4_eth2
                }
                port 443
            }
            inbound-interface eth2
            inside-address {
                address 192.168.0.2
                port 443
            }
            log disable
            protocol tcp
            source {
            }
            type destination
        }
        rule 5001 {
            description "MASQ: WAN_ORANGE"
            log disable
            outbound-interface eth1.832
            protocol all
            type masquerade
        }
        rule 5003 {
            description "MASQ: WAN_SFR"
            log disable
            outbound-interface eth2
            protocol all
            type masquerade
        }
    }
    ssh {
        listen-address 192.168.0.1
        port 22
        protocol-version v2
    }
    unms {
        disable
    }
}
system {
    conntrack {
        expect-table-size 4096
        hash-size 4096
        table-size 32768
        tcp {
            half-open-connections 512
            loose disable
            max-retrans 3
        }
    }
    host-name ubnt
    }
    name-server 192.168.0.2
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        hwnat enable
        ipsec enable
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level warning
            }
        }
    }
    time-zone Europe/Paris
}
J'ai laissé un exemple de NAT (les règles doivent être doublées, une par interface WAN) et filtrage pare-feu pour le SSH, ainsi que la configuration DynDNS (un sous-domaine par connexion, pour un domaine dont la résolution bascule automatiquement, voir le script wan-transition). La bascule se fait en moins de 10 secondes, idem pour le retour sur le lien primaire, l'IP en DynDNS est bien mise à jour en même temps.
Pour info:
switch0: LAN (eth0, eth3, eth4)
eth1: WAN Orange
eth2: WAN SFR

Je me suis basé sur la conf de zoc (merci à lui). N'hésitez pas si vous avez des soucis au moment de tester cette conf.

Ci-joint le binaire dhclient3 pour ER-X sous firmware 2.x, à placer dans /sbin et lancer un "chmod a+x dhclient3" (droits d'exécution pour tous) et "chown root:root dhclient3" (root doit en être propritétaire).

Et le script /config/scripts/wan-transition qui me sert pour des notifications de bascule de lien:
#!/bin/bash                                                                                                                                                   
                                                                                                                                                               
GROUP=$1                                                                                                                                                       
INTF=$2                                                                                                                                                       
STATUS=$3                                                                                                                                                     
                                                                                                                                                               
MYLOG="/var/log/wan-transition.log"                                                                                                                                           
TS=$(date +"%Y%m%d-%T")                                                                                                                                       
                                                                                                                                                               
run=/opt/vyatta/bin/vyatta-op-cmd-wrapper                                                                                                                     
INTFDSCR=$($run show interfaces | grep $INTF | awk '{print $4}')                                                                                               
                                                                                                                                                               
#/usr/sbin/conntrack -F                                                                                                                                         
#/usr/sbin/ubnt-add-connected.pl                                                                     

case "$STATUS" in
  active)
    msg="$TS: Internet connection $GROUP:$INTF:$INTFDSCR is active."   
    /config/scripts/dynhost 2>&1 | logger &
    /config/scripts/gotify "Router $(hostname) WAN fail-over event" "$msg" &
    ;;
  inactive)
    msg="$TS: Internet connection $GROUP:$INTF:$INTFDSCR is inactive."
    ;;
  failover)
    msg="$TS: Internet connection $GROUP:$INTF:$INTFDSCR is failover."   
    ;;
  *)
    msg="$TS: Oh crap, $GROUP:$INTF:$INTFDSCR going [$STATUS]"
    ;;
esac

echo $msg >> $MYLOG
logger $msg
exit 0

Le script /config/scripts/gotify qui est utilisé (je recommande Gotify si vous voulez envoyer des notifications vers un smartphone sans avoir de limites comme c'est le cas avec Pushbullet et cie):
#!/bin/bash

APP_TOKEN=<token>

sleep 10

curl "http://gotify.domain.tld/message?token=$APP_TOKEN" \
-F "title=$1" \
-F "message=$2" \
-F "priority=5"

Et le script de mise à jour d'entrée DNS (dans mon cas j'utilise DynHost de OVH):
#!/bin/sh
SCRIPT_PATH='/config/scripts'
NSSERVER='8.8.8.8'
HOST='domain.tld'
LOGIN='login'
PASSWORD='password'
ENTRYPOINT='https://www.ovh.com/nic/update'

getip() {
    IP=`curl -s http://ifconfig.me/ip`
    OLDIP=`dig +short $HOST @$NSSERVER`
}

getip

if [ "$IP" ]; then
    echo "[`date '+%Y-%m-%d %H:%M:%S'`] Old IP is ${OLDIP}"
    echo "[`date '+%Y-%m-%d %H:%M:%S'`] New IP is ${IP}"

    if [ "$OLDIP" != "$IP" ]; then
        echo "[`date '+%Y-%m-%d %H:%M:%S'`] Update is needed…"
        curl -s -S -u "${LOGIN}:${PASSWORD}" "${ENTRYPOINT}?system=dyndns&hostname=${HOST}&myip=${IP}" 2>&1 1> /dev/null
    else
        echo "[`date '+%Y-%m-%d %H:%M:%S'`] No update required."
    fi
 else
    echo "[`date '+%Y-%m-%d %H:%M:%S'`] WAN IP not found. Exiting!"
 fi
« Modifié: 05 juin 2020 à 22:00:07 par fl0w »

r4v3n_10rd

  • Abonné Free fibre
  • *
  • Messages: 9
  • Plan de Cuques 13
Template config EdgeRouter Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #1 le: 12 novembre 2019 à 10:59:31 »
Merci très utile ! J'ai actuellement une configuration similaire avec le edge light mais a quoi sert le failover ? Peut-on choisir la sortie sur le wan de chaque appareil ?

doctorrock

  • Abonné Orange Fibre
  • *
  • Messages: 931
  • Draguignan 83
Template config EdgeRouter Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #2 le: 12 novembre 2019 à 11:44:17 »
Pour info j'ai fait la même sur Mikrotik avec Orange et SFR. Je peux partager la config si besoin ^^

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
Template config EdgeRouter Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #3 le: 12 novembre 2019 à 12:19:29 »
Merci très utile ! J'ai actuellement une configuration similaire avec le edge light mais a quoi sert le failover ? Peut-on choisir la sortie sur le wan de chaque appareil ?
Bascule auto en cas de perte du lien primaire ;)

r4v3n_10rd

  • Abonné Free fibre
  • *
  • Messages: 9
  • Plan de Cuques 13
Template config EdgeRouter Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #4 le: 12 novembre 2019 à 17:03:05 »
Du coup c'est un debit alterné ?

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
Template config EdgeRouter Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #5 le: 12 novembre 2019 à 17:04:15 »
Oui c'est l'un ou l'autre, d'où l'option failover-only

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
J'ai mis à jour le post, la conf est compatible avec les firmwares 2.x, il faudra utiliser le dhclient3 que j'ai mis en pièce jointe.
Edit: Pour l'instant j'ai un souci de load-balancing, j'ai ouvert une discussion chez UBNT: https://community.ui.com/questions/Failover-load-balancing-not-working-on-ER-X-firmware-2-x/c9bd1d0d-d653-44b5-955c-c19d1f36d22f
« Modifié: 10 mai 2020 à 16:14:48 par fl0w »

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
C'est bon ça marche!

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
Petite mise à jour, j'ai ajouté un script appelé par wan-transition pour mettre à jour une entrée DynDNS.
J'ai également fait évoluer ma config pour avoir un serveur Wireguard, lui-même load balancé et le temps de coupure est inférieur à 1 seconde :) Si jamais quelqu'un veut la conf je peux la communiquer.

benoitc

  • Expert
  • Profil non complété
  • ***
  • Messages: 329
Template config ER-X firmware 2.X Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #9 le: 14 juillet 2020 à 20:36:28 »
comment as tu compilé dhcp3c ? J'ai un ER12 donc du mips64 et j'aurais aimé compiler dessus.

Bonjour,

Je partage ma configuration d'un EdgeRouter X (v2.0.8-hotfix.1) en fonctionnement double WAN failover avec une connexion FTTH Orange (sans Livebox) et une connexion FTTB RED/SFR (avec modem en mode bridge):
firewall {
    all-ping enable
    broadcast-ping disable
    group {
        network-group PRIVATE_NETS {
            network 192.168.0.0/16
            network 172.16.0.0/12
            network 10.0.0.0/8
        }
    }
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    modify FAILOVER {
        rule 10 {
            action modify
            destination {
                group {
                    network-group PRIVATE_NETS
                }
            }
            modify {
                table main
            }
        }
        rule 20 {
            action modify
            destination {
                group {
                    address-group ADDRv4_eth1.832
                }
            }
            modify {
                table main
            }
        }
        rule 30 {
            action modify
            destination {
                group {
                    address-group ADDRv4_eth2
                }
            }
            modify {
                table main
            }
        }
        rule 110 {
            action modify
            modify {
                lb-group WAN_FAILOVER
            }
        }
    }
    name WAN_IN {
        default-action drop
        description "WAN to internal"
        rule 10 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
        rule 30 {
            action accept
            description Exemple
            destination {
                address 192.168.0.2
                port 443
            }
            log disable
            protocol tcp
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "WAN to router"
        rule 20 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 50 {
            action drop
            description "Drop invalid state"
            log disable
            state {
                invalid enable
            }
        }
    }
    name WAN_OUT {
        default-action accept
        description ""
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        duplex auto
        speed auto
    }
    ethernet eth1 {
        description ORANGE
        duplex auto
        speed auto
        vif 832 {
            address dhcp
            description ORANGE_DATA
            dhcp-options {
                client-option "send vendor-class-identifier &quot;sagem&quot;;"
                client-option "send user-class &quot;\053FSVDSL_livebox.Internet.softathome.Livebox4&quot;;"
                client-option "send rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;"
                client-option "request subnet-mask, routers, domain-name-servers, domain-name, broadcast-address, dhcp-lease-time, dhcp-renewal-time, dhcp-rebinding-time, rfc3118-auth;"
                default-route update
                default-route-distance 210
                global-option "option rfc3118-auth code 90 = string;"
                name-server update
            }
            egress-qos "0:0 1:0 2:0 3:0 4:0 5:0 6:6 7:0"
            firewall {
                in {
                    name WAN_IN
                }
                local {
                    name WAN_LOCAL
                }
                out {
                    name WAN_OUT
                }
            }
        }
    }
    ethernet eth2 {
        address dhcp
        description SFR
        duplex auto
        firewall {
            in {
                name WAN_IN
            }
            local {
                name WAN_LOCAL
            }
            out {
                name WAN_OUT
            }
        }
        speed auto
    }
    ethernet eth3 {
        duplex auto
        speed auto
    }
    ethernet eth4 {
        duplex auto
        poe {
            output off
        }
        speed auto
    }
    loopback lo {
    }
    switch switch0 {
        address 192.168.0.1/24
        description LAN
        firewall {
            in {
                modify FAILOVER
            }
        }
        mtu 1500
        switch-port {
            interface eth0 {
            }
            interface eth3 {
            }
            interface eth4 {
            }
            vlan-aware disable
        }
    }
}
load-balance {
    group WAN_FAILOVER {
        exclude-local-dns disable
        flush-on-active enable
        gateway-update-interval 20
        interface eth1.832 {
            route-test {
                count {
                    failure 5
                    success 3
                }
                initial-delay 30
                interval 10
                type {
                    ping {
                        target <mettre la passerelle de la connexion>
                    }
                }
            }
            weight 60
        }
        interface eth2 {
            failover-only
            route-test {
                count {
                    failure 5
                    success 3
                }
                initial-delay 30
                interval 10
                type {
                    ping {
                        target <mettre la passerelle de la connexion>
                    }
                }
            }
            weight 40
        }
        lb-local disable
        lb-local-metric-change enable
        transition-script /config/scripts/wan-transition
    }
}
port-forward {
    auto-firewall enable
    hairpin-nat enable
    lan-interface switch0
    wan-interface eth1.832
}
protocols {
    static {
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name LAN {
            authoritative disable
            subnet 192.168.0.0/24 {
                default-router 192.168.0.1
                dns-server 192.168.0.2
                lease 86400
                start 192.168.0.100 {
                    stop 192.168.0.199
                }
            }
        }
        static-arp disable
        use-dnsmasq disable
    }
    dns {
        dynamic {
            interface eth1.832 {
                service dyndns {
                    host-name orange.domain.tld
                    login <login>
                    password ****************
                    server <dyndns.org>
                }
                web dyndns
            }
            interface eth2 {
                service dyndns {
                    host-name sfr.domain.tld
                    login <login>
                    password ****************
                    server <dyndns.org>
                }
            }
        }
    }
    gui {
        http-port 80
        https-port 443
        listen-address 192.168.0.1
        older-ciphers disable
    }
    nat {
        rule 1 {
            description Exemple_Orange
            destination {
                group {
                    address-group ADDRv4_eth1.832
                }
                port 443
            }
            inbound-interface eth1.832
            inside-address {
                address 192.168.0.2
                port 443
            }
            log disable
            protocol tcp
            source {
            }
            type destination
        }
        rule 2 {
            description Exemple_SFR
            destination {
                group {
                    address-group ADDRv4_eth2
                }
                port 443
            }
            inbound-interface eth2
            inside-address {
                address 192.168.0.2
                port 443
            }
            log disable
            protocol tcp
            source {
            }
            type destination
        }
        rule 5001 {
            description "MASQ: WAN_ORANGE"
            log disable
            outbound-interface eth1.832
            protocol all
            type masquerade
        }
        rule 5003 {
            description "MASQ: WAN_SFR"
            log disable
            outbound-interface eth2
            protocol all
            type masquerade
        }
    }
    ssh {
        listen-address 192.168.0.1
        port 22
        protocol-version v2
    }
    unms {
        disable
    }
}
system {
    conntrack {
        expect-table-size 4096
        hash-size 4096
        table-size 32768
        tcp {
            half-open-connections 512
            loose disable
            max-retrans 3
        }
    }
    host-name ubnt
    }
    name-server 192.168.0.2
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        hwnat enable
        ipsec enable
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level warning
            }
        }
    }
    time-zone Europe/Paris
}
J'ai laissé un exemple de NAT (les règles doivent être doublées, une par interface WAN) et filtrage pare-feu pour le SSH, ainsi que la configuration DynDNS (un sous-domaine par connexion, pour un domaine dont la résolution bascule automatiquement, voir le script wan-transition). La bascule se fait en moins de 10 secondes, idem pour le retour sur le lien primaire, l'IP en DynDNS est bien mise à jour en même temps.
Pour info:
switch0: LAN (eth0, eth3, eth4)
eth1: WAN Orange
eth2: WAN SFR

Je me suis basé sur la conf de zoc (merci à lui). N'hésitez pas si vous avez des soucis au moment de tester cette conf.

Ci-joint le binaire dhclient3 pour ER-X sous firmware 2.x, à placer dans /sbin et lancer un "chmod a+x dhclient3" (droits d'exécution pour tous) et "chown root:root dhclient3" (root doit en être propritétaire).

Et le script /config/scripts/wan-transition qui me sert pour des notifications de bascule de lien:
#!/bin/bash                                                                                                                                                   
                                                                                                                                                               
GROUP=$1                                                                                                                                                       
INTF=$2                                                                                                                                                       
STATUS=$3                                                                                                                                                     
                                                                                                                                                               
MYLOG="/var/log/wan-transition.log"                                                                                                                                           
TS=$(date +"%Y%m%d-%T")                                                                                                                                       
                                                                                                                                                               
run=/opt/vyatta/bin/vyatta-op-cmd-wrapper                                                                                                                     
INTFDSCR=$($run show interfaces | grep $INTF | awk '{print $4}')                                                                                               
                                                                                                                                                               
#/usr/sbin/conntrack -F                                                                                                                                         
#/usr/sbin/ubnt-add-connected.pl                                                                     

case "$STATUS" in
  active)
    msg="$TS: Internet connection $GROUP:$INTF:$INTFDSCR is active."   
    /config/scripts/dynhost 2>&1 | logger &
    /config/scripts/gotify "Router $(hostname) WAN fail-over event" "$msg" &
    ;;
  inactive)
    msg="$TS: Internet connection $GROUP:$INTF:$INTFDSCR is inactive."
    ;;
  failover)
    msg="$TS: Internet connection $GROUP:$INTF:$INTFDSCR is failover."   
    ;;
  *)
    msg="$TS: Oh crap, $GROUP:$INTF:$INTFDSCR going [$STATUS]"
    ;;
esac

echo $msg >> $MYLOG
logger $msg
exit 0

Le script /config/scripts/gotify qui est utilisé (je recommande Gotify si vous voulez envoyer des notifications vers un smartphone sans avoir de limites comme c'est le cas avec Pushbullet et cie):
#!/bin/bash

APP_TOKEN=<token>

sleep 10

curl "http://gotify.domain.tld/message?token=$APP_TOKEN" \
-F "title=$1" \
-F "message=$2" \
-F "priority=5"

Et le script de mise à jour d'entrée DNS (dans mon cas j'utilise DynHost de OVH):
#!/bin/sh
SCRIPT_PATH='/config/scripts'
NSSERVER='8.8.8.8'
HOST='domain.tld'
LOGIN='login'
PASSWORD='password'
ENTRYPOINT='https://www.ovh.com/nic/update'

getip() {
    IP=`curl -s http://ifconfig.me/ip`
    OLDIP=`dig +short $HOST @$NSSERVER`
}

getip

if [ "$IP" ]; then
    echo "[`date '+%Y-%m-%d %H:%M:%S'`] Old IP is ${OLDIP}"
    echo "[`date '+%Y-%m-%d %H:%M:%S'`] New IP is ${IP}"

    if [ "$OLDIP" != "$IP" ]; then
        echo "[`date '+%Y-%m-%d %H:%M:%S'`] Update is needed…"
        curl -s -S -u "${LOGIN}:${PASSWORD}" "${ENTRYPOINT}?system=dyndns&hostname=${HOST}&myip=${IP}" 2>&1 1> /dev/null
    else
        echo "[`date '+%Y-%m-%d %H:%M:%S'`] No update required."
    fi
 else
    echo "[`date '+%Y-%m-%d %H:%M:%S'`] WAN IP not found. Exiting!"
 fi

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 259
  • Antibes (06) / Mercury (73)
Template config ER-X firmware 2.X Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #10 le: 14 juillet 2020 à 21:11:48 »
Attention, Sur les routeurs Ubiquiti à base de processeur mips64 en big endian, seul le noyau est en 64 bits, toutes les applications sont compilées en 32 bits (architecture mips donc). La raison à cela est que EdgeOS est basé sur Debian et que Debian à arrêté le support de l’architecture mips64.

Il est sans doute possible de compiler pour mips64 en compilant gcc et les autres outils de développement, ainsi que la libc pour l’architecture mips64, mais ça veut dire installer la version 64 bits de plein de librairies sur le routeur ou alors tout compiler en statique.

Pour compiler pour mon ER4 (même processeur que l’ER12), perso je fais de la cross compilation sur un Linux Ubuntu en utilisant sbuild / schroot (c’est un peu compliqué à mettre en place quand on débute mais après tout roule) pour l’architecture mips (32 bits donc). Je m’étais  basé sur un tuto expliquant comment cross compiler pour raspbian ( https://i2p.rocks/blog/building-sbuild-environment-for-cross-building-raspbian-packages-on-amd64i386-machines.html ) que j’ai adapté pour wheezy (firmwares 1.10.x) et stretch (firmwares 2.0.x) pour l’architecture mips.

benoitc

  • Expert
  • Profil non complété
  • ***
  • Messages: 329
Template config ER-X firmware 2.X Dual WAN Failover (FTTH Orange + FTTB SFR)
« Réponse #11 le: 14 juillet 2020 à 21:12:39 »
autre question, il n'est possible de regler la CoS 6 sur les paquets DHCP sans modifier dhcpc3 ?