Web Hosting Talk







View Full Version : Hosting via ADSL Bonding


SME
04-20-2002, 10:15 AM
Hello

Ever wanted to host from home or office?

As you know the max upload of ADSL is 256kbs if you had two ADSL lines you
would have 512kbs you could then add more ADSL circuits as your bandwidth
requirements expand.

Problem is that you have a unique ip address for each ADSL this may also be
dynamic so it changes every time you need to restart the connection.

So how can someone typing www.somename.com in their browser find your
server(s) if your ip is dynamically assigned even if you where using fixed
ip's www.someone.com can only point to one ip so you could only ever serve
pages at a max of 256kbs and if that line went down there is no redundancy.

I have been working on a system that lets you have a unique fixed ip
attached to your domain name all request for this domain will be routed
through your multiple ADSL connections.

The benefits of this include :-

+FAILOVER REDUNDANCY. (ie if an ADSL circuit or machine go's down all
requests are automatically sent via the available ADSL circuits.)

+LOAD BALANCING (multiple servers handling request)

+ADSL VIRTUAL BONDING (ie 4 x ADSL = 1Mbs, 8 x ADSL = 2Mbs and so on)

+ACCESS TO SERVERS (Upgrade of hardware is easy to do and cost of parts
are cheaper than dedicated server options as I found to my cost when adding
a hard disk to dedicated server I was charged £200 for 20GB disk and £80
labour)

This service can also be used with Modems, ISDN, Leased lines.

Please feel free to email at sme@prontomail.com

Kind Regards
SRG

gnorthey00
04-20-2002, 11:10 AM
Do I detect a bit of advertising in a non-advertising forum?

If this system is so great, why don't you get a bunch of ADSL connections and run the system for your web site rather than looking for dedicated server elsewhere? (See his other posts??????)

SME
04-20-2002, 11:42 AM
How can this be classed as advertising!
I am not selling anything!
I am just seeing if there is a call for this system.

Having hosted with various companies no names....
I found their support unhelpful.
I also found it very restrictive not having access to the server.
I asked one dedicated hosting company to install a new hard disk they where asking £200 and £80 per hour for installation. The disk was only 20GB. I asked if I could send them a disk (60GB payed about £60 for) and they insisted I had to buy from them we are talking standard IDE drives here.

So I developed a system for ADSL Bonding that runs on a linux system.
The system works fine here at home.

The reason I am asking for a server is so I can install this system on it and test it within the real world.

Hope this explains things!

NO Advertising Here...... :)

SME

jks
04-20-2002, 01:13 PM
Originally posted by SME
How can this be classed as advertising!
I am not selling anything!
I am just seeing if there is a call for this system.

Having hosted with various companies no names....
I found their support unhelpful.
I also found it very restrictive not having access to the server.
I asked one dedicated hosting company to install a new hard disk they where asking £200 and £80 per hour for installation. The disk was only 20GB. I asked if I could send them a disk (60GB payed about £60 for) and they insisted I had to buy from them we are talking standard IDE drives here.

So I developed a system for ADSL Bonding that runs on a linux system.
The system works fine here at home.

The reason I am asking for a server is so I can install this system on it and test it within the real world.

Hope this explains things!

NO Advertising Here...... :)

SME

Why "develop" stuff that's either impossible (given you description), or already existing?

Check out the routing commands on a standard Linux box - they have the option of bonding ADSL lines together. Take a look at the Advanced Linux Routing HOWTO for guidance.

It's quite easy to do.

(although I would never use ADSL lines for serious hosting)

SME
04-20-2002, 02:04 PM
------------------------------------------------------------------------------
<B>Why "develop" stuff that's either impossible (given you description), or already existing?

Check out the routing commands on a standard Linux box - they have the option of bonding ADSL lines together. Take a look at the Advanced Linux Routing HOWTO for guidance.

It's quite easy to do. </B>

---------------------------------------------------------------------------------

Ummmm I think you have missed the point.

What this service is intended to-do is to allow people to host who have one or more ADSL connections with dynamic IP addresses that have been assigned to them from their ISP.

Example :-

