Home | Networks | Community | Need Help? 

 
 Quick search

 
 
 RegisterRegister   Log inLog in 

MUXing and Portability
Goto page 1, 2  Next
 
Post new topic   Reply to topic    SearchIRC Forum Index -> IRCD & Network Services
Author Message
olene
Newbie
Newbie


Joined: 31 Jul 2004
Posts: 61
Location: olene on DALnet

PostPosted: May 17, 2005 11:12am    Post subject: MUXing and Portability Reply with quote

Ok.. I'm gonna fit two topics into one thread here because its seems the forum gods don't seem to like my threads very much.

In any case... I've thought about the actions of an old network called TalkCity that created several dozen proxies to keep the server's addresses secret in an attempt to minimize attacks, and current day AIM servers that use the same scenario, in a much more integrated fashion, and i've drawn http://www.olene.net/rofl/prm.txt up. Tell me what you think. I've had no problem implementing it. There are some areas that need work (the RE mechanism), but uh.. yeah.

The other thing is that I just wanted to let you people who were watching rofl ircd know that last night, thanks to Evil_smurf, i acquired a linux shell. Since I havn't tested rofl ircd on linux since just after i finished the core about a month ago.. I'd figure i'd try to run it on mono, all 13 modules. And.. to my surprise.. it ran. Without a single error.
The only problems i encountered were two unhandled exceptions when i /DIE'ed the server.. and it turns out .. both of those exceptions came from within Mono's classes.. so.. "salad as a rock?".

You can view proof of my no-nonsense-portability here http://www.olene.net/rofl
Back to top
Roku
Newbie
Newbie


Joined: 18 Apr 2005
Posts: 92

PostPosted: May 17, 2005 11:40am    Post subject: Reply with quote

Quote:

I've thought about the actions of an old network called TalkCity that created several dozen proxies to keep the server's addresses secret in an attempt to minimize attacks


My question here is why would you create something more complex than current measures? No offense but that sounds like re-inventing the wheel.

Why not just add the server IP to a DNS pool and not add entries for individual servers that way server1.mynet.tld doesn't resolve, thus hiding the servers IP. This seems to me just as affective and no need to add things to an already increasingly complex protocol.

As long as an IP is in use, it can be attacked. Routing and location are totally irrelevant.
Back to top
Jamie
none
none


Joined: 06 May 2005
Posts: 36

PostPosted: May 17, 2005 1:01pm    Post subject: Reply with quote

I believe even the daftest attacker has discovered a little thing called "resolving a host."

