VyOS

VyOS est un système d'exploitation réseau libre basé sur la distribution Debian. Il permet de concenvoir ses propres routeurs/pare-feux avec une simple machine virtuelle ou un PC physique.

Installation

Configuration de base

Configuration du clavier Azerty

Tout d'abord on peut reconfigurer le clavier en azerty pour que la machine soit plus simple à configurer avec la commande suivante :

sudo dpkg-reconfigure keyboard-configuration

Suivre les étapes et redémarrer la machine.

Le mode configuration

Le mode configuration de VyOS est l'environnement utilisateur qui permet de modifier la configuration du routeur. Hormis les commandes “show” qui servent seulement à afficher des informations sur la configuration de VyOS, toutes les commandes de paramétrage spécifiques à VyOS se font dans ce mode.

Pour entrer en mode de configuration :

configure

Pour appliquer les réglages effectués (toujours en mode de configuration) :

commit 

Puis pour les sauvegarder (toujours en mode de configuration) :

save 

Pour annuler une commande, reprendre la commande et remplacer le verbe “set” au début par “delete”.

delete interfaces dummy dum1

Enfin pour sortir du mode configuration :

exit

Paramètres généraux

Afficher TOUTE la configuration de VyOS (fonctionne en mode normal) :

 show configuration | less 

Afficher les interfaces de VyOS (fonctionne en mode normal) :

 show interfaces 

Régler le fuseau horaire sur Paris :

 set system time-zone Europe/Paris 

Renommer la machine :

set system host-name <hostname>

Attribuer un nom de domaine à la machine :

set system domain-name <domaine>

Activer SSH

Activer le protocole SSH pour l'administration à distance sur le port 22 :

 set service ssh port 22 

Définir les adresses IP sur lesquelles le serveur SSH sera à l'écoute (il peut y en avoir plusieurs, mais pour cela il faut refaire la commande à chaque nouvelle IP ajoutée) :

 set service ssh listen-address 192.168.1.254 

Configuration des interfaces réseau

Ajouter une description à une interface Ethernet :

 set interfaces ethernet eth0 description interface-WAN 

Attribuer une adresse IP dynamiquement à une interface Ethernet :

 set interfaces ethernet eth0 address dhcp 

Attribuer une adresse IP statiquement à une interface Ethernet :

 set interfaces ethernet eth0 address 192.168.1.254/24 

Supprimer une adresse IP statique :

 delete interfaces ethernet eth0 address 192.168.1.254/24 

Désactiver une interface réseau :

set interface ethernet eth0 disable

Réactiver une interface désactivée :

delete interfaces eth0 disable

Sous-interfaces avec encapsulation dans un VLAN

Pour utiliser le protocole 802.1Q sur une interface physique de la machine avec VyOS, il faut activer une sous-interface de l'interface trunk physique pour chaque VLAN.

Activer une sous-interface avec encapsulation des paquets dans le VLAN 100 :

 set interfaces ethernet eth3 vif 100 

Changer l'adresse de la sous-interface dans le VLAN 100 :

 set interfaces ethernet eth3 vif 100 address 192.168.100.254 

Attribuer une description à cette même sous-interface :

 set interfaces ethernet eth3 vif 100 description vlan100 

Interfaces virtuelles (loopback)

VyOS permet aussi de gérer les interfaces IP logicielles (loopback chez Cisco), afin d'avoir une adresse toujours joignable en fonction de l'état des interfaces physiques. Chez VyOS, ces interfaces sont nommées Dummy interfaces et commencent toujours par dum suivies d'un chiffre.

Elles ne peuvent pas récupérer d'adresse IP de façon dynamique, il faut absolument leur en attribuer une statiquement :

 set interfaces dummy dum0 address 2.2.2.2/22 

On pourra aussi leur ajouter une description, comme pour les autres :

 set interfaces dummy dum0 description loopback0 

Routage

Routage statique

Afficher la table de routage :

show ip route

Définir le routeur 203.0.113.1 comme passerelle par défaut (route par défaut) :

set protocols static route 0.0.0.0/0 next-hop 203.0.113.1 distance '1'

Ajouter une route vers le réseau 20.30.0.0/16 via la passerelle 18.59.81.6 :

set protocols static route 20.30.0.0/16 next-hop 18.59.81.6 distance '1'

:!: distance fait référence à la métrique de la route

Supprimer une route :

delete protocols static route 195.51.14.132/12

Routage dynamique

A rédiger

Translation d'adresses sources (NAT Source)

Créer une règle de NAT Source (basé sur la source des paquets) en indiquant l'interface sur laquelle les paquets à modifier arriveront :

set nat source rule 10 outbound-interface 'eth1' 

Définir le réseau source dont on va remplacer les adresses réseau (le LAN) :

set nat source rule 10 source address '192.168.1.0/24'

Activer la traduction de ces adresses sources :

set nat source rule 10 translation address 'masquerade' 

Indiquer les protocoles concernés par la translation d'IP (ici TCP & UDP) :

set nat source rule 20 protocol tcp_udp

:!: Rappel : Pour annuler une commande, reprendre la commande et remplacer “set” par “delete”.

Translation d'adresses et de ports destination (NAT/PAT Destination)

Créer une règle de NAT destination (basé sur la destination des paquets) en indiquant l'interface sur laquelle les paquets à modifier arriveront :

set nat destination rule 20 inbound-interface eth1

Indiquer les protocoles concernés par la translation d'IP (ici UDP) :

set nat destination rule 20 protocol udp

Indiquer les ports concernés par la translation (ici 3389) :

set nat destination rule 100 destination port '3389'

Indiquer l'IP de destination après translation :

set nat destination rule 100 translation address '192.168.100.2'

Services réseau

Serveur DHCP

Configuration de base

Déclarer une étendue DHCP pour un sous-réseau en spécifiant la passerelle par défaut :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 default-router 192.168.1.254 

Configurer les serveurs DHCP de l'étendue précédemment créée :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 dns-server 1.1.1.1 1.0.0.1 

Paramétrer la durée d'un bail DHCP (en secondes, par défaut 86400 si le paramètre n'est pas spécifié par l'utilisateur) :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 lease 3600 

Spécifier un domaine aux clients de l'étendue :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 domain-name nocterie.fr 

Plage dynamiquement adressable

Configurer la plage d'IP adressables dans le sous-réseau (à partir de l'adresse spécifiée en fin de ligne) :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 range 100 start 192.168.1.100 

Ajouter une exclusion d'adresse dans une plage DHCP :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 exclude 192.168.1.104 

Reservation d'adresse

Créer une reservation d'adresse IP pour l'adresse MAC FF:02:FC:FA:15:63 :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 static-mapping SRV1 mac-address FF:02:FC:FA:15:63 

Associer une adresse IP à l'appareil identifié juste au dessus pour son adresse MAC :

set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 static-mapping SRV1 ip-address 192.168.1.10 

Découverte LLDP

Activer la découverte LLDP :

 set service lldp 

Désactiver la découverte LLDP :

 unset service lldp 

Activer un protocole de découverte réseau propriètaire (CDP=Cisco, EDP=Extreme Networks, etc…) :

 service lldp legacy-protocols <cdp|edp|fdp|sonmp>