Formatage , et gestion des igmp querier
This commit is contained in:
parent
4bac7c64dd
commit
827220a50a
2 changed files with 32 additions and 16 deletions
16
main.py
16
main.py
|
@ -70,6 +70,13 @@ class Switch:
|
|||
for vlan in port['get_port_profil']['vlan_tagged']:
|
||||
add_to_vlans(vlans, vlan, port)
|
||||
|
||||
for ip, subnet in self.switch["interfaces_subnet"].items():
|
||||
vlans[subnet[0]["vlan_id"]].setdefault("ipv4", {})
|
||||
vlans[subnet[0]["vlan_id"]]["ipv4"][ip] = subnet
|
||||
for ipv6, subnet in self.switch["interfaces6_subnet"].items():
|
||||
vlans[subnet["vlan_id"]].setdefault("ipv6", {})
|
||||
vlans[subnet["vlan_id"]]["ipv6"][ipv6] = subnet
|
||||
|
||||
arp_protect_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["arp_protect"]]
|
||||
dhcp_snooping_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["dhcp_snooping"]]
|
||||
dhcpv6_snooping_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["dhcpv6_snooping"]]
|
||||
|
@ -112,10 +119,11 @@ class Switch:
|
|||
data = {
|
||||
"server_type": "ST_TFTP",
|
||||
"file_name": self.get_conf_file_name(),
|
||||
"tftp_server_address": {"server_address":
|
||||
{"ip_address":
|
||||
{"version":"IAV_IP_V4",
|
||||
"octets":self.settings["switchs_management_interface_ip"]}}},
|
||||
"tftp_server_address": {
|
||||
"server_address": {
|
||||
"ip_address": {
|
||||
"version":"IAV_IP_V4",
|
||||
"octets":self.settings["switchs_management_interface_ip"]}}},
|
||||
"is_forced_reboot_enabled": True,
|
||||
}
|
||||
# Nous lançons la requête de type POST.
|
||||
|
|
|
@ -44,25 +44,33 @@ vlan {{ id }}
|
|||
{%- if vlan["ports_untagged"] %}
|
||||
untagged {{ vlan["ports_untagged"]|join(',') }}
|
||||
{%- endif %}
|
||||
{%- for ipv4, subnet in switch.interfaces_subnet.items() %}
|
||||
{%- if subnet.0.vlan_id == id %}
|
||||
ip address {{ ipv4 }}/{{ subnet.0.netmask_cidr }}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- for ipv6, subnet6 in switch.interfaces6_subnet.items() %}
|
||||
{%- if subnet6.vlan_id == id %}
|
||||
ipv6 address {{ ipv6 }}/{{ subnet6.netmask_cidr }}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- if id in additionals.igmp_vlans %}
|
||||
ip igmp
|
||||
no ip igmp querier
|
||||
{%- endif %}
|
||||
{%- if id in additionals.mld_vlans %}
|
||||
no ipv6 mld querier
|
||||
ipv6 mld version 1
|
||||
ipv6 mld enable
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv4 %}
|
||||
{%- for ipv4, subnet in vlan.ipv4.items() %}
|
||||
ip address {{ ipv4 }}/{{ subnet.0.netmask_cidr }}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
no ip address
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv6 %}
|
||||
{%- for ipv6, subnet6 in vlan.ipv6.items() %}
|
||||
ipv6 address {{ ipv6 }}/{{ subnet6.netmask_cidr }}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
no ipv6 address
|
||||
{%- if id in additionals.igmp_vlans %}
|
||||
no ip igmp querier
|
||||
{%- endif %}
|
||||
{%- if id in additionals.mld_vlans %}
|
||||
no ipv6 mld querier
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
exit
|
||||
{%- endfor %}
|
||||
;--- Accès d'administration ---
|
||||
|
|
Loading…
Reference in a new issue