Personal tools

LAN Guide
Jump to: navigation, search

// Todo: // Individual game server pages // Info about Steam at a LAN // Finish this page


Contents

LANing, from a Server Admin's Perspective

The basis of a good LAN is it's network. No network, no LAN. So, we'll assume you're doing things the real man's way and you have a PC you have for your server box, and you have a network of some description. From this server, you'll run DHCP, DNS, game servers, maybe a web server. Maybe you'll have more than one server. For the most part, the theory doesn't change much from Windows to Linux. If you only know windows, then Windows does the job perfectly fine.


DHCP - Making your guest's lives easier

Having every guest at your LAN manually assign an IP address is an unnecessary inconvenience for them, especially when DHCP servers are so easy to set up and run.

Dynamic Host Configuration Protocol, or DHCP, is just what the name suggests - a way of dynamically configuring the hosts on your network. In it's simplest form, which is all you need for a LAN, DHCP assigns an IP address, DNS servers, gateway address and subnet mask to the clients, allowing them to communicate via TCP/IP.

To start off, the PC hosting the DHCP server needs to have a network interface with a static IP address. This means the PC needs to have an IP address and subnet mask manually assigned. This is the interface the DHCP server will listen on, so this needs to be connected to the LAN's network.

The IP address you pick for the server should be a part of the subnet you will be assigning DHCP adressess for. It doesn't have to be, but it's good practice, as you'll probably only have one subnet in the LAN.

Let's teach by example.

// TODO: Clean up the example to reflect actual settings and terminology of common DHCP server software.

A configuration for a 100 client DHCP configuration:

IP: 10.0.0.1
Subnet mask: 255.255.255.0
DHCP Start Adress: 10.0.0.100
DHCP Finish Address: 10.0.0.200
Broadcast Adress: 10.0.0.255
Gateway: 0.0.0.0
DNS Server: 10.0.0.1

- Explain what the configuration does.


-Link to windows DHCP software, info about dhcpd for linux. Quick overview of how to configure (subnets, gateway, etc) -Static IP for servers - can tell DHCP to assign certain IP based on MAC/hostname

DNS - Making your life easier

So now you've got your servers sitting on the network with a static IP address assigned, and all the clients automatically get some random IP that will let them do magic things. But damn, it's so hard remembering all those IP addresses for important bits of network infrastructure, eh?

DNS, or Domain Name System, allows you to assign text names to IP addresses.

To use DNS at a LAN, you really don't need to understand much at all. Firstly, you need a Top Level Domain - we'll use .lan for this example (this is the equivalent of .com). All of the addresses we make come under the .lan top level domain, so for instance, tf2.lan would be where I'd put my TF2 server.

