diff --git a/.gitignore b/.gitignore index 69a928e1..74a59879 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,9 @@ dmypy.json # VSCode .vscode/ +# Mac OSX +*.DS_Store + # Ignore Roles Files Directories roles/prepare_model/files roles/dtc/common/files/* diff --git a/README.md b/README.md index 623dd65e..6e6a11a5 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,8 @@ interface_delete_mode: false network_delete_mode: false vrf_delete_mode: false inventory_delete_mode: false -vpc_peering_delete_mode: false +vpc_delete_mode: false +link_vpc_delete_mode: false ``` **Note:** These variables are set to `false` by default to avoid accidental removal of configuration from NDFC that might impact the network. diff --git a/plugins/action/common/nac_dc_validate.py b/plugins/action/common/nac_dc_validate.py index 62498bb8..ade0a690 100644 --- a/plugins/action/common/nac_dc_validate.py +++ b/plugins/action/common/nac_dc_validate.py @@ -29,6 +29,7 @@ import iac_validate.validator from iac_validate.yaml import load_yaml_files +from iac_validate.cli.options import DEFAULT_SCHEMA import os display = Display() @@ -65,10 +66,8 @@ def run(self, tmp=None, task_vars=None): results['msg'] = "The data directory ({0}) for this fabric is empty!".format(mdata) return results - if schema is None: - schema = "" - if rules is None: - rules = "" + if schema == '': + schema = DEFAULT_SCHEMA validator = iac_validate.validator.Validator(schema, rules) if schema: diff --git a/requirements.txt b/requirements.txt index 4ab87580..b13dc54f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ requests -iac-validate<=0.2.4 +iac-validate==0.2.5 iac-test==0.2.5 -macaddress \ No newline at end of file +macaddress diff --git a/roles/dtc/common/templates/ndfc_attach_vrfs.j2 b/roles/dtc/common/templates/ndfc_attach_vrfs.j2 index ffad954e..7c57efb8 100644 --- a/roles/dtc/common/templates/ndfc_attach_vrfs.j2 +++ b/roles/dtc/common/templates/ndfc_attach_vrfs.j2 @@ -31,7 +31,7 @@ import_vpn_rt: {{ vrf['import_vpn_rt'] | default(omit) }} netflow_enable: {{ vrf['netflow_enable'] | default(defaults.vxlan.overlay_services.vrfs.netflow_enable) }} {% if vrf['netflow_enable'] is defined and vrf['netflow_enable'] | bool %} - netflow_monitor: {{ vrf['netflow_monitor'] }} + nf_monitor: {{ vrf['netflow_monitor'] }} {% endif %} no_rp: {{ vrf['no_rp'] | default(defaults.vxlan.overlay_services.vrfs.no_rp) }} trm_enable: {{ vrf['trm_enable'] | default(defaults.vxlan.overlay_services.vrfs.trm_enable) }} diff --git a/roles/validate/defaults/main.yml b/roles/validate/defaults/main.yml index 7d210606..cf548f72 100644 --- a/roles/validate/defaults/main.yml +++ b/roles/validate/defaults/main.yml @@ -43,7 +43,7 @@ defaults: vtep_loopback_id: 1 interfaces: topology_switch_access_interface: - description: 'NetAsCode Access Interface' + description: "NetAsCode Access Interface" mtu: jumbo speed: auto enabled: true @@ -51,7 +51,7 @@ defaults: spanning_tree_portfast: true enable_bpdu_guard: true topology_switch_trunk_interface: - description: 'NetAsCode Trunk Interface' + description: "NetAsCode Trunk Interface" mtu: jumbo speed: auto enabled: true @@ -59,7 +59,7 @@ defaults: spanning_tree_portfast: true enable_bpdu_guard: true topology_switch_access_po_interface: - description: 'NetAsCode Access PO Interface' + description: "NetAsCode Access PO Interface" mtu: jumbo speed: auto enabled: true @@ -68,8 +68,8 @@ defaults: spanning_tree_portfast: true enable_bpdu_guard: true topology_switch_trunk_po_interface: - description: 'NetAsCode Trunk PO Interface' - mtu: jumbo + description: "NetAsCode Trunk PO Interface" + mtu: jumbo speed: auto enabled: true trunk_allowed_vlans: none @@ -77,23 +77,23 @@ defaults: spanning_tree_portfast: true enable_bpdu_guard: true topology_switch_routed_interface: - description: 'NetAsCode Routed Interface' + description: "NetAsCode Routed Interface" mtu: 9216 speed: auto enabled: true topology_switch_routed_sub_interface: - description: 'NetAsCode Routed Sub Interface' + description: "NetAsCode Routed Sub Interface" mtu: 9216 speed: auto enabled: true topology_switch_routed_po_interface: - description: 'NetAsCode Routed PO Interface' + description: "NetAsCode Routed PO Interface" mtu: 9216 speed: auto enabled: true pc_mode: active topology_switch_loopback_interface: - description: 'NetAsCode Loopback Interface' + description: "NetAsCode Loopback Interface" enabled: true vpc_peers: domain_id: 1 @@ -170,6 +170,7 @@ defaults: disable_rt_auto: false netflow_enable: false no_rp: false + rp_external: false redist_direct_routemap: FABRIC-RMAP-REDIST-SUBNET trm_enable: false trm_bgw_msite: false @@ -189,3 +190,66 @@ defaults: network_attach_groups: switches: [] overlay_extension: + vrf_lites: + ospf: + enabled: true + areas: + area_type: standard + auth_type: none + auth_key_id: 0 + default_area: 0 + distance: 110 + bfd: + enabled: false + bgp: + enabled: true + best_path_as_path_relax: false + graceful_restart: true + graceful_restart_helper: false + address_family_ipv4_unicast: + additional_paths_receive: false + additional_paths_send: false + default_originate: false + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 220 + max_paths_ebgp: 1 + max_paths_ibgp: 1 + max_paths_eibgp: 1 + address_family_ipv6_unicast: + additional_paths_receive: false + additional_paths_send: false + default_originate: false + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 220 + max_paths_ebgp: 1 + max_paths_ibgp: 1 + max_paths_eibgp: 1 + switches: + interfaces: + ospf: + cost: 0 + passive_interface: false + mtu_ignore: false + advertise_subnet: false + bfd: + enabled: true + hello_interval: 10 + dead_interval: 40 + network_type: broadcast + priority: 1 + lsa_interval: 5 + lsa_retransmit_interval: 1 + bgp_peers: + allowas_in: false + allowas_in_as_number: 0 + send_community: true + send_ext_community: true + as_override: false + next_hop_self: false + bfd: + enabled: true + disable_connected_check: false + remove_private_as: false + remove_private_as_all: false diff --git a/roles/validate/files/rules/required_rules/202_global_underlay_mcast_trm.py b/roles/validate/files/rules/required_rules/202_global_underlay_mcast_trm.py new file mode 100644 index 00000000..4cf337f9 --- /dev/null +++ b/roles/validate/files/rules/required_rules/202_global_underlay_mcast_trm.py @@ -0,0 +1,31 @@ +class Rule: + id = "202" + description = "Verify Fabric Underlay Supports Multicast for TRM" + severity = "HIGH" + + @classmethod + def match(cls, inventory): + results = [] + fabric_replication = False + fabric_mcast_mode = False + fabric_trm = False + + if inventory.get("vxlan", None): + if inventory["vxlan"].get("underlay", None): + if inventory["vxlan"].get("underlay").get("general", None): + fabric_replication = inventory["vxlan"]["underlay"]["general"].get("replication_mode", False) + + if inventory["vxlan"].get("underlay").get("multicast", None): + fabric_mcast_mode = inventory["vxlan"]["underlay"]["multicast"].get("rp_mode", False) + fabric_trm = inventory["vxlan"]["underlay"]["multicast"].get("trm_enable", False) + + if fabric_replication: + if ((fabric_replication == "multicast" and fabric_mcast_mode == "bidir" and fabric_trm) or + (fabric_replication == "ingress" and fabric_trm)): + results.append( + "For vxlan.underlay.multicast.trm_enable to be enabled, " + "vxlan.underlay.general.replication_mode must be set to multicast and " + "vxlan.underlay.multicast.rp_mode must be set to asm." + ) + + return results diff --git a/roles/validate/files/rules/required_rules/402_overlay_services_vrfs.py b/roles/validate/files/rules/required_rules/402_overlay_services_vrfs.py index 099cd930..714bd98b 100644 --- a/roles/validate/files/rules/required_rules/402_overlay_services_vrfs.py +++ b/roles/validate/files/rules/required_rules/402_overlay_services_vrfs.py @@ -15,12 +15,10 @@ def match(cls, inventory): if inventory["vxlan"].get("global").get("netflow", None): fabric_netflow_status = inventory["vxlan"]["global"]["netflow"].get("enable", False) - if inventory.get("vxlan", None): if inventory["vxlan"].get("underlay", None): if inventory["vxlan"].get("underlay").get("multicast", None): fabric_trm_status = inventory["vxlan"]["underlay"]["multicast"].get("trm_enable", False) - if inventory.get("vxlan", None): if inventory["vxlan"].get("overlay_services", None): if inventory["vxlan"].get("overlay_services").get("vrfs", None): vrfs = inventory["vxlan"]["overlay_services"]["vrfs"] @@ -33,6 +31,17 @@ def match(cls, inventory): f"For vxlan.overlay_services.vrfs.{vrf['name']}.netflow_enable to be enabled, " f"first vxlan.global.netflow.enable must be enabled (true)." ) + break + + if fabric_netflow_status and current_vrf_netflow_status: + current_vrf_netflow_monitor = vrf.get("netflow_monitor", None) + if current_vrf_netflow_monitor is None: + results.append( + f"When vxlan.overlay_services.vrfs.{vrf['name']}.netflow_enable is enabled, " + f"then vxlan.overlay_services.vrfs.{vrf['name']}.netflow_monitor must be set " + "to a valid value from vxlan.global.netflow." + ) + break current_vrf_trm_status = vrf.get("trm_enable", None) if current_vrf_trm_status is not None: @@ -41,5 +50,50 @@ def match(cls, inventory): f"For vxlan.overlay_services.vrfs.{vrf['name']}.trm_enable to be enabled, " f"first vxlan.underlay.multicast.trm_enable must be enabled (true)." ) + break + + current_vrf_trm_no_rp = vrf.get("no_rp", None) + current_vrf_trm_rp_external = vrf.get("rp_external", None) + current_vrf_trm_rp_address = vrf.get("rp_address", None) + current_vrf_trm_rp_loopback_id = vrf.get("rp_loopback_id", None) + current_vrf_trm_underlay_mcast_ip = vrf.get("underlay_mcast_ip", None) + current_vrf_trm_overlay_multicast_group = vrf.get("overlay_multicast_group", None) + + if fabric_trm_status: + if current_vrf_trm_no_rp and current_vrf_trm_underlay_mcast_ip is None: + results.append( + f"When vxlan.overlay_services.vrfs.{vrf['name']}.no_rp is enabled (true), " + f"then vxlan.overlay_services.vrfs.{vrf['name']}.underlay_mcast_ip must be set." + ) + break + + if (current_vrf_trm_no_rp and current_vrf_trm_rp_external or + current_vrf_trm_no_rp and current_vrf_trm_rp_address or + current_vrf_trm_no_rp and current_vrf_trm_rp_loopback_id or + current_vrf_trm_no_rp and current_vrf_trm_overlay_multicast_group): + results.append( + f"When vxlan.overlay_services.vrfs.{vrf['name']}.no_rp is enabled (true), " + f"then vxlan.overlay_services.vrfs.{vrf['name']}.rp_external, " + f"vxlan.overlay_services.vrfs.{vrf['name']}.rp_address, " + f"vxlan.overlay_services.vrfs.{vrf['name']}.rp_loopback_id, " + f"vxlan.overlay_services.vrfs.{vrf['name']}.overlay_multicast_group must be disabled (false)." + ) + break + + if current_vrf_trm_rp_external and current_vrf_trm_rp_loopback_id: + results.append( + f"When vxlan.overlay_services.vrfs.{vrf['name']}.rp_external is enabled (true), " + f"then vxlan.overlay_services.vrfs.{vrf['name']}.rp_loopback_id must be disabled (false)." + ) + break + + if (current_vrf_trm_rp_external and current_vrf_trm_rp_address is None or + current_vrf_trm_rp_external and current_vrf_trm_underlay_mcast_ip is None): + results.append( + f"When vxlan.overlay_services.vrfs.{vrf['name']}.rp_external is enabled (true), " + f"then vxlan.overlay_services.vrfs.{vrf['name']}.rp_address and " + f"vxlan.overlay_services.vrfs.{vrf['name']}.underlay_mcast_ip must be set." + ) + break return results diff --git a/roles/validate/files/rules/required_rules/403_overlay_services_networks.py b/roles/validate/files/rules/required_rules/403_overlay_services_networks.py index bbb5ce7e..1c2e27b0 100644 --- a/roles/validate/files/rules/required_rules/403_overlay_services_networks.py +++ b/roles/validate/files/rules/required_rules/403_overlay_services_networks.py @@ -7,6 +7,7 @@ class Rule: def match(cls, inventory): results = [] fabric_netflow_status = False + fabric_trm_status = False networks = [] if inventory.get("vxlan", None): @@ -14,6 +15,11 @@ def match(cls, inventory): if inventory["vxlan"].get("global").get("netflow", None): fabric_netflow_status = inventory["vxlan"]["global"]["netflow"].get("enable", False) + if inventory.get("vxlan", None): + if inventory["vxlan"].get("underlay", None): + if inventory["vxlan"].get("underlay").get("multicast", None): + fabric_trm_status = inventory["vxlan"]["underlay"]["multicast"].get("trm_enable", False) + if inventory.get("vxlan", None): if inventory["vxlan"].get("overlay_services", None): if inventory["vxlan"].get("overlay_services").get("networks", None): @@ -27,5 +33,25 @@ def match(cls, inventory): f"For vxlan.overlay_services.networks.{network['name']}.netflow_enable to be enabled, " f"first vxlan.global.netflow.enable must be enabled (true)." ) + break + + if fabric_netflow_status and current_network_netflow_status: + current_network_netflow_monitor = network.get("vlan_netflow_monitor", None) + if current_network_netflow_monitor is None: + results.append( + f"When vxlan.overlay_services.networks.{network['name']}.netflow_enable is enabled, " + f"then vxlan.overlay_services.networks.{network['name']}.vlan_netflow_monitor must be set " + "to a valid value from vxlan.global.netflow." + ) + break + + current_network_trm_status = network.get("trm_enable", None) + if current_network_trm_status is not None: + if fabric_trm_status is False and current_network_trm_status is True: + results.append( + f"For vxlan.overlay_services.networks.{network['name']}.trm_enable to be enabled, " + f"first vxlan.underlay.multicast.trm_enable must be enabled (true)." + ) + break return results diff --git a/roles/validate/tasks/sub_main.yml b/roles/validate/tasks/sub_main.yml index 6a2473ff..b102c5e5 100644 --- a/roles/validate/tasks/sub_main.yml +++ b/roles/validate/tasks/sub_main.yml @@ -86,6 +86,7 @@ rules: "{{ enhanced_rules_path }}" vars: data_path: "{{ inventory_dir }}/host_vars/{{ inventory_hostname }}" + when: enhanced_rules_path is defined and enhanced_rules_path delegate_to: localhost - name: Verify Connection to NDFC {{ ansible_host }} on Port {{ ansible_httpapi_port | default(443) }} diff --git a/tests/integration/host_vars/examples/fabric_full_large_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_large_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_large_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_large_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_large_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_large_example/networks.yaml index 8308aee5..5f30a064 100644 --- a/tests/integration/host_vars/examples/fabric_full_large_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_large_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: True + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -77,14 +136,46 @@ vxlan: l3gw_on_border: True mtu_l3intf: 7600 multicast_group_address: 239.1.1.1 - netflow_enable: False route_target_both: True route_tag: 12345 secondary_ip_addresses: - ip_address: 10.10.10.1/24 route_tag: 12345 trm_enable: False - vlan_netflow_monitor: vlan55 + netflow_enable: False + attach_group: all_leaf + + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: True + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 attach_group: all_leaf network_attach_groups: diff --git a/tests/integration/host_vars/examples/fabric_full_large_example/underlay.yaml b/tests/integration/host_vars/examples/fabric_full_large_example/underlay.yaml index a1f900ec..62ebedb4 100644 --- a/tests/integration/host_vars/examples/fabric_full_large_example/underlay.yaml +++ b/tests/integration/host_vars/examples/fabric_full_large_example/underlay.yaml @@ -66,7 +66,7 @@ vxlan: rendezvous_points: 2 rp_mode: asm underlay_rp_loopback_id: 254 - trm_enable: False + trm_enable: True trm_default_group: 239.1.1.0 underlay_primary_rp_loopback_id: 0 underlay_backup_rp_loopback_id: 1 diff --git a/tests/integration/host_vars/examples/fabric_full_large_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_large_example/vrfs.yaml index 686894fd..2163b23d 100644 --- a/tests/integration/host_vars/examples/fabric_full_large_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_large_example/vrfs.yaml @@ -41,6 +41,60 @@ vxlan: - name: NetAsCodeVrf4 vrf_id: 150004 vlan_id: 2004 + vrf_int_mtu: 9000 + loopback_route_tag: 54321 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_TRM_only + trm_enable: true + no_rp: false + rp_external: false + rp_address: 10.100.100.1 + rp_loopback_id: 1006 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: true + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf7 + vrf_id: 150007 + vlan_id: 2007 + vrf_description: NetAsCodeVrf6_TRM_No_RP + trm_enable: true + no_rp: true + underlay_mcast_ip: 239.1.1.0 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf8 + vrf_id: 150008 + vlan_id: 2008 + vrf_description: NetAsCodeVrf6_TRM_External_RP + trm_enable: true + rp_external: true + rp_address: 10.100.100.100 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false attach_group: leaf1_leaf2 - name: NetAsCodeVrf_Default @@ -79,6 +133,41 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: True + no_rp: False + rp_external: False + rp_address: 192.168.1.1 + rp_loopback_id: 1000 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/networks.yaml index 122709a2..f14f8e08 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: False + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: False + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/vrfs.yaml index 43c567b5..3ea4eb7b 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_ingress_example/vrfs.yaml @@ -41,6 +41,34 @@ vxlan: - name: NetAsCodeVrf4 vrf_id: 150004 vlan_id: 2004 + vrf_int_mtu: 9000 + loopback_route_tag: 54321 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_No_TRM_No_NetFlow + trm_enable: false + netflow_enable: false + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false attach_group: leaf1_leaf2 - name: NetAsCodeVrf_Default @@ -79,6 +107,38 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: False + no_rp: False + rp_external: False + overlay_multicast_group: "" + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/networks.yaml index 122709a2..289b2a4d 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: True + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: True + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/underlay.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/underlay.yaml index 0fe5b807..a6175ca7 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/underlay.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/underlay.yaml @@ -54,7 +54,7 @@ vxlan: rendezvous_points: 2 rp_mode: asm underlay_rp_loopback_id: 128 - trm_enable: False + trm_enable: True trm_default_group: 239.1.1.0 bfd: enable: False diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/vrfs.yaml index 43c567b5..c82f2b6b 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_asm_example/vrfs.yaml @@ -41,6 +41,60 @@ vxlan: - name: NetAsCodeVrf4 vrf_id: 150004 vlan_id: 2004 + vrf_int_mtu: 9000 + loopback_route_tag: 54321 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_TRM_only + trm_enable: true + no_rp: false + rp_external: false + rp_address: 10.100.100.1 + rp_loopback_id: 1006 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: true + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf7 + vrf_id: 150007 + vlan_id: 2007 + vrf_description: NetAsCodeVrf6_TRM_No_RP + trm_enable: true + no_rp: true + underlay_mcast_ip: 239.1.1.0 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf8 + vrf_id: 150008 + vlan_id: 2008 + vrf_description: NetAsCodeVrf6_TRM_External_RP + trm_enable: true + rp_external: true + rp_address: 10.100.100.100 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false attach_group: leaf1_leaf2 - name: NetAsCodeVrf_Default @@ -79,6 +133,41 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: True + no_rp: False + rp_external: False + rp_address: 192.168.1.1 + rp_loopback_id: 1000 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/networks.yaml index 122709a2..f14f8e08 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: False + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: False + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/vrfs.yaml index 43c567b5..63bf2825 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_isis_multicast_bidir_example/vrfs.yaml @@ -38,9 +38,30 @@ vxlan: vlan_id: 2003 attach_group: leaf1_leaf2 - - name: NetAsCodeVrf4 - vrf_id: 150004 - vlan_id: 2004 + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_No_TRM_No_NetFlow + trm_enable: false + netflow_enable: false + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false attach_group: leaf1_leaf2 - name: NetAsCodeVrf_Default @@ -79,6 +100,38 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: False + no_rp: False + rp_external: False + overlay_multicast_group: "" + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/networks.yaml index 122709a2..f14f8e08 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: False + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: False + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/vrfs.yaml index 43c567b5..63bf2825 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_ingress_example/vrfs.yaml @@ -38,9 +38,30 @@ vxlan: vlan_id: 2003 attach_group: leaf1_leaf2 - - name: NetAsCodeVrf4 - vrf_id: 150004 - vlan_id: 2004 + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_No_TRM_No_NetFlow + trm_enable: false + netflow_enable: false + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false attach_group: leaf1_leaf2 - name: NetAsCodeVrf_Default @@ -79,6 +100,38 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: False + no_rp: False + rp_external: False + overlay_multicast_group: "" + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/networks.yaml index 122709a2..289b2a4d 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: True + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: True + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/underlay.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/underlay.yaml index c5c50991..4e9a154c 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/underlay.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/underlay.yaml @@ -51,7 +51,7 @@ vxlan: rendezvous_points: 2 rp_mode: asm underlay_rp_loopback_id: 128 - trm_enable: False + trm_enable: True trm_default_group: 239.1.1.0 bfd: enable: False diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/vrfs.yaml index 43c567b5..4e73640c 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_asm_example/vrfs.yaml @@ -41,8 +41,63 @@ vxlan: - name: NetAsCodeVrf4 vrf_id: 150004 vlan_id: 2004 + vrf_int_mtu: 9000 + loopback_route_tag: 54321 attach_group: leaf1_leaf2 + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_TRM_only + trm_enable: true + no_rp: false + rp_external: false + rp_address: 10.100.100.1 + rp_loopback_id: 1006 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: true + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf7 + vrf_id: 150007 + vlan_id: 2007 + vrf_description: NetAsCodeVrf6_TRM_No_RP + trm_enable: true + no_rp: true + underlay_mcast_ip: 239.1.1.0 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf8 + vrf_id: 150008 + vlan_id: 2008 + vrf_description: NetAsCodeVrf6_TRM_External_RP + trm_enable: true + rp_external: true + rp_address: 10.100.100.100 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf_Default vrf_id: 150020 vlan_id: 2020 @@ -79,6 +134,41 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: True + no_rp: False + rp_external: False + rp_address: 192.168.1.1 + rp_loopback_id: 1000 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/global.yaml index d28b1d38..91d74263 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/global.yaml @@ -50,6 +50,32 @@ vxlan: - ip_address: 172.16.255.252 vrf: management severity: 3 + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/networks.yaml index 122709a2..f14f8e08 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: False + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: False + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/vrfs.yaml index 43c567b5..63bf2825 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_ospf_multicast_bidir_example/vrfs.yaml @@ -38,9 +38,30 @@ vxlan: vlan_id: 2003 attach_group: leaf1_leaf2 - - name: NetAsCodeVrf4 - vrf_id: 150004 - vlan_id: 2004 + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_No_TRM_No_NetFlow + trm_enable: false + netflow_enable: false + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false attach_group: leaf1_leaf2 - name: NetAsCodeVrf_Default @@ -79,6 +100,38 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: False + no_rp: False + rp_external: False + overlay_multicast_group: "" + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_sha_example/global.yaml b/tests/integration/host_vars/examples/fabric_full_small_sha_example/global.yaml index 4600a829..d1cb83a0 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_sha_example/global.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_sha_example/global.yaml @@ -43,6 +43,32 @@ vxlan: vrf: engineering - ip_address: 18.3.3.3 vrf: engineering + netflow: + enable: true + exporter: + - name: nac-exporter1 + ip_address: 192.168.70.1 + source_interface: eth1/11 + udp_port: 2055 + - name: nac-exporter2 + ip_address: 192.168.70.1 + vrf: management + source_interface: eth1/12 + udp_port: 2055 + record: + - name: nac-record1 + template: netflow_ipv4_record + - name: nac-record2 + template: netflow_l2_record + layer2: true + monitor: + - name: nac-monitor1 + record: nac-record1 + exporter1: nac-exporter1 + - name: nac-monitor2 + record: nac-record2 + exporter1: nac-exporter1 + exporter2: nac-exporter2 vpc: peer_link_vlan: 3600 peer_keep_alive: management diff --git a/tests/integration/host_vars/examples/fabric_full_small_sha_example/networks.yaml b/tests/integration/host_vars/examples/fabric_full_small_sha_example/networks.yaml index 122709a2..289b2a4d 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_sha_example/networks.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_sha_example/networks.yaml @@ -58,6 +58,65 @@ vxlan: vlan_id: 2304 vlan_name: NetAsCodeNet4_vlan2304 gw_ip_address: "192.168.12.4/24" + route_tag: 54321 + multicast_group_address: 239.1.1.1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet5 + vrf_name: NetAsCodeVrf5 + net_id: 130005 + vlan_id: 2305 + vlan_name: NetAsCodeNet5_vlan2305 + int_desc: NetAsCodeNet5 + gw_ip_address: 192.168.5.1/24 + gw_ipv6_address: 2001::1/64 + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet6 + is_l2_only: True + net_id: 130006 + vlan_id: 2306 + vlan_name: NetAsCodeNet6_vlan2306 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet7 + vrf_name: NetAsCodeVrf7 + net_id: 130007 + vlan_id: 2307 + vlan_name: NetAsCodeNet7_vlan2307 + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet8 + vrf_name: NetAsCodeVrf8 + net_id: 130008 + vlan_id: 2308 + vlan_name: NetAsCodeNet8_vlan2308 + trm_enable: True + attach_group: leaf1_leaf2 + + - name: NetAsCodeNet9 + vrf_name: NetAsCodeVrf9 + net_id: 130009 + vlan_id: 2309 + vlan_name: NetAsCodeNet9_vlan2309 + multicast_group_address: 239.1.1.1 + arp_suppress: False attach_group: leaf1_leaf2 - name: NetAsCodeNet_Default @@ -87,6 +146,39 @@ vxlan: vlan_netflow_monitor: vlan55 attach_group: all_leaf + - name: NetAsCodeNet_Full + is_l2_only: False + vrf_name: NetAsCodeVrf_Full + net_id: 130030 + vlan_id: 2330 + vlan_name: NetAsCodeNet_Full_vlan2330 + int_desc: NetAsCodeNet_Full + gw_ip_address: 192.168.30.1/24 + gw_ipv6_address: 2001::1/64 + multicast_group_address: 239.1.1.1 + arp_suppress: False + mtu_l3intf: 9000 + secondary_ip_addresses: + - ip_address: 10.0.1.1/24 + - ip_address: 10.0.2.1/24 + - ip_address: 10.0.3.1/24 + - ip_address: 10.0.4.1/24 + dhcp_servers: + - ip_address: 10.255.255.101 + vrf: default + - ip_address: 10.255.255.102 + vrf: default + - ip_address: 10.255.255.103 + vrf: default + dhcp_loopback_id: 35 + l3gw_on_border: True + route_target_both: True + route_tag: 12345 + trm_enable: True + netflow_enable: True + vlan_netflow_monitor: nac-monitor1 + attach_group: leaf2 + network_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/host_vars/examples/fabric_full_small_sha_example/underlay.yaml b/tests/integration/host_vars/examples/fabric_full_small_sha_example/underlay.yaml index a1f900ec..62ebedb4 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_sha_example/underlay.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_sha_example/underlay.yaml @@ -66,7 +66,7 @@ vxlan: rendezvous_points: 2 rp_mode: asm underlay_rp_loopback_id: 254 - trm_enable: False + trm_enable: True trm_default_group: 239.1.1.0 underlay_primary_rp_loopback_id: 0 underlay_backup_rp_loopback_id: 1 diff --git a/tests/integration/host_vars/examples/fabric_full_small_sha_example/vrfs.yaml b/tests/integration/host_vars/examples/fabric_full_small_sha_example/vrfs.yaml index 43c567b5..4e73640c 100644 --- a/tests/integration/host_vars/examples/fabric_full_small_sha_example/vrfs.yaml +++ b/tests/integration/host_vars/examples/fabric_full_small_sha_example/vrfs.yaml @@ -41,8 +41,63 @@ vxlan: - name: NetAsCodeVrf4 vrf_id: 150004 vlan_id: 2004 + vrf_int_mtu: 9000 + loopback_route_tag: 54321 attach_group: leaf1_leaf2 + - name: NetAsCodeVrf5 + vrf_id: 150005 + vlan_id: 2005 + vrf_description: NetAsCodeVrf5_Netflow_only + netflow_enable: true + netflow_monitor: nac-monitor1 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf6 + vrf_id: 150006 + vlan_id: 2006 + vrf_description: NetAsCodeVrf6_TRM_only + trm_enable: true + no_rp: false + rp_external: false + rp_address: 10.100.100.1 + rp_loopback_id: 1006 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: true + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf7 + vrf_id: 150007 + vlan_id: 2007 + vrf_description: NetAsCodeVrf6_TRM_No_RP + trm_enable: true + no_rp: true + underlay_mcast_ip: 239.1.1.0 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf8 + vrf_id: 150008 + vlan_id: 2008 + vrf_description: NetAsCodeVrf6_TRM_External_RP + trm_enable: true + rp_external: true + rp_address: 10.100.100.100 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf9 + vrf_id: 150009 + vlan_id: 2009 + vrf_description: NetAsCodeVrf6_Max_BGP_Paths + max_bgp_paths: 4 + max_ibgp_paths: 4 + trm_enable: false + netflow_enable: false + attach_group: leaf1_leaf2 + + - name: NetAsCodeVrf_Default vrf_id: 150020 vlan_id: 2020 @@ -79,6 +134,41 @@ vxlan: underlay_mcast_ip: "224.1.1.1" attach_group: all_leaf + - name: NetAsCodeVrf_Full + vrf_id: 150030 + vlan_id: 2030 + vrf_vlan_name: NetAsCodeVrf_Full_vlan2030 + vrf_intf_desc: NetAsCodeVrf_Full + vrf_description: NetAsCodeVrf_Full + vrf_int_mtu: 9216 + loopback_route_tag: 12345 + max_bgp_paths: 8 + max_ibgp_paths: 8 + ipv6_linklocal_enable: True + adv_host_routes: True + adv_default_routes: True + static_default_route: True + # bgp_password: cisco + # bgp_password_encryption_type: 3 + disable_rt_auto: False + export_evpn_rt: "" + export_mvpn_rt: "" + export_vpn_rt: "" + import_evpn_rt: "" + import_mvpn_rt: "" + import_vpn_rt: "" + netflow_enable: True + netflow_monitor: nac-monitor1 + trm_enable: True + no_rp: False + rp_external: False + rp_address: 192.168.1.1 + rp_loopback_id: 1000 + underlay_mcast_ip: 239.1.1.0 + overlay_multicast_group: 224.0.0.0/4 + trm_bgw_msite: False + attach_group: all_leaf + vrf_attach_groups: - name: all_leaf switches: diff --git a/tests/integration/roles/test_update_model_data/tasks/main.yml b/tests/integration/roles/test_update_model_data/tasks/main.yml index 6cb0a2b6..0dad1f3f 100644 --- a/tests/integration/roles/test_update_model_data/tasks/main.yml +++ b/tests/integration/roles/test_update_model_data/tasks/main.yml @@ -63,7 +63,7 @@ ansible.builtin.replace: path: "{{ playbook_dir }}/group_vars/ndfc/main.yml" regexp: 'ndfc_switch_password\:\s+(\S+)' - replace: "ndfc_switch_password: {{ fabric_switch_password }}" + replace: "ndfc_switch_password: {{ ndfc_switch_password }}" delegate_to: 127.0.0.1 - name: Replace << fabric_name >> in test data model files