SRCDS Steam group


Binding srcds to different IPs = No Steam LAN browsing
#1
Hello everyone. I've got a problem that is extremely odd, but also documented in a few places over the net, including these forums.

My server(s) are strictly LAN based. I don't use them for Internet play at all.

I have 2 dual-port copper nics (eth0-eth3) and a dual port fiber nic (eth4 and eth5). Each nics has a dedicated IP assigned to it.

I have tried binding ./srcds_run to each of these nics.
I have tried binding it to subinterfaces.
I have tried a true class c range (192.168.1.0, instead of my current 10.0.1.0)
I have tried using udev (Debian Lenny) to rearrange my nics so the fiber nic would be eth0.
I am not running any software firewall at all, including iptables, etc.
Everything is full layer 2 connected directly to a Cisco Catalyst 4506. No L3 routing, etc.

The issue here, that makes me thing this is a huge bug, is that I can see the game in the browser if I do not use the "-ip" option. If I do use the option, I cannot see it in the steam browser, but I can connect to it directly via the Steam console, or I can add it as a favorite then connect to it.

Before I ramble any more, am I retarded or shouldn't this work? I works under Window$ for crying out loud! I've had this problem on both CentOS 5 and my current Debian Lenny box, so it's not a distro problem evidently.

Here is a sample of the command line I use (for one server). Keep in mind it doesn't work with just one server or many running. I can ifconfig down all interfaces except for the one I want to use and it still doesn't work!
Code:
screen -A -m -S CSS-Server1 taskset -c 1 ./srcds_run -ip 10.0.1.5 -port 27015 -console -game cstrike +sv_lan 1 -nomaster -tickrate 100 +fps_max 1000 +maxplayers 24 +map de_dust2

You will notice that I am running at 100 Tick/1000 FPS. This part amazingly I have working excellent. I've tried running this on all cores, and just one (out of the 8 total).

All in all, if I remove the "-ip" option, I can see my servers, but they are bound to the same "eth0" interface every time. Sure, I can increment port numbers on each server and just leave them on "eth0", but I want to use my fiber nics on "eth4" and "eth5".

Just a side note, I configured a nic bond (bond0) using 802.3ad and it still does the same as above. I can connect through the bond on that bond0's IP with the Steam console, but I cannot get the server to show in the Steam browse list.

Any help/workarounds are greatly appreciated!
Reply
#2
Does anyone else have this issue running one or multiple servers is linux? I suppose I could tell people at the LAN (100+ people) to connect via a hostname (like cs1.lan.local, cs2.lan.local, etc.) if I run DNS there, which I was planning on doing. Before I've always just ran 1 server per machine, but there is no way I'm going to run just one server on a dual quad core with 18GB of RAM and $600 Intel fiber NICS!!

I'd rather have people be able to browse : )
Reply
#3
Protocol Wrote:Does anyone else have this issue running one or multiple servers is linux? I suppose I could tell people at the LAN (100+ people) to connect via a hostname (like cs1.lan.local, cs2.lan.local, etc.) if I run DNS there, which I was planning on doing. Before I've always just ran 1 server per machine, but there is no way I'm going to run just one server on a dual quad core with 18GB of RAM and $600 Intel fiber NICS!!

I'd rather have people be able to browse : )

I haven't seen this issue personally, but I don't happen to run LAN only servers. There may be a chance you need to enable/install samba and open up port 139 (my best guess). Sorry if this is completely unhelpful, but it does sound like a very unique problem. Possibly try contacting a valve developer to get semantics behind the LAN server browser.

Good luck.
DiSTANT
[Image: banner.php?t=2&bg=002244&amp...p;id=82023]

[Image: banner.php?t=2&bg=002244&amp...p;id=82024]
Reply
#4
Protocol Wrote:Hello everyone. I've got a problem that is extremely odd, but also documented in a few places over the net, including these forums.

My server(s) are strictly LAN based. I don't use them for Internet play at all.

I have 2 dual-port copper nics (eth0-eth3) and a dual port fiber nic (eth4 and eth5). Each nics has a dedicated IP assigned to it.

I have tried binding ./srcds_run to each of these nics.
I have tried binding it to subinterfaces.
I have tried a true class c range (192.168.1.0, instead of my current 10.0.1.0)
I have tried using udev (Debian Lenny) to rearrange my nics so the fiber nic would be eth0.
I am not running any software firewall at all, including iptables, etc.
Everything is full layer 2 connected directly to a Cisco Catalyst 4506. No L3 routing, etc.

The issue here, that makes me thing this is a huge bug, is that I can see the game in the browser if I do not use the "-ip" option. If I do use the option, I cannot see it in the steam browser, but I can connect to it directly via the Steam console, or I can add it as a favorite then connect to it.

