External Network Considerations

Allocations

We’ve got a lot of IP addresses and ranges allocated to us by various parties. Here’s an attempt to keep track of them all.

Address/block Where What From Whom
128.220.70.0/24 Malone VLAN 13 Cluster JHU Internal (“oldcs”) JHU IT
128.220.251.32/29 Malone DMZ Cluster JHU DMZ (“ff”) JHU IT
128.220.35.176/28 Malone VLAN 35 CS public subnet CS
10.161.159.216/29 Malone VLAN 159 CS private subnet CS
2606:2B00:0:410::/64 ??? JHU IPv6 network JHU IT

Internally, the subnets from JHU IT are allocated to:

Address/block Controller What
128.220.70.0/25 Various ACM servies and physical hosts
128.220.70.128/26 Gomes via Openstack ACM virtual machines
128.220.70.192/26 Gomes via OpenStack User virtual machines
128.220.251.32/29 Magellan, Gomes See tables below

Note

As of this writing, 251.38 is unallocated.

Security Policies

Network security manages the JHU border gateway policy for 128.220.70.0/24 and requires us to have a clean-slate report to their scanning tools for external access to be granted. Contact network.security@jhu.edu to get the policy adjusted, but please try to keep the tables below up-to-date, too!

This means, among other things, that we are obligated to not attempt IP-address-based restrictions that would keep the following IP addresses from probing our systems: 10.181.169.162, 10.181.169.163, 10.181.169.164, 10.15.69.217, 10.15.69.218, 10.15.69.219, 128.220.242.60, 10.131.228.26, and 10.132.160.55. Thankfully, for the most part, public services offered by our cluster are not restricted by IP address anyway.

Naming

Details of how subnet DNS entries are managed can be found in Managing External DNS.

DHCP or other Dynamic Configuration

Our allocations from CS can be managed by CS’s DHCP server; for somewhat obvious reasons they don’t want us running our own on their network. To adjust the MAC/IP map, send mail to support@cs.

Our direct allocations are manually managed and do not use dynamic configuration.

Cluster Common Considerations

The cluster is a big mess internally that gets services exposed on a handful of IP addresses, both inside the JHU firewall and outside and has somewhat interesting egress rules. This page attempts to document the thinking behind some of our port maps, but is non-authoritative (the authority, of course, is what is configured on the cluster gateway).

For the moment, we use shorewall to manage our network configuration.

Multi-Provider Egress and Tracking

We have two providers configured, in /etc/shorewall/providers:

csprov  1  0x1000  main  $NET_IF_CS  128.220.70.1    track  $NET_IFS_INTERNAL
ffprov  2  0x2000  main  $NET_IF_FF  128.220.251.33  track  $NET_IFS_INTERNAL

The track directive ensures that we route responses back out the interface on which things arrived. /etc/shorewall/rtrules describes the egress rules. This file differs between Magellan and Gomes, but in rough schematic:

#SOURCE           DEST            PROVIDER        PRIORITY
-                 10.0.0.0/8      csprov          26000

$NET_CIDR_OS_A_CS -               csprov          26000
$NET_CIDR_OS_A_FF -               ffprov          26000
$NET_CIDR_OS_U_CS -               csprov          26000

These rules ensure that, unless otherwise indicated by the ingress-attached tracking labels, that outbound traffic to JHU-internal RFC1918 addresses egress via the behind-firewall interface. The $NET_CIDR_OS lines dictate how egress from our OpenStack VMs is routed – the _A_ regions are for VMs under administrative control while _U_ are for VMs running user code.

The contents of /etc/shorewall/masq follow along. Again, this file differs between Magellan and Gomes, but in rough sketch:

$NET_CS_IF              $NET_OS_A_CS_CIDR
$NET_FF_IF              $NET_OS_A_FF_CIDR
$NET_CS_IF              $NET_OS_U_CS_CIDR       $AEOLUS_CS_EXT

Ingress

It will probably be clearer to present the contents of /etc/shorewall/rules in a tabular form:

Magellan

IP Address Port JHU Public Description
.70.63 (magellan)      
TCP 22 No Magellan itself listening on SSH
UDP 7000,7005 Yes Alt. address for 128.220.251.36 file server
.70.64 (magellan2)      
UDP 7000,7005 Yes Alt. address for 128.220.251.35 file server
.251.34 (seattle)   DMZ  
    (User firewall free egress address: Multi-Provider Egress and Tracking
UDP 7000,7005   AFS scratch and mirror server
.251.36 (magellan)   DMZ  
TCP 22   Magellan itself listening on SSH
UDP 7000,7005   AFS homedirs and services server

Gomes

IP Address Port JHU Public Description
.70.55 (astrolabe)      
TCP 80, 443 Yes Mirrors web server
.70.65 (centaur) [enet-acm]      
TCP 22 Yes All-users SSH server (conch)
TCP 80, 443 Yes User web server (web.vm)
TCP 25, 465, 587 Yes ACM mail service (centaur.vm)
.70.74 (nagios)      
TCP 80 Yes Nagios worker machine (bigbrother.trinidad)
ICMP   Nagios worker machine (bigbrother.trinidad)
.70.79      
.70.82 (belthazar)      
TCP 22 Yes Egg Shell (JHED AD Integration)
TCP 80,443 Yes Mailman web interface (lists.acm.jhu.edu)
    (User firewalled egress address: Multi-Provider Egress and Tracking
.70.84      
.70.90      
.70.91      
.251.35 (batman)   DMZ  
TCP 22   All-users SSH server (conch.ff.uvm)
TCP 4242   Quassel IRC agent (quassel.vm)
TCP 6080   Sandstorm alias
.251.37 (london)   DMZ  
[enet-acm]For historical reasons, we have an A record in DNS for our domain. This IP address should probably have the “canonically ACM” things listening on it. At present, this address is inside the JHU firewall.

Todo

It might be nice to have this table generated automatically from the contents of the various rules files, actually. No?

Services Without the Cluster

For the sake of eliminating SPOFs on critical services, the following services are run on hosts entirely outside the cluster gateway. So even if everything falls over, authentication and name resolution should continue to function.

IP Address Port JHU Public Description
.70.76 (typhon)      
TCP 22 Yes SSH
TCP 53 Yes DNS
TCP 389 Yes LDAP
UDP 53 Yes DNS
UDP 88 Yes Kerberos KDC
UDP 7000 Yes AFS Fileserver (esp. replicas)
UDP 7002,7003 Yes AFS DBs
UDP 7005 No AFS VolSer
UDP 7007 No AFS BosServer
.70.53 (crimea)     Mail server
TCP 22 Yes SSH
TCP 25 Yes Mail ingress
TCP 80/443 Yes Mailing list web interface
UDP 7000 Yes AFS Fileserver reservation Crimea is not an AFS server now!
.35.178 (echidna)     (Services here are replicas from Typhon)
TCP 22 Yes SSH
TCP 53 Yes DNS
TCP 389 Yes LDAP
UDP 53 Yes DNS
UDP 88 Yes Kerberos KDC
UDP 7000 Yes AFS Fileserver (esp. replicas)
UDP 7002,7003 Yes AFS DBs
UDP 7005 No AFS VolSer
UDP 7007 No AFS BosServer
.35.191 (chicago)     (Most services here are replicas from Typhon)
TCP 22 Yes SSH
TCP 53 Yes DNS
TCP 389 Yes LDAP
UDP 53 Yes DNS
UDP 88 Yes Kerberos KDC
UDP 7000 Yes AFS Fileserver (esp. replicas)
UDP 7002,7003 Yes AFS DBs
UDP 7005 No AFS VolSer
UDP 7007 No AFS BosServer