Page 1 of 2

UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 12, 2011 9:51 am
by Kumba
I am stumped on this. I'm an oper on a small network, and the network admin is moving his equipment to another data center and decommissioning some older FreeBSD servers running Unreal 3.2.7. The new boxes will also run FreeBSD, but include an updated Unreal, 3.2.8.1.

However, my Windows systems cannot connect to his newer servers. My Linux system can. I've tried the below combinations:

Windows Server 2008 + Mirc 6.34 + Script
Windows Server 2008 + Mirc 7.17 + Script
Windows Server 2008 + Mirc 7.17 Vanilla
Windows Server 2008 + Telnet
Windows Server 2003 + Mirc 7.17 Vanilla (Virtual Machine on Win2k8)
Windows Server 2003 + Telnet (Virtual Machine on Win2k8)

None of the above work. These, however, do work:

Linux + irssi (hardware)
Linux + telnet (hardware)
OpenSolaris + telnet (Virtual Machine on Win2k8).

The Win2k8 and Linux machines are on their own hardware running on the same subnet behind the same router. The router runs a dd-wrt install w/ a custom firewall. On Win2k8, I've fully disabled the windows firewall.
The Win2k3 and OpenSolaris systems run in virtual machines on the affected Win2k8 box. I've run wireshark on the inside of my network, as well on a vampire tap on the outside of my network (between the router and the ISP's modem).

I. Am. Stumped.

Everything works fine against the server running Unreal 3.2.7. The admin's been running IRC networks for well over a decade, and is a wizard at FreeBSD. He's checked his systems and assures me there is nothing wrong. ~15 other users running windows and Mac OS X have successfully used the new servers. But I am effectively blocked, and I am at a complete loss to understand why. I've tried everything I can think of. From the new server, I can /query my clone on the old server just fine. But responding back to the same query from the old server to the connection on the new server never makes it. It's like there's a giant /dev/null eating any packet destined for the Windows client on the new server.

So I'm asking anyone here -- could this possibly be something wacky on 3.2.8.1? Or does anyone know of any other tests I can try to isolate this down? I can provide wireshark dumps from inside and outside the network if needed, but the old server is being shutdown late tomorrow, so I will lose any ability to debug that side of things. This cannot possibly be related to the backdoor, correct?

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 12, 2011 10:24 am
by masa
I'm the admin of the network in question. I can provide some additional details if anyone from the Unreal team has any questions, but the only major change was from 3.2.7 to 3.2.8.1. The config files are largely the same (minus server identification and link specific details). I'm using Windows XP and have no problems connecting to the network myself.

new servers are running:
FreeBSD 7.3-RELEASE FreeBSD 7.3-RELEASE #0: Sun Mar 21 06:15:01 UTC 2010 [email protected]:/usr/obj/usr/src/sys/GENERIC i386
CPU: Pentium 4 3.0GHz, Intel based system. (4GB Memory), SATA-2 250GB Drives (2)

old servers are running:
FreeBSD 7.3-RELEASE-p2 FreeBSD 7.3-RELEASE-p2 #0: Mon Jul 12 19:04:04 UTC 2010 [email protected]:/usr/obj/usr/src/sys/GENERIC i386
CPU: AMD Opteron 170 2.0GHz, Tyan SE based system. (2GB Memory), SATA-2 250GB Drives (2) in Hardware based (3Ware) 0+1 Array.

Thanks for your time.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 12, 2011 5:06 pm
by katsklaw
Providing connection info would be of use, then can try to connect ourselves with our multiple OS's.

IF your 2k8 box isn't connecting or anything on it, does it have issue connecting to other servers, IRC or otherwise? Even though your Linux box connects fine, we still cant rule out the "custom firewall". Perhaps something in it is blocking the windows box but not the linux box. With that said, define "custom". What's so custom/special about it?

Being able to connect to the old but not the new most likely hasn't anything to do with unreal version since you admitted the box was physically moved, therefore has a different physical route.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 12, 2011 6:14 pm
by Stealth
Note how all the Windows machines he is trying are Server editions. Have you tried from a client version of Windows (95/98/ME/2000/XP/Vista/7)?

The networking in Windows 2003 and 2008 is VERY different than the networking in 95/98/ME/2000/XP/Vista/7. This is because 2003 and 2008 are designed for use as SERVERS and not clients, and as such have much more complex network stacks.