Before I ramble any more, am I retarded or shouldn't this work? I works under Window$ for crying out loud! I've had this problem on both CentOS 5 and my current Debian Lenny box, so it's not a distro problem evidently.

Here is a sample of the command line I use (for one server). Keep in mind it doesn't work with just one server or many running. I can ifconfig down all interfaces except for the one I want to use and it still doesn't work!
Code:
screen -A -m -S CSS-Server1 taskset -c 1 ./srcds_run -ip 10.0.1.5 -port 27015 -console -game cstrike +sv_lan 1 -nomaster -tickrate 100 +fps_max 1000 +maxplayers 24 +map de_dust2

You will notice that I am running at 100 Tick/1000 FPS. This part amazingly I have working excellent. I've tried running this on all cores, and just one (out of the 8 total).

All in all, if I remove the "-ip" option, I can see my servers, but they are bound to the same "eth0" interface every time. Sure, I can increment port numbers on each server and just leave them on "eth0", but I want to use my fiber nics on "eth4" and "eth5".

Just a side note, I configured a nic bond (bond0) using 802.3ad and it still does the same as above. I can connect through the bond on that bond0's IP with the Steam console, but I cannot get the server to show in the Steam browse list.

Any help/workarounds are greatly appreciated!

Maybe this will help...
http://www.mail-archive.com/hlds_linux@list.valvesoftware.com/msg39420.html
[Image: banner.php?t=2&bg=002244&amp...p;id=82023]

[Image: banner.php?t=2&bg=002244&amp...p;id=82024]
Reply
#5
Thanks for the info. I've tried that in ventures to make this work. It just appears that this is definitely a bug. I can watch the broadcasts from my workstation hit the interface (with Wireshark), but srcds just doesn't respond to any of the packets. If I take "-ip x.x.x.x" out of my startup command, I can watch my broadcast from steam when I hit "refresh" hit the server, ARP the interface that is responding (eth0 by default) then return the data to the client workstation. It's really odd. At first I thought that perhaps srcds was binding to the lowest mac address that was on an active adapter in my server, but after playing with udev for a bit that seems not to be the case. I've pretty much ruled this in my mind with all of the evidence and testing that I have done as an official "lan" bug. This wouldn't affect an Internet server due to the presence of routing. It's just a broadcast bug for a single L2 subnet.

My resolve is going to include running a lan DNS that simply has the correct NIC IP's as A records so people can add the server(s) as favorites or they can console connect to them. The only reason I don't want to use my copper nics is because my Catalyst 4506 has 5 10/100 line cards and 4 1GB fiber GBICs. Using a 10/100 port for an uplink is not an option with 4 CS:S 100 tick/1000 FPS servers and 2 TF2 servers. 2 of the GBICS go to my server in an 802.3ad link aggregation and the other 2 GBICs go to a Catalyst 2960G via Etherchannel which has other servers attached to it as well.

Again, thanks for the link though. Interesting stuff indeed!
Reply
#6
Code:
screen -A -m -S CSS-Server1 taskset -c 1 ./srcds_run -console -game cstrike -ip 10.0.1.5 -port 27015 +sv_lan 1 -nomaster -tickrate 100 +fps_max 0 -maxplayers 24 +map de_dust2

just curious, try this
Reply
#7
Same thing unfortunately. I've tried odd tickrates and fps_max settings as well (-33, -50, -66). At first I thought that maybe it was an issue with my use of a "Class A" 10.x.x.x address, but quickly discovered no difference with a true "Class C" 192.168.1.x. I can bind to 0.0.0.0 as well, but again no luck. As far as I can tell the console variable "sv_lan" only controls clients' ability to connect to servers bound with specific class IP's. I could image that would suck for very large LANs of 250+ plus or so after you've filled that /24 up.

Thanks for the suggestion though!


HBS|Ryan Wrote:
Code:
screen -A -m -S CSS-Server1 taskset -c 1 ./srcds_run -console -game cstrike -ip 10.0.1.5 -port 27015 +sv_lan 1 -nomaster -tickrate 100 +fps_max 0 -maxplayers 24 +map de_dust2

just curious, try this
Reply
#8
Try it without the -nomaster, no master tells it to not talk to the steam servers
[Image: b_350x20_C002748-004880-FFFFFF-000000.png]
Reply
#9
This is a LAN only server though. Uploading my server to the Valve master server wouldn't help me on a LAN. (I have tried it though : ) I did contemplate taking the "-nomaster" out, then having people search in the Internet tab for the servers, but that would be rather obtuse considering I could just tell people to add "cs1.lan.local" or "cs2.lan.local" to their favorites and connect from there, with DNS helping them out.

As always though, thanks for the suggestion!

pengy Wrote:Try it without the -nomaster, no master tells it to not talk to the steam servers
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)