A hoster has two ADSL connections each one gets a dynamic IP address assigned to it by the ISP.
On connection my server receives these IP's and stores them.
The hoster has the domainname www.whatever.com.
The DNS entry for this www.whatever.com points to a fixed IP on my server that is connected to the Internet.

Any request for www.whatever.com first comes to my server.
A lookup is done using various methods Round Robin, Weighted Round Robin, Weighted Least-Connection and so on.

The request is then sent to one of the ADSL IP addresses.
The Webserver response is sent directly to the clients browser (not NAT'd back through my server).

If one of the ADSL goes down the service automatically routes all requests to the available ADSL connection.

Also this is very secure against hacking etc etc as the IP is dynamically assigned if a hack does take place dropping the line and reconnecting will assign a new pi address to the ADS connection, stopping the hacker in their tracks.

If there are two ADSL lines each running at 256kbs this will be capable of serving at up to 512Kbs.
If there are three ADSL lines each running at 256kbs this will be capable of serving at up to 768Kbs.

This is not simple routing.
Using routed in linux........


SME

jks
04-20-2002, 02:12 PM
Originally posted by SME
------------------------------------------------------------------------------
<B>Why "develop" stuff that's either impossible (given you description), or already existing?

Check out the routing commands on a standard Linux box - they have the option of bonding ADSL lines together. Take a look at the Advanced Linux Routing HOWTO for guidance.

It's quite easy to do. </B>

---------------------------------------------------------------------------------

Ummmm I think you have missed the point.

What this service is intended to-do is to allow people to host who have one or more ADSL connections with dynamic IP addresses that have been assigned to them from their ISP.

Example :-

A hoster has two ADSL connections each one gets a dynamic IP address assigned to it by the ISP.
On connection my server receives these IP's and stores them.
The hoster has the domainname www.whatever.com.
The DNS entry for this www.whatever.com points to a fixed IP on my server that is connected to the Internet.

Any request for www.whatever.com first comes to my server.
A lookup is done using various methods Round Robin, Weighted Round Robin, Weighted Least-Connection and so on.

The request is then sent to one of the ADSL IP addresses.
The Webserver response is sent directly to the clients browser (not NAT'd back through my server).

If one of the ADSL goes down the service automatically routes all requests to the available ADSL connection.

Also this is very secure against hacking etc etc as the IP is dynamically assigned if a hack does take place dropping the line and reconnecting will assign a new pi address to the ADS connection, stopping the hacker in their tracks.

If there are two ADSL lines each running at 256kbs this will be capable of serving at up to 512Kbs.
If there are three ADSL lines each running at 256kbs this will be capable of serving at up to 768Kbs.

This is not simple routing.
Using routed in linux........


SME

Well, I think you missed my point. I was not speaking of using "routed" (I think mean route?) in Linux, but of more advanced routing options.

Why rely on your server?
Why introduce a single-point-of-failure?

With Linux you can "bundle" these ADSL lines together, and the Linux software will then make sure that each answer is sent through the ADSL that the request came through, etc. With DNS on top of that, you get a sort of load balancing between those lines.

With your system, you're bound to introduce an extra lag, so that the time between a user clicks on a page 'til it's loaded will be longer.

SME
04-20-2002, 02:59 PM
Why rely on your server?
Why introduce a single-point-of-failure?

With Linux you can "bundle" these ADSL lines together, and the Linux software will then make sure that each answer is sent through the ADSL that the request came through, etc. With DNS on top of that, you get a sort of load balancing between those lines.

With your system, you're bound to introduce an extra lag, so that the time between a user clicks on a page 'til it's loaded will be longer.


There is not a single point of failure as their could be more than machine available using a floating IP address.

If one machine goes down the ohter will kick in, a heart beat monitors the server availability.

As for using DNS this will not work either here is why :-

Every time your ADSL gets assigned a new dynamic IP from your ISP you have to update your DNS this has to then propagate through the net (upto 12 hours).
Additionally if a line goes down requests will still be sent to that IP and the client will get nothing but an error in their browser.


Here is some additional DNS info......

Round-Robin DNS, which maps a single name to the different IP address in a round-robin manner; thus different clients will be mapped to different servers in the cluster for the ideal situation. In this way, the load is distributed among the servers. However, due to the caching nature of clients and hierarchical DNS system, it easily leads to dynamic load imbalance among the servers, thus it is not easy for a server to handle its peak load. The TTL (Time To Live) value of a name mapping can't be well chosen at RR-DNS, with small values RR-DNS will be a bottleneck, and with high values the dynamic load imbalance will get even worse. Even the TTL value is set with zero, the scheduling granularity is per host, different users' access pattern may lead to dynamic load imbalance, because some people may pull lots of pages from the site, and others may just surf a few pages and go away. Moreover, it is not so reliable, when a server node fails, the clients who maps the name to the IP address will find the server is down, and the problem still exists even if they press "reload" or "refresh" button in their browsers.

As for the speed issue well it is minimal the server only handles the request and not the response as the server(s) connected to ADSL lines reply directly back to the requesting client.
Thus enabling a huge amount of through put.

The System runs at Layer4 of the OSI.




[B]

jks
04-20-2002, 03:08 PM
Originally posted by SME

There is not a single point of failure as their could be more than machine available using a floating IP address.


And what if _your_ network goes down?


As for using DNS this will not work either here is why :-

Every time your ADSL gets assigned a new dynamic IP from your ISP you have to update your DNS this has to then propagate through the net (upto 12 hours).


That kind of propagation does not necessarily take 12 hours. You can set your TTL sufficiently low so that it is one minute, or even less.

Also - why not get the ADSL with static IP addresses? - Here in Denmark, a static IP ADSL costs the same as a dynamic IP ADSL.


Additionally if a line goes down requests will still be sent to that IP and the client will get nothing but an error in their browser.


That's just a question of taking the A record out of DNS. This can be automated easily.



Round-Robin DNS, which maps a single name to the different IP address in a round-robin manner; thus different clients will be mapped to different servers in the cluster for the ideal situation.


Why not do your own argumentation instead of cutting and pasting from the linuxvirtualserver.org web-site? (hint: name your sources when you "quote" something)


As for the speed issue well it is minimal the server only handles the request and not the response as the server(s) connected to ADSL lines reply directly back to the requesting client.


Have you measured how many ms extra lag it gives?

What if people are located on a different network (perhaps different country) than you? - How is that going to affect their speed? :-)


The System runs at Layer4 of the OSI.


Weird, I thought we we're speaking Internet :-)

WebmastTroy
04-20-2002, 08:08 PM
You wouldn't really have true "double bandwidth" either, because when someone wants to download something, it's source is from 1 IP and will only download from one line.

Are you talking about advanced DNS stuff? or is it going to be a simple HTML frame that will send the user to your customer's IP address(s)?

roly
04-20-2002, 08:10 PM
no one would want to be hosted off an ADSL modem

ClusterMania
04-21-2002, 04:18 AM
This is quite interesting to me. I am interested in bonding and did research on this a year ago and never found a real solution. I am not planning to host with my adsl but my house has both dsl and cable connection. I would like to join the connections together or just cancel my cable access and get another dsl line. I would love to have T1 upload speeds in my own house but T1 is just not worth it cause it's only for fun =) Not for hosting. I would never host with T1 anyways. Too expensive.

Is bonding expensive? If it cost as much as a dsl router I would look into it.

cyansmoker
04-21-2002, 04:35 AM
Originally posted by ClusterMania
This is quite interesting to me. I am interested in bonding and did research on this a year ago and never found a real solution. I am not planning to host with my adsl but my house has both dsl and cable connection. I would like to join the connections together or just cancel my cable access and get another dsl line. I would love to have T1 upload speeds in my own house but T1 is just not worth it cause it's only for fun =) Not for hosting. I would never host with T1 anyways. Too expensive.

Is bonding expensive? If it cost as much as a dsl router I would look into it.

Yup, same here. Did my research work about a year ago and couldn't figure how to properly establish channel bonding with my DSL + cable connections.

Actually proper bonding would require your ISP to manage it on their side, so I'm not sure...

However I would be happy to be able to have my router linux box handle two uplinks correctly. Alas, a query arrives on the DSL NIC anc goes back on the cable NIC, and that's not what I want. I need guaranteed route.

ToastyX
04-21-2002, 05:51 AM
SME: That doesn't sound like bonding. If it was true bonding, it'd be like ISDN or the multilink protocol for dialup modems where two connections make up one. To accomplish something like that with DSL, you'd probably have to write your own protocol and adapter driver for Windows or write a kernel module for Linux. If you indeed managed to pull that off, then you're a genius, but what you're offering sounds like a front-end to round-robin DNS.

SME
04-21-2002, 06:42 AM
OK ......

What I have tested with this system goes something like this.

I have a dedicated server hosted on the Internet for the purpose of this explanation I will call this A
I have one ADSL connection running at 512kbs download and 256kbs It has a webserver connected to it called B
Two friends allowed me to use their ADSL connections for the sake of testing (they have the same ADSL connections speeds ie 512/256kbs) each one has a webserver running called C and D respectfully. These connection are also dynamically assigned an IP address at dial-up

Server A is the controller.
Servers B,C,D are all running as webservers.

www.testing.com DNS points to Server A.

When Server B,C,D come online Their IP addresses are sent to Server A and are stored.

A client request www.testing.com within their browser.
The request is sent to Server A.
Server A sends the request to Server B
Server B replies directly to the Clients Browser. Note: it is not directed back through Server A.
Another client request for www.testing.com is sent to Server A.
Server A sends the request to Server C
Server C replies directly to the Clients Browser. Note: it is not directed back through Server A.
And so on ........
If Server C is not available it will automatically send it to Server D

Note this is explaining Round Robin other Algorithms that are also used are Weighted Round Robin, Weighted Least-Connection and so on.

Now a webpage can have many src and img requests.

Say a web page called index.html has 2 images this would go something like this....
Request for www.whatever.com go to Server A
Server A request Server B to reply to the client browser(in this case with the index.html page)
Client receives index.html page from Server B
Client browser then requests Image1 and Image2 from Server A
ServerA requests Server C to reply with Image1 directly to the browser.
ServerA requests Server D to reply with image2 directly to the browser.

This way the two images are requested from 2 different connection at 256kbs each.

One caveat if a file was requested for download the max download speed would be 256kbs.
This is because it is handled as a single request.

So the system is doing virtual bonding which is adequate for many multiple request such as webpages etc etc etc.

However what about persistency ie you may be using serverside code that may set cookies and sessions in this case is goes like this :-
Request for www.whatever.com goes to Server A
Server A request Server B to reply to the client browser(in this case with the index.html page)
Client receives index.html page from Server B
Client browser then requests Image1 and Image2 from Server A
ServerA requests Server B to reply with Image1 directly to the browser.
ServerA requests Server B to reply with image2 directly to the browser.

Or the other solution :-

ADSL /Cable connection B,C,D all are connected to one webserver.
All requested are via Server A these are directed to B,C,D as in the previous examples.
This allows for session handling, cookies, streaming media etc etc as they are all been served from the same physical webserver.



The DNS args.......
My system runs at Layer4 of the OSI ie at the transport layer thus the speed of redirecting is very very fast.
DNS runs at Layer7 of the OSI ie at the Application Layer so it is a lot slower.

Please see the link below for drwbacks of DNS load balancing :-
http://www.onjava.com/pub/a/onjava/2001/09/26/load.html

SME

ToastyX
04-21-2002, 07:22 AM
Okay, I see what you're saying, but if the client connects to server A, and server A sends the request to server B, how can server B reply directly to the client without passing through server A? The only way I can see this being accomplished is through packet modification, and if that's the case, what are you using to mangle packets?

SME
04-21-2002, 07:30 AM
Okay, I see what you're saying, but if the client connects to server A, and server A sends the request to server B, how can server B reply directly to the client without passing through server A? The only way I can see this being accomplished is through packet modification, and if that's the case, what are you using to mangle packets?

Spot on ToastyX :)