Here's some things to try:
1) use a different computer all together
2) use an OS designed for CLIENT use
3) use a different internet connection
4) Test your route to the servers in question when you are unable to connect

All this is very basic knowledge, and I'd think someone running a server OS would know this.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 12, 2011 8:05 pm
by DaxBane
Stealth wrote:The networking in Windows 2003 and 2008 is VERY different than the networking in 95/98/ME/2000/XP/Vista/7. This is because 2003 and 2008 are designed for use as SERVERS and not clients, and as such have much more complex network stacks.
Sorry dude, but as I type this, I'm on a Windows Server 2003 computer I have configured as a workstation (2003 being far more efficient/responsive than XP when system memory goes to the 3GB+ territory, as is the case here) - and on 6 IRC networks using a client installed on said workstation

Now, as for the problem at hand - let's try a process of elimination:
  • Have you checked your "custom firewall" to ensure it is not blocking all outbound (LAN->WAN) traffic that hasn't been explicitly allowed through from your windows machines LAN IP by any rules?
  • If it is indeed blocking all outbound traffic that hasn't been explicitly allowed, have you created a rule that allows outbound from the machine in question's IP address on port 6667 (among other ports you may deem necessary to use IRC)
If, after checking that the firewall does have active rules (epxlicit or implicit) allowing outbound IRC traffic from your windows computer to pass through it, how do the rules for your linux workstation/desktop compare to those explicit to the windows machine?

Ultimately, let's try to eliminate the firewall that you have running from the equation of variables that have a direct influence upon your ability to communicate with IRC networks

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 12, 2011 8:18 pm
by masa
I'm sure The OP will post when he becomes available.

The connection information is for irc.d00mnet.com, which round robins to 64.62.194.35 and 64.62.194.36. The old server will only be online for a very short time, but is located at 209.9.227.163, and has already been removed from DNS.

I myself have had no problems connecting to old or new servers running windows XP or 7. I don't have the resources to try any of the server series. The OP did tell me that if he runs a VirtualBox emulated system from that same windows server, it works just fine. I can't see how this is a FreeBSD based issue. These boxes push a lot of bandwidth per second realtime, and I would know it immediately if there was serious stack problems.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Thu Jan 13, 2011 3:20 am
by Stealth
I have no problems here from Windows 7 (telnet tested both servers)

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Thu Jan 13, 2011 3:58 am
by katsklaw
I didn't have any issues either and Windows 2003 Enterprise was one of the OS's. I think Dax is on the right track. Additionally I think the focus shouldn't be on the OS so much as what has changed. Since the box was physically moved, anything to do with the route, including firewall rules should be considered. Since unreal 3.2 is a bug fix only branch I doubt the I/O code has changed between 3.2.7 and 3.2.8.1 or even 3.2.9.

I seriously doubt this is a stack issue of any kind.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Thu Jan 13, 2011 6:48 am
by Kumba
Stealth wrote:Note how all the Windows machines he is trying are Server editions. Have you tried from a client version of Windows (95/98/ME/2000/XP/Vista/7)?
Not yet. I only have copies of server releases of Windows right now, via Technet. I have to renew my Technet account next month before I can pull down XP/Vista/Win7.

Stealth wrote:Here's some things to try:
1) use a different computer all together
I did, technically. My Intel Linux box might be housed in a similar case, but its guts are completely different. A test on my SGI O2 running Linux also works fine. If you'd like, I can spin up my SGI Origin 300 and give IRIX + Telnet a whirl if you think it'll help :)

Stealth wrote:2) use an OS designed for CLIENT use
See above.

Stealth wrote:3) use a different internet connection
Sure, you got some spare fiber optic cable and scuba gear so I can run something under the nearby river and into the next state? All I have out where I live is Comcast (insert gagging sound).

Stealth wrote:4) Test your route to the servers in question when you are unable to connect
It's not a matter of me connecting. I can connect. I get to the point where UnrealIRCd reports the number of online users. After that, it usually dumps the MOTD, but the MOTD never arrives. However, I can see the MOTD, or at least broken pieces of it, in a packet capture from the outside of my network. Any packet after then sent from the two new servers in question never arrives to my client under both Windows OSes, but are received by the Linux and OpenSolaris OSes. And keep in mind, the OpenSolaris OS runs in a VM on the Win2k8 host. Even though VirtualBox installs a network driver at a low level, the packet still gets manhandled by windows for a few cycles before Vbox gets ahold of it.

