aristanetworks / avd

Arista Validated Designs
https://avd.arista.com
Apache License 2.0
272 stars 197 forks source link

Feat(eos_designs): add IPv6 ND prefix support for SVIs #3258

Open c-po opened 10 months ago

c-po commented 10 months ago

Enhancement summary

We are entering a PoC phase with the goal of a global IPv6 rollout in our DCs.

As of now eos_cli_config_gen already has support for the IPv6 ND knobs, eos_designs on the other hand does not.

The question and general SVD design decission is if it's worth it to implemenbt the knobs in eos_designs or clealry state: "Hey, please use structured_config, that's what it should be used for"

Which component of AVD is impacted

eos_designs

Use case example

Provide IPv6 ND prefixes for RA support

Describe the solution you would like

tenants:
  Tenant_MU_DC:
    mac_vrf_vni_base: 10000
    vrfs:
      Tenant_MU_DC_PROD:
        vrf_vni: 10
        svis:
          1004:
            name: "10.0.4.0/24"
            tags: [prod]
            enabled: true
            igmp_snooping_enabled: true
            ip_address_virtual: 10.0.4.1/24
            mtu: 1500
            ipv6_address_virtual: 2001:db8:1004::1/64
            ipv6_nd_prefixes:
              - ipv6_prefix: 2001:db8:1004::/64
                valid_lifetime: 43200 
                preferred_lifetime: 3627000

Describe alternatives you have considered

Using structured_config

tenants:
  Tenant_MU_DC:
    mac_vrf_vni_base: 10000
    vrfs:
      Tenant_MU_DC_PROD:
        vrf_vni: 10
        svis:
          1004:
            name: "10.0.4.0/24"
            tags: [prod]
            enabled: true
            igmp_snooping_enabled: true
            ip_address_virtual: 10.0.4.1/24
            mtu: 1500
            ipv6_address_virtual: 2001:db8:1004::1/64
            structured_config:
              ipv6_nd_prefixes:
                - ipv6_prefix: 2001:db8:1004::/64
                  valid_lifetime: 43200 
                  preferred_lifetime: 3627000

Additional context

No response

Contributing Guide

ClausHolbechArista commented 10 months ago

I think we could add this, but can we implement some abstraction to automatically take the prefixes from the other configured options, making it easier to use svi_profiles. So maybe:

...
        svis:
          - id: <int>
            ipv6_address_virtuals:
              - <ipv6 address>
            ipv6_nd:
              advertise_ipv6_address_virtuals: <bool>
              advertise_<something else>: bool
              valid_lifetime: <str>
              preferred_lifetime: <str>
c-po commented 10 months ago

The abstraction would be awesome. I tried using ::/64 for the announcement to fallback to the interfaces unicast address like Linux radvd does, apparently that did not work out.

Using your idea would totally make sense as then we can inherit everything!

github-actions[bot] commented 7 months ago

This issue is stale because it has been open 90 days with no activity. The issue will be reviewed by a maintainer and may be closed