Compare commits
7 Commits
f69bba2bf1
...
cf05a5d477
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf05a5d477 | ||
|
|
f623d12b8c | ||
|
|
e527534820 | ||
|
|
ed820f3380 | ||
|
|
82af2daafc | ||
|
|
719ecfafaa | ||
|
|
3654c2de9d |
@@ -50,7 +50,6 @@ This directory contains the Infrahub schema definitions for modeling an EVPN-VXL
|
|||||||
│ - Loopback │ │ (underlay, │ │ (neighbors) │
|
│ - Loopback │ │ (underlay, │ │ (neighbors) │
|
||||||
│ - Vlan │ │ evpn) │ └──────────────┘
|
│ - Vlan │ │ evpn) │ └──────────────┘
|
||||||
│ - Lag │ └──────────────┘
|
│ - Lag │ └──────────────┘
|
||||||
│ - Vxlan │
|
|
||||||
└──────┬───────┘
|
└──────┬───────┘
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
@@ -81,7 +80,7 @@ The schema models this topology from `arista-evpn-vxlan-clab`:
|
|||||||
| Port-Channel1 | InfraMlagInterface (host-facing) |
|
| Port-Channel1 | InfraMlagInterface (host-facing) |
|
||||||
| Ethernet1-8 | InfraInterfaceEthernet |
|
| Ethernet1-8 | InfraInterfaceEthernet |
|
||||||
| Loopback0, Loopback1 | InfraInterfaceLoopback |
|
| Loopback0, Loopback1 | InfraInterfaceLoopback |
|
||||||
| Vxlan1 | InfraInterfaceVxlan |
|
| Vxlan1 | InfraVTEP |
|
||||||
| peer groups | InfraBGPPeerGroup |
|
| peer groups | InfraBGPPeerGroup |
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|||||||
@@ -129,10 +129,6 @@ nodes:
|
|||||||
label: Border Leaf
|
label: Border Leaf
|
||||||
color: "#f59e0b"
|
color: "#f59e0b"
|
||||||
description: Fabric role
|
description: Fabric role
|
||||||
- name: router_id
|
|
||||||
kind: IPHost
|
|
||||||
optional: true
|
|
||||||
description: BGP Router ID (typically Loopback0)
|
|
||||||
- name: status
|
- name: status
|
||||||
kind: Dropdown
|
kind: Dropdown
|
||||||
default_value: active
|
default_value: active
|
||||||
@@ -258,6 +254,15 @@ nodes:
|
|||||||
- device__name__value
|
- device__name__value
|
||||||
- name__value
|
- name__value
|
||||||
display_label: "{{ name__value }}"
|
display_label: "{{ name__value }}"
|
||||||
|
attributes:
|
||||||
|
- name: virtual_router_address
|
||||||
|
kind: IPHost
|
||||||
|
optional: true
|
||||||
|
description: Anycast gateway IP (ip virtual-router address)
|
||||||
|
- name: autostate
|
||||||
|
kind: Boolean
|
||||||
|
default_value: true
|
||||||
|
description: "Enable autostate (set false for MLAG peer SVIs)"
|
||||||
relationships:
|
relationships:
|
||||||
- name: vlan
|
- name: vlan
|
||||||
peer: InfraVLAN
|
peer: InfraVLAN
|
||||||
@@ -299,30 +304,6 @@ nodes:
|
|||||||
cardinality: many
|
cardinality: many
|
||||||
kind: Component
|
kind: Component
|
||||||
|
|
||||||
- name: InterfaceVxlan
|
|
||||||
namespace: Infra
|
|
||||||
description: VXLAN tunnel interface
|
|
||||||
label: VXLAN Interface
|
|
||||||
icon: mdi--tunnel
|
|
||||||
include_in_menu: false
|
|
||||||
inherit_from:
|
|
||||||
- InfraInterface
|
|
||||||
uniqueness_constraints:
|
|
||||||
- ["device", "name__value"]
|
|
||||||
human_friendly_id:
|
|
||||||
- device__name__value
|
|
||||||
- name__value
|
|
||||||
display_label: "{{ name__value }}"
|
|
||||||
attributes:
|
|
||||||
- name: udp_port
|
|
||||||
kind: Number
|
|
||||||
default_value: 4789
|
|
||||||
relationships:
|
|
||||||
- name: source_interface
|
|
||||||
peer: InfraInterfaceLoopback
|
|
||||||
cardinality: one
|
|
||||||
description: VTEP source interface (typically Loopback1)
|
|
||||||
|
|
||||||
# ================================================================
|
# ================================================================
|
||||||
# IP Address
|
# IP Address
|
||||||
# ================================================================
|
# ================================================================
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ nodes:
|
|||||||
attributes:
|
attributes:
|
||||||
- name: router_id
|
- name: router_id
|
||||||
kind: IPHost
|
kind: IPHost
|
||||||
|
unique: true
|
||||||
description: BGP Router ID
|
description: BGP Router ID
|
||||||
- name: default_ipv4_unicast
|
- name: default_ipv4_unicast
|
||||||
kind: Boolean
|
kind: Boolean
|
||||||
@@ -65,6 +66,18 @@ nodes:
|
|||||||
kind: Number
|
kind: Number
|
||||||
default_value: 64
|
default_value: 64
|
||||||
description: Maximum ECMP routes
|
description: Maximum ECMP routes
|
||||||
|
- name: ebgp_distance
|
||||||
|
kind: Number
|
||||||
|
default_value: 20
|
||||||
|
description: eBGP administrative distance
|
||||||
|
- name: ibgp_distance
|
||||||
|
kind: Number
|
||||||
|
default_value: 200
|
||||||
|
description: iBGP administrative distance
|
||||||
|
- name: local_distance
|
||||||
|
kind: Number
|
||||||
|
default_value: 200
|
||||||
|
description: Local route administrative distance
|
||||||
relationships:
|
relationships:
|
||||||
- name: device
|
- name: device
|
||||||
peer: InfraDevice
|
peer: InfraDevice
|
||||||
@@ -92,7 +105,10 @@ nodes:
|
|||||||
label: BGP Peer Group
|
label: BGP Peer Group
|
||||||
icon: mdi--account-group
|
icon: mdi--account-group
|
||||||
include_in_menu: false
|
include_in_menu: false
|
||||||
|
uniqueness_constraints:
|
||||||
|
- ["bgp_config", "name__value"]
|
||||||
human_friendly_id:
|
human_friendly_id:
|
||||||
|
- bgp_config__router_id__value
|
||||||
- name__value
|
- name__value
|
||||||
display_label: "{{ name__value }}"
|
display_label: "{{ name__value }}"
|
||||||
attributes:
|
attributes:
|
||||||
@@ -165,7 +181,10 @@ nodes:
|
|||||||
label: BGP Session
|
label: BGP Session
|
||||||
icon: mdi--connection
|
icon: mdi--connection
|
||||||
include_in_menu: false
|
include_in_menu: false
|
||||||
|
uniqueness_constraints:
|
||||||
|
- ["bgp_config", "peer_address__value"]
|
||||||
human_friendly_id:
|
human_friendly_id:
|
||||||
|
- bgp_config__router_id__value
|
||||||
- peer_address__value
|
- peer_address__value
|
||||||
display_label: "{{ peer_address__value }}"
|
display_label: "{{ peer_address__value }}"
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
@@ -72,12 +72,6 @@ nodes:
|
|||||||
- name: description
|
- name: description
|
||||||
kind: Text
|
kind: Text
|
||||||
description: Link description (e.g., spine1:eth1 <-> leaf1:eth11)
|
description: Link description (e.g., spine1:eth1 <-> leaf1:eth11)
|
||||||
- name: local_ip
|
|
||||||
kind: IPNetwork
|
|
||||||
description: Local interface IP with mask
|
|
||||||
- name: remote_ip
|
|
||||||
kind: IPNetwork
|
|
||||||
description: Remote interface IP with mask
|
|
||||||
- name: mtu
|
- name: mtu
|
||||||
kind: Number
|
kind: Number
|
||||||
default_value: 9214
|
default_value: 9214
|
||||||
@@ -97,6 +91,11 @@ nodes:
|
|||||||
identifier: underlay_link_local_interface
|
identifier: underlay_link_local_interface
|
||||||
cardinality: one
|
cardinality: one
|
||||||
direction: outbound
|
direction: outbound
|
||||||
|
- name: local_ip_address
|
||||||
|
peer: InfraIPAddress
|
||||||
|
identifier: underlay_link_local_ip
|
||||||
|
cardinality: one
|
||||||
|
direction: outbound
|
||||||
- name: remote_device
|
- name: remote_device
|
||||||
peer: InfraDevice
|
peer: InfraDevice
|
||||||
identifier: underlay_link_remote_device
|
identifier: underlay_link_remote_device
|
||||||
@@ -107,6 +106,11 @@ nodes:
|
|||||||
identifier: underlay_link_remote_interface
|
identifier: underlay_link_remote_interface
|
||||||
cardinality: one
|
cardinality: one
|
||||||
direction: outbound
|
direction: outbound
|
||||||
|
- name: remote_ip_address
|
||||||
|
peer: InfraIPAddress
|
||||||
|
identifier: underlay_link_remote_ip
|
||||||
|
cardinality: one
|
||||||
|
direction: outbound
|
||||||
|
|
||||||
# ================================================================
|
# ================================================================
|
||||||
# Host Connection
|
# Host Connection
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ nodes:
|
|||||||
attributes:
|
attributes:
|
||||||
- name: vlan_id
|
- name: vlan_id
|
||||||
kind: Number
|
kind: Number
|
||||||
|
unique: true
|
||||||
description: VLAN ID (1-4094)
|
description: VLAN ID (1-4094)
|
||||||
- name: name
|
- name: name
|
||||||
kind: Text
|
kind: Text
|
||||||
@@ -51,6 +52,14 @@ nodes:
|
|||||||
- name: mlag_ibgp
|
- name: mlag_ibgp
|
||||||
label: MLAG iBGP
|
label: MLAG iBGP
|
||||||
description: VLAN purpose
|
description: VLAN purpose
|
||||||
|
- name: trunk_groups
|
||||||
|
kind: List
|
||||||
|
optional: true
|
||||||
|
description: "Trunk groups restricting VLAN propagation (e.g., mlag-peer)"
|
||||||
|
- name: stp_enabled
|
||||||
|
kind: Boolean
|
||||||
|
default_value: true
|
||||||
|
description: "Enable spanning-tree on this VLAN (set false for MLAG peer VLANs)"
|
||||||
relationships:
|
relationships:
|
||||||
- name: vni
|
- name: vni
|
||||||
peer: InfraVNI
|
peer: InfraVNI
|
||||||
|
|||||||
Reference in New Issue
Block a user