OS10 Basic Config

Exemple de configuration simple

Soit un domaine VLT interconnecté en L2, via une interco LACP à un autre domaine VLT.

Pas de routage activé sur les équipements. On considère que le SRV1 et SRV2 ont des vlans en communs.
On aura donc un trunk avec les n Vlans nécessaires déclarés sur le PO1 (attachement du serveur) mais aussi sur le PO100 qui sert à l’interco des deux domaines VLT.

On commence par interconnecter les deux ports OOB pour avoir un lien de HeartBeat entre les deux swicths du même domaine VLT

SW1SW2
interface mgmt1/1/1
 no shutdown
 no ip address dhcp
 ip address 10.10.10.1/30
 no ipv6 enable
!
interface mgmt1/1/1
 no shutdown
 no ip address dhcp
 ip address 10.10.10.2/30
 no ipv6 enable
!
Ceci n’est pas obligatoire, mais est une bonne prarique.

Déclaration du VLT entre SW1 et SW2

SW1SW2
vlt-domain 1
 backup destination 10.10.10.2
 discovery-interface ethernet1/1/13
 primary-priority 4096
 vlt-mac xx:xx:xx:xx:xx:xx
vlt-domain 1
 backup destination 10.10.10.1
 discovery-interface ethernet1/1/13
 primary-priority 8192
 vlt-mac xx:xx:xx:xx:xx:xx
remplacer la vlt-mac, pas une addresse mac forgé, cette ligne n’est pas obligatoire, mais elle fait partie des bonnes pratiques.
Si vous n’utilisez pas le mgmt port, ne déclarez pas de backup destination.

On rajoute les vlans nécessaires

SW1SW2
interface vlan10
 description “VLAN10”
 no shutdown
interface vlan10
 description “VLAN10”
 no shutdown
interface vlan12
 description “VLAN12”
 no shutdown
interface vlan12
 description “VLAN12”
 no shutdown

On configure les interfaces d’attachement au serveur SRV1 (mais ça pourrait être un switch). Dans le cas d’un serveur attention au type de teaming/bonding, dans le cas présent on est sur un teaming de type switch dépendant.

On en profite pour creer le Port-Channel 1, et on laisse passer les VLANs 10, 12 dans trunk.

SW1SW2
interface ethernet1/1/1
 description “Vers SRV1_Port1”
 no shutdown
 channel-group 1 mode active
 no switchport
 flowcontrol receive off
interface ethernet1/1/1
 description “Vers SRV1_Port2”
 no shutdown
 channel-group 1 mode active
 no switchport
 flowcontrol receive off
interface port-channel1
 description “PO1_SRV1_P1”
 no shutdown
 switchport mode trunk
 switchport trunk allowed vlan 10,12
 vlt-port-channel 1
interface port-channel1
 description “PO1_SRV1_P2”
 no shutdown
 switchport mode trunk
 switchport trunk allowed vlan 10,12
 vlt-port-channel 1

On configure ensuite les interfaces et le port channel à destination du second domaines VLT. On laisse passer dans le trunk du port channel 100 les Vlans 10, 12.

SW1SW2
interface ethernet1/1/10
 description “Vers VLT2_SW1_Port10”
 no shutdown
 channel-group 100 mode active
 no switchport
 flowcontrol receive off
interface ethernet1/1/10
 description “Vers VLT2_SW2_Port10”
 no shutdown
 channel-group 100 mode active
 no switchport
 flowcontrol receive off
interface port-channel100
 description “PO100_VLT2_P10”
 no shutdown
 switchport mode trunk
 switchport trunk allowed vlan 10,12
 vlt-port-channel 100
interface port-channel100
 description “PO100_VLT2_P10”
 no shutdown
 switchport mode trunk
 switchport trunk allowed vlan 10,12
 vlt-port-channel 100

On répéte l’action en adaptant sur le second domaines VLT.

Attention les domaines VLTs doivent avoir des ID unique, donc la déclaration du second domaine VLT se fera comme suit, sur les deux switchs du VLT domaine 2

vlt-domain 2
backup destination xx.xx.xx.xx
discovery-interface ethernet1/1/13
primary-priority 4096 [8192]
vlt-mac xx:xx:xx:xx:xx:xx

Management ACL on N-Series

Management ACLs filter packet use to manage the switch.

First we do create a specific access-list with the keyword management

console(config)# management access-list AdminList

You can restrict by source vlan, Ips, subnet for a specific services

The list of service is restricted to:
– Telnet
– SSH
– Http(s)
– TFTP
– snmp
– sntp
– any (the word ” any” include all of them.)

You can also, specify a priority to order access

For exemple you can do this:

