From 0e75b747fc60adfef79bfc2385891ad4bf2bf8b6 Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Wed, 20 Jan 2010 23:31:29 +0100 Subject: [PATCH] =?UTF-8?q?[switchs]=20pas=20de=20dhcp-snooping=20sur=20le?= =?UTF-8?q?s=20s=C3=A9ries=202810=20(wtf)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit darcs-hash:20100120223129-ffbb2-88d595f81d20a079deca4ca1dd1c2e1307a8d0a4.gz --- gestion/gen_confs/switchs.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/gestion/gen_confs/switchs.py b/gestion/gen_confs/switchs.py index 69a21105..1fee4f0c 100644 --- a/gestion/gen_confs/switchs.py +++ b/gestion/gen_confs/switchs.py @@ -117,13 +117,6 @@ aaa authentication ssh enable public-key none ip ssh ip authorized-managers 10.231.136.0 255.255.255.0 ip ssh filetransfer -;------------------------------------------------------- DHCP Snooping -dhcp-snooping vlan %(vlan_adherent)s -dhcp-snooping trust %(uplinks)s -no dhcp-snooping trust %(non_uplinks)s -dhcp-snooping authorized-server %(dhcp)s -; Activation -dhcp-snooping ;------------------------------------------------------- Protection contre les boucles loop-protect disable-timer 30 loop-protect transmit-interval 3 @@ -139,6 +132,14 @@ no cdp run no stack """ + dhcp_snooping_template = """;------------------------------------------------------- DHCP Snooping +dhcp-snooping vlan %(vlan_adherent)s +dhcp-snooping trust %(uplinks)s +no dhcp-snooping trust %(non_uplinks)s +dhcp-snooping authorized-server %(dhcp)s +; Activation +dhcp-snooping""" + interface_template = """interface %(prise)i enable name "%(nom)s" @@ -278,6 +279,8 @@ exit ## On veut par défaut tout confier au serveur radius principal #shuffle(self.rad_servs) rad = self.rad_template * len(self.rad_servs) + + params = { 'switch' : switch, 'bat' : bat.upper() , 'radius_key' : radius_key , 'radius-serveurs' : rad[:-1] % tuple(self.rad_servs), @@ -310,6 +313,8 @@ exit nb_prises = machine.nombrePrises() if nb_prises < 0 : raise RuntimeError("Erreur : impossible de déterminer les caractéristiques du switch.") + + has_dhcp_snooping = "2810" not in " ".join(machine.info()) ### Configuration prises params['INTERFACES_CONF'] = '' @@ -504,7 +509,10 @@ aaa port-access mac-based %(prise)s unauth-vid 1 # Ecriture fd = self._open_conf(self.CONF_REP + switch + '.conf') - fd.write(self.config % params) + my_config = self.config + if has_dhcp_snooping: + my_config += self.dhcp_snooping_template + fd.write(my_config % params) fd.close() if __name__ == '__main__' :