-
Notifications
You must be signed in to change notification settings - Fork 7
docs: add design information around neutron usage #904
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add an initial document that describes the behaviors and interactions of neutron with the system and where our code lives.
skrobul
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here are my post-merge 2 cents
| To provide available VNIs a [network segment range][neutron-network-segment-range] is | ||
| created of type VXLAN with the name of the fabric. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggest: VNIs are provisioned by creating a VXLAN network segment range on the fabric with the same name as the VNI."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about...
An available pool of VNIs is defined by creating a VXLAN network segment range
with the same name as the fabric on which the VNIs will reside.
| When a server needs to have a connection to a network, it's `local_link_connection` | ||
| information is looked up. The `physical_network` is then used to attempt to map | ||
| the port to how it connects on the network. This is documented in Ironic's | ||
| Networking Guide as [VIF Attachment][ironic-vif-attachment]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a server needs to establish a connection to a network, Ironic checks the baremetal port's local_link_connection and physical_network attributes to determine how it should be mapped to the desired network. This information is documented in Ironic's Networking Guide as [VIF Attachment][ironic-vif-attachment].
| the port to how it connects on the network. This is documented in Ironic's | ||
| Networking Guide as [VIF Attachment][ironic-vif-attachment]. | ||
|
|
||
| If that VNI is not already mapped to a VLAN on the leaf pair where the server |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's unclear where the VNI information originates. We should explain what inputs are used, such as physical_network and local_link_connection. Additionally, it would be helpful to clarify which component or system is responsible for mapping these attributes to a VNI—whether it's Nautobot, Ironic, or the Neutron driver.
| Now we can look at the ports and confirm that indeed this segment exists to provide | ||
| connectivity to this server. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Now we can look at the ports and confirm that indeed this segment exists to provide | |
| connectivity to this server. | |
| Now we can check the ports to confirm that this segment indeed exists to provide connectivity to the server. |
| The Leaf/Spine network is implemented as a VNI that exists on the fabric with | ||
| endpoints on each of the leaves that need connectivity being mapped to a VLAN | ||
| to provide connectivity to physical assets connected to that leaf. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Leaf/Spine network is implemented as a VNI
The Leaf/Spine is a physical or logical topology (the underlying network structure for a fabric).
A VNI (VXLAN Network Identifier) is a logical identifier for a specific virtual network segment that runs over the Leaf/Spine fabric (the underlay). You don't implement the topology as a VNI. You implement virtual networks (like VXLAN segments using VNIs) on top of or over the Leaf/Spine topology.
...with endpoints on each of the leaves... being mapped to a VLAN
While endpoints (like servers) are connected to ports that are part of a VLAN on the leaf switch, saying the "endpoints... being mapped to a VLAN" is awkward phrasing. More accurately, endpoints reside in or are connected to a VLAN on the access port of the leaf. The VLAN itself is then typically mapped to a VNI at the VTEP (our leaf switch) to transport the traffic across the VXLAN fabric.
should we go with something like:
| The Leaf/Spine network is implemented as a VNI that exists on the fabric with | |
| endpoints on each of the leaves that need connectivity being mapped to a VLAN | |
| to provide connectivity to physical assets connected to that leaf. | |
| In a Leaf/Spine fabric, VXLAN VNIs are used to create virtual network segments that run over the IP underlay. On the leaf switches, traditional VLANs connected to physical assets are typically mapped to specific VNIs to provide connectivity across the fabric. |
| no direct call for this via the Neutron API. This method is triggered by | ||
| Neutron based on certain data provided to port creation and update API calls. | ||
|
|
||
| `bind_port()` will be triggered in the following situation: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| `bind_port()` will be triggered in the following situation: | |
| `bind_port()` will be triggered in the following situations: |
Add an initial document that describes the behaviors and interactions of neutron with the system and where our code lives.