To create an address, you need to create an "A record".(Or if you're using IPv6, AAA records) Using the above example, we'd make the A record called tf2.lan and point it to 10.0.0.5, my TF2 server.

The record also needs a TTL (Time To Live) value of, say, 1 minute. The TTL value is how long the clients should cache the value of tf2.lan for. It could be the entire length of the LAN, but for all you know, the server might crash and die, and TF2 is moved to another server. If that were to happen, I could update the A record for tf2.lan, and within the minute, I could go "connect tf2.lan" in my game's console, and be connecting to the server.

It should be noted that multiple DNS addresses can point to the same IP address. If you've got Team Fortress 2, Left4Dead and Counter Strike: Source all running on the one box, then it is perfectly acceptable to point tf2.lan, l4d.lan and css.lan to the same address.

It should also be noted that you can create sub domains from each domain, eg, comp1.tf2.lan and comp2.tf2.lan, however, if you're running a LAN big enough to need multiple competition servers like that, then you should already understand the basics of DNS administration.

Furthermore, some DHCP servers will work in tandem with a DNS server and automatically assign a DNS address to each DHCP client.

Windows DNS Servers

  • Bind[1] for Windows[2] - Open Source software maintained by ISC[3], industry standard.
  • SimpeDNS Plus[4] - Sports a simple to use GUI, but comes with a price tag.
  • Microsoft DNS, included with the server editions of Windows.

Linux DNS Servers

  • Bind

Web server option

-Competition management -Server management (link to phpUA) -Food ordering, discussion system.


Game Servers

Competitions can be serious things. Leaving it up to the players to host servers themselves can only be trouble, so as the Server Admin for the LAN, you must set up some game servers.

It is recommended to research how many players for a certain game you are able to load on to your server; should the server start lagging even slightly in the middle of a CS:S final due to the multiple 32 player UT3 matches running, you will be certain to hear about it.

Below are articles detailing how to set up a number of common game servers.

-Links to other pages detailing what sort of specs and bandwidth are needed -Note about optimising for LAN - for comps, run up update rates reasonably high - we're running gigabit here, so bandwidth is not an issue.

Remote Access for game Servers

If you have more than one server, it's often impractical to have a separate keyboard, mouse and screen for each of them. It may even be impractical to have a separate set for the servers at all (space may be a large concern). It is in these cases where Remote Access software will help you immensely.

Which software you use depends on which platform you use.

Windows

Built in to Microsoft Windows is a highly powerful remote access system, Windows Remote Desktop (sometimes referred to as Terminal Services). The server component of this is bundled with Windows 2000, XP Professional, Vista Business and Ultimate and every iteration of the server editions of Windows.

Enabling Windows RDP is simple.

  • Go to the Control Panel
  • Open the System panel
  • Select the Remote
  • Tick the box to enable remote connections to this computer

By default, any administrator account is given access. NB: Any account used to access via RDP must have a password. You will not be able to do this if you do not have a password If you wish to give other accounts access, select the Select Users option, and follow the instructions.

If you have any 3rd party firewalls, you will need to allow incoming connections for port 3389.

Once connected, venture to another Windows PC and open Remote Desktop Connection (NB: RDP clients are also available for other OSs as well). It will ask you for a server. In here, enter either the IP address, the hostname of the DNS name for the PC you are connecting to. Click the connect button. If all is working, then you should be presented with a login screen.

Linux

// TODO: MAKE THIS MORE DETAILED BY SOMEONE WHO KNOWS MORE THAN I DO

Arguably the best remote access option for Linux is an SSH connection. This allows command line interface access.

To set up a PC for remote access, all you need to do is install openSSH using your favourite package manager. Once installed, it should automatically set up everything you need.

To connect from another linux host, type

ssh -p 22 -u <username> <host>

where <host> is the hostname, IP address or DNS address of the server.

To connect from a Windows PC, get Putty[5], enter the address of the server in to the hostname box, and click connect. After asking for a username and password, you should have full shell access.

It should be noted, you can add extra layers of security, such as private key authentication, but since we're dealing with LAN servers here, the extra security is not considered necessary. If someone tries to brute force the server, you can easily grab their IP address from the logs, use the IP address to find their hostname, and let that lead you to the person themselves, than lay down a heavy kick-ban on them.

Remote Desktop for both

VNC is an alternative to Windows RDP that works on most common OSs (Windows, Linux, Mac, and others). There are multiple VNC options. RealVNC[6] is a common choice.

Download the server/client bundle for your OS, follow the instructions specific to your platform to install.

Once installed, run the VNC viewer from another PC, connect to the server, enter the password and you should get a full view of the desktop.

VNC also comes with a java based web interface, so if the PC you are on lacks the VNC viewer, you are able to connect via your favourite java-enabled web browser to the appropriate port (check your VNC server settings for this detail), eg http://gameserver1.lan:5900

Competition and Server Management

- Links to things like SourceMod, ProMod for CoD, etc etc. Useful scripts, server configs, etc.

Game Browsers

The last thing needed is a way for players at your LAN to see your servers. Every game has some form of a server browser or match making system in it, but what if the player just wants to play a game with people play in it? Opening every game individually to check the server browser is a pain.

Steam[7] has an inbuilt server browser for all of it's Source and HL1 based games and mods. This server browser is easy to use, but only has limited game support.

HLSW[8] works with most games that are or have been at some point popular. The use of the application isn't as straight forward for LAN browsing as Steam's browser is, however it provides a lot better overview of what is going on at the LAN. If you are going to promote the use of HLSW at your LAN, it is best to set up a LAN server for HLSW[9]. The HLSW LAN Server looks for game server information, which the clients then request from the server. Alternatively, having no LAN Server means there will be n clients sending out broadcast packets to every known game server every second. This is undesirable.

Internet at your LAN

If you're feeling generous, providing internet to your attendees is one option that brings both good and bad aspects with it.

One the one hand, it will prevent any offline mode issues with Steam. On the other hand, some people may sit there talking on their favourite IM or playing WoW instead of finding a local game and playing.

If you choose to provide internet, you should be aware of a few things.

  • Firewall the internet connection using a whitelist of ports [Allow common ports, such as HTTP(80), HTTPS(443), Steam(27005) and Email (25,110)].
  • Block common HTTP based filesharing sites, eg RapidShare.com
  • Implement a transparent proxy system such as SmoothWall
  • Consider restricting bandwidth per IP address to a fraction of the total available bandwidth.
  • Keep logs if possible

Restricting internet to purely Steam authentication only is an option worth pursuing. Keep in mind that Steam content download uses the same ports as Steam Authentication, so limits should still be placed if download quota used is a concern. It is, however, to block the IP addresses of all of the Steam content servers.

Unless you know and trust everyone in attendance, providing unmonitored and unrestricted internet access is generally asking for trouble.

IRC Considerations

When planning a LAN often IRC access is desirable. But often times everyone at the LAN will share the same public IP address. GameSurge (and most other networks) limit the number of connections from one IP (4 connections in the case of GameSurge). To temporarily increase this limit, a trust request can be filed. It is best to submit these at least one week prior to the event, to allow time for processing. Requests submitted the day of (or during) the event will often not get processed in time.

GameSurge trust request form

QuakeNet trust FAQ

Steam at your LAN

Steam is the exclusive host of a number of popular games, such as Left4Dead, Team Fortress 2 and Counter Strike: Source. As such, it's needs do need to be considered.

If you will not have internet at your LAN, then it is of utmost important to remind your guests to make sure that their Steam games are fully up to date, and that they are able to log in using offline mode and run their games.

Other Things to Consider

-Delegating tasks (One person runs servers, another runs competitions, another manages the LAN website)

cool hit counter