console(config-macl)#permit ip-source 192.168.99.1 service snmp
console(config-macl)#permit ip-source 192.168.100.10 service snmp
console(config-macl)#permit ip-source 192.168.99.1 service ssh
console(config-macl)#permit ip-source 192.168.100.10 service ssh
console(config-macl)# deny vlan 666 service any
console(config-macl)# deny ip-source 192.168.10.0 mask /24 service ssh
console(config-macl)# deny ip-source 192.168.200.0 mask /24 vlan 200 service snmp

After we do associate to the management access-class

console(config)#management access-class AdminList

Keep in minds:
If one of this service is not start, it’s not necessary to add in the management access-list

802.1x + Voice VLAN +MAB sur N-Series

On commence par déclarer en globale le serveur Radius (FreeRadius/PacketFence/Microsoft NPS/….)

authentication enable
authentication dynamic-vlan enable
dot1x system-auth-control
aaa authentication dot1x default radius
aaa authorization network default radius
radius server source-ip [IP du Vlan qui va joindre le serveur Radius]
radius server auth [IP.DU.SERVEUR.RADIUS]
name "RADIUS-SRVNAME1"
usage authmgr
key 0 "lacleduserveurradius"
exit
radius server acct [IP.DU.SERVEUR.RADIUS]
name "RADIUS-SRVNAME1"
exit

On active en globale le voice vlan, ainsi qu’un vlan de quarantaine si il venait a y avoir un problème d’authentification.

vlan 18
name "VLAN_TOIP"
exit
vlan 666
name "QUARANTAINE"
exit
switchport voice vlan

On configure le port pour permettre l’authentification 802.1x du client, sur échec on essaye un authentification par mac et sinon on drope dans le Vlan de Quarantaine.
Le téléphone identifiée via le LLDP, reçoit le VLAN Voix.
Cette configuration permet d’avoir l’interface “LAN” du téléphone qui reçoit une client qui va demander une authentification 802.1x.

LE MODE GENERAL EST OBLIGATOIRE.

interface Gi1/0/6
description "VOIP+PC"
switchport mode general
authentication host-mode multi-auth
authentication violation protect
authentication event fail action authorize vlan 666
authentication event no-response action authorize vlan 666
authentication periodic
dot1x timeout quiet-period 1
dot1x max-reauth-req 1
dot1x max-req 1
mab auth-type pap
authentication order dot1x mab
authentication priority dot1x mab
lldp tlv-select system-description system-capabilities management-address
lldp notification
lldp med confignotification
switchport voice vlan 16
switchport voice vlan override-authentication
exit


Config MAB sur N-Series

Dans une environnement ou on cherche à identifier l’ensemble des équipements se connectant au réseau, on active du 802.1x.
Pour des équipements n’ayant pas de possibilité de s’authentifier en 802.1x, comme des Imprimantes/Camera IP/IOT/etc.., il est généralement préconisé de mettre en place de l’authentification par @mac

Dans la config ci dessous en active l’allocation dynamique de VLAN et du MAB uniquement.

Si il est nécessaire de changer le format de la mac envoyé, il faut ajouter la commande suivante, a adapter selon les besoins.

mab request format attribute 1 groupsize 2 separator -

Les commandes suivantes, permettent l’activation des fonctions d’authentification 802.1x, l’allocation dynamique de Vlan et les paramètres de configuration du serveur Radius.

authentication enable
authentication dynamic-vlan enable
dot1x system-auth-control
aaa authentication dot1x default radius
aaa authorization network default radius

radius server key 7 "maybe"
radius server auth 192.168.100.23
primary
name "radius"
timeout 1
usage authmgr
exit
radius server acct 192.168.100.23
name "radius"
exit

Dans l’exemple, ci dessous seule l’authentification mab est activé sur le port. la sécurité est configuré pour bloqué le port en cas de pb d’authentification. Il y a une phase de re authentification periodique sur le port.

interface Gi1/0/1
spanning-tree portfast
switchport mode general
authentication host-mode single-host
authentication max-users 1
authentication violation shutdown
authentication periodic
authentication timer reauthenticate 300
authentication order mab
authentication priority mab
authentication event fail retry 1
switchport port-security maximum 1
switchport port-security violation shutdown
exit

Par défaut, il est prévu 10 requette Radius par seconde, il est possible de modifier la valeur au Global

authentication critical recovery max-reauth 20

Suivant le serveur est parfois nécessaire de forcer le mode d’authentification, ici CHAP. Pour rappel cette configuration fonctionne avec du FreeRadius/PacketFence…

interface Gi1/0/1
mab auth-type chap
exit

Dans le cas d’une station sur laquelle vous souhaitez by-passer l’authentification 802.1x (mab ou autre)

interface Gi1/0/20
authentication port-control force-authorized
exit

Dans le cas des ports d’uplinks, là encore pas d’authentification possible, on filtre éventuellement les VLANs

interface Te1/0/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30,40,50
authentication port-control force-authorized
exit

Utilisation Tacacs +

