Prolixium Communications Network: Difference between revisions
(60 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[File:pcn.png|thumb|280px|Prolixium Communications Network Logo]]The Prolixium Communications Network (known also as '''PCN''', '''mynet''', '''My Network''', | [[File:pcn.png|thumb|280px|Prolixium Communications Network Logo]]The Prolixium Communications Network (known also as '''PCN''', '''mynet''', '''My Network''', '''Prolixium .NET''', and '''My Hobby Network''') is a collection of small, geographically disperse, computer networks that provide [[IPv4]] and [[IPv6]], [[VPN]], and [[VoIP]] services to the [[Kamichoff]] family. Owned and operated solely by [[Mark Kamichoff]], PCN often serves as a testbed for various network experiments. Some of the PCN nodes are connected via residential data services ([[cable modem]]), while others are located in [[data center|data centers]] have [[Gigabit Ethernet]] (or better) connections to the [[Internet]]. | ||
== Current State == | == Current State == | ||
Line 5: | Line 5: | ||
=== Overview === | === Overview === | ||
[[file:wan.png|thumb|PCN WAN Architecture]][[file:pcn-world.png|thumb|PCN World Map]]As of | [[file:wan.png|thumb|PCN WAN Architecture]][[file:pcn-world.png|thumb|PCN World Map]]As of March 10, 2024, PCN is composed of several networks in the [[United States]] and across the globe, connected via [[OpenVPN]] and [[WireGuard]] with the IPv6 backbone connected via [[6in4]] tunnels: | ||
* [[North Brunswick, NJ]] | * [[North Brunswick, NJ]]: [[nat]].prolixium.com on [[FTTH]] via [[Verizon FiOS]] | ||
* [[ | * [[Piscataway, NJ]] | ||
* [[ | ** [[excalibur]].prolixium.com on Virtual I/O via [https://www.vultr.com/ Vultr] | ||
* [[ | ** [[dax]].prolixium.com on Virtual I/O via Vultr | ||
* [[Sarasota, FL]] | * [[Toronto, Canada]]: [[tiny]].prolixium.com on Virtual I/O via [http://atlantic.net/ atlantic.net] | ||
* [[ | * [[Dallas, TX]]: [[nox]].prolixium.com on Virtual I/O via [http://www.linode.com/ Linode] | ||
* [[ | * Dallas, TX: [[concorde]].prolixium.com on Virtual I/O via Vultr | ||
* [[Singapore]] | * [[Ashburn, VA]]: [[pegasus]].prolixium.com on Virtual I/O via [https://freerangecloud.com/ Free Range Cloud] | ||
* Ashburn, VA: [[daedalus]].prolixium.com on Virtual I/O via [https://tier.net/ Tier.Net] | |||
* Ashburn, VA: [[matrix]].prolixium.com on Virtual I/O via [https://cloud.oracle.com/ Oracle Cloud] | |||
* Ashburn, VA: [[elise]].prolixium.com on Virtual I/O via [https://cloud.oracle.com/ Oracle Cloud] | |||
* Ashburn, VA | |||
** [[discovery]].prolixium.com via [[Verizon FiOS]] | |||
** [[sprint]].prolixium.com via [[Verizon Wireless]] (LTE) | |||
* [[Seattle, WA]]: [[orca]].prolixium.com on Virtual I/O via Vultr | |||
* Seattle, WA: [[interstellar]].prolixium.com on Virtual I/O via Vultr | |||
* [[Sarasota, FL]]: [[scimitar]].prolixium.com on DOCSIS via Comcast Xfinity | |||
* [[Los Angeles, CA]]: [[trident]].prolixium.com Virtual I/O via [http://www.arpnetworks.com/ ARP Networks] | |||
* [[Clover, SC]]: [[trefoil]].prolixium.com on ADSL via [[Spectrum]] | |||
* [[York, SC]]: [[exodus]].prolixium.com on ADSL via [[AT&T]] | |||
* [[Austin, TX]]: [[photonic]].prolixium.com on FTTH via Google Fiber | |||
* [[Charlotte, NC]]: [[storm]].prolixium.com on FTTH via AT&T | |||
* [[Arlington, VA]]: [[merlin]].prolixium.com on Ethernet via Comcast Business / Zayo | |||
* [[Agawam, MA]]: [[galactica]].prolixium.com on DOCSIS via Comcast Xfinity | |||
* [[Amsterdam, Netherlands]]: [[firefly]].prolixium.com on Virtual I/O via [http://www.digitalocean.com/ DigitalOcean] | |||
* [[Singapore]]: [[centauri]].prolixium.com on Virtual I/O via [http://ec2.amazon.com/ Amazon EC2] | |||
Each site has multiple | Each site has multiple OpenVPN tunnels to other locations supporting both IPv4 and IPv6. The network is primarily powered by [[Free Range Routing]] (FRR) with some sites using [[BIRD]]. | ||
=== Routing === | === Routing === | ||
The routing infrastructure consists of several autonomous systems, taken from the IANA-allocated private range: 64512 through 65534. Each site runs IBGP, possibly with a route reflector, and its own [[IGP]] for local next-hop resolution. EBGP is used between sites and peering connections. IPv4 Internet connectivity for each site is achieved by advertisement of default routes from | The routing infrastructure consists of several autonomous systems, taken from the IANA-allocated private range: 64512 through 65534. Each site runs IBGP, possibly with a route reflector, and its own [[IGP]] for local next-hop resolution. EBGP is used between sites and peering connections. IPv4 Internet connectivity for each site is achieved by advertisement of default routes from boxes performing NAT. The [[Prolixium Communications Network#Lab|lab]] is connected to [[starfire]] (core router) in Ashburn, VA. The PCN used to use one large OSPF area with no EGP. It was converted to a [[BGP]] confederation setup, which was a bad idea (but educational!), then reconverted to its current state. | ||
[[file:bgpnet.png|280px|BGP on PCN]] | |||
=== IPv6 Connectivity === | === IPv6 Connectivity === | ||
IPv6 connectivity is provided by | IPv6 connectivity is provided by four (5) direct connections to Vultr (The Constant Company), ARP Networks, Free Range Cloud, and Tier.Net. A Hurricane Electric BGP tunnel is used as backups off excalibur & trident but is depreferenced. The border transit network piece of the PCN provides this connectivity. | ||
IPv6 addressing is out of 2620:6:2000::/44, which is a direct allocation from ARIN. | |||
==== Border Transit Network ==== | |||
The border transit network operates in AS395460 and consists of [[excalibur]], [[trident]], [[orca]], [[pegasus]], [[daedalus]], and [[concorde]]. Connectivity is provided by the following transit peers: | |||
* trident: AS25795 and AS6939 | |||
* excalibur: AS20473 and AS6939 | |||
* orca: AS20473 | |||
* concorde: AS20473 | |||
* pegasus: AS53356 | |||
* daedalus: AS397423 | |||
This network injects a default route into the rest of the PCN, which can be referred to PEN (Prolixium Enterprise Network). The border network receives a full table from all transits and advertises 2620:6:2000::/44 out each peer along with some sites advertising /48 specifics for networks that are nearby. | |||
Hurricane Electric (AS6939) is only used as backup because it is a tunneled connection and is suspected to be throttled. | |||
[[file:bgpnet-transit.png|280px|Border Transit Network]] | |||
[[file:pcn-world2-transit.png|280px|Border Transit Network Map]] | |||
The following hosts do not default route to the border transit network and use their own native IPv6 connectivity: | |||
* centauri | |||
* firefly | |||
* storm | |||
The following hosts may have IPv6 connectivity but it's not currently enabled (at time of writing): | |||
* exodus | |||
* galactica | |||
* photonic | |||
=== DNS === | === DNS === | ||
[[DNS]] is | [[DNS]] is done with two views: internal and external. PCN has two external nameservers, and four internal ones, all which perform zone transfers from the master nameserver, ns3.antiderivative.net. antiderivative.net is used for all NS records, as well as glue records at the GTLD servers. The internal nameservers are ns{1-4} and external ones are ns{2,3}. Each zone has two views, internal and external, and a common file that is included in both views (SOA, etc.). The zones include the following: | ||
* Internal view, answering to 10/8, 172.16/12, and 192.168/16 addresses | * Internal view, answering to 10/8, 172.16/12, and 192.168/16 addresses | ||
Line 36: | Line 89: | ||
** prolixium.com, prolixium.net, antiderivative.net, etc.'s external A/CNAME records | ** prolixium.com, prolixium.net, antiderivative.net, etc.'s external A/CNAME records | ||
* Common information, answering for all hosts | * Common information, answering for all hosts | ||
** | ** 0.0.0.2.6.0.0.0.0.2.6.2.ip6.arpa., and other reverse zones | ||
** prolixium.com, prolixium.net, antiderivative.net, etc.'s common MX records | ** prolixium.com, prolixium.net, antiderivative.net, etc.'s common MX records | ||
Line 45: | Line 98: | ||
All transit links on PCN are addressed using the prolixium.net domain. The format is {unit/VLAN}.{interface}.{host}.prolixium.net. For example, the xl1 interface on starfire would be: xl1.starfire.prolixium.net. There is a collection of DNS entries for every IPv4 and IPv6 transit link. There is not one hop in my network which has no PTR record (or a PTR record w/out a corresponding A or AAAA record). Each router has a loopback interface with IPv4 and IPv6 addresses (if supported). | All transit links on PCN are addressed using the prolixium.net domain. The format is {unit/VLAN}.{interface}.{host}.prolixium.net. For example, the xl1 interface on starfire would be: xl1.starfire.prolixium.net. There is a collection of DNS entries for every IPv4 and IPv6 transit link. There is not one hop in my network which has no PTR record (or a PTR record w/out a corresponding A or AAAA record). Each router has a loopback interface with IPv4 and IPv6 addresses (if supported). | ||
=== | === Ashburn-Specific Setup === | ||
[[file:charlotte.png|thumb| | [[file:charlotte.png|thumb|Ashburn LAN]]The network setup in Ashburn (formerly Seattle, WA and Charlotte, NC) is slightly different from the other sites, where there is a single router with a dynamic address. In the Ashburn location there are two ISPs and they're terminated in separate LXC instances (all with VPNs to at least one of interstellar, nox, dax, or elise - the "enterprise" network): | ||
* | * discovery (on evolution) - Verizon FiOS | ||
* | * sprint (on evolution) - Verizon Wireless (LTE) | ||
starfire | starfire and evolution are the two core routers with multiple Gigabit Ethernet interfaces. The current routing setup is as follows: | ||
* IPv6 (Internet & internal) inbound & outbound traffic traverses discovery (Verizon FiOS) via VPN | |||
* IPv4 Internet inbound & outbound traffic traverses discovery (Verizon FiOS) via NAT | |||
* All LXCs above advertise an IPv4 default route into OSPFv2 | |||
* LOCAL_PREF and AS_PATH prepending influence the traffic flow | |||
In the case of backup, discovery is replaced with the LXC sprint. | |||
In the past, NetFlow was used on atlantis, which was depicted in the drawing below: | |||
[[file:netflow.png|280px|PCN NetFlow Setup]] | [[file:netflow.png|280px|PCN NetFlow Setup]] | ||
The NetFlow collector ran [http://www.ntop.org/ ntop], but this was uninstalled due to instability. | |||
=== Printing === | === Printing === | ||
Line 71: | Line 132: | ||
[[file:smokeping.png|280px|SmokePing]] | [[file:smokeping.png|280px|SmokePing]] | ||
[[nox]] is the master for | [[nox]] is the master for a few slaves: | ||
* [[ | * [[tiny]] - VPS connected to atlantic.net | ||
* [[ | * [[storm]] - RPi 3 connected to AT&T Fiber | ||
* [[exodus]] - RPi 3 connected to AT&T DSL | |||
* [[galactica]] - RPi 4 B connected to Comcast Xfinity | |||
* [[photonic]] - RPi 4 B connected to Google Fiber | |||
* [[merlin]] - RPi 3 B connected to Comcast Business / Zayo | |||
* [[trefoil]] - RPi 5 connected to Spectrum | |||
== History == | == History == | ||
<div class="mw-collapsible mw-collapsed">History is hidden by default. Click '''expand''' to see it.<div class="mw-collapsible-content">''Warning: This entire section is written in the first-person ([[Mark Kamichoff|Mark Kamichoff's]]) point of view'' | |||
=== Beginnings === | === Beginnings === | ||
Line 156: | Line 222: | ||
=== EBGP Conversion === | === EBGP Conversion === | ||
I got sick of confederations, so I just removed the confederation statements and | I got sick of confederations, so I just removed the confederation statements and converted all of the inter-site links to straight EBGP.</div></div> | ||
== Applications == | == Applications == | ||
Line 164: | Line 228: | ||
PCN enables several applications: | PCN enables several applications: | ||
* | * VoIP (via [[SIP]] / G.711u) | ||
* IPv6 | * IPv6 Internet access | ||
* Streaming audio | * Streaming audio | ||
Line 176: | Line 240: | ||
== External Links == | == External Links == | ||
* [ | * [https://www.prolixium.com/mrtgfe PCN MRTG] | ||
* [http://www.prolixium.net/ PCN Home Page] | * [http://www.prolixium.net/ PCN Home Page] |
Latest revision as of 22:45, 12 May 2024
The Prolixium Communications Network (known also as PCN, mynet, My Network, Prolixium .NET, and My Hobby Network) is a collection of small, geographically disperse, computer networks that provide IPv4 and IPv6, VPN, and VoIP services to the Kamichoff family. Owned and operated solely by Mark Kamichoff, PCN often serves as a testbed for various network experiments. Some of the PCN nodes are connected via residential data services (cable modem), while others are located in data centers have Gigabit Ethernet (or better) connections to the Internet.
Current State
Overview
As of March 10, 2024, PCN is composed of several networks in the United States and across the globe, connected via OpenVPN and WireGuard with the IPv6 backbone connected via 6in4 tunnels:
- North Brunswick, NJ: nat.prolixium.com on FTTH via Verizon FiOS
- Piscataway, NJ
- Toronto, Canada: tiny.prolixium.com on Virtual I/O via atlantic.net
- Dallas, TX: nox.prolixium.com on Virtual I/O via Linode
- Dallas, TX: concorde.prolixium.com on Virtual I/O via Vultr
- Ashburn, VA: pegasus.prolixium.com on Virtual I/O via Free Range Cloud
- Ashburn, VA: daedalus.prolixium.com on Virtual I/O via Tier.Net
- Ashburn, VA: matrix.prolixium.com on Virtual I/O via Oracle Cloud
- Ashburn, VA: elise.prolixium.com on Virtual I/O via Oracle Cloud
- Ashburn, VA
- discovery.prolixium.com via Verizon FiOS
- sprint.prolixium.com via Verizon Wireless (LTE)
- Seattle, WA: orca.prolixium.com on Virtual I/O via Vultr
- Seattle, WA: interstellar.prolixium.com on Virtual I/O via Vultr
- Sarasota, FL: scimitar.prolixium.com on DOCSIS via Comcast Xfinity
- Los Angeles, CA: trident.prolixium.com Virtual I/O via ARP Networks
- Clover, SC: trefoil.prolixium.com on ADSL via Spectrum
- York, SC: exodus.prolixium.com on ADSL via AT&T
- Austin, TX: photonic.prolixium.com on FTTH via Google Fiber
- Charlotte, NC: storm.prolixium.com on FTTH via AT&T
- Arlington, VA: merlin.prolixium.com on Ethernet via Comcast Business / Zayo
- Agawam, MA: galactica.prolixium.com on DOCSIS via Comcast Xfinity
- Amsterdam, Netherlands: firefly.prolixium.com on Virtual I/O via DigitalOcean
- Singapore: centauri.prolixium.com on Virtual I/O via Amazon EC2
Each site has multiple OpenVPN tunnels to other locations supporting both IPv4 and IPv6. The network is primarily powered by Free Range Routing (FRR) with some sites using BIRD.
Routing
The routing infrastructure consists of several autonomous systems, taken from the IANA-allocated private range: 64512 through 65534. Each site runs IBGP, possibly with a route reflector, and its own IGP for local next-hop resolution. EBGP is used between sites and peering connections. IPv4 Internet connectivity for each site is achieved by advertisement of default routes from boxes performing NAT. The lab is connected to starfire (core router) in Ashburn, VA. The PCN used to use one large OSPF area with no EGP. It was converted to a BGP confederation setup, which was a bad idea (but educational!), then reconverted to its current state.
IPv6 Connectivity
IPv6 connectivity is provided by four (5) direct connections to Vultr (The Constant Company), ARP Networks, Free Range Cloud, and Tier.Net. A Hurricane Electric BGP tunnel is used as backups off excalibur & trident but is depreferenced. The border transit network piece of the PCN provides this connectivity.
IPv6 addressing is out of 2620:6:2000::/44, which is a direct allocation from ARIN.
Border Transit Network
The border transit network operates in AS395460 and consists of excalibur, trident, orca, pegasus, daedalus, and concorde. Connectivity is provided by the following transit peers:
- trident: AS25795 and AS6939
- excalibur: AS20473 and AS6939
- orca: AS20473
- concorde: AS20473
- pegasus: AS53356
- daedalus: AS397423
This network injects a default route into the rest of the PCN, which can be referred to PEN (Prolixium Enterprise Network). The border network receives a full table from all transits and advertises 2620:6:2000::/44 out each peer along with some sites advertising /48 specifics for networks that are nearby.
Hurricane Electric (AS6939) is only used as backup because it is a tunneled connection and is suspected to be throttled.
The following hosts do not default route to the border transit network and use their own native IPv6 connectivity:
- centauri
- firefly
- storm
The following hosts may have IPv6 connectivity but it's not currently enabled (at time of writing):
- exodus
- galactica
- photonic
DNS
DNS is done with two views: internal and external. PCN has two external nameservers, and four internal ones, all which perform zone transfers from the master nameserver, ns3.antiderivative.net. antiderivative.net is used for all NS records, as well as glue records at the GTLD servers. The internal nameservers are ns{1-4} and external ones are ns{2,3}. Each zone has two views, internal and external, and a common file that is included in both views (SOA, etc.). The zones include the following:
- Internal view, answering to 10/8, 172.16/12, and 192.168/16 addresses
- 3.10.in-addr.arpa. and 3.16.172.in-addr.arpa. reverse zones
- prolixium.com, prolixium.net, antiderivative.net, etc.'s internal A/CNAME records
- External view, answering to everything !RFC1918
- prolixium.com, prolixium.net, antiderivative.net, etc.'s external A/CNAME records
- Common information, answering for all hosts
- 0.0.0.2.6.0.0.0.0.2.6.2.ip6.arpa., and other reverse zones
- prolixium.com, prolixium.net, antiderivative.net, etc.'s common MX records
Previously, the Xicada DNS Service (developed by Mark Kamichoff) kept track of all the forward delegations as well as IPv4 reverse delegations on Xicada. The administrator of each node enumerated their zones into a web form, and then configured their DNS server to pull down a forwarders definition for all Xicada zones. It supported BIND and djbdns, but also outputted a CSV file if someone decided to use another DNS server. It was originally intended that each DNS server should pull down a fesh copy of the forwarders definition file nightly, but there were really no rules.
Mark Kamichoff has a policy on his network to have DNS entries (includes A, AAAA, and PTR) for each and every active IP address. If a host is offline, the DNS records should be immediately expunged. This precludes the requirement of a host management system or a collection of poorly-maintained spreadsheets. If an IP is needed, the PTR should be checked. All DHCP-assigned IP addresses are created via {side ID}-{lastoctet}.prolixium.com. Again, no confusion. DNS itself is a database, so why not use it?
All transit links on PCN are addressed using the prolixium.net domain. The format is {unit/VLAN}.{interface}.{host}.prolixium.net. For example, the xl1 interface on starfire would be: xl1.starfire.prolixium.net. There is a collection of DNS entries for every IPv4 and IPv6 transit link. There is not one hop in my network which has no PTR record (or a PTR record w/out a corresponding A or AAAA record). Each router has a loopback interface with IPv4 and IPv6 addresses (if supported).
Ashburn-Specific Setup
The network setup in Ashburn (formerly Seattle, WA and Charlotte, NC) is slightly different from the other sites, where there is a single router with a dynamic address. In the Ashburn location there are two ISPs and they're terminated in separate LXC instances (all with VPNs to at least one of interstellar, nox, dax, or elise - the "enterprise" network):
- discovery (on evolution) - Verizon FiOS
- sprint (on evolution) - Verizon Wireless (LTE)
starfire and evolution are the two core routers with multiple Gigabit Ethernet interfaces. The current routing setup is as follows:
- IPv6 (Internet & internal) inbound & outbound traffic traverses discovery (Verizon FiOS) via VPN
- IPv4 Internet inbound & outbound traffic traverses discovery (Verizon FiOS) via NAT
- All LXCs above advertise an IPv4 default route into OSPFv2
- LOCAL_PREF and AS_PATH prepending influence the traffic flow
In the case of backup, discovery is replaced with the LXC sprint.
In the past, NetFlow was used on atlantis, which was depicted in the drawing below:
The NetFlow collector ran ntop, but this was uninstalled due to instability.
Printing
The whole printing/CUPS/lpd setup is mostly an annoyance. Most people would want to run CUPS on every Unix client on the network. Mark Kamichoff believes it's better to have a lightweight client send a PostScript file via lpd to a CUPS server rather than sending a huge RAW raster stream across the network and have both the client and server do print processing. See the diagram to the bottom:
SmokePing
For monitoring, PCN uses a combination of Nagios, SmokePing, and MRTG. The SmokePing setup itself is a combination of slaves and masters, both IPv4 and IPv6.
nox is the master for a few slaves:
- tiny - VPS connected to atlantic.net
- storm - RPi 3 connected to AT&T Fiber
- exodus - RPi 3 connected to AT&T DSL
- galactica - RPi 4 B connected to Comcast Xfinity
- photonic - RPi 4 B connected to Google Fiber
- merlin - RPi 3 B connected to Comcast Business / Zayo
- trefoil - RPi 5 connected to Spectrum
History
Applications
PCN enables several applications:
- VoIP (via SIP / G.711u)
- IPv6 Internet access
- Streaming audio
Lab
- Main Article: PCN Lab
The PCN lab is Mark Kamichoff's network proving ground and general hacking arena.