2007-09-22 23:09:26

by Carlos Narváez

[permalink] [raw]
Subject: Linux Router

This is starting to frustrate me, because it should be much simpler
than it seems to be, and I feel like I'm missing something small and
obvious.

I have two private networks, we'll say 192.168.254.0/24 and
192.168.251.0/24. And I have a linux box in the middle with addresses
192.168.254.17 and 192.168.251.10:


+---------------+ . +----------------+
? 192.168.251.1 +---+ 192.168.251.10 ? . +----------------+
+---------------+ . ? 192.168.254.17 +---+ 192.168.254.16 ?
. . . . . . . . . . +----------------+ . +----------------+


There is no NAT involved.. I just want the box in the middle to pass
traffic between the two networks. Here is what I have done:

- IP Forwarding has been enabled on the router via "echo 1 >
/proc/sys/net/ipv4/ip_forward"

- A route has been configured on 192.168.251.1 to point all traffic
for 192.168.254.0/24 to 192.168.251.10.

- A route has been configured on 192.168.254.16 to point all traffic
for 192.168.251.0/24 to 192.168.254.17.

- The command "iptables -I FORWARD -j ACCEPT" has been executed.

Now.. here's what happens. 192.168.251.10 can ping both interfaces on
the router. 192.168.254.16 can also ping both interfaces on the
router. However, 192.168.251.1 cannot ping 192.168.254.16, and
likewise, 192.168.254.16 cannot ping 192.168.251.1.

What have I forgotten?

--
Carlos Narv?ez
http://www.juegopixel.com


2007-09-22 23:23:20

by Oleg Verych

[permalink] [raw]
Subject: Not kernel dev related story (Re: Linux Router)

* Sat, 22 Sep 2007 18:09:15 -0500

> This is starting to frustrate me, because it should be much simpler
> than it seems to be, and I feel like I'm missing something small and
> obvious.

Please address such questions to any user forum, or to
<[email protected]> otherwise.

While doing that, provide exact output of route and firewall tables,
but not just semi hand-waving with just one command.

Thank you.
____

2007-09-23 02:10:29

by ben soo

[permalink] [raw]
Subject: Re: Linux Router

i used to add proxy arp's on the router when i had problems like
this. Dunno if it's the recommended fix, but it worked.

http://en.wikipedia.org/wiki/Proxy_arp

Carlos Narv?ez wrote:
> This is starting to frustrate me, because it should be much simpler
> than it seems to be, and I feel like I'm missing something small and
> obvious.
>
> I have two private networks, we'll say 192.168.254.0/24 and
> 192.168.251.0/24. And I have a linux box in the middle with addresses
> 192.168.254.17 and 192.168.251.10:
>
>
> +---------------+ . +----------------+
> ? 192.168.251.1 +---+ 192.168.251.10 ? . +----------------+
> +---------------+ . ? 192.168.254.17 +---+ 192.168.254.16 ?
> . . . . . . . . . . +----------------+ . +----------------+
>
>
> There is no NAT involved.. I just want the box in the middle to pass
> traffic between the two networks. Here is what I have done:
>
> - IP Forwarding has been enabled on the router via "echo 1 >
> /proc/sys/net/ipv4/ip_forward"
>
> - A route has been configured on 192.168.251.1 to point all traffic
> for 192.168.254.0/24 to 192.168.251.10.
>
> - A route has been configured on 192.168.254.16 to point all traffic
> for 192.168.251.0/24 to 192.168.254.17.
>
> - The command "iptables -I FORWARD -j ACCEPT" has been executed.
>
> Now.. here's what happens. 192.168.251.10 can ping both interfaces on
> the router. 192.168.254.16 can also ping both interfaces on the
> router. However, 192.168.251.1 cannot ping 192.168.254.16, and
> likewise, 192.168.254.16 cannot ping 192.168.251.1.
>
> What have I forgotten?
>

2007-09-23 06:25:30

by Jan Engelhardt

[permalink] [raw]
Subject: Re: Linux Router


On Sep 22 2007 22:10, ben soo wrote:
>
> i used to add proxy arp's on the router when i had problems like this. Dunno
> if it's the recommended fix, but it worked.

There is certainly no Proxy ARP required here since you do not
do subnet sharing or funny games like that.

> http://en.wikipedia.org/wiki/Proxy_arp
>
> Carlos Narváez wrote:
>> +---------------+ . +----------------+
>> ¦ 192.168.251.1 +---+ 192.168.251.10 ¦ . +----------------+
>> +---------------+ . ¦ 192.168.254.17 +---+ 192.168.254.16 ¦
>> . . . . . . . . . . +----------------+ . +----------------+
>>
>> - A route has been configured on 192.168.251.1 to point all traffic
>> for 192.168.254.0/24 to 192.168.251.10.
>>
>> - A route has been configured on 192.168.254.16 to point all traffic
>> for 192.168.251.0/24 to 192.168.254.17.
>>
>> - The command "iptables -I FORWARD -j ACCEPT" has been executed.

Well, and do the counters increase?

>> Now.. here's what happens. 192.168.251.10 can ping both interfaces on
>> the router. 192.168.254.16 can also ping both interfaces on the
>> router. However, 192.168.251.1 cannot ping 192.168.254.16, and
>> likewise, 192.168.254.16 cannot ping 192.168.251.1.
>>
>> What have I forgotten?

Default GWs (though if you ahve routes, ok..).

On 251.1, use `ip r g 192.168.254.16` and it should
show "192.168.254.16 via 192.168.251.10 dev eth0 ...".

Same on the other side.

2007-09-23 06:39:45

by Benny Amorsen

[permalink] [raw]
Subject: Re: Linux Router

>>>>> "CN" == Carlos Narváez <[email protected]> writes:

CN> - IP Forwarding has been enabled on the router via "echo 1 >
CN> /proc/sys/net/ipv4/ip_forward"

Try cat /proc/sys/net/ipv4/conf/*/forwarding. If any of them are 0,
then echo 1 > /proc/sys/net/ipv4/conf/all/forwarding.


/Benny