aaa authentication login "AuthSrv" tacacs local
aaa authentication enable "AuthSrvEna" tacacs line enable
aaa authorization exec "dfltExecAuthList" tacacs local none
aaa authorization commands "dfltCmdAuthList" tacacs none

tacacs-server host [IP.DU.SERVEUR.TACACS]
timeout 15
key 7 "La Clef Tacas"
exit


line console
exec-timeout 15
login authentication AuthSrv
exit

line ssh
exec-timeout 15
login authentication AuthSrv
enable authentication AuthSrvEna
exit

SI on positionne uniquement la ligne authorization sans le fallback (donc sans le none)

aaa authorization commands "dfltCmdAuthList" tacacs

Il faut rajouter le bloc “commands” ci dessus.

aaa authorization exec "dfltExecAuthList" tacacs local
aaa authorization commands "MyAuth" none
line ssh
authorization commands MyAuth

line console
authorization commands MyAuth

DellEMC OS9/OS10/OS6 prepare for Ansible

Switch Side

For OS6 (N-Series)

You do create a default account via the console line

console(config)# username admin password yourpassword 
console(config)# enable password yourpassword

Set a management ip, using the OOB.

console(config)# username admin password yourpassword
console(config)# enable password yourpassword
console(config)# interface  out-of-band
console(conf-if)# ip address xxx.xxx.xxx.xxx 255.255.255.0 ip.of.your.gw
console(conf-if)# exit
console(config)# ip ssh  server

and enable ssh server

console(config)# ip ssh server

For OS9

Adding an account

OS9(conf)#username ansible password xxxx privilege 15

Set a management ip

OS9(conf)#interface managementethernet 0/0
OS9(conf-if-ma-0/0)#ip address xxx.xxx.xxx.xxx/xx
OS9(conf-if-ma-0/0)#no shutdown
OS9(conf-if-ma-0/0)#exit

Enabling SSH

OS9(conf)#ip ssh server enable

Ansible use SSH to sent order, set rate limit to pretect againt “Ansible DDos”.

OS9(conf)#ip ssh connection-rate-limit 60

For OS10

By default account is (admin/admin), and ssh is enable

Prefered create a “ansible” account

OS10(config)# username ansible password ansiblepassword

Set a management ip

OS10(conf)#interface mgmt 1/1/1
OS10(conf-if-ma-1/1/1)#no ip dhcp
OS10(conf-if-ma-1/1/1)#ip address xxx.xxx.xxx.xxx/xx
OS10(conf-if-ma-1/1/1)#no shutdown
OS10(conf-if-ma-1/1/1)#exit
OS10(conf)# do commit

First test with Ansible (some script exist on github). Download and check your setting
https://github.com/Dell-Networking/ansible-dellos-examples

You can also find some extend scripts (building a clos fabric / Upgrade Switch…) all this exemple can be find on github.
https://github.com/Dell-Networking

DellEMC Networking and Ansible

Sources:
http://docs.ansible.com/ansible/latest/intro_installation.html#latest-releases-via-apt-ubuntu
https://galaxy.ansible.com/Dell-Networking/
https://ansible-dellos-docs.readthedocs.io/en/latest/install.html

Ansible installation under an Ubuntu Server or Debian  – “Fresh Install”

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update 
$ sudo apt-get install ansible

After the installation, you do create a file with role srequire to be install and enabled. Not all are necessary…but if you want enable all module by default, you can copy past this one. This install latest role for OS6/OS9/OS10

$ vi dellemc_roles.txt
Dell-Networking.dellos-aaa
Dell-Networking.dellos-acl
Dell-Networking.dellos-bgp
Dell-Networking.dellos-copy-config
Dell-Networking.dellos-dcb
Dell-Networking.dellos-dns
Dell-Networking.dellos-ecmp
Dell-Networking.dellos-flow-monitor
Dell-Networking.dellos-image-upgrade
Dell-Networking.dellos-interface
Dell-Networking.dellos-lag
Dell-Networking.dellos-lldp
Dell-Networking.dellos-logging
Dell-Networking.dellos-ntp
Dell-Networking.dellos-prefix-list
Dell-Networking.dellos-qos
Dell-Networking.dellos-route-map
Dell-Networking.dellos-sflow
Dell-Networking.dellos-snmp
Dell-Networking.dellos-system
Dell-Networking.dellos-users
Dell-Networking.dellos-vlan
Dell-Networking.dellos-vlt
Dell-Networking.dellos-vrf
Dell-Networking.dellos-vrrp
Dell-Networking.dellos-xstp
Dell-Networking.dellos_vxlan
Dell-Networking.dellos_bfd
Dell-Networking.dellos_uplink
Dell-Networking.dellos_fabric_summary
Dell-Networking.dellos_network_validation

Install roles files

$ sudo ansible-galaxy install –r dellemc_roles.txt

For more details and support platform for each role.
https://ansible-dellos-docs.readthedocs.io/en/latest/roles.html