Setup of Router machine with FreeBSD

nvidican at envieweb.net nvidican at envieweb.net
Tue Jan 12 13:16:49 UTC 2010


Paul,

The key thing you need to look at is enabling routing on the machine  
you want to act as a gateway. Given the dual-homed nature of the  
machine it's routing table will already contain each of the interfaces  
on the two networks, and as such the router machine will 'know' how to  
connect to each of the networks it is on. What is missing, is that you  
must tell the router machine that it can relay information across  
these known networks for other hosts.

As with most things, there's better documentation available on the  
subject, and I'd HIGHLY recommend you try reading the following  
handbook section 'Gateways and Routes' for a better understanding:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-routing.html

Within that section, it will elaborate as to how you can turn on and  
off the function to act as a gateway for other hosts. As in my  
original email reply to the list, the specific command is 'sysctl'  
which allows you to tune key variables controlling the kernel  
functionality - in this case, the behavior of acting as a gateway.

Please take a few moments and read through that section, it should  
greatly clarify some things for you. As always, feel free to ask again  
if you need further help with something.

Regarding your ping problem; are you using the correct cabling to go  
from ethernet card to card? You must use cross cables for direct  
connections, and straight-through if using a hub or switch. Assuming  
that you have no firewall in place blocking traffic, then ping should  
work fine - I would suggest you check your cabling first and go from  
there. Running the command 'ifconfig -a' will list your active network  
interfaces and should show the 'media state' as being connected and at  
what speed/duplex - check there first and work your way back.

Hope this helps.

--
Nathan Vidican
nathan at vidican.com

Quoting Paul Shi <shihang at hkusua.hku.hk>:

> Nathan,
>
> Thank you very much for your reply.
>
> I have tried out your suggestion and experienced some problem. Hope you
> could kindly shed some light on them and I really appreciate it.
>
> First, I experienced connection problem from server machine(192.168.2.1) to
> router interface (192.168.2.2). I connected the two network cards with
> standard Internet cable and tried to ping each other. However, it output
> following message which makes me think the connection between server and
> router is problematic;
>
> PING sendto Host is down.
>
> Any idea why this is happening? I think "ping" should work as long as I set
> the IP of network cards correctly and connect them with cable.
>
> Second, I am confused about the setup at the router machine. How the router
> machine figures out the relationship between 192.168.2.2 and 192.168.1.1 if
> we do not configure it to do so? Is there anything needs to be done besides
> adding route at server machine and client?
>
> Thank you very much for your kind attention! Have a nice day!
>
> Your sincerely,
> Paul Shi
> Electronic and Communication Engineering Senior
> Department of Electrical and Electronic Engineering
> University of Hong Kong
>
>
> On Mon, Jan 11, 2010 at 11:44 PM, <nvidican at envieweb.net> wrote:
>
>> Quoting Paul Shi <shihang at hkusua.hku.hk>:
>>
>>  Dear All,
>>>
>>> I have tried to setup a wireless network consist of a server, AP, a router
>>> machine and wireless client. Here is setup and configuration of my design.
>>> Please correct me if I am wrong about anything.
>>>
>>> Server
>>> IP: 192.168.2.1, Gateway: 192.168.2.2, Netmask: 255.255.255.0
>>>
>>> ---------------------------------------------------------------------------------------------
>>> IP: 192.168.2.2,                                   Netmask: 255.255.255.0
>>> Router
>>> IP: 192.168.1.1,                                   Netmask: 255.255.255.0
>>>
>>> ---------------------------------------------------------------------------------------------
>>> IP:192.168.1.2, Gateway: 192.168.1.1, Netmask: 255.255.255.0
>>> Access Point
>>>
>>> ---------------------------------------------------------------------------------------------
>>> IP: 192.168.1.3,                                  Netmask: 255.255.255.0
>>> Client
>>>
>>> I have add following to /etc/rc.conf of server machine
>>>
>>> static_routes="serverinternal"
>>> routes_serverinternal="'-net 192.168.2.1/24 192.168.2.2"
>>>
>>> and following to /etc/rc.conf of router machine
>>>
>>> static_routes="internal"
>>> routes_internal="'-net 192.168.2.2/24 192.168.1.1"
>>>
>>> Is there anything I have done wrong? Or anything else I need to do. My
>>> problem now is I cannot connect from server to router machine. Any
>>> suggestion would be greatly appreciated!
>>>
>>> Your sincerely,
>>> Paul Shi
>>> Electronic and Communication Engineering Senior
>>> Department of Electrical and Electronic Engineering
>>> University of Hong Kong
>>> _______________________________________________
>>> freebsd-questions at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to "
>>> freebsd-questions-unsubscribe at freebsd.org"
>>>
>>>
>> Paul,
>>
>> It seems to me your problem is in your route configuration. "
>> 192.168.2.1/24" is incorrect, /24 indicates the bitmask; the network
>> address should be correctly written as "192.168.2.0/24" instead indicating
>> a network address of '192.168.2.0' with a network of 254 usable IP addresses
>> in the same subnet.
>>
>> You'll thus only have to have ONE route entry for the whole network, not
>> one per IP (unless that is your intention -in which case the '-net' syntax
>> is incorrectly being used). So long as routing is turned on (man sysctl),
>> simply pointing the server to the router and the client to the router to
>> connect to each other should work. Try doing the commands from the console
>> first to get it all working, then worry about putting in the startup configs
>> on boot-up.
>>
>> Given your example, I'd login to 'server' and run:
>>
>> route add 192.168.1.0/24 192.168.2.2
>> (if the router is the ONLY router from the server, use this instead):
>> route add 0.0.0.0 192.168.2.2
>>
>> Then, from the client, add:
>> route add 192.168.2.0/24 192.168.1.1
>>
>> The gateway/router box itself does not need any routing setup internally;
>> you don't need/shouldn't be setting any routes given that 192.168.2.2, and
>> 192.168.1.2 are hosts on the two networks for which you want to allow
>> routes. They key is in getting the clients to both use the same gateway, (as
>> accessible from the network they are respectfully on). This may be a little
>> more clearly depicted below:
>>
>> Host A (192.168.2.1) <--> Router (192.168.2.2) (192.168.1.1) <--> Host B
>> (192.168.1.3)
>>
>> Host A:
>>  - needs to know to use '192.168.2.2' as it's gateway to 192.168.1.0/24
>>  - may just use 192.168.2.2 as it's default gateway to ANY network
>>
>> Host B:
>>  - needs to know to use '192.168.1.1' as it's gateway to 192.168.2.0/24
>>  - similarly, may just use '192.168.1.1' as it's default gateway to ANY as
>> well
>>
>> Assuming you're connecting the internet at some point to the gateway
>> (router) machine, a decent firewall filter and NAT will most likely be
>> required as well. Read up in the handbook a bit on the subject or feel free
>> to come back for more info if needed.
>>
>> Hope this helps.
>>
>> --
>> Nathan Vidican
>> nathan at vidican.com
>>
>>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>





More information about the freebsd-questions mailing list