Single-server LAN party
The goal of SaltLAN's network and server infrastructure was designed to be small, single-system, and cheap, while meeting all of our requirements: Caching, Game servers, monitoring, and 100Mb/s to the client.
I wanted to build SaltLAN after attending a LAN party in May, 2016. While the LAN was a lot of fun and it featured a great giveaway, awesome unlimited drinks and cool people, however, there were some massive networking problems.
- No dedicated LAN servers for games like TF2. People had to try and host local games, but nobody could see/connect to the game.
- Bad switches/using home routers instead of an unmanaged switch with distribution switches. Nobody could talk to each other.
- Slow internet (20Mbps max). Not everybody had certain games, and the day of the LAN, there was a massive TF2 update. It killed the network several times.
//side note: For anyone who's wondering why I'm releasing so much information on the setup and the possibility that this information might lead to a breach of network security:
- I am moderately confident in our network security and IDS.
- ALL of the network information is readily available to anyone who runs a basic nmap scan at the event.
- I want this information to be public. I spent a lot of time piecing pieces of information together from tons of sites and I want it to be available to anybody who looks.
Component | Hardware |
---|---|
CPU | Xeon E3 1220v5 |
RAM | 32GB DDR4 |
Storage | 512GB Samsung EVO SSD |
3TB WD BLACK HDD | |
Networking | 3x 1Gbps NICS |
1x 1Gbps NIC for WAN | |
2x 1Gbps NICs bonded for 2Gbps into LAN |
Component | Hardware |
---|---|
Core switch | 1x Cisco SLM 2048 48 port Gigabit switch |
Disribution switches | 6+x Netgear Prosafe 24 port 10/100 switch with 2x 1Gbps uplink |
Component | Software |
---|---|
OS | Ubuntu server 16.04 |
DHCP | Dnsmasq |
DNS | Dnsmasq |
Caching | Docker |
Game servers | Linux Game Server Manager |
Usage monitoring | Grafana |
Usage storage | InfluxDB |
Usage collection | Telegraf |
IP Address | Hostname | Port | Interface | Service | Comments |
---|---|---|---|---|---|
10.0.0.1 |
router.saltlan.org |
N/A | eno2 |
Router | Basic NAT and IPv4 forwarding |
10.0.0.1 |
dns.saltlan.org |
53 |
eno2 |
Dnsmasq | DNS |
10.0.0.1 |
dhcp.saltlan.org |
N/A | eno2 |
Dnsmasq | DHCP |
10.0.0.2 |
steam.cache.saltlan.org |
80 |
eno2:2 |
Docker | Steam cache |
10.0.0.3 |
blizzard.cache.saltlan.org |
80 |
eno2:3 |
Docker | Battle.net cache |
10.0.0.4 |
origin.cache.saltlan.org |
80 |
eno2:4 |
Docker | Origin cache |
10.0.0.5 |
uplay.cache.saltlan.org |
80 |
eno2:5 |
Docker | Uplay cache |
10.0.0.6 |
ps4.cache.saltlan.org |
80 |
eno2:6 |
Docker | Sony (PS4) |
10.0.0.7 |
microsoft.cache.saltlan.org |
80 |
eno2:7 |
Docker | Microsoft |
10.0.0.8 - 9 |
Reserved | N/A | N/A | N/A | |
10.0.0.10 |
csgo.server.saltlan.org |
27015 |
eno2:10 |
LGSM | CS:GO server |
10.0.0.11 |
tf2.server.saltlan.org |
27015 |
eno2:11 |
LGSM | TF2 server |
10.0.0.12 |
q3.server.saltlan.org |
27015 |
eno2:12 |
LGSM | Quake 3 server |
10.0.0.13 |
insurgency.server.saltlan.org |
27015 |
eno2:13 |
LGSM | Insurgency server |
10.0.0.14 |
ss3.server.saltlan.org |
27015 |
eno2:14 |
LGSM | Serious Sam 3 server |
10.0.0.15 |
chiv.server.saltlan.org |
27015 |
eno2:15 |
LGSM | Chivalry server |
10.0.0.16 |
starbound.server.saltlan.org |
27015 |
eno2:16 |
LGSM | Starbound server |
10.0.0.17 |
factorio.server.saltlan.org |
27015 |
eno2:17 |
LGSM | Factorio server |
10.0.0.18 - 19 |
Reserved | N/A | N/A | N/A | N/A |
10.0.0.20 - 250 |
DHCP Range | N/A | N/A | N/A | N/A |
10.0.0.251 - 253 |
Reserved | N/A | N/A | N/A | N/A |
10.0.0.254 |
core.network.saltlan.org |
80/443 |
N/A | Cisco | SLM2048 core switch |
10.0.0.255 |
Broadcast | N/A | N/A | N/A | N/A |