La Fibre
Datacenter et équipements réseaux => Routeurs => Ubiquiti => Discussion démarrée par: iMot3k le 11 avril 2022 à 09:13:53
-
Bonjour bonjour,
Je poste ce message car cela fait plusieurs jours que je m'arrache les cheveux là dessus, j'ai beaucoup de mal à faire fonctionner ça comme je l'entend.
Pour des raisons obscures, je dois utiliser un Edgerouter12 avec deux LANs différents et avec deux WAN (failover). La particularité : chaque LAN doit avoir un failover différent.
Concrètement j'ai une fibre et une connexion 4G, j'ai besoin que le premier lan nommé "data" passe normalement par la 4G et soit secouru par la Fibre, et j'ai besoin que mon lan "voix" passe normalement par la Fibre et soit secouru par la 4G :o
Oui c'est assez spécial, et j'avoue que j'ai du mal. Vous aurez un schéma attaché à ce message pour mieux comprendre ;D
Actuellement le routeur est configuré plutôt normalement : le failover marche correctement sur le switch voix (fibre en normal et est secouru par 4G), mais il marche de la même manière sur le switch data.
J'ai essayé de faire deux groupes d'interfaces (LB_data et LB_voix), et ces groupes ont respectivement les configurations :
LB_data:
eth8 main
eth9 failover
LB_voix:
eth9 main
eth8 failover
Mais pourtant les deux fonctionnent avec la configuration LB_voix, j'y comprend rien ¯\_(ツ)_/¯
Bref si l'un d'entre vous est chaud en Ubiquiti, faites-moi signe ;)
-
Salut,
Tu as bien créé deux groupes de load-balance avec les deux tables de routage et deux PBR qui vont bien ? Poste ta config ici si tu veux qu'on y jette un œil.
Cf https://help.ui.com/hc/en-us/articles/205145990-EdgeRouter-WAN-Load-Balancing
-
Voici la config :) Merci pour l'aide
firewall {
all-ping enable
broadcast-ping disable
group {
network-group NG_Data {
network 192.168.200.0/24
}
network-group NG_Voix {
network 192.168.104.0/24
}
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 disable
modify balance {
rule 10 {
action modify
description "do NOT load balance lan to lan"
destination {
group {
network-group PRIVATE_NETS
}
}
modify {
table main
}
}
rule 100 {
action modify
description "do NOT load balance destination public address"
destination {
group {
address-group ADDRv4_eth8
}
}
modify {
table main
}
}
rule 110 {
action modify
description "do NOT load balance destination public address"
destination {
group {
address-group ADDRv4_eth9
}
}
modify {
table main
}
}
}
modify balance_data {
rule 10 {
action modify
description "do NOT load balance lan to lan"
modify {
table main
}
}
rule 100 {
action modify
description "do NOT load balance destination public address"
modify {
table main
}
}
rule 110 {
action modify
description "do NOT load balance destination public address"
modify {
lb-group LB_Data
}
}
}
modify balance_voix {
rule 10 {
action modify
description "do NOT load balance lan to lan"
destination {
group {
network-group PRIVATE_NETS
}
}
modify {
table main
}
}
rule 100 {
action modify
description "do NOT load balance destination public address"
destination {
group {
network-group NG_Voix
}
}
modify {
table main
}
}
rule 110 {
action modify
description "do NOT load balance destination public address"
destination {
group {
}
}
modify {
lb-group LB_Voix
}
}
}
name WAN_IN {
default-action drop
description "WAN to internal"
rule 10 {
action accept
description "Allow established/related"
state {
established enable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
state {
invalid enable
}
}
}
name WAN_LOCAL {
default-action drop
description "WAN to router"
rule 10 {
action accept
description "Allow established/related"
state {
established enable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
state {
invalid enable
}
}
}
receive-redirects disable
send-redirects enable
source-validation disable
syn-cookies enable
}
interfaces {
ethernet eth0 {
duplex auto
speed auto
}
ethernet eth1 {
duplex auto
speed auto
}
ethernet eth2 {
duplex auto
speed auto
}
ethernet eth3 {
address 192.168.200.254/24
duplex auto
firewall {
in {
modify balance_data
}
}
speed auto
}
ethernet eth4 {
address 192.168.104.254/24
duplex auto
firewall {
in {
modify balance_voix
}
}
speed auto
}
ethernet eth5 {
duplex auto
speed auto
}
ethernet eth6 {
duplex auto
speed auto
}
ethernet eth7 {
duplex auto
speed auto
}
ethernet eth8 {
address dhcp
description "WAN 2"
duplex auto
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
}
speed auto
}
ethernet eth9 {
address dhcp
description WAN
duplex auto
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
}
poe {
output off
}
speed auto
}
ethernet eth10 {
duplex auto
speed auto
}
ethernet eth11 {
duplex auto
speed auto
}
switch switch0 {
address 192.168.1.1/24
description Local
firewall {
in {
modify balance
}
}
mtu 1500
switch-port {
interface eth0 {
}
interface eth1 {
}
interface eth2 {
}
interface eth5 {
}
interface eth6 {
}
interface eth7 {
}
vlan-aware disable
}
}
}
load-balance {
group LB_Data {
exclude-local-dns disable
flush-on-active enable
gateway-update-interval 20
interface eth8 {
route-test {
initial-delay 1
interval 5
type {
ping {
target 1.1.1.1
}
}
}
weight 100
}
interface eth9 {
failover-only
route-test {
initial-delay 1
interval 5
type {
ping {
target 1.1.1.1
}
}
}
}
lb-local disable
lb-local-metric-change disable
}
group LB_Voix {
exclude-local-dns disable
flush-on-active enable
gateway-update-interval 20
interface eth8 {
failover-only
route-test {
initial-delay 1
interval 5
type {
ping {
target 1.1.1.1
}
}
}
}
interface eth9 {
route-test {
initial-delay 1
interval 5
type {
ping {
target 1.1.1.1
}
}
}
weight 100
}
lb-local enable
lb-local-metric-change disable
}
}
protocols {
static {
route 0.0.0.0/0 {
next-hop 192.168.10.254 {
distance 1
}
next-hop 192.168.151.250 {
distance 2
}
}
}
}
service {
dhcp-server {
disabled false
hostfile-update disable
shared-network-name DATA {
authoritative disable
subnet 192.168.200.0/24 {
default-router 192.168.200.254
dns-server 8.8.8.8
lease 86400
start 192.168.200.10 {
stop 192.168.200.240
}
}
}
shared-network-name LAN {
authoritative enable
subnet 192.168.1.0/24 {
default-router 192.168.1.1
dns-server 192.168.1.1
lease 86400
start 192.168.1.38 {
stop 192.168.1.243
}
}
}
shared-network-name VOIX {
authoritative disable
subnet 192.168.104.0/24 {
default-router 192.168.104.254
dns-server 8.8.8.8
lease 86400
start 192.168.104.10 {
stop 192.168.104.240
}
}
}
static-arp disable
use-dnsmasq disable
}
dns {
forwarding {
cache-size 10000
listen-on switch0
}
}
gui {
http-port 80
https-port 443
older-ciphers enable
}
nat {
rule 5016 {
description "masquerade for WAN 2"
outbound-interface eth8
type masquerade
}
rule 5018 {
description "masquerade for WAN"
outbound-interface eth9
type masquerade
}
}
ssh {
port 22
protocol-version v2
}
unms {
}
}
system {
analytics-handler {
send-analytics-report false
}
conntrack {
expect-table-size 4096
hash-size 4096
table-size 32768
tcp {
half-open-connections 512
loose enable
max-retrans 3
}
}
crash-handler {
send-crash-report false
}
host-name EdgeRouter-12
login {
user ubnt {
authentication {
encrypted-password lolnope
}
level admin
}
}
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 {
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone UTC
}
/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "config-management@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@5:nat@3:qos@1:quagga@2:suspend@1:system@5:ubnt-l2tp@1:ubnt-pptp@1:ubnt-udapi-server@1:ubnt-unms@2:ubnt-util@1:vrrp@1:vyatta-netflow@1:webgui@1:webproxy@1:zone-policy@1" === */
/* Release version: v2.0.9-hotfix.1.5371035.210122.1015 */
-
Effectivement, ça ne peut pas marcher avec cette config :
modify balance_data {
rule 10 {
action modify
description "do NOT load balance lan to lan"
modify {
table main
}
}
Là, tu indiques que ce qui passe par le groupe de load-balancing "balance_data" doit être envoyé à la table de routage principale. Une fois ça lu, le firewall s'arrête et donc ce qui suit n'est pas exécuté.
Note que la règle 100 est identique ! Il manque une destination dans ces deux règles pour que ce soit fonctionnel ;)
modify balance {
rule 10 {
action modify
description "do NOT load balance lan to lan"
destination {
group {
network-group PRIVATE_NETS
}
}
modify {
table main
}
}
rule 100 {
action modify
description "do NOT load balance destination public address"
destination {
group {
address-group ADDRv4_eth8
}
}
modify {
table main
}
}
rule 110 {
action modify
description "do NOT load balance destination public address"
destination {
group {
address-group ADDRv4_eth9
}
}
modify {
table main
}
}
}
modify balance_data {
rule 10 {
action modify
description "do NOT load balance lan to lan"
modify {
table main
}
}
rule 100 {
action modify
description "do NOT load balance destination public address"
modify {
table main
}
}
rule 110 {
action modify
description "do NOT load balance destination public address"
modify {
lb-group LB_Data
}
}
}
Je ne comprends pas l'intérêt de cette règle qui, affectée à switch0, ne fait au final rien du tout à part tout rediriger vers la table de routage main, ce qui déjà le cas par défaut ? Un reste de copier/coller du tuto Ubiquiti lors d'un précédent test ?
Niveau table de routage :
protocols {
static {
route 0.0.0.0/0 {
next-hop 192.168.10.254 {
distance 1
}
next-hop 192.168.151.250 {
distance 2
}
}
}
}
Les deux routes étant déclarées statiques, le hop 192.168.151.250 ne sera jamais déclenché, même sans connectivité.
Du coup, j'effacerai tes groupes de load-balancing et tes routes statiques pour les remplacer comme suit (non testé, je tape ça comme ça me vient à l'esprit) :
# On met la route par défaut de tout ce qui ne sera pas balancé dans la table main
set protocols static route 0.0.0.0/0 next-hop 192.168.10.254
set firewall modify balance_data rule 10 description "On ne balance pas les adresses privées"
set firewall modify balance_data rule 10 action modify
set firewall modify balance_data rule 10 destination group network-group PRIVATE_NETS
set firewall modify balance_data rule 10 modify table main
# Inutile de mettre des règles concernant les IP de eth8 et eth9, elles sont dans le range 192.168.0.0/16, donc dans PRIVATE_NETS
set firewall modify balance_data rule 100 action modify
set firewall modify balance_data rule 100 modify lb-group LB_Data
# On active le load-balancing Data sur eth3
set interfaces ethernet eth3 firewall in modify balance_data
set firewall modify balance_voix rule 10 description "On ne balance pas les adresses privées"
set firewall modify balance_voix rule 10 action modify
set firewall modify balance_voix rule 10 destination group network-group PRIVATE_NETS
set firewall modify balance_voix rule 10 modify table main
# Inutile de mettre des règles concernant les IP de eth8 et eth9, elles sont dans le range 192.168.0.0/16, donc dans PRIVATE_NETS
set firewall modify balance_voix rule 100 action modify
set firewall modify balance_voix rule 100 modify lb-group LB_Data
# On active le load-balancing Voix sur eth4
set interfaces ethernet eth4 firewall in modify balance_voix
commit
save
Et une fois sorti du mode de configuration, vérifier les routes comme suit :
# On liste les tables créées par le système de load-balancing. Elles ont un nom > 200
ip route show table all | grep -Po 'table \K[^\s]+' | sort -u
# Puis on affiche les routes une à une
show ip route table [Le numéro ici]