The dsl connection is supported by the kernel. The connection is done with pppoe which is not much different than ppp except that it tunnels through an ethernet type of connection. ppp is point to point protocol and pppoe is point to point protocol over ethernet. Basically the login is done using the point to point protocol just like dialup. The RedHat rpm is called rp-pppoe..
http://rpmfind.net/linux/rpm2html/se...&system=&arch=
If these are servers then I would say the easiest thing to do is to route server3.com via dns to server1.com and server4.com to server2.com like that.
This way the redirects are done by one machine to the correct port on the other machine. Or you can have both server1.com and server2.com registered for server3.com and server4.com and then it would be the client connecting that will decide. You would need to register an A record for both server1 and server2 at myservers.com.
example..
dig yahoo.com
; <<>> DiG 9.2.2 <<>> yahoo.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7864
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 0
;; QUESTION SECTION:
;yahoo.com. IN A
;; ANSWER SECTION:
yahoo.com. 234 IN A 66.94.234.13
yahoo.com. 234 IN A 216.109.112.135
;; AUTHORITY SECTION:
yahoo.com. 172791 IN NS ns5.yahoo.com.
yahoo.com. 172791 IN NS ns1.yahoo.com.
yahoo.com. 172791 IN NS ns2.yahoo.com.
yahoo.com. 172791 IN NS ns3.yahoo.com.
yahoo.com. 172791 IN NS ns4.yahoo.com.
Note two A records for yahoo.com. This means each ip will go to yahoo.com which in your case could be server1 and server2.
Note the NS records. It's actually left up to the connecting client to decide which one to use here for nameservice for yahoo.com.
The one that is connected to will decide or actually be configured to return an ip address for one or the other servers.
You can't really control dns and make it decide when to use a certain one unless you register your domains with your own dns server. If you setup your own dns server then you could have some control over the routing of dns, possibly making changes dynamically.
example..
dig @ns4.yahoo.com yahoo.com
; <<>> DiG 9.2.2 <<>> @ns4.yahoo.com yahoo.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4781
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 5
;; QUESTION SECTION:
;yahoo.com. IN A
;; ANSWER SECTION:
yahoo.com. 300 IN A 66.94.234.13
yahoo.com. 300 IN A 216.109.112.135
;; AUTHORITY SECTION:
yahoo.com. 172800 IN NS ns1.yahoo.com.
yahoo.com. 172800 IN NS ns2.yahoo.com.
yahoo.com. 172800 IN NS ns3.yahoo.com.
yahoo.com. 172800 IN NS ns4.yahoo.com.
yahoo.com. 172800 IN NS ns5.yahoo.com.
;; ADDITIONAL SECTION:
ns1.yahoo.com. 172800 IN A 66.218.71.63
ns2.yahoo.com. 172800 IN A 66.163.169.170
ns3.yahoo.com. 172800 IN A 217.12.4.104
ns4.yahoo.com. 172800 IN A 63.250.206.138
ns5.yahoo.com. 172800 IN A 216.109.116.17
;; Query time: 634 msec
;; SERVER: 63.250.206.138#53(ns4.yahoo.com)
;; WHEN: Fri Feb 11 23:36:41 2005
;; MSG SIZE rcvd: 229
here I asked ns4.yahoo.com who yahoo.com is and got both ip addresses. If they wanted to they could have ns4.yahoo.com setup to only give one of the ip addresses.
Using iptables you could configure certain ip address ranges incoming traffic to go to one system or the other and also configure certain ethernet interfaces to go to one system or the other.
You could also use one machine for both isp's and have the same thing instead of using two machines. I guess your trying to balance the load but keep in mind the bandwidth and if it really takes two router boxes to handle it, which is what I would call the redirecting boxes. Even if they are servers they are acting as routers for the other servers.