#*#
\
\
\
Sattelite Card
+-----------------------+
+207.16.45.x +
+ +
+ 192.168.90.x + Ethernet LAN --------
+38.1.1.1 +
+-----------------------+
PPP link(modem)
/
/
I have a satelite downlink, and a modem uplink with a different IP. How many addresses do you have on the satellite card's network? If you have quite a few, that might help if my initial ideas don't work out.
I need all packets being sent out the ppp link to appear as if they are coming from the sattelite's address(207.16.45.x). This way any data that is to be returned to the PC should be received via the satelite link instead of the PPP port(source of the request). I am assuming that both the PPP link and the satellite link are provided to you by the same ISP. Is this correct? If it is, have them run their routing (on all but the end of the PPP link between the two of you) say that to get to 38.1.1.1, you need to go through 207.16.45.x. If this is possible, you just need to set up IP masq on your ppp link, to masquerade all traffic coming from 10.1.1.x to go through 38.1.1.1, with 38.1.1.2 as your default route.
To make things more complicated, I need some form of NAT(Masquerading?) done to packets originating from the Ethernet port - destined for the PPP, with return coming from the sattelite going back to the client on the ethernet LAN. If your ISP can do the routing, it is a piece of cake. If not, I have some more thoughts.... Maybe you could set it up so that your box has three interfaces, 10.1.1.1, 38.1.1.1 and 207.16.45.x. You then have a default route pointing to your peer on 38, possibly 38.1.1.2. Then you put an ip_alias'ed address on your PPP0 link, so that you have 207.16.45.x+1 there. I know that it is busted, but bear with me. When a packet comes from 10.1.1.x, to the default gateway of 10.1.1.1, 10.1.1.1 looks up his default route. His default route is out PPP0, to 38.1.1.2. He needs to do ip_masq, so he rewrites the TCP headers and whatnot, and then puts in 38.1.1.1 as the source address. Only, what you need to do is convince him to put in 207.16.45.x+1 as the source address, convincing the rest of the world to ship back all replies through your satellite link. The tricky parts that I see are 1. getting the kernel to put 207.16.45.x+1 as an ip_alias on PPP0:1, as I don't know if PPPn can be aliased, and I don't know your netmask on the 207 network, and I don't know if linux will allow you to put two addresses from the same network on different interfaces, I don't think that cisco routers will allow this. 2. getting the 207 interface to respond to ARPs on the 207.16.45.x interface for 207.16.45.x+1, but I don't know if ARP is used on that link, are you using straight serial, or some whacked out broadcastable serial, like SMDS? and 3. how to get the kernel to bring something in one interface (Satellite0), kick it over to the other interface (PPP0) withOUT putting it on the wire (mebbe not a problem, loopback driver might catch it before it hits the PPP drivers.), performing the reverse masq on it, and then kicking it out the third interface, to 10.1.1.x. This looks very interesting, I would like to know how it turns out for you.
Have fun, rob
|