Yes it uses IP encapsulation I have developed some code that allows this to happen.

Server A has a patched linux kernel.
Server B,C,D decapsulates the IP and forwards it to the client.

SRG

ClusterMania
04-21-2002, 07:47 AM
Originally posted by cyansmoker


Yup, same here. Did my research work about a year ago and couldn't figure how to properly establish channel bonding with my DSL + cable connections.

Actually proper bonding would require your ISP to manage it on their side, so I'm not sure...

However I would be happy to be able to have my router linux box handle two uplinks correctly. Alas, a query arrives on the DSL NIC anc goes back on the cable NIC, and that's not what I want. I need guaranteed route.


Too bad linksys or dlink doesn't know there is a market for this. Bonding dsl lines would be really cool. Imagine paying $100 for 3 or 4 dsl links and getting better than T1 speeds =) I know you can bond T1 lines but the equipment is not cheap.

gnorthey00
04-21-2002, 11:18 AM
How much does this cost? Are the four servers connected by some sort of LAN? If not, wouldn't you lose bandwidth from sending the connection requests back and forth through the DSL connection.

Now add the additional cost of upgrading bandwidth. If you're operating three dedicated servers, I'm assuming that you're planing on a lot of hits.

jks
04-21-2002, 11:47 AM
Originally posted by SME
Say a web page called index.html has 2 images this would go something like this....
Request for www.whatever.com go to Server A
Server A request Server B to reply to the client browser(in this case with the index.html page)
Client receives index.html page from Server B
Client browser then requests Image1 and Image2 from Server A
ServerA requests Server C to reply with Image1 directly to the browser.
ServerA requests Server D to reply with image2 directly to the browser.
This way the two images are requested from 2 different connection at 256kbs each.


