Create A Server

From AAO25, the home of 25Assist for America's Army
Jump to: navigation, search

How to host an Assist 25 server Written by {GcC}Bockmist and {GcC}Dinouso – [email protected] – inputs are welcome


What do you need?

Computer Hardware

An Assist 25 Server doesn’t need much resources. The RAM has a constant usage and the CPU depends on the number of players which play on the server

CPU

You can easily use a Dual Core Processor. If you want to host a lot of servers, then check in your computers resource manager what a server with your settings need, when he’s busy.

RAM

For sure you have no problems when you calculate 2 50 MB per server.

With this hardware you can host you server. It’s your choice if you want to use 7x24 useful hardware or otherwise maybe a notebook. But consider that there is more guarantee for a solid server when you use a proper hardware design.

Network

You have to have a decent network connection with a constant good upload speed. The assist server doesn’t need much upload bandwidth, but if the upload bandwidth is busy, your server will be too laggy.

Network

A 1Mbit upload link should exist if you really wanna exclude laggy network problems.

Don’t use WLAN, Powerline or other solutions like that. Connect your server directly to your router or to your LAN Switch.

Router / Firewall

You’re Router / Firewall has to support following things:

- NAT - Port Forwarding - NAT Loopback

This features are explained in the Chapter Network Introduction

A list of supported NAT Loopback Routers do you find here. http://opensimulator.org/wiki/NAT_Loopback_Routers

OS

The Assist25 Server Manager is compatible with Windows and Linux.


Implementing Server

Get the source Download the Assist Server Manager from http://aao25.com/

Create Server

Open the Assist Server Manager and Click on

Create a new server

The Assist Server Manager download now the server sources (some Gigabytes). After that, you have a functional server with default configs. Here a quick Guide for the most important fields.Notice that these are only basic configurations and it’s not a guide to do advanced server settings.

Server Name

The server will appear with this name in the Assist Client. Use different names, if you want to host more than 1 server.

Color for server

The server will appear with this color in the Assist Client. You have to put in the colors in RGB format.

What map to run

Choose your map for the server.

Admin email + Admin name

You will see this on a running server. It appears on the Server Info Tab.

Port

This is a very important field. You can choose a port for your game server. Some vital points:

0-1023 are reserved (well known) ports
The port have to be higher than 1023
Don’t use the same port for several servers
When you use for example the port 1716 (game port), the port 1717 (query port) is used too

That means don’t use the port "game port+1"

When you use the default port and you play with the assist client on the same machine

start the server before the client

Process ID

You can use the default process ID. If you create more than 1 server, all servers have to have a different process ID.

Multihome

If your computer has more than one NIC, and so more than one IP, you have to fill in the IP adress which belongs to your assist 25 server. If you have a normal device with one NIC you can use the default config.

Admin Password

You can set a password to logon as admin

Game Password

You can set a password to join to the server. Leave it blank if you want no password on your server.

Player Slots /Rounds match / Round length

With this settings you can decide how many players can join your server, how many rounds contains a match and how many minutes one round takes.

Playeradmin

Add your Assist 25 player name and click Add. So you are automatically admin when you join your server.

Motd

You can use the 3 motd lines to publish messages to the chatline of your server. If you want your server to repeat this message, check the repeat message checkbox and define a repeatminutes value. The messages will be published in the minute’s cycle of your repeatminutes value.

Configure Router / Firewall

Now you have to configure your Router / Firewall. We have to do 2 important things.

- Port forwarding and checking firewall rules - Enable NAT Loopback

This features are explained in the Chapter Network Introduction

In this guide we assume that your router / firewall allows all outbound traffic. That’s the most default configuration of all home routers / firewalls.

Port forwarding

Go to your router web interface and configure the following port forwarding rules. In this example we use the default game port 1716 and the game server’s ip is 192.168.1.99

- Forward the port 1716(UDP-game port)and 1717(UDP-query port)to your gameserver 192.168.1.99

Summarized, this gives this port forwarding rule for all possibilities.

- Forward Gameport and Gameport + 1 to your game servers ip

Most of Routers / Firewalls create automatically a firewall rule, which allows the traffic of this port forwarding rule. If your router doesn’t create this rule, you have to allow the traffic on this ports between WAN and your game server. That’s all you have to do on the router, that your game server can be connected from the internet. To connect the server from the same LAN,you have to use NAT Loopback(next chapter).

NAT Loopback

