La Fibre
Datacenter et équipements réseaux => Routeurs => Remplacer la LiveBox par un routeur => Discussion démarrée par: fl0w le 12 octobre 2019 à 15:20:54
-
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
-
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 ?
-
Pour info j'ai fait la même sur Mikrotik avec Orange et SFR. Je peux partager la config si besoin ^^
-
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 ;)
-
Du coup c'est un debit alterné ?
-
Oui c'est l'un ou l'autre, d'où l'option failover-only
-
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
-
C'est bon ça marche!
-
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.
-
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 "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
-
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.
-
autre question, il n'est possible de regler la CoS 6 sur les paquets DHCP sans modifier dhcpc3 ?
-
J'allais répondre mais zoc a déjà répondu :D
-
Sans un switch entre l’ont et le routeur non, pas moyen, en tout cas pour IPv4. (Me serait pas fait chier à patcher dhclient sinon...).
-
Sans un switch entre l’ont et le routeur non, pas moyen, en tout cas pour IPv4. (Me serait pas fait chier à patcher dhclient sinon...).
Oui je me doutais bien, c'etait histoire de confirmer... C'est un peu dommage, j'en resterais presque en PPOE pour IPv4 ..
-
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.
j'ai trouvé dockcross (https://github.com/dockcross/dockcross) qui peut peut-être simplifier le build. Tu appliques le patch sur quel sources ? le paquet de vyatta-dhcp3-client?
-
Oui.
-
Oui.
hrm pas sur de savoir où trouver la dernière version... Il y aun repo ?
-
Un repo de quoi ? le patch ou le code source du package ?
Le code source du package est dans l'archive GPL publiée par Ubiquiti sur la page (publique, si tu utilises une beta du firmware tu n'auras pas les sources à jour) de download de l'image firmware.
-
Un repo de quoi ? le patch ou le code source du package ?
Le code source du package est dans l'archive GPL publiée par Ubiquiti sur la page (publique, si tu utilises une beta du firmware tu n'auras pas les sources à jour) de download de l'image firmware.
ah je n'arrivais pas à trouver les sources GPLde dhclient3, désolé :) Pour ceux qui cherches comme moi c'est sur la page de téléchargement du firmware: https://www.ui.com/download/edgemax/ (Voir screenshot ci-joint)
sinon pour le patch je suppose qu'il s'agitd e celui-ci :
https://github.com/shisva/USG_Orange/blob/master/patch_dhclient3/iscdhcp_priority.patch
?
-
une question, sur la version 2 du firmware on peut installer les cgroups. est-ce que en fixant la priorité comme indiqué ici:
https://lafibre.info/remplacer-livebox/isc-dhcp-client-raw-socket-solution/msg635065/#msg635065
ce serait aussi efficace que dhclient? par contre au niveau persistence de la conf 🤷♂️ ?
-
Malheureusement le noyau n’a pas été compilé avec ce qu’il faut, notamment le module qui gère la priorité est absent.
On a déjà demandé à Ubiquiti de le rajouter il y a des mois dans la wish list Mais aucune réponse.
-
Bonjour,
J'essaie de faire fonctionner mon ER-X SFP (en remplacement de la Livebox 5) sur le réseau Orange en mode DHCP, mais j'obtiens aucune réponse à mon DHCP Discover, alors que j'ai pourtant configuré les options DHCP et le marquage des trames comme il se doit, avec le binaire remplacé (et mon setup fonctionnait sous OpenWRT en VDSL auparavant).
Le SFP utilisé est un FGS202 avec le mod soudure, afin qu'il soit reconnu par l'ER-X.
La connexion fonctionne parfaitement en PPPoE (900/600).
J'utilise la version v2.0.9-hotfix.2.
J'en viens à venir chercher de l'aide ici car je ne comprends vraiment pas d'où pourrait provenir le problème :/
Quelqu'un rencontre-t-il le même problème ?
-
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
Hello fl0w,
Je sais que je déterre un vieux sujet et j'espère que tout ne sera pas effacé dans ta mémoire.
J'ai un souci identique de failover sur un ER8-Pro 2.X avec dual WAN (Primaire: Fibre Celeste + Failover: ADSL Orange):
Quand la fibre tombe, le switch vers Orange est OK mais quand ca revient, les routes ne sont pas corrigées et une partie du trafic reste sur le WAN failover
Je ne suis pas un spécialiste réseau ni télécoms, du coup j'ai bcp de mal à comprendre l’intérêt de la réponse que tu as eu sur le forum ubiquiti, d'autant plus que le commit a échoué ...
Merci d'avance si tu as le temps et que ça reste assez frai dans ta mémoire.
Sinon j'essayerai d'ouvrir un nouveau fil de discussion
-
Hello,
De ce que je constate, la dernière version du firmware ne semble pas impactée, la version v2.0.9-hotfix.4.
Sinon voici le contenu de mon script wan-transition, j'avais ajouté le correctif qui est lié au client DHCP qui merdait (les 3 dernières lignes):
#!/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
/bin/mv /config/user-data/wlb_linkup /etc/dhcp3/dhclient-exit-hooks.d/
sleep 200
/bin/mv /etc/dhcp3/dhclient-exit-hooks.d/wlb_linkup /config/user-data/
Le script est appelé en faisant un "set load-balance group WAN_FAILOVER transition-script /config/scripts/wan-transition"
-
Ce script est-il à jour ? Dans le sens un simple copier/coller avec les infos. de connexion suffit-il ?