Modern web browsers use Keep-Alive, so they would request all the images in one connection, and thus be limited at 256 kbps. You can ofcourse disable this in the webserver, but at the expense of having the client doing extra requests.


My system runs at Layer4 of the OSI ie at the transport layer thus the speed of redirecting is very very fast.
DNS runs at Layer7 of the OSI ie at the Application Layer so it is a lot slower.


Your argumentation is flawed, even though you may come out with the correct result. You cannot say that something is "faster", just because it's more low-level in the OSI model. In some cases, doing something on a higher-level is much efficient, as more context information is available there.

By the way: Why do you keep mentioning the OSI model? - The Internet is not built on the OSI model, but is probably more closely described by the DoD (4-layer) model.

jks
04-21-2002, 11:50 AM
Originally posted by SME

Yes it uses IP encapsulation I have developed some code that allows this to happen.


Have you made any tests on how much overhead this encapsulation leads to? (but in terms of extra bandwidth and extra time)

How do you handle security? (i.e. what about someone sending an encapsuled packet directly to one of the webservers, could he then trick your system into launching a DoS attack on an innocent IP)


Server A has a patched linux kernel.
Server B,C,D decapsulates the IP and forwards it to the client.
SRG

Does the B, C and D servers also have to have a patched Linux kernel?