To connect your server from the internal LAN you have to enable NAT Loopback on your router /firewall. The configuration is different and depends on the device model. Some devices do it automatically and on other devices you have to enable it. If you don’t know how to enable this feature, google about it or look in the manual and you will find the solution. Of course your model has to support this feature.

Start server

Now you can start the server in the assist server manager. A window opens where you can follow the server activity. Your windows firewall will automatically ask you to add rules for the windows firewall. Accept them and you have nothing to do more. The first start of the server will take a longer time because the server has to initialize the first time. The second start will be done much faster. The server is ready when you see the AuthOK messages. Wait some minutes and you will see the server in Assist25. Now your server is running fine and people can join your server.

Register server on battletracker.com

Now you have to register your server on www.battletracker.com

Log in with your credentials and click this:

My Profile
Management
Register server Here

You can register your new server. Fill in with these informations.

Server IP Address
  • your WAN IP
Server Game Port
  • the port you configured in the assist server manager
Server Query Port
  • the port you configured in the assist server manager +1

Then click on Submit and your server will start tracking in a few minutes.

Server optimization

To run your server with an optimized performance, we recommend the video of Revuka: http://www.youtube.com/watch?v=dFUIwj17pt0

Little useful windows bat scripts

Start all Assist 25 server

You can start all Assist 25 servers with an easy windows bat file like this: start "" /high "C:\Data\AA2_Server\Server0\System\server.exe" Border start "" /high "C:\Data\AA2_Server\Server1\System\server.exe" SFExtraction start "" /high "C:\Data\AA2_Server\Server2\System\server.exe" MP_Pool_Day

You only need the Mapname parameter. All other stuff is in the aao25.ini file. The /high parameter starts your server with high priority.

Distribute your Banlist.txt to all server

To distribute the ban list from one point to all servers, you can do this like this: copy C:\sourcebanlist\BanList.txt C:\Data\AA2_Server\AA2_Server\Server0\System copy C:\sourcebanlist\BanList.txt C:\Data\AA2_Server\AA2_Server\Server1\System copy C:\sourcebanlist\BanList.txt C:\Data\AA2_Server\AA2_Server\Server2\System


Network Introduction

Short summary here: NAT enables the packets to find the server again if the server has sent some to a client. Port forwarding enables a client to connect to the server even if no communication from the server to the client has occurred before.

NAT

NAT (Network address translation) is the service, which translates your internal server (LAN) ip (e.g. 192.168.0.100)and the associated Port (e.g.1716)into your WAN ip (e.g.212.212.212.100) given by your ISP (provider).

NAT works only if the first request comes from inside of your network. To make sure your server is reachable from the outside (WAN) you have to do a port forwarding.

Port forwarding

Port forwarding (aka virtual server) enables you to connect to a server/ computer in your network, even if no outgoing communication has occurred before. For instance you want to connect your server on the WAN ip 212.212.212.100 on port 1716, the port forwarding rule enables the packets to find the server (192.168.0.100) in your network.

NAT loopback

Now we come to the crucial part of NAT and port forwarding. For better understanding what’s the problem here, look at this little scenario: Router: 192.168.0.1 Computer: 192.168.0.50 Server: 192.168.0.100 WAN IP: 212.212.212.100, NAT to server and port 1617 forwarded to server Computer to Router [192.168.0.50->212.212.212.100] Router changes the destination to 192.168.0.50 because our NAT and port forwarding rules Router to Server [192.168.0.50->192.168.0.100] Server attempts to respond to the packet by sending to the source IP (192.168.0.50). Server to Router [192.168.0.100-> 192.168.0.50] Router to Computer [192.168.0.100-> 192.168.0.50] Computer: WTF? Computer was expecting a reply from 212.212.212.100, got one from 192.168.0.100 instead. Addresses don't match, connection failure. The problem here is that our NAT rule messes up our communication. But the router does nothing wrong, he acts like we told him. To solve this problem we need to enable NAT Loopback. Some Routers do NAT Loopback themselves, some have a switch to enable it and others need a separate configured NAT with the reverse configuration from the NAT we configured to forward your server to the wan. If we go on with the above scenario, on the point the server replays to the computer: Server to Router [192.168.0.100-> 192.168.0.50] The router now knows that he translated the packets before form 212.212.212.100 to 192.168.0.100. So he translates the source back to 212.212.212.100. Router to Computer [212.212.212.100-> 192.168.0.50] Computer: Happy

The computer never notices that the destination was changed and receives the respond from the expected ip.