(Basically, what's the point of only adding IP addresses into a pool when everyone can simply `host` or /DNS that pool (acquiring each IP address), and then connect to each server/DDoS it/whatever, "bypassing" the pool?)

This sounds like a really neat idea, Olene.

- Jamie O.
Back to top
Roku
Newbie
Newbie


Joined: 18 Apr 2005
Posts: 92

PostPosted: May 17, 2005 1:26pm    Post subject: Reply with quote

Jamie wrote:
I believe even the daftest attacker has discovered a little thing called "resolving a host."

(Basically, what's the point of only adding IP addresses into a pool when everyone can simply `host` or /DNS that pool (acquiring each IP address), and then connect to each server/DDoS it/whatever, "bypassing" the pool?)

This sounds like a really neat idea, Olene.

- Jamie O.


Correct, and when you try to resolve server1 and it doesn't resolve. The attacker at that point doesn't have the server's IP (which was my point).

Yes anyone can DNS a pool, but which IP belongs to your target?

Putting proxies between the IRCd and the service providers router isn't going to affect an attack. If it did, don't you think DALnet, UnderNet or any other network that has suffered from massive DDoS attacks would have done so already? I'm not trying to bash anyone but olene isn't the first, nor only person that has a clue as to how to protect an IRCd.
Back to top
Jamie
none
none


Joined: 06 May 2005
Posts: 36

PostPosted: May 17, 2005 2:09pm    Post subject: Reply with quote

The attacker would resolve the pool, and have a list of IP addresses. S/he would then connect to each IP address and note what server is listening on what IP address. That's not extremely complicated.

Proxy servers allow for even more bandwidth configuration. It'd be interesting if "registered" users had to either identify to their nickname (DFV-style) or register at the proxy level.

By the way, DALnet introduced a single point of failure quite a while ago, known as the "IX concept."

It also annoys me that nearly every post gets back to the mentality of "BUT NO TEH DALNET DOESNOT DO IT THAT WAY!!1 IT MUST BE WRONG!!"

Simply because DALnet is one of the largest IRC networks, it doesn't mean it's the "best."

- Jamie O.
Back to top
Roku
Newbie
Newbie


Joined: 18 Apr 2005
Posts: 92

PostPosted: May 17, 2005 2:28pm    Post subject: Reply with quote

Jamie wrote:
The attacker would resolve the pool, and have a list of IP addresses. S/he would then connect to each IP address and note what server is listening on what IP address. That's not extremely complicated.


Your right it's not complicated and it doesn't have to be. Complexity is not related to effectiveness, some of the simplest things in the world are the most effective. That said, a DDoS attack will go as far as it can. Meaning that even without the IRCd running the IP can still be attacked so long as something is routing data to it ... meaning routers. The most effective place to stop an attack is at the router closest to the attacker ... not some software directly in front of the target.

Quote:

By the way, DALnet introduced a single point of failure quite a while ago, known as the "IX concept."

It also annoys me that nearly every post gets back to the mentality of "BUT NO TEH DALNET DOESNOT DO IT THAT WAY!!1 IT MUST BE WRONG!!"


You being annoyed at the content of other threads is irrelavent, so is the fact that you're being annoyed currently. If you don't like the converation, stay out of it. Back to the topic please.

Quote:

Simply because DALnet is one of the largest IRC networks, it doesn't mean it's the "best."

- Jamie O.


I never said DALnet (nor undernet since you conveniently failed to mention it in your rant) was the best so don't put words in my mouth. My reference to DALnet and Undernet was based on fact .. not opinion. DALnet and Undernet both were heavily attacked and both failed to effectively block it even though both IRCd dev teams are just as qualified if not more so than olene.

I don't know olenes coding abilities, nor do I need to know. I'm voicing opinions at her ideas, not her abilities.
Back to top
Jamie
none
none


Joined: 06 May 2005
Posts: 36

PostPosted: May 17, 2005 2:43pm    Post subject: Reply with quote

Yes, I realise how networks "work."

If you had to code an IRCd from scratch, how would you implement such a system? What language would you code it in?

- Jamie O.
Back to top
Roku
Newbie
Newbie


Joined: 18 Apr 2005
Posts: 92

PostPosted: May 17, 2005 3:13pm    Post subject: Reply with quote

To be honest, attempting to protect an IRCd and it's resources is a noble effort. However, IMO, simply putting up proxies is not the answer. You don't rid warts by cutting the top off, you must remove the roots.

To answer your question, I'm not a coder so I can't directly answer it. However, I've worked for ISP's for several years in the past and I've been an MCSE for about 10 years now. So I am somewhat familiar with how DDoS's work and know that IRC is not the only targets to them. Admitedly though I have been "out of the loop" for sometime and I'm not "hip" to current technologies.

As far as networks goes. There is nothing better, IMO, than to learn from successful examples. 99.9999% of the networks in existance have not done what DALnet and Undernet have done. They have endured more than a decade while hosting hundreds of thousands of users. We should learn from this not get defensive because alot of others envy their success.

As side note and rather off topic. I do apologize if I seemed "snappy" a few moments ago. So many threads here are wasted to flamers. I didn't want this to be yet another. If you wish to comment please do so privately. I'd be happy to talk to you off topic. This apology IMO is best done publicly or I would have taken it private as well.

Back to the topic.
Back to top
Jason
SearchIRC Developer
SearchIRC Developer


Joined: 03 May 2003
Posts: 1183
Location: Tampa, FL

PostPosted: May 17, 2005 4:15pm    Post subject: Reply with quote

Jamie wrote:
The attacker would resolve the pool, and have a list of IP addresses. S/he would then connect to each IP address and note what server is listening on what IP address. That's not extremely complicated.


Or just start attacking the IPs one at a time until you get the desired result.
Back to top
olene
Newbie
Newbie


Joined: 31 Jul 2004
Posts: 61
Location: olene on DALnet

PostPosted: May 17, 2005 8:04pm    Post subject: Reply with quote

Roku, you're obviously missing the point of this. Say your network has 5 servers. Each server might have say, 5 proxies. Thats 25 proxies. Now there are several ways you could set this up:

1. Simply have your dns roundrobin the proxies. This would cause an attack to have to bring down all 25 hosts (and even still, the ircd wouldn't lag a second) to cut off all access to your network.

2. Use a load balancer, or balance the dns based on origin location. If the attacker is hosting a botnet in a single or a few IP blocks, and that particular region only resolves to say "US" proxies, thats all that they are gonna get the IP for unless they have IPs in all the places your dns is configured to localize.

3. Simply implement some auto-readdressing system that if a proxy goes down, you change it's address and bring it back up, or bring up a backup proxy at another point in the network. Unless the attacker is constantly running DNS queries (which is normally only done once at the beginning of the attack to get the target ips), they aren't going to be targetting all of the network.

4. Proxies (multiplecies) can be setup in a manner to each other as if one proxy is being attacked, it can NOTICE the other proxies to firewall the involved ip's at the node level, router level, or even at the gateway level.

The whole point(s) of multiplexers are:
1. To be able to dynamically change where and how users connect to the network without moving, disrupting, or reconfiguring the server.
2. To take some socket load (including dns resolves, ident lookups, and tcp/ip overhead) off the server.
3. To move the networks' public interface away from where the work gets done. With multiplexers, even if 9 out of 10 of your gateways are being packetted mercilessly, the users that are still on aren't going to be lagged a single second.
4. To keep the address of the box that is responsible for keeping the state information secret. This eliminates the "attacking to desync" or "attacking to abuse split" problem.
Back to top
Roku
Newbie
Newbie


Joined: 18 Apr 2005
Posts: 92

PostPosted: May 17, 2005 9:06pm    Post subject: Reply with quote

Or maybe I know that the physical interface has limits, saturate it and your ircd will become unreachable ... and I know that bandwidth is allocated in most cases, in which it can be saturated regardless where the packets go. Bandwidth consumption is still bandwidth consumption, the ircd still has to receive a PONG from clients and even a 1 gigabit LAN can be saturated easily.
Back to top
olene
Newbie
Newbie


Joined: 31 Jul 2004
Posts: 61
Location: olene on DALnet

PostPosted: May 17, 2005 9:51pm    Post subject: Reply with quote

You can't saturate the entire network unless you know the IP of every proxy. And you can't get the IP for every proxy unless the DNS server gives it to you. And the DNS server wont give it to you if it's programmed to only give you the closest server to your connection. So unless you have floodbots in every region or otherwise logical delimination of the network, you can't saturate the entire network.

It doesn't matter that it's not "foolproof". It's not meant to eliminate DDos. It was originally intended to take socket load off of the server, provide an off-premises portal to IRC, and allow the actual server box address to remain secret. It just happens that, if you implement it correctly, it can lower your affectedness of attacks. Obviously at least it's providing some stress relief rather than having your server's TCP/IP stack given out to anyone in the world who wants to resolve your hostname, even if they aren't a member of your network.
Back to top
magpie
Idler
Idler


Joined: 18 Jan 2004
Posts: 454
Location: Essex, UK

PostPosted: May 18, 2005 3:03am    Post subject: Reply with quote

Is socket load really that big an issue?
Back to top
Dr-Voodo
Eleet
Eleet


Joined: 07 Nov 2003
Posts: 535
Location: IRC

PostPosted: May 18, 2005 3:13am    Post subject: Reply with quote

Seems like it
Back to top
nenolod
Idler
Idler


Joined: 23 Jan 2004
Posts: 333
Location: A box!

PostPosted: Jun 05, 2005 6:03pm    Post subject: Reply with quote

Roku wrote:
Or maybe I know that the physical interface has limits, saturate it and your ircd will become unreachable ... and I know that bandwidth is allocated in most cases, in which it can be saturated regardless where the packets go. Bandwidth consumption is still bandwidth consumption, the ircd still has to receive a PONG from clients and even a 1 gigabit LAN can be saturated easily.


A proxy would not be on the same machine or interface as the ircd. That would be self-defeating. You could put the MUX on cheap ircd shells, for instance.

1 gigabit is a lot of data. It is not as easy as you make it out to be, especially with modern anti-DDoS measures, and hell, it's a MUX, who the hell cares if it goes down? They can just connect to another one.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    SearchIRC Forum Index -> IRCD & Network Services All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
 
Forum powered by phpBB
 
 © 2000 - 2008 EverythingIRC, Inc. All rights reserved. Please read our disclaimer