# List of networks, used for j2 templating of enabled networks # # This file demonstrates routed spine/leaf networks. Supernets # are used to segregate traffic and provide symmetric routing. # Each type of network has a supernet, and the supernet route # on each network points to the local network gateway. This # ensures that traffic uses the appropriate network and not # the default gateway for destinations matching the supernet. # # Supported values: # # name: Name of the network (mandatory) # name_lower: lowercase version of name used for filenames # (optional, defaults to name.lower()) # service_net_map_replace: if name_lower is set to a custom name this should be set # to original default (optional). This field is only necessary when # changing the default network names, not when adding a new custom network. # enabled: Is the network enabled (optional, defaults to true) # NOTE: False will use noop.yaml for unused legacy networks to support upgrades. # vlan: vlan for the network (optional) # vip: Enable creation of a virtual IP on this network # ip_subnet: IP/CIDR, e.g. '192.168.24.0/24' or '2001:db8:fd00:1000::/64' # (optional, may use parameter defaults instead) # allocation_pools: IP range list e.g. [{'start':'10.0.0.4', 'end':'10.0.0.250'}] # gateway_ip: gateway for the network (optional, may use parameter defaults) # routes: Optional, list of networks that should be routed via network gateway. # Example: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] # A single /16 supernet route could be used for 255 smaller /24 subnets. # ipv6_subnet: Optional, sets default IPv6 subnet if IPv4 is already defined. # ipv6_allocation_pools: Set default IPv6 allocation pools if IPv4 allocation pools # are already defined. # gateway_ipv6: Set an IPv6 gateway if IPv4 gateway already defined. # routes_ipv6: Optional, list of networks that should be routed via network gateway. # Example: [{'destination':'fd00:fd00:fd00:3004::/64', # 'nexthop':'fd00:fd00:fd00:3000::1'}] # A single /16 supernet route could be used for 255 smaller /24 subnets. # ipv6: If ip_subnet not defined, this specifies that the network is IPv6-only. # NOTE: IP-related values set parameter defaults in templates, may be overridden, # either by operators, or e.g in environments/network-isolation-v6.yaml where we # set some default IPv6 addresses. # compat_name: for existing stack you may need to override the default # transformation for the resource's name. # mtu: Set the maximum transmission unit (MTU) that is guaranteed to pass # through the data path of the segments in the network. # (optional, defaults to 1500) # subnets: A map of additional subnets for the network (optional). The map # takes the following format: # {'<subnet name>': {'enabled': '<true|false>', # 'vlan': '<vlan-id>', # 'ip_subnet': '<IP/CIDR>', # 'allocation_pools': '<IP range list>', # 'gateway_ip': '<gateway IP>', # 'routes': '<Routes list>', # 'ipv6_subnet': '<IPv6/CIDR>', # 'ipv6_allocation_pools': '<IPv6 range list>', # 'gateway_ipv6': '<IPv6 gateway>', # 'routes_ipv6': '<Routes list>'}} # # Example: # A single 10.0.0.0/16 route works for up to 255 /24 networks # - name Example1 # vip: false # ip_subnet: '10.0.1.0/24' # allocation_pools: [{'start': '10.0.1.4', 'end': '10.0.1.250'}] # gateway_ip: '10.0.1.254' # routes: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.1.254'}] # - name Example2 # vip: false # ip_subnet: '10.0.2.0/24' # allocation_pools: [{'start': '10.0.2.4', 'end': '10.0.2.250'}] # gateway_ip: '10.0.2.254' # routes: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.2.254'}] # # To support backward compatility, two versions of the network definitions will # be created, network/<network>.yaml and network/<network>_v6.yaml. Only # one of these files may be used in the deployment at a time, since the # parameters used for configuration are the same in both files. In the # future, this behavior may be changed to create only one file for custom # networks. You may specify IPv6 addresses for ip_subnet, allocation_pools, # and gateway_ip if no IPv4 addresses are used for a custom network, or set # ipv6: true, and the network/<network>.yaml file will be configured as IPv6. # # For configuring both IPv4 and IPv6 on the same interface, use two separate # networks, and then assign both IPs to the same interface in a custom NIC # configuration templates. # # The ordering of the networks below will determine the order in which NICs # are assigned in the network/config/multiple-nics templates, beginning with # NIC2, Control Plane is always NIC1. - name: Storage vip: true vlan: 30 name_lower: storage ip_subnet: '172.16.16.0/24' gateway_ip: '172.16.16.1' routes: [{'destination':'172.16.16.0/20', 'nexthop':'172.16.16.1'}] allocation_pools: [{'start': '172.16.16.4', 'end': '172.16.16.250'}] ipv6_subnet: 'fd00:fd00:fd00:3000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:3004::/64', 'nexthop':'fd00:fd00:fd00:3000::1'}] mtu: 1500 - name: StorageLeaf2 vip: false vlan: 31 name_lower: storage2 ip_subnet: '172.16.17.0/24' gateway_ip: '172.16.17.1' routes: [{'destination':'172.16.16.0/20', 'nexthop':'172.16.17.1'}] allocation_pools: [{'start': '172.16.17.4', 'end': '172.16.17.250'}] ipv6_subnet: 'fd00:fd00:fd00:3004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3004::10', 'end': 'fd00:fd00:fd00:3004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:3000::/64', 'nexthop':'fd00:fd00:fd00:3004::1'}] mtu: 1500 - name: StorageMgmt name_lower: storage_mgmt vip: true vlan: 40 ip_subnet: '172.16.48.0/24' gateway_ip: '172.16.48.1' routes: [{'destination':'172.16.48.0/20', 'nexthop':'172.16.48.1'}] allocation_pools: [{'start': '172.16.48.4', 'end': '172.16.48.250'}] ipv6_subnet: 'fd00:fd00:fd00:4000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:4004::/64', 'nexthop':'fd00:fd00:fd00:4000::1'}] mtu: 1500 - name: StorageMgmtLeaf2 name_lower: storage_mgmt2 vip: false vlan: 41 ip_subnet: '172.16.49.0/24' gateway_ip: '172.16.49.1' routes: [{'destination':'172.16.48.0/20', 'nexthop':'172.16.49.1'}] allocation_pools: [{'start': '172.16.49.4', 'end': '172.16.49.250'}] ipv6_subnet: 'fd00:fd00:fd00:4004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4004::10', 'end': 'fd00:fd00:fd00:4004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:4000::/64', 'nexthop':'fd00:fd00:fd00:4004::1'}] mtu: 1500 - name: InternalApi name_lower: internal_api vip: true vlan: 20 ip_subnet: '172.16.32.0/24' gateway_ip: '172.16.32.1' routes: [{'destination':'172.16.32.0/20', 'nexthop':'172.16.32.1'}] allocation_pools: [{'start': '172.16.32.4', 'end': '172.16.32.250'}] ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:2004::/64', 'nexthop':'fd00:fd00:fd00:2000::1'}] mtu: 1500 - name: InternalApiLeaf2 name_lower: internal_api2 vip: false vlan: 21 ip_subnet: '172.16.33.0/24' gateway_ip: '172.16.33.1' routes: [{'destination':'172.16.32.0/20', 'nexthop':'172.16.33.1'}] allocation_pools: [{'start': '172.16.33.4', 'end': '172.16.33.250'}] ipv6_subnet: 'fd00:fd00:fd00:2004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2004::10', 'end': 'fd00:fd00:fd00:2004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:2000::/64', 'nexthop':'fd00:fd00:fd00:2004::1'}] mtu: 1500 - name: Tenant vip: false # Tenant networks do not use VIPs name_lower: tenant vlan: 50 ip_subnet: '172.16.0.0/24' gateway_ip: '172.16.0.1' routes: [{'destination':'172.16.0.0/20', 'nexthop':'172.16.0.1'}] allocation_pools: [{'start': '172.16.0.4', 'end': '172.16.0.250'}] # Note that tenant tunneling is only compatible with IPv4 addressing at this time. ipv6_subnet: 'fd00:fd00:fd00:5000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:5004::/64', 'nexthop':'fd00:fd00:fd00:5000::1'}] mtu: 1500 - name: TenantLeaf2 vip: false # Tenant networks do not use VIPs name_lower: tenant2 vlan: 51 ip_subnet: '172.16.1.0/24' gateway_ip: '172.16.1.1' routes: [{'destination':'172.16.0.0/20', 'nexthop':'172.16.1.1'}] allocation_pools: [{'start': '172.16.1.4', 'end': '172.16.1.250'}] # Note that tenant tunneling is only compatible with IPv4 addressing at this time. ipv6_subnet: 'fd00:fd00:fd00:5004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5004::10', 'end': 'fd00:fd00:fd00:5004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:5000::/64', 'nexthop':'fd00:fd00:fd00:5004::1'}] mtu: 1500 - name: External vip: true name_lower: external vlan: 10 ip_subnet: '10.0.0.0/24' allocation_pools: [{'start': '10.0.0.4', 'end': '10.0.0.250'}] gateway_ip: '10.0.0.1' ipv6_subnet: '2001:db8:fd00:1000::/64' ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}] gateway_ipv6: '2001:db8:fd00:1000::1' mtu: 1500 - name: Management # Management network is enabled by default for backwards-compatibility, but # is not included in any roles by default. Add to role definitions to use. enabled: true vip: false # Management network does not use VIPs name_lower: management vlan: 60 ip_subnet: '10.0.1.0/24' allocation_pools: [{'start': '10.0.1.4', 'end': '10.0.1.250'}] gateway_ip: '10.0.1.1' ipv6_subnet: 'fd00:fd00:fd00:6000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}] gateway_ipv6: 'fd00:fd00:fd00:6000::1' mtu: 1500