This more or less eliminates my firewall, internet connection, possibly the internet route, and the lower levels of Windows' networking stack from the equation. It's also what completely confounds me.

Stealth wrote:All this is very basic knowledge, and I'd think someone running a server OS would know this.
It was 5-6am in the morning....give me some credit for at least testing four different operating systems and three different clients :P

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Thu Jan 13, 2011 7:00 am
by Kumba
DaxBane wrote:Now, as for the problem at hand - let's try a process of elimination:
  • Have you checked your "custom firewall" to ensure it is not blocking all outbound (LAN->WAN) traffic that hasn't been explicitly allowed through from your windows machines LAN IP by any rules?
I do very little per-machine rules on my firewall. This "firewall" is a very basic wrt54gl running DD-WRT, and I built the firewall using fwbuilder. Most of the rules (25 in total) are for blocking inbound attacks, a little routing for my VLANs (I break wireless off into a separated world because I don't trust it and only a Wii sits on it anyways), and governing which systems can contact my Linux box for services (DNS, DHCP, etc). There are no rules specifically targeting IRC traffic or ports in the firewall.

I connect just fine to Undernet and Freenode, and have been for the last eight years. This is the first time I've ever had anything as screwy as this happen.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Thu Jan 13, 2011 8:09 am
by Jobe
Since nobody has asked yet can you provide a traceroute from both the windows computers that cant connect to the IP of the servers they cant connect to please?

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Thu Jan 13, 2011 8:32 pm
by Syzop
I haven't read everything in detail, but.. just sharing some ideas:
Can you SCP/SFTP/FTP (just pick 1) files between your windows box and the IRC shell? Test both uploading&downloading with a 1mb file or something.
Or does it also hang?
If it does hang, then it's most likely some kind of (P)MTU issue.
If it does work, and Unreal doesn't, then it's interesting ;)

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Sat Jan 15, 2011 1:24 am
by katsklaw
If I may, when was the box last halted completely? (not a reboot while it's still energized). Shut it down, completely unplug it for a few minutes, 5 is plenty, then boot it back. Electronic devices maintain an electrical charge and can still drain power even when turned off.

Things I know from this:

It's not:
1> it's not windows 2003/2008 as an OS - Server OSs can and do still act as workstations and have for decades. I've used personally every server based windows OS excluding 2008 and NT3 as a desktop OS and never had any issues of this kind and have done so since 1997. I do not use desktop OS's except my windows 7 laptop.

2> it's not a routing issue if Linux can connect and function and windows can not since they are physically on the same subnet, the path is identical save the link between windows and it's uplink hub/switch/router.

3> If the claims of no interfering fw rules is true then it's not the firewall.

It's still possible that this is an isolated case pertaining to this one box/OS installation. Reinstalling the OS could be a solution. It's possible there is some set of instructions that is causing this issue. It could also be a physical problem in the uplink from the box to it's uplink hub/switch/router. A damaged/shorted/cut/pierced cable or connectors can at the very least cause dropped packets. So can bad ports in switches/hubs, internally or externally.

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Mon Jan 17, 2011 1:00 pm
by estranged
I also have connection problems with unreal.

I'm on win 7 64 bit and use mirc.I have no connection issues with anything else(stfp,shell etc.)

But I can't connect to my unreal server. It enters the channel and 15 seconds later you disconnect with the error below:

[14:46] * [10053] Software caused connection abort

with the quit message (Connection reset by peer)

In this 15 seconds you can't send or receive messages, you can't get the channel list, you can't do anything.

Strangely, I can connect if I use a proxy, or my bnc (in the same box)

I can also connect through cgiirc. But I get the same error when I connect with a java applet like jirc.

Unreal version is 3.2.9 (rc1) (it was the same with 3.2.8.1)

Do you have any ideas?

Re: UnrealIRCd 3.2.8.1 & Windows Networking Stack Issues?

Posted: Wed Jan 19, 2011 10:26 am
by Syzop
Does it help if you remove these four lines from src/s_bsd.c around line 1092:

Code: Select all

                if (setsockopt(fd, IPPROTO_IP, IP_OPTIONS, (OPT_TYPE *)NULL,
                    0) < 0)
                    if (ERRNO != P_ECONNRESET) /* FreeBSD can generate this -- Syzop */
                            report_error("setsockopt(IP_OPTIONS) %s:%s", cptr);
and recompile and restart the ircd.

And another question: how do other users see you leaving? What's your quit message for them?