La Fibre
Datacenter et équipements réseaux => Routeurs => Routeur => Discussion démarrée par: Tchyo le 12 juillet 2016 à 15:50:21
-
Je cherche un routeur capable de faire du dual-homing avec des connexions fibre grand public pour un réseau de PME. Le cas d'utilisation du dual-homing serait plus pour du failover que du load-balancing. Il faudrait qu'il fonctionne en dual-stack IPv4/IPv6, ait un firewall relativement souple et supporte les VLAN. Si possible, être capable de faire des jolies choses avec des VPN IPsec, aussi bien des liens site à site que d'accueillir des clients type roadwarrior, mais au pire c'est pas indispensable, je peux déporter ça sur une VM locale. Dans l'idéal, du matériel rackable et une CLI digne de ce nom seraient appréciés, mais c'est pas indispensable non plus, loin de là.
Niveau budget, je vise du matériel dans les 200-400€, au dessus du routeur SOHO de base, mais pas non plus du routeur plaqué or toutes options. J'ai déjà repéré quelques possibilités sur ce segment, mais j'aimerais savoir si certains ont déjà des expériences avec ces matériels ou avec quelque chose de similaire, s'ils valent quelque chose, et si vous pensez que ça conviendrait au besoin.
http://www.linksys.com/fr/p/P-LRT224/
https://www.ubnt.com/edgemax/edgerouter/
http://www.cisco.com/c/en/us/products/routers/rv325-dual-gigabit-wan-vpn-router/index.html
Et tant qu'à faire, est-ce que certains ont une expérience avec du dual-homing en IPv6 sur ce type de connexions grand public ? J'ai lu un sujet plus bas à ce propos avec le Linksys LRT224 (https://lafibre.info/routeur/load-balancing-ipv6-avec-routeur-dual-wan-linksys-lrt224/ ), j'en ai retiré que NPTv6 était l'idéal et après renseignement ça semble intéressant, mais sur quel type de matériel est-ce que j'ai une chance de trouver ça implèmenté et utilisable, concrètement ? Est-ce que je risque de sortir de ma gamme de prix si je commence à courir après ce type de fonctionnalités ? Et quelles sont les solutions alternatives, propager les deux préfixes sur le LAN et laisser les terminaux décider de leur destin par eux-même ?
Niveau opérateur, une ligne Orange Fibre Pro est en cours de commande. Le failover attendra un peu, le fibrage est encore très récent (quelques semaines), SFR et Free m'ont tous les deux répondu qu'il existait un délai d'exclusivité avant qu'ils puissent également faire des propositions.
-
le point décisif c'est effectivement le support de NPTv6.
Il y a aussi la performance et les autres fonctions (vpn, rackable, etc). C'est demandé beaucoup pour un seul produit dans cette gamme de prix...
L'edgemax permet pas mal de choses et en plus on peut attaquer directement le Linux qui est 'en dessous' si on veut faire des choses non prévues de base (notamment le NPTv6 qui est réalisable avec iptables). Mais on risque d'avoir un probleme de performance a un moment car l’accélération matérielle risque de ne plus marcher. Avec du Cisco on est enfermé dans ce que Cisco décide de supporter.
Apres si y'a un serveur assez puissant on peut aussi faire ca avec un routeur virtuel (une simple vm Linux).
Les solutions alternatives au NPTv6 y'en a pas vraiment sur des prestations grand public (en pro c'est autre chose). Au pire,en fail-over only, on peut avoir un système qui change les IPv6 du lan suivant la liason WAN active ... ca n'est pas forcement mauvais.
-
ps:
a mon a vis: j'eviterai le NPTv6. L'advantage d'IPv6 est la fin du NAT donc évitons d'en remettre...
On peut tres bien avoir plusieurs avoir plusieurs IPv6 par machine ca n'est pas un probleme du tout.
IPv6 ULA fixes pour le LAN (ou les LAN en multi site / vpn) voir IPv6 "link-local" directement sur un seul LAN.
IPv6 globales qui changent pour le trafic Internet sortant.
Souvent on a donc 4 ou plus IPv6 par machine.
En fait tout se passe dans la config DNS et ce que permet le ou les serveurs DNS.
Faut juste pas raisonner comme en IPv4 ou "une IP par machine" est le plus fréquent.
-
Merci pour ton retour en tout cas :)
Je n'ai pas vraiment d'expérience avec Cisco, est-ce que leurs routeurs Small Business ont le même système de licences que sur leurs gros matériels professionnels, où il faudra repasser à la caisse pour chaque composant logiciel à activer ? Pour le VPN et tout j'ai bien conscience que j'en demande potentiellement beaucoup et j'ai bien dit que c'est pour un cas idéal. Tout ce qui tient du confort peut passer à la trappe, tout ce qui serait déportable plus loin sur le LAN peut tout à fait l'être. Et si c'est trop demander à ce niveau, quelle fourchette de prix et modèles seraient plus adaptés à ce que j'ai listé ?
Pour la performance, le réseau fonctionne déjà relativement bien avec les métriques actuelles (85mbps down, 50mbps en up) sur un système D un peu tiré par les cheveux, un pont Wifi avec le voisin d'en face qui a eu la chance d'être fibré bien avant vu que son immeuble était plus gros (on ne rigole pas svp :o) ). Ce qui est recherché à présent, c'est surtout dégager ce pont pour une meilleur stabilité avec une connexion qui ne tombera pas en fonction de la météo et de l'âge du capitaine, tout en fournissant une connectique de base pour le LAN de l'entreprise avec IP fixe pour les quelques services hébergés en interne qui doivent être accessibles de l'extérieur. La ligne déjà commandée chez Orange devrait chiffrer à 500/200 en down/up. Quand au type d'usage susceptibles de soliciter la bande passante, ça sera du gros paquet type copie de backup offsites. Est-ce que les performances d'un modèle comme le edgemax sont vraiment problématiques dans ce cas de figure ?
Pour IPv6, si je suis bien, l'idée que tu avances serait plutôt de se passer de NPT, d'annoncer trois préfixes sur le LAN, un préfixe ULA pour avoir des adresses stables en local et les préfixes globaux respectifs de chaque opérateur ? Et dans ce système là, le failover aurait lieu naturellement avec les terminaux qui se rendront compte par eux-même de la perte du lien au delà du routeur ? Dans un fonctionnement normal avec les deux liens up, est-ce que ça ne risque pas de donner un routage un peu chaotique avec deux routes égales qui seront utilisées au pifomètre au bon vouloir des terminaux, selon les spécificités de leur pile IP ?
-
Dans un fonctionnement normal avec les deux liens up, est-ce que ça ne risque pas de donner un routage un peu chaotique avec deux routes égales qui seront utilisées au pifomètre au bon vouloir des terminaux, selon les spécificités de leur pile IP ?
l'idée c'était du fail-over, pas du load-balancing.
un seul prefix global est actif (annoncé) a un moment donné. S'il tombe, l'autre s'active (c'est a la machine faisant le radvd et/ou dhcpv6 de prendre cela en charge).
Pour du load-balancing , utiliser les 2 connexions en meme temps,c'est plus compliqué et le comportement est propre a chaque machine (probleme du "Source Address Selection"). Une bonne explication: https://tools.ietf.org/html/rfc7157.
On peut aussi jouer avec la "policy table" mais ca complique les choses (voir https://tools.ietf.org/html/rfc6724#section-10.5 )
-
Oui l'idée recherchée est bien du fail-over, mon raisonnement venait du fait que je n'ai aucune idée si le matériel envisagé est assez futé pour n'annoncer qu'un seul préfixe via radvd/dhcpv6 et changer de préfixe annoncé pour le backup à la coupure d'un lien.
-
Oui l'idée recherchée est bien du fail-over, mon raisonnement venait du fait que je n'ai aucune idée si le matériel envisagé est assez futé pour n'annoncer qu'un seul préfixe via radvd/dhcpv6 et changer de préfixe annoncé pour le backup à la coupure d'un lien.
Si le matériel en question utilise du Linux "accessible" en dessous c'est faisable avec des scripts shell.
Si c'est un truc propriétaire genre IOS (Cisco) ou RouterOS (Mikrotik) il faut s'assurer avant que ce soit faisable et sous quelles conditions. J'en doute.
-
Et tant qu'à faire, est-ce que certains ont une expérience avec du dual-homing en IPv6 sur ce type de connexions grand public ?
Oui. Mais de la facon propre, sans NPT (NAT + IPv6 = peste noire).
Bref, le routeur que j'utilise (machine Linux) est configure d'annoncer (via RADVD) cote LAN un /64 pour chaque connexion (une Free, une OVH). Les machines derriere prennent des adresses dans les deux /64 les choisissent l'adresse sortante selon RFC6724. Le routeur lui utilise PBR pour s'assurer que le traffic sort via le lien de l'operateur qui a attribue le bloc de l'IP source.
Ce que je n'ai pas encore fait (et vu le temps dispo, ca risque pas d'arriver bientot), c'est de verifier l'etat des upstreams et retirer les annonces sur le LAN en cas de defaillance d'un des liens. Ca sera interessant aussi d'integrer tout ca de facon automatique avec DHCP-PD (obligatoire chez OVH, meme si c'est statique, inutile chez Free), histoire de ne pas avoir a configurer les /64 LAN a la main.
-
Pour ceux que ça intéresse, j'ai fini par opter pour une EdgeRouter à 8 ports, et voici la configuration une fois fini, avec une connexion Orange FTTH PPPoE (sans livebox, juste le terminal optique) en primaire et une connexion Free ADSL en DHCP (derrière Freebox bridgée) en secondaire.
Voici une configuration quasi-complète (juste coupé un peu les redirections de port pour rester dans les 2000) pour le firmware 1.9 avec quelques redirections de port (à l'ancienne, pour une raison X ou Y j'ai pas réussi à faire fonctionner l'assistant pour ça).
firewall {
all-ping enable
broadcast-ping disable
ipv6-receive-redirects disable
ipv6-src-route disable
ip-src-route disable
log-martians enable
name WAN_IN {
default-action drop
description "Packets from Internet to LAN"
enable-default-log
rule 10 {
action accept
description "Allow Established Sessions"
log disable
protocol all
state {
established enable
invalid disable
new disable
related enable
}
}
rule 20 {
action drop
description "Drop invalid states"
log disable
protocol all
state {
established disable
invalid enable
new disable
related disable
}
}
rule 30 {
action accept
description "ICMP passthrough"
log disable
protocol icmp
}
rule 40 {
action accept
description "ESP pour tunnel IPsec"
destination {
address 10.10.10.19
}
log disable
protocol esp
}
[...]
}
name WAN_LOCAL {
default-action drop
description "Packets from Internet to the Router"
enable-default-log
rule 1 {
action accept
description "Allow established sessions to the router"
log disable
protocol all
state {
established enable
invalid disable
new disable
related enable
}
}
rule 2 {
action drop
description "Drop invalid state"
log disable
protocol all
state {
established disable
invalid enable
new disable
related disable
}
}
rule 3 {
action accept
description "ICMP passthrough"
log disable
protocol icmp
}
rule 4 {
action accept
description "SSH local"
destination {
port 22
}
log disable
protocol tcp
}
}
options {
mss-clamp {
interface-type pppoe
interface-type pptp
interface-type tun
mss 1452
}
}
receive-redirects disable
send-redirects enable
source-validation disable
syn-cookies enable
}
interfaces {
ethernet eth0 {
address 10.10.10.10/16
description "eth0 LAN company-domain"
duplex auto
firewall {
out {
name WAN_IN
}
}
speed auto
}
ethernet eth1 {
description "eth1 Fibre Orange ONT"
duplex auto
speed auto
vif 835 {
address dhcp
description "VLAN Internet"
pppoe 0 {
default-route auto
description "FTTH Orange"
firewall {
local {
name WAN_LOCAL
}
}
mtu 1492
name-server auto
password ***************
user-id fti/************
}
}
}
ethernet eth2 {
address dhcp
description "eth2 Free ADSL"
duplex auto
firewall {
local {
name WAN_LOCAL
}
}
speed auto
}
ethernet eth3 {
disable
duplex auto
speed auto
}
ethernet eth4 {
disable
duplex auto
speed auto
}
ethernet eth5 {
disable
duplex auto
speed auto
}
ethernet eth6 {
disable
duplex auto
speed auto
}
ethernet eth7 {
disable
duplex auto
speed auto
}
loopback lo {
}
}
load-balance {
group WAN_FAILOVER {
interface eth2 {
failover-only
}
interface pppoe0 {
}
lb-local disable
}
}
protocols {
static {
route 0.0.0.0/0 {
next-hop secondaryroute {
distance 10
}
next-hop primaryroute {
distance 1
}
}
}
}
service {
dhcp-server {
disabled false
hostfile-update disable
shared-network-name DHCP_LAN {
authoritative disable
subnet 10.10.0.0/16 {
default-router 10.10.10.10
dns-server 10.10.10.4
dns-server 10.10.10.5
domain-name company-domain
lease 86400
start 10.10.9.100 {
stop 10.10.9.200
}
unifi-controller 10.10.10.83
}
}
use-dnsmasq disable
}
dns {
}
gui {
http-port 80
https-port 443
older-ciphers disable
}
nat {
rule 1 {
description "ESP IPsec vers vpnipsecsrv"
destination {
address pubip1
}
inbound-interface pppoe0
inside-address {
address 10.10.10.19
}
log disable
protocol esp
type destination
}
rule 2 {
description "AH IPsec vers vpnipsecsrv"
destination {
address pubip1
}
inbound-interface pppoe0
inside-address {
address 10.10.10.19
}
log disable
protocol ah
type destination
}
rule 3 {
description "IPsec vers vpnipsecsrv"
destination {
address pubip1
port 500
}
inbound-interface pppoe0
inside-address {
address 10.10.10.19
port 500
}
log disable
protocol udp
type destination
}
rule 4 {
description "NAT-T IPsec vers vpnipsecsrv"
destination {
address pubip1
port 4500
}
inbound-interface pppoe0
inside-address {
address 10.10.10.19
port 4500
}
log disable
protocol udp
type destination
}
[...]
rule 5010 {
description "Masquerade Orange"
log disable
outbound-interface pppoe0
protocol all
type masquerade
}
rule 5011 {
description "Masquerade Free"
log disable
outbound-interface eth2
protocol all
type masquerade
}
rule 5012 {
description "Masquerade interne pour hairpin"
destination {
address 10.10.0.0/16
}
log disable
outbound-interface eth0
protocol tcp_udp
source {
address 10.10.0.0/16
}
type masquerade
}
}
ssh {
allow-root
disable-password-authentication
port 22
protocol-version v2
}
}
system {
config-management {
commit-revisions 50
}
conntrack {
expect-table-size 4096
hash-size 4096
table-size 32768
tcp {
half-open-connections 512
loose disable
max-retrans 3
}
}
domain-name company-domain
host-name router-hostname
login {
user root {
authentication {
encrypted-password **********************
plaintext-password ""
public-keys operator2@company-domain {
key *********************
type ssh-rsa
}
public-keys operator1@company-domain {
key ********************
type ssh-ed25519
}
public-keys operator3@company-domain {
key *************************
type ssh-rsa
}
}
full-name ""
level admin
}
user ubnt {
authentication {
encrypted-password ***************
plaintext-password ""
public-keys operator2@company-domain {
key *********************
type ssh-rsa
}
public-keys operator1@company-domain {
key ******************
type ssh-ed25519
}
public-keys operator3@company-domain {
key ************
type ssh-rsa
}
}
full-name ""
level admin
}
}
name-server 10.10.10.4
name-server 10.10.10.5
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 disable
ipsec enable
ipv4 {
forwarding enable
pppoe enable
vlan enable
}
ipv6 {
forwarding enable
}
}
package {
repository wheezy {
components "main contrib non-free"
distribution wheezy
password ""
url http://ftp.fr.debian.org/debian/
username ""
}
repository wheezy-security {
components main
distribution wheezy/updates
password ""
url http://security.debian.org
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level warning
}
}
}
time-zone Europe/Paris
traffic-analysis {
dpi disable
export disable
}
}
/* 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:system@4:ubnt-pptp@1:ubnt-util@1:vrrp@1:webgui@1:webproxy@1:zone-policy@1" === */
/* Release version: v1.9.0.4901118.160804.1139 */
Ça marche globalement, mais j'ai des problèmes de paquets dropés de façon irrégulière quand le routeur est soumis à forte charge. Donc pas tiptop non plus. J'ai essayé de désactiver l'accélération matérielle pour diagnostiquer en software mais sans surprise le routeur ne semble pas capable d'encaisser la charge du lien sur son CPU, monte à 100% de load et ça empire les problèmes plus qu'autre chose. Les utilisations impactées couvrent un peu tout, HTTP, SSH, sous Linux, sous Windows, je doute donc que ça vienne des clients.
-
Je suis aussi en pleins test et j'avoue que je ne suis pas encore satisfait, je posterais probablement ma configuration