Skip to content

Commit

Permalink
content
Browse files Browse the repository at this point in the history
  • Loading branch information
mencken-d committed Dec 12, 2024
1 parent 20f47f5 commit 9ee94ab
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
6 changes: 3 additions & 3 deletions pages/3/3_2.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
l1idx: 3
l2idx: 2
title: "Automated Virtual-lab Modeling of Arista Swtiches"
title: "Automated Virtual-lab Modeling of Arista Switches"
permalink: 3_2.html
summary: "At least as much journey as destination, but a fun package of Python modules to poll Arista switches' EOS API and turn their collective run-states into a GNS3 virtual lab."
summary: "A Python package for polling Arista switches' EOS API and turning their collective run-states into a GNS3 virtual lab."
---

### TL/DR
Expand Down Expand Up @@ -92,7 +92,7 @@ Asynchronous loop (single-thread).

#### A Netbox Plugin

After I was convinced that the dcnodatg module worked the way I wanted it to, I wrote a Netbox plugin to expose the functionality directly through Netbox's web-UI (and API.) The front-end is admitedly a bit lean so far, but it exposes a form to:
After I was convinced that the dcnodatg module worked the way I wanted it to, I wrote [a Netbox plugin to expose the functionality](https://github.com/menckend/netbox_ptov) directly through Netbox's web-UI (and API.) The front-end is admitedly a bit lean so far, but it exposes a form to:

- Collect eAPI credentials and to
- Select which Arista devices (from the existing Netbox device table/inventory) to model
Expand Down
20 changes: 12 additions & 8 deletions pages/3/3_3.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,11 +131,15 @@ The following tables enumerate the details of each of the DNS flows/messages in

###### Resolving www.bing.com (with no recursion or zone-forwarding on ${newDnsServers})

| Flow Index | Description | Notes | | |
|------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|---|
| a | Client device send DNS query for resolution of "www.bing.com" to ${enterpriseDnsServers} | DNS UDP flow. Query might specify "A" or "ANY" record types in the QTYPE field; will request recursion. | | |
| c | ${enterpriseDnsServers} sends a query(requesting recursion) for http://www.bing.com to ${newDnsServers} | On receiving flow "a", ${enterpriseDnsServers}' recursive resolver function sees "www.bing.com" defined as a zone of type "forward" and sees the IP address (or FQDN) of ${newDnsServers} listed as the forwarding-server | | |
| d | ${newDnsServers} sends a response to flow "c" to ${enterpriseDnsServers} (with the CNAME record for http://www.bing.com) | On receiving flow "c", ${newDnsServers} executes the algorithm in section 4.3.2 of RFC1034. It observes that recursion is not enabled, but that it is authoritative for bing.com, and that the matching node is a CNAME record. It adds the CNAME record to the ANSWERS record-set and starts the algorithm again, using the canonical-name (nochat.bing.com) as the QNAME. It does not find any more matching nodes or helpful records, so it sends the response to ${enterpriseDnsServers} with only the CNAME record included, and indicating that recursion was not performed. | | |
| g | ${enterpriseDnsServers} sends a query for "nochat.bing.com" to ${msDnsServers} | On receiving flow "d" the ${enterpriseDnsServers} first appends the CNAME record it just received to the ANSWERS section of the response it is preparing to the original query from flow "a". It then attempts to resolve the canonical name ("nochat.bing.com") from that CNAME record.. Assuming that the "A" record for "nochat.bing.com" has not been previously cached, ${enterpriseDnsServers} attempts iterative resolution (of "nochat.bing.com") and is eventually referred to ${msDnsServers}. It then sends a query for "nochat.bing.com" to ${msDnsServers} | | |
| h | ${msDnsServers} send a response to ${enterpriseDnsServers} with the "A" record for "nochat.bing.com") | Took us long enough! | | |
| b | ${enterpriseDnsServers} sends a response to the originating user/client (from flow "a") | On receiving flow "h", the ${enterpriseDnsServers}extract the "A" record for "nochat.bing.com" and append it to the "answers" section of the response it has been preparing for the query from flow "a" – and it sends that response to the originating client. The "answers" section of the response contains the CNAME record aliasing http://www.bing.com to nochat.bing.com as well as the A record for nochat.bing.com. | | |
{% capture details %}
> {:class="table-alpha"}
> | Flow Index | Description | Notes | | |
> |------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|---|
> | a | Client device send DNS query for resolution of "www.bing.com" to ${enterpriseDnsServers} | DNS UDP flow. Query might specify "A" or "ANY" record types in the QTYPE field; will request recursion. | | |
> | c | ${enterpriseDnsServers} sends a query(requesting recursion) for http://www.bing.com to ${newDnsServers} | On receiving flow "a", ${enterpriseDnsServers}' recursive resolver function sees "www.bing.com" defined as a zone of type "forward" and sees the IP address (or FQDN) of ${newDnsServers} listed as the forwarding-server | | |
> | d | ${newDnsServers} sends a response to flow "c" to ${enterpriseDnsServers} (with the CNAME record for http://www.bing.com) | On receiving flow "c", ${newDnsServers} executes the algorithm in section 4.3.2 of RFC1034. It observes that recursion is not enabled, but that it is authoritative for bing.com, and that the matching node is a CNAME record. It adds the CNAME record to the ANSWERS record-set and starts the algorithm again, using the canonical-name (nochat.bing.com) as the QNAME. It does not find any more matching nodes or helpful records, so it sends the response to ${enterpriseDnsServers} with only the CNAME record included, and indicating that recursion was not performed. | | |
> | g | ${enterpriseDnsServers} sends a query for "nochat.bing.com" to ${msDnsServers} | On receiving flow "d" the ${enterpriseDnsServers} first appends the CNAME record it just received to the ANSWERS section of the response it is preparing to the original query from flow "a". It then attempts to resolve the canonical name ("nochat.bing.com") from that CNAME record.. Assuming that the "A" record for "nochat.bing.com" has not been previously cached, ${enterpriseDnsServers} attempts iterative resolution (of "nochat.bing.com") and is eventually referred to ${msDnsServers}. It then sends a query for "nochat.bing.com" to ${msDnsServers} | | |
> | h | ${msDnsServers} send a response to ${enterpriseDnsServers} with the "A" record for "nochat.bing.com") | Took us long enough! | | |
> | b | ${enterpriseDnsServers} sends a response to the originating user/client (from flow "a") | On receiving flow "h", the ${enterpriseDnsServers}extract the "A" record for "nochat.bing.com" and append it to the "answers" section of the response it has been preparing for the query from flow "a" – and it sends that response to the originating client. The "answers" section of the response contains the CNAME record aliasing http://www.bing.com to nochat.bing.com as well as the A record for nochat.bing.com. | | |
{% endcapture %}
{% capture summary %}Use Case 1{% endcapture %}{% include details.html %}

0 comments on commit 9ee94ab

Please sign in to comment.