Prolixium Communications Network: Difference between revisions

From Prolixium Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 71: Line 71:
* storm
* storm
* exodus
* exodus
* galactica


=== DNS ===
=== DNS ===

Revision as of 06:10, 31 January 2020

Prolixium Communications Network Logo

The Prolixium Communications Network (known also as PCN, mynet, My Network, and Prolixium .NET) 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. The majority of the PCN nodes are connected via residential data services (cable modem), while some located in data centers have Fast Ethernet connections to the Internet.

Current State

Overview

PCN WAN Architecture
PCN World Map

As of July 28, 2018, PCN is composed of several networks along the east coast of the United States, connected via OpenVPN and legacy 6in4 tunnels:

Each site has multiple (network is almost fully-meshed) OpenVPN tunnels to other locations, each with a 6in4 tunnel inside, providing both IPv4 and IPv6 communications with data protection and security. Quagga's ospfd, ospf6d, and bgpd are used in the production network (the term production is relative) on commodity PC hardware, while the Seattle site also utilizes Juniper SRX and SSG firewalls.

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 machines performing NAT. The lab is connected to starfire in Seattle (sea). The PCN used to use one large OSPF area: no EGP. It was converted to a BGP confederation setup, then reconverted to its current state.

BGP on PCN

IPv6 Connectivity

IPv6 connectivity is provided by four (4) direct connections Vultr, Choopa, and ARP Networks. A Hurricane Electric BGP tunnel is used as backups in LAX and EWR2. 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, and concorde. Connectivity is provided by the following:

  • trident: AS25795 and AS6939
  • excalibur: AS20473 and AS6939
  • orca: AS20473
  • concorde: AS20473

This network injects a default route into the rest of the PCN, which can be referred to PEN (Prolixium Enterprise Network). The border network itself receives a full table from all transits and advertises 2620:6:2000::/44 to each.

Border Transit Network

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
  • valen
  • remus

The following hosts have IPv6 connectivity but are firewalled:

  • storm
  • exodus
  • galactica

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
    • 180/30.189.9.69.in-addr.arpa., 232/29.186.9.69.in-addr.arpa, 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).

Seattle-Specific Setup

Seattle LAN

The network setup in Seattle (formerly Charlotte) is slightly different from the other sites, where there is one router with a dynamic address. Comcast Business provides a static prefix (50.248.192.200/29), which has the following assignments:

  • Juniper Networks SRX100 (einstein)
  • Juniper Networks SSG 20 Wireless (e)
  • Cisco ASA 5505 (hubris)
  • Linux router (starfire)
  • LXC on starfire (valen)

starfire is the core router with 5x Gigabit Ethernet interfaces. VPN traffic leaves starfire and is used as a NAT gateway for all RFC 1918 internal hosts that need to access the IPv4 Internet. In the past, NetFlow was used on atlantis, which was depicted in the drawing below:

PCN NetFlow Setup

The NetFlow collector ran ntop, but this was uninstalled due to instability.

Backup Internet Access

Backup internet access is provided by evolution, an APU box that has an LXC, sprint, which provides connectivity to the rest of PEN for IPv6 access in the case of a failure. Internet connectivity is provided by the following:

  • sprint: Verizon Wireless

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:

PCN Printing Setup

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.

SmokePing

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 3 B+ connected to Comcast Xfinity

History

History is hidden by default. Click expand to see it.

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.

External Links