Auteur Sujet: La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+  (Lu 944618 fois)

0 Membres et 2 Invités sur ce sujet

filou59

  • Abonné Orange Fibre
  • *
  • Messages: 68
  • 59
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1020 le: 24 janvier 2021 à 10:33:51 »
Pour te faire gagner un peu de temps à réception de ta carte BCM, je n'ai pas réussi à mettre en 2.5g les drivers par la méthode (version proxmox) de la première page de ce sujet, j'ai pris la méthode toujours de JamesMTL de modifier direct sur le Promox de prod en utilisant dkms. ( https://github.com/JAMESMTL/snippets/blob/master/bnx2x/proxmox/README-dkms.md )

PS: J'ai juste transpiré un peu, mon serveur hébergeant également toute la domotique (et donc le chauffage) de la maison  :P
Impec, merci pour l'info

J'avais déjà lu qu'il était préférable sous proxmox de construire les driver par cette méthode, cela permet de les garder même après une grosse mise a jour.
Faudra que je le fasse pour les drivers d'une petite machine Ordroid H2+

Sinon il y a aussi la solution du passthrough pour la carte réseau, dans ce cas c'est au niveau de la VM qu'il faut faire le taf. Mais il faut avoir le matos compatible et activer les bonnes options au préalable.


proap

  • Abonné MilkyWan
  • *
  • Messages: 568
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1021 le: 24 janvier 2021 à 11:08:58 »
Je pense que je l'ai déjà lu ici quelque part mais, pour info:

Je confirme que le mode SGMII 5 (2.5Gbe)sur un MA5671A, fonctionne parfaitement sur un ES-16-XG

Je n'ai pas la connexion WAN à 2Gbe pour tester le vrai fonctionnement mais cette vitesse est bien négociée entre l'ONU et le SWITCH
Je peux aussi tester sur un de mes G-010S-A, je suis certain que ça fonctionnera

JcDenis

  • Abonné Orange Fibre
  • *
  • Messages: 89
  • Amberieu-en-Bugey 01
    • L'homme invisible
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1022 le: 24 janvier 2021 à 11:31:54 »
Je pense que je l'ai déjà lu ici quelque part mais, pour info:

Je confirme que le mode SGMII 5 (2.5Gbe)sur un MA5671A, fonctionne parfaitement sur un ES-16-XG

Je n'ai pas la connexion WAN à 2Gbe pour tester le vrai fonctionnement mais cette vitesse est bien négociée entre l'ONU et le SWITCH
Je peux aussi tester sur un de mes G-010S-A, je suis certain que ça fonctionnera

En cours de test chez moi, le switch Ubiquiti USW-24-POE-PRO support le 2.5Gb sur ces ports sfp, après comme souvent chez eux ça risque de sauter d'une mise à jour à l'autre...

stevebrush

  • Abonné Orange Fibre
  • *
  • Messages: 176
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1023 le: 24 janvier 2021 à 13:06:43 »


Configuration VyOS appliance
sur carte dual sfp+
avec onu G-010S-A à 2,5Gbps


Préambule :
Suite au post de la configuration à 2,5Gbps de pfsense avec un onu sur l'infra orange (ici), voici le même exposé pour une appliance de VyOS https://vyos.io
Le passage à 2,5Gbps étant le brûlant objectif ainsi que la principale (pré)occupation de ce thread, je passerai les détails de l'installation et de la configuration de l'onu car tout est répertorié et détaillé en page 1.

Historique : EdgeOS et VyOS sont des fork de Vyattta qui a démarré en 2006. Autant dire qu'en matière de routing, il y a un certain background. De toutes les appliances de routeur que j'ai pu tester jusqu'à présent, c'est celle qui m'a le plus impressionné : vitesse, réaction et consommation cpu.
Quelques références :

Documentation : VyOS fournit une bonne documentation (https://docs.vyos.io/en/crux) et des containers docker pour construire ses image. Nous allons en profiter.


Pré-requis :
  • Votre ONU doit fonctionner : vous avez été capable d'obtenir une ip publique en utilisant uniquement cet objet mystérieux et parralélipédique comme accès principal à votre fournisseur.
  • Vous avez testé et oui, il fonctionne au moins à 1Gbps : à travers un convertisseur (voir ici), un switch, etc.
  • Vous avez configuré votre onu pour qu'il puisse passer en HGSMII à 2,5Gbps : ONTUSER # fw_setenv sgmii_mode 5
  • votre abonnement dépasse le Gbps : En tout cas, il est vendu comme tel, sinon, franchement, ça ne sert à rien d'aller plus loin.
  • Vous avez une carte double SFP+ BMC57810S configurée pour que le port dans lequel sera inséré l'onu soit à 2,5Gbps : les détails sont ici
  • Vous avez docker d'installé

Note : La compilation du noyau avec docker sous macOS ne fonctionne pas, la protection du système empêche son aboutissement. J'ai utilisé directement Unraid, docker y est installé mais avec une vm sous debian 10 et 32Go de disque, c'est complètement faisable.

Ceci étant posé, nous allons nous intéresser aux étapes suivantes :
  • Récupération des sources de VyOS.
  • Utilisation de l'environnement de construction de l'image : container docker fournit par VyOS
  • Récupération des sources du noyau et du patch de up-n-atom porté par JAMESMTL et adapté par mes soins ici.
  • Compilation du noyau
  • Génération de l'iso d'installation
  • Installation de VyOS
  • Authentification pour dhcp orange




Récupération des sources de VyOS.
J'ai utilisé la branche stable de "crux" (v1.2). En effet, la version 1.3 (equuleus) change radicalement l'interface de management et bien que la compilation du noyau se passe de la même manière, je n'ai pas encore trouvé comment faire fonctionner le client dhcp pour orange. Je mettrai ce post à jour si j'y arrive. En attendant, crux fonctionne très bien.

Dans un shell où docker est accessible, on récupère les sources de crux :
$ git clone -b crux https://github.com/vyos/vyos-build.git


Utilisation du container docker fournit par vyos
Les sources de crux étant chargées, on entre dans le répertoire et on lance le container fournit par Vyos :
$ cd vyos-build
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:crux bash
A partir de ce moment, vous êtes dans le container en root, dans le répertoire des sources de VyOS.
Ce container et les sources fournissent un environnement permettant de compiler son propre noyau ainsi que ses propres images d'installation.


Récupération des sources du noyau et du patch du module de la carte
- Récupération du patch du module de la carte :
Lors du lancement du script de compilation du kernel, tout ce qui se trouve dans `/vyos/packages/linux-kernel/patches/kernel/` sera utilisé. Je copie mon patch à cet endroit :
# curl https://raw.githubusercontent.com/steevebrush/snippets/master/bnx2x/patches/git/bnx2x_warpcore_8727_2_5g_sgmii_txfault.patch -o /vyos/packages/linux-kernel/patches/kernel/bnx2x_warpcore_8727_2_5g_sgmii_txfault.patch


Compilation du noyau
- Récupération des sources du noyau :
La version du noyau utilisé par VyOS est visible dans /vyos/data/defaults.json. On va récupérer les sources de cette version pour que mon module soit compatible et on lance la compilation du noyau
# KERNEL_VERSION=$(cat /vyos/data/defaults.json | python2 -c "import sys, json; print json.load(sys.stdin)['kernel_version']")
# echo $KERNEL_VERSION
# cd /vyos/packages/linux-kernel
# git clone --depth 1 --branch v$KERNEL_VERSION git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux
# ./build-kernel.sh

Vous pouvez boire un café, faire la vaisselle, le ménage ou encore une petit sieste, la compilation prends un certain temps...

Note : Ça doit faire au moins 20 ans que je n'avais pas compilé un noyau à la main :-)

Le noyau est compilé avec le module patché...
Lorsque nous allons lancer la construction de l'iso d'installation de Vyos, tous les paquets qui se trouvent dans `/vyos/packages/` seront installés dans l'image.
Ça tombe bien, nous, on veut mettre notre noyau forgé à la main :

# cp *.deb /vyos/packages/

Génération de l'iso d'installation
Il nous reste plus qu'à fabriquer notre image customisée :
# cd /vyos
# ./configure --architecture amd64 --build-by "myself@myhouse.fr"
# make iso

Un quatrième café...

Note : le makefile permet de générer directement des images bootables pour qemu et vmware : make qemu et make vmware. En fait, il fait automatiquement l'étape suivante d'installation. Personnellement, je préfère installer à la main depuis l'iso, ça me permet de spécifier la taille du disque que VyOS pourra utiliser (minimum 2GB).


Installation et configuration de Vyos
Vous pouvez quitter votre container docker, ce container s'auto-détruira dans 5 secondes automatiquement
Vous vous retrouverez dans le repos vyos-build et votre image générée se trouve dans le répertoire build : live-image-amd64.hybrid.iso. Conservez-la précieucement, c'est vous qui l'avez faite !
Pour l'installation, je vous renvois à la documentation officielle : ici. Bien évidemment, vous allez utiliser votre iso générée.

--------> Edit : Mes iso de crux et equuleus construites (donc contenant le module noyau patché) sont disponibles ici : https://github.com/steevebrush/omci/tree/main/vyos. J'ai utilisé les release "current" à cette date, donc elles peuvent-être obsolètes mais néanoins fonctionnelles.

Note : Vous devez avoir à ce stade un installation compète de VyOS avec votre onu branché dans le port qui est à 2,5Gbps.

Dans VyOS qui a un shell customisé (vbash), vérifiez que le module de la carte est bien chargé à 2,5Gbps :

vyos@vyos$ sudo dmesg | grep bnx
[   22.298128] bnx2x 0000:06:00.0 eth1: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[   25.390130] bnx2x 0000:07:00.0 eth2: NIC Link is Up, 2500 Mbps full duplex, Flow control: ON - receive & transmit

Chez moi donc, mon onu est dans eth2. Pour pouvoir y avoir accès (ssh, telnet) ou au moins le pinger, il faut attribuer une IP à cette interface.
   
vyos@vyos$ configure
vyos@vyos# set interfaces ethernet eth2 address 192.168.1.9/29
vyos@vyos# commit
vyos@vyos# ping -c1 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.293 ms

--- 192.168.1.10 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.293/0.293/0.293/0.000 ms
J'utilise 192.168.1.9/29 ce qui me permet de garder la livebox en 192.168.1.1 sur une interface en 192.168.1.2/29.

Pour la configuration du routeur en lui-même, je vous invite à aller voir le quick start


Authentification pour dhcp orange
Afin de s'authentification sur le dhcp d'orange, il faut envoyer les options suivantes avec une priorité 6 :
option 60 : vendor-class-identifier = sagem
option 77 : user-class = +FSVDSL_livebox.Internet.softathome.Livebox4
option 90 : rfc3118-auth = 00:00:00:00:00:00:00:00:00:00:00:1a:09:00:XX:XX.... (Chaîne généré par https://wiki.virtit.fr/doku.php/kb:linux:pfsense:remplacer_sa_box_orange_par_un_pfsense. Elle peut-être longue)

- Patch du fichier de génération du client dhcp
Les options 77 et 90 n'étant pas nativement supportées par crux, il faut les ajouter manuellement.

Editez le fichier /opt/vyatta/sbin/vyatta-interfaces.pl (les éditeurs vi, vim, pico, nano sont dans VyOS) et recherchez la chaîne suivante :
$output  = "#\n# autogenerated by vyatta-interfaces.pl on $date\n#\n";
Ajoutez dessous
$output .= "\noption user-class code 77 = string;\n";
$output .= "option rfc3118-auth code 90 = string;\n\n";

Ensuite, il faut entrer les valeurs pour ces options :
recherchez la chaîne
$output .= "\trequest subnet-mask, broadcast-address, routers, domain-name-servers"; <- doit-être commentée
Commentez-la et Ajoutez au-dessus
# orange tweaks
my $vid = "sagem";
my $uc = "+FSVDSL_livebox.Internet.softathome.Livebox4";
my $auth = "00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:XXXXXXXX..."; <- Votre chaîne générée

$output .= "\tsend vendor-class-identifier = \"$vid\";\n";
$output .= "\tsend user-class \"$uc\";\n";
$output .= "\tsend rfc3118-auth $auth;\n\n";
$output .= "\trequest subnet-mask, broadcast-address, routers, domain-name-servers, dhcp-lease-time, dhcp-renewal-time, dhcp-rebinding-time, rfc3118-auth";

- Configuration de l'interface pour le dhcp avec la priorité 6 sur le vlan 832 :

Attention, sans client dhcp patché (merci @zoc) pour utiliser le egress-qos, pas de priorité 6, donc pas d'IP publique si vous êtes dans une zone concernée.
Je prépare une mise à jour pour une compilation à la main du client incluant le patch si j'y arrive.


C'est la dernière étape (ouf!) : Attribution d'une priorité 6 au vlan 832 de notre interface et d'une adresse dynamique :
vyos@vyos$ configure
vyos@vyos# set interfaces ethernet eth2 vif 832
vyos@vyos# set interfaces ethernet eth2 vif 832 egress-qos "0:0 1:0 2:0 3:0 4:0 5:0 6:6 7:0"
vyos@vyos# set interfaces ethernet eth2 vif 832 address dhcp
vyos@vyos# commit

Vérification :
vyos@vyos# run show dhcp client leases
interface  : eth2.832
ip address : XXX.XX.XXX.XXX       [Active]
subnet mask: 255.255.254.0
domain name: orange.fr  [overridden by domain-name set using CLI]
router     : 2.10.208.1
name server: 81.253.149.1 80.10.246.130
dhcp server: 80.10.247.176
lease time : 259200
last update: Sat Jan 23 08:49:09 UTC 2021
expiry     : Tue Jan 26 09:49:08 CET 2021
reason     : BOUND




Et un petit speedtest pour la route :




--------> Edit : les iso construites (donc contenant le module noyau patché) sont disponibles ici : https://github.com/steevebrush/omci/tree/main/vyos
« Modifié: 10 février 2021 à 11:05:12 par stevebrush »

Gnubyte

  • Abonné Orange Fibre
  • *
  • Messages: 1 062
  • Toulon (83)
    • HSGMII intégriste
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1024 le: 24 janvier 2021 à 14:01:00 »


Configuration VyOS appliance
sur carte dual sfp+
avec onu G-010S-A à 2,5Gbps


Énorme.
Overmégatop.
Je copie le lien en page 1.

filou59

  • Abonné Orange Fibre
  • *
  • Messages: 68
  • 59
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1025 le: 24 janvier 2021 à 14:21:27 »
Well done  ;)


@stevebrush : Prochaine etape Mikrotik CHR ?

Je vais pas essayer VyOs de mon coté mais je pense que je vais tenter CHR.




Gnubyte

  • Abonné Orange Fibre
  • *
  • Messages: 1 062
  • Toulon (83)
    • HSGMII intégriste
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1026 le: 24 janvier 2021 à 14:23:08 »
Un certain nombre d'entre vous m'ont demandé la configuration IPv4 pour Mikrotik CCR2004-1G-12S+2XS.



Je rappelle que l'ensemble est plus qu'inspiré du volumineux post de Seb59 en Janvier 2017:

Rappel de l'organisation des ports. N'y cherchez pas de logique, il est d'inspiration Seb59. Les ports utilisés ne sont pas nécessairement collés les uns aux autres, de façon à diluer la dissipation thermique et repousser le seuil d'intervention du refroidissement actif.

D'origine, le CCR2004 démarre en 192.168.88.1/24 sur l'interface eth1 1Gbps.
Dans sa configuration d'origine, le plus simple consiste à s'y connecter avec winbox, et écraser certains réglages dans une même étape:
Cliquez sur Quick Set en haut à gauche, puis, modifiez ainsi
  • L'adresse IP de la Gateway :192.168.1.1/
  • Local Network / IP Address
  • Router Indentity: Mikrotik CCR2004 (utile pour différentier le routeur des switchs 10Gbps du réseau
  • Password: A changer immanquablement, car à peine connecté, des petits farceurs aux scripts aiguisés tenteront de se connecter.

Alors, il sera de bon ton de déconnecter winbox, puis de le reconnecter.

Le plus simple est de se connecter depuis une session ssh, moins à même de ne pas apprécier les quelques caractères accentués que j'ai glissé ici.

Citer
#######################################################################################################################
#
# Rappel des fonctions des ports sur mon routeur -
# N'y cherchez pas de logique, ça m'a pris comme ça.
#
#######################################################################################################################
#
# Configuration IPv4 pour Mikrotik CCR2004-1G-12S+2XS
# Accès Orange Up 2Gbps
#
#######################################################################################################################
# Config IPV4 - Sans LB - Sans TV
#################################
#
# Eth7  : Décodeur TV <= Utilisation au prochain épisode
# Eth8  : LB          <= Utilisation au prochain épisode
#
# Eth10 : ONT         <=
# Eth12 : LAN         <= Seuls ces 2 là seront utilisés pour l'instant.
#
#################################

#####################################################################################################################################
# Configuration des interfaces du routeur
#####################################################################################################################################


/interface ethernet
set [ find default-name=sfp-sfpplus1 ] disabled=yes
set [ find default-name=sfp-sfpplus2 ] disabled=yes
set [ find default-name=sfp-sfpplus3 ] disabled=yes
set [ find default-name=sfp-sfpplus4 ] disabled=yes
set [ find default-name=sfp-sfpplus5 ] disabled=yes
set [ find default-name=sfp-sfpplus6 ] disabled=yes
set [ find default-name=sfp-sfpplus7 ] comment="Routeur TV local" name=ether7-TV
set [ find default-name=sfp-sfpplus8 ] comment=Livebox name=ether8-LB
set [ find default-name=sfp-sfpplus9 ] disabled=yes
set [ find default-name=sfp-sfpplus10 ] name=ether10-WAN comment="WAN-ONU-2500GBaseX" advertise=1000M-full,2500M-full,10000M-full 
set [ find default-name=sfp-sfpplus11 ] disabled=yes
set [ find default-name=sfp-sfpplus12 ] name=ether12-LAN comment=LAN  advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full,2500M-full,10000M-full
set [ find default-name=sfp28-1 ] disabled=yes
set [ find default-name=sfp28-2 ] disabled=yes


De façon à lier tous les Vlan nécessaires, nous utilisons un bridge

Citer
##################################################
# Créons le bridge principal qui va servir sans arrêt
##################################################

/interface bridge
add name=br-wan

On écrase les IP des interfaces d'accès.

Citer
############################################################################################
# Surcharge des IP de configuration - Arbitraire
############################################################################################
/ip address
add address=192.168.88.1/24 comment=defconf interface=ether1 network=192.168.88.0       
add address=192.168.1.1/24 interface=ether12-LAN network=192.168.1.0

Créons une interface esclave sur ce vlan 832

Citer
############################################################################################
# Ajout du VLAN 832 sur ether10-WAN pour accès Internet (valable pour IPV4 et IPV6)
# VLAN 832 pour Internet, le 838 pour la VOD/Replay et le 840 pour le multicast TV
############################################################################################
/interface vlan
add comment="Internet ONT" interface=ether10-WAN loop-protect-disable-time=0s loop-protect-send-interval=1s name=vlan832-internet vlan-id=832

Définissons les options nécéssaires à la configuration du client DHCP pour se connecter à l'accès Orange.
Convertissez votre identifiant fti complet pour remplacer les 22 caractères XXXXXXXXXXXXXXXXXXXXX en les convertissant sur https://www.rapidtables.com/convert/number/ascii-to-hex.html

Mieux, utilisez donc la page de @kgersen https://jsfiddle.net/kgersen/3mnsc6wy/


Citer
############################################################################################
# Définition des options du client DHCPv4 pour Orange
############################################################################################
/ip dhcp-client option
add code=60 name=vendor-class-identifier value=0x736167656d
add code=77 name=userclass value="0x2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833"
add code=90 name=authsend value=0x00000000000000000000001a0900000558010341010DXXXXXXXXXXXXXXXXXXXXXX


On lancera le client DHCP un peu plus tard, nous avons deux ou trois choses à définir avant, comme le serveur DHCP côté LAN, interface ether12-LAN.

Citer
############################################################################################
# Définition de la plage d'IP LAN DHCP
############################################################################################
/ip pool
add name=pool_lan ranges=192.168.1.100-192.168.1.200
/ip dhcp-server
add address-pool=pool_lan disabled=no interface=ether12-LAN lease-time=1w name=LAN

RouterOS permet de définir de nombreux types de queues, destinées à limiter et prioriser le traffic.
https://wiki.mikrotik.com/wiki/Manual:Queue pour plus d'informations.
Nous resterons dans le simple, First-In/First-Out, premier arrivé, premier distribué.

Citer
############################################################################################
# Définition des types de queue utilisée par RouterOS pour gérer les interfaces qui nous occupent.
############################################################################################
/queue interface
#set ether7-TV queue=ethernet-default <= On provisionne
#set ether8-LB queue=ethernet-default <= Pour la suite
set ether10-WAN queue=ethernet-default
set ether12-LAN queue=ethernet-default

Si l'on lance le client DHCP requérrant l'IP publique à Orange, sans marquer CE trafic DHCP sortant de son nécessaire (selon la localisation géographique) niveau de priorité COS=6, cela ne fonctionnera pas.
Par chez moi c'est nécessaire.
Au passage, on ajoute l'interface esclave vlan832-internet au bridge br-wan, sur lequel s'nvoie la requête DHCP (à COS=6 forgée)

Citer
############################################################################################
# Definition du filtre qui envoit les requêtes DHCP avec la COS=6 si nécessaires à Orange
# Prélablement à la crétion du client DHCP bien sûr
############################################################################################
/interface bridge filter
add action=set-priority chain=output dst-port=67 ip-protocol=udp log=yes log-prefix="Set CoS6 on DHCP request" mac-protocol=ip new-priority=6 out-interface=vlan832-internet passthrough=yes
/interface bridge port   
add bridge=br-wan interface=vlan832-internet
# définition du pont où s'enverra la requête DHCP, à COS forgée
############################################################################################

On peut enfin lancer l'authentification DHCP

Citer
############################################################################################
# Création du client DHCP qui requiert les adresses IPv4 et IPv6 à Orange
############################################################################################
/ip dhcp-client
add dhcp-options=hostname,clientid,authsend,userclass,vendor-class-identifier disabled=no interface=br-wan
############################################################################################

À partir de ce moment, l'IP WAN apparaît sur le bridge br-wan dans l'interface winbox /IP/ADDRESS

Définissons le service DNS pour le LAN
Citer
############################################################################################
# On définit le service DNS pour le LAN
############################################################################################
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=8.8.8.8,8.8.4.4 gateway=192.168.1.1 netmask=24
###########################################################################################

Nous avons une adresse IP externe, mais le NAT IPv4 n'est pas encore lancé.
Créons donc quelques règles de Firewall.
D'abord on ajoute à la liste "support" toutes les tranches d'IP que nous allons utiliser
C'est très imporant car si votre tranche IP LAN n'y est pas, le FW vous coupera l'accès au routeur lui même.

Citer
########################################################################################################################################################################################
# Avant de lancer le NAT, on crée deux doigts de règles de FW
########################################################################################################################################################################################

############################################################################################
# Définitions des listes particulières liées aux RFC pour ne pas prêter la joue inutilement.
############################################################################################
# D'abord on ajoute à la liste "support" toutes les tranches d'IP que nous allons utiliser
# C'est très imporant car si votre tranche IP LAN n'y est pas, le FW vous coupera l'accès au routeur lui même.
############################################################################################

/ip firewall address-list
add address=192.168.1.0/24 list=support
add address=192.168.42.0/24 list=support
add address=192.168.255.0/24 list=support
##############################
# Puis quelques classes qui ne devraient pas nécessairement pousser des datagrames sur l'interface WAN
##############################
add address=0.0.0.0/8 comment="Self-Identification [RFC 3330]" list=bogons
add address=10.0.0.0/8 comment="Private[RFC 1918] - CLASS A" disabled=yes list=bogons
add address=127.0.0.0/16 comment="Loopback [RFC 3330]" list=bogons
add address=169.254.0.0/16 comment="Link Local [RFC 3330]" list=bogons
add address=172.16.0.0/12 comment="Private[RFC 1918] - CLASS B" disabled=yes list=bogons
add address=192.168.0.0/16 comment="Private[RFC 1918] - CLASS C" disabled=yes list=bogons
add address=192.0.2.0/24 comment="Reserved - IANA - TestNet1" list=bogons
add address=192.88.99.0/24 comment="6to4 Relay Anycast [RFC 3068]" list=bogons
add address=198.18.0.0/15 comment="NIDB Testing" list=bogons
add address=198.51.100.0/24 comment="Reserved - IANA - TestNet2" list=bogons
add address=203.0.113.0/24 comment="Reserved - IANA - TestNet3" list=bogons
#add address=224.0.0.0/4 comment="MC, Class D, IANA" disabled=yes list=bogons

Enfin, les règles firewall elles mêmes.

Citer
############################################################################################
# Les règles de Firewall - adapter aux besoins
############################################################################################

/ip firewall filter
add action=add-src-to-address-list address-list=Syn_Flooder address-list-timeout=30m chain=input comment="Add Syn Flood IP to the list" connection-limit=30,32 protocol=tcp tcp-flags=syn
add action=drop chain=input comment="Drop to syn flood list" src-address-list=Syn_Flooder
add action=add-src-to-address-list address-list=Port_Scanner address-list-timeout=1w chain=input comment="Port Scanner Detect" protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment="Drop to port scan list" src-address-list=Port_Scanner
add action=jump chain=input comment="Jump for icmp input flow" jump-target=ICMP protocol=icmp
add action=drop chain=input comment="Block all access to the winbox - except to support list # DO NOT ENABLE THIS RULE BEFORE ADD YOUR SUBNET IN THE SUPPORT ADDRESS LIST" dst-port=8291 protocol=tcp src-address-list=!support
add action=jump chain=forward comment="Jump for icmp forward flow" jump-target=ICMP protocol=icmp
add action=drop chain=forward comment="Drop to bogon list" dst-address-list=bogons
add action=add-src-to-address-list address-list=spammers address-list-timeout=3h chain=forward comment="Add Spammers to the list for 3 hours" connection-limit=30,32 dst-port=25,587 limit=30/1m,0:packet protocol=tcp
add action=drop chain=forward comment="Avoid spammers action" dst-port=25,587 protocol=tcp src-address-list=spammers
add action=accept chain=input comment="Accept DNS - UDP" port=53 protocol=udp
add action=accept chain=input comment="Accept DNS - TCP" port=53 protocol=tcp
add action=accept chain=input comment="Accept to established connections" connection-state=established
add action=accept chain=input comment="Accept to related connections" connection-state=related
add action=accept chain=input comment="Full access to SUPPORT address list" src-address-list=support
add action=drop chain=input comment="Drop anything else! # DO NOT ENABLE THIS RULE BEFORE YOU MAKE SURE ABOUT ALL ACCEPT RULES YOU NEED"
add action=accept chain=ICMP comment="Echo request - Avoiding Ping Flood" icmp-options=8:0 limit=1,5:packet protocol=icmp
add action=accept chain=ICMP comment="Echo reply" icmp-options=0:0 protocol=icmp
add action=accept chain=ICMP comment="Time Exceeded" icmp-options=11:0 protocol=icmp
add action=accept chain=ICMP comment="Destination unreachable" icmp-options=3:0-1 protocol=icmp
add action=accept chain=ICMP comment=PMTUD icmp-options=3:4 protocol=icmp
add action=drop chain=ICMP comment="Drop to the other ICMPs" protocol=icmp
add action=jump chain=output comment="Jump for icmp output" jump-target=ICMP protocol=icmp

Notez le traitement spécial réservé aux tentatives d'ouverture de shell SSH depuis l'interface WAN.

Citer
add action=drop chain=input comment="drop ssh brute forcers" dst-port=22 protocol=tcp src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp
add action=drop chain=forward comment="drop ssh brute downstream" dst-port=22 protocol=tcp src-address-list=ssh_blacklist

Une fois les deux doigts de firewall activés, on peut lancer le NAT

Citer
############################################################################################
# Et enfin, le NAT
############################################################################################
/ip firewall nat
add action=masquerade chain=srcnat out-interface=br-wan to-addresses=0.0.0.0

Voilà, le routeur est connecté, et il route.
On peut alors ajouter un port forwarding vers son super serveur wouaibe pour montrer à mamie les photos des petits.
Ici, serveur web http port 80 sur l'IP LAN 192.168.1.5
Oui, c'est arbitraire.
Pensez bien à préciser l'interface d'entrée, sinon toutes les connexions sortantes, ici "in-interface=br-wan" vers un port identique (ici, une page web non chiffrée http://), serait immanquablement renvoyé vers le réseau interne.

Citer
add action=dst-nat chain=dstnat dst-port=80 in-interface=br-wan protocol=tcp to-addresses=192.168.1.5 to-ports=80

On finit en désactivant le telnet et le FTP, au cas où.
Le plus sûr, c'est ssh, et que depuis l'intérieur du réseau.

Citer
############################################################################################
# Réglages des types d'accès en supervision
############################################################################################
/ip service
set telnet disabled=yes
set ftp disabled=yes

Enjoy.
Merci à @Seb59
« Modifié: 19 juin 2023 à 05:47:52 par Gnubyte »

stevebrush

  • Abonné Orange Fibre
  • *
  • Messages: 176
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1027 le: 24 janvier 2021 à 14:55:50 »
Well done  ;)
@stevebrush : Prochaine etape Mikrotik CHR ?
Je vais pas essayer VyOs de mon coté mais je pense que je vais tenter CHR.
CHR n'a pas le module patché de la carte et à moins que les sources soient disponibles, ce n'est pas pour demain. Par contre, je vais tenter avec des bridges depuis l'hôte.
Concernant la config du dhcp, je l'avais testé avec le convertisseur de média de deux façon pour passer la prio à 6 :
- Avec un bridge pour le vlan 832 et un filter rule dans CHR.
- En offload avec un switch rule (sur mon switch donc).
Les deux fonctionnent parfaitement mais l'avantage du switch rule est de ne pas utiliser de cpu.

filou59

  • Abonné Orange Fibre
  • *
  • Messages: 68
  • 59
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1028 le: 24 janvier 2021 à 14:59:38 »
Bon pour le moment je n'ai pas encore ma carte supportant le HSGMII 2.5Gbps,
Mais via proxmox on est d'accord qu'en patchant coté Proxmox qui est sous débian cela devrait aller ?

stevebrush

  • Abonné Orange Fibre
  • *
  • Messages: 176
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1029 le: 24 janvier 2021 à 15:23:42 »
Bon pour le moment je n'ai pas encore ma carte supportant le HSGMII 2.5Gbps,
Mais via proxmox on est d'accord qu'en patchant coté Proxmox qui est sous débian cela devrait aller ?
Oui, c'est l'idée, de mon côté l'hôte, c'est Unraid (slackware?). Le seul soucis que j'ai rencontré avec CHR, c'est que sous qemu, selon le type de vm (i440fx ou Q35) et la version, les bridges (virtio-net) ne montent pas en 10Gbps mais en 1Gbps. De plus, à travers ces bridges, il y a quand même pas mal d'overhead et je n'ai pas encore trouvé comment les abaisser : J'arrive à 1,7Mbps au max dans l'hôte avec tous les mtu à 9000.


quentin96

  • Abonné Orange Fibre
  • *
  • Messages: 83
  • Caen (14)
La fibre Orange à 2Gbps, sur un routeur MikroTik 10Gbps CCR2004, via un ONT SFP+
« Réponse #1031 le: 24 janvier 2021 à 17:15:24 »
Merci gnubyte pour le partage !