Okay, here's what I'm trying to do:
I have an ADSL modem connected to a wireless router connected wirelessly to a Pentium 1 computer that's connected via ethernet to a gaming computer. I will not simplify this connection at all, I will not remove the Pentium 1 from the equation, that is the way it is. If you disapprove, then at least think of this as a network layer challenge.
What I am trying to do (at the most basic level) is ultimately get the gaming computer connected to the internet. What I'd like to do is be able to host a LAN from the gaming PC and it be able to affect everyone connected wirelessly to the router. So far I've gotten the Pentium 1 working (oh, and the Pentium 1 is a VectorLinux machine) The encryption I'm using at the moment is WEP, which I plan to change to WPA once I get wpa_supplicant running on the Pentium 1. This is primarily a routing problem.
Just so we're clear, I understand a fair amount about routing tables, and I'm okay with Linux commands (ipconfig, iwconfig, route, resolv.conf) Is it possible if, the router has a 192.168.1.1 address, for the gaming computer two links down the line to have a 192.168.1.* address? Is it possible for the gaming computer to DHCP through the Pentium 1 entirely to the router and get an address? Essentially I'm asking what needs to be done for the P1 to function as a very simple switch.
ASCII diagram, ho!
UPDATE: Changed to WPA. Tried setting up a routing table at the P1 as such:
Destination - Gateway - Subnet - Interface
192.168.0.0 - 0.0.0.0 - 255.255.255.128 - ath0 (wireless)
192.168.0.128 - 0.0.0.0 - 255.255.255.128 - eth0 (ethernet)
0.0.0.0 - 192.168.0.1 - 0.0.0.0 - ath0
I also added an entry in the router (192.168.0.1) as such:
192.168.0.128 - 192.168.0.5 - 255.255.255.128
Got weird results. The gaming PC can ping 192.168.0.5, but not 192.168.0.1. The outside world can ping 192.168.0.128, but not 192.168.0.130.
192.168.0.1
192.168.0.5 192.168.0.128
192.168.0.130
ROUTER <
WPA
> P1 <====== ETHERNET ======> GAMING PC
Posts
http://www.sjdjweis.com/linux/bridging/
Here is a google search link: http://www.google.com/search?hl=en&q=linux+bridge+firewall
IP - Subnet - GW - Interface
192.168.0.1 - 255.255.255.128 - <ISP GW> - LAN
Destination - GW - Subnet - Interface
192.168.0.0 - 0.0.0.0 - 255.255.255.128 - LAN
0.0.0.0 - <ISP GW> - 0.0.0.0 - WAN
192.168.0.128 - 192.168.0.5 - 255.255.255.128 - LAN
Linux Router P1:
IP - Subnet - GW - Interface
192.168.0.5 - 255.255.255.128 - 192.168.0.1 - ath0
192.168.0.128 - 255.255.255.128 - 192.168.0.1 - eth0
Destination - GW - Subnet - Interface
0.0.0.0 - 192.168.0.1 - 0.0.0.0 - ath0
192.168.0.0 - 0.0.0.0 - 255.255.255.128 - ath0
192.168.0.128 - 0.0.0.0 - 255.255.255.128 - eth0
PC:
IP - Subnet - GW - Interface
192.168.0.130 - 255.255.255.128 - 192.168.0.128 - LAN
I have left out the loopback addresses and routes. However, these look the same as yours so I don't think the routing is the problem.
One thing you need to check is the firewall rules. If the P1 is set up as a firewall, then you need to check that the rules allow Class C (192.) network addresses to pass through both interfaces. By default, firewalls block inbound connections with the private Class A,B,C IP addresses on the external (ath0) interface. Since the P1 has Class C IP's on both interfaces it will cause problems.
DHCP: A router will not pass broadcast traffic like DHCP. That would defeat the point of routing. To allow DHCP try setting up DHCP forwarding (helper-address) on P1 with dhcpd. Obviously, you need to be able to ping the 192.168.0.1 address from the PC before worrying about this.
Yes! This was a lot more like what I was looking for.
Unfortunately I had to add bridging support to the kernel, and it's compiling.
Been 12 hours so far...