May 2000 Archives

Quake III Net Lameness

| | Comments (2)
I have been pulling my hair out at night for a month now trying to get a quake server that will allow players from the internet as well as players from my local LAN connect. I've read every server howto and console list that google, altavista and randomly perusing ftp sites and source has to offer. It has been driving me batty.

Quake can be called with command line arguments that specify the interface to bind to.

bash# ./q3ded +set net_ip 192.168.0.1 +set dedicated 2 +set sv_pure 0 +map q3dm1

In the above example I'm binding the quake sever the the internal address of my firewall. If one does not specify an interface, Quake3 defaults to the localhost interface (127.0.0.1).

With the Quake3 demo this setup worked without a hitch. LAN and internet players (e.g. my friends on the same cable modem network) could play seamlessly. Now with the release (and point release) it all SUX!

Does anyone have any suggestions?
What does unknown executable really mean?
I used tcpdump to examine the traffic on all the interfaces. You can get a copy of ethereal and check out the raw packet dumps of my folly. CALL TO ALL. I need help interpreting these packet dumps. Theres a lot of BS in the eth1 one because it's on the cable modem network. I need to learn how to write libpcap filters. Sigh... Below is a table of my failures.

net_ip External Players Internal Players
127.0.0.1 (default if not set at all) OK User gets message from quake stating "UNKNOWN_EXECUTABLE". After experimentation, if I let the unknown executable message tick away for about 140 seconds the internal player will connect. Quitting quake, restarting quake, and reconnect to the server works instantly and without a hitch. But other internal players on the LAN cannot connect at all.
24.247.5.141 (My external static IP address) OK Players on the LAN don't even register that a quake box is sitting there. Client workstations count forever.
192.168.0.1 Clients can't connect at all. Server doesn't hear any requests. Client workstations count forever. OK
[Update] Thu May 4 23:21:12 AKDT 2000

I updated the packet dumps of a failed quake session so that the DNS requests are not truncated. These new ones capture up to 1k. They're here. Below is the data of the offending packets. It seems like the quake client sends it's IP address as part of the payload. That kind of sucks.
......getIpAuthorize.-27630595.192.168.0.4

.....ipAuthorize.-27630595.unknown.UNKNOWN_EXECUTABLE

[Solution] Fri Thu May 12 AKDT 2000

Somebody emailed me the solution. You need to run your own keyserver and hack your DNS/hosts to circumvent IDs keyserver. Id's keyserver has come security mechanism that really breaks multi homed hosts.