Do you need to patch any programs on the servers, besides the kernel?

WebmastTroy
04-21-2002, 06:06 PM
http://www.tigerdirect.com/applications/SearchTools/item-details.asp?sku=N99-1000. This thread reminded me of this. I know its not the same, but its *somewhat* close (just in the wrong direction).

Anyway, I would love to see your service running so we could try it out. It sounds like something that could really become useful, as long as "Server A" in your examples doesn't go down.

I don't know a whole lot about the IP encapsulation stuff, so your answer didn't really make sense (to me, anyway). I can make a service like what you described by having HTML frames in a user's browser, but thats not what your talking about, are you?

I think that if I were to bind some DSL together (and maybe even some dialups), you could provide pretty good reliability on that if you were hosting. WAIT....don't starting flaming me yet. I, personally, would love to get into hosting some small servers on my own lines, but the cost for a single T1 around here is near $1,000 per month, and I'd want to have at least 2 for redundancy issues. If I was able to get 2 or 3 DSL lines into my office and bind them together using your service, it would be a LOT cheaper than the T1s. I don't know much about the DSL technology, so I don't know if 1 DSL line goes down that they all go down. My current DSL line is through the phone company. I'm guessing that *all* DSL lines go through the phone company. But I guess I don't understand what a reason for a DSL line going down would be. Otherwise, you could have 2 or 3 from different providers and be all set.

ClusterMania
04-22-2002, 07:07 PM
Nexland Pro800 Turbo Home Router/Dual Line looks really cool. Are there devices that allow you do bind more than 2? Like 10 dsl lines =) hehe. Having multiple servers is far too expensive. If I wanted to do hosting I rather colocate anyday.