I have two routers, Router A is connected to the internet, and Router B is connected to the LAN port of Router A.

Router A: Subnet

Router B: IP leased from router A: Its own ip: subnet

I have a machine C plugged to router A with ip also a machine D plugged to router B with ip

enter image description here

I want to access machine D from a machine C. What settings do I need to change to do that?

  • 1
    Do routers A & B both hand out dhcp addresses? Also, why does B use a gateway of
    – uSlackr
    Commented Apr 12, 2012 at 16:39
  • @uSlackr, yes both A&B hand out dhcp addresses. is just the factory default
    – xiamx
    Commented Apr 12, 2012 at 16:41
  • I lost you here "gateway". What do you mean by gateway? Or you mean the default LAN address of router B.
    – user127350
    Commented Apr 12, 2012 at 19:41
  • @Radoo, is not the gateway used on router B, but rather its own IP on the LAN interface. Sorry about that.
    – xiamx
    Commented Apr 12, 2012 at 19:56
  • Would you clarify what you mean by communicate. Do you mean ping ftp http or access window's shares? Commented Aug 26, 2015 at 22:26

6 Answers 6


Router A needs to know which route to use to reach the network.

Initially try adding a static route that says it can reach via

On a Cisco router running IOS you'd do

 ip route

On your unspecified make and model of router you'll have to use a web-interface or read the manual to find it's equivalent.


If your network is as simple as your diagram, with no NAT surprises, then there just needs to be a static route for pointing to This route can be on either Router A or Machine C, the latter being more restrictive than the former.


If these are standard residental "routers" with 4 LAN ports, then you actually have a device that is a combination of router and switch. The 4 LAN ports are a switch. Devices connected to that will see each other without you having to do anything other than take care of IP address setup, which is normally DHCP's job. You can "cascade" switches and things will work just fine.

If you are looking to just connect more than 4 devices in your home to the Internet, Router B does not need to be doing routing or DHCP at all, and the functionality should be disabled. Connect "router" B to a LAN port in router A, and anything else you need to the LAN ports on router B and as long as router B is not doing DHCP or anything else, it should just work.


I am assuming is not the gateway used on router B, but rather its own IP on the LAN interface. If router A is giving out addresses through DHCP, it is also informing B of what gateway to use, and this should be If you can access the internet from B's subnet, this is the case, unless you have a very excentring setup that needs a far more detailed explanation.

To answer your question, machines C and D are on seperate networks, but D can initiate a connection with C just fine. It can't find the IP on its own subnet, so it passes on the request to its gateway, i.e. router B, who does know where the target machine is located.

The other way around is more difficult. Neither host D itself nor its gateway, router A, knows that traffic intended for should traverse through router B. Even if they did, for instance by defining a route ' trough', router B would not allow the packets to pass from its WAN interface to the LAN interface.

Although you may be better off using B as a 'dumb' switch instead of a router by simply connecting everything to its LAN ports, it is possible to circumvent this issue without changing the network topology. You will need to forward ports on router B that are used in communication originating outside the network.

For instance, if machine D is running a web server, to which communication must be initiated from machine C, you will want to configure router B to forward port 80 towards Alternatively, given your router supports such a feature, you can place machine D in router B's DMZ, thus forwarding all ports to this machine, unless they are configured otherwise. Normally, this could be regarded as insecure, but in this case, the machine will still be protected through router A, unless the network is compromised.


You are preforming network address translation twice and it's probably set to moderate/strict settings. So Router B is hiding it's private addresses from connections initiated from outside router b's subnet and vice versa. This is because it assumes the network attached to it's WAN port is the public web. Normally this is fine because if the connection is established from inside the private network the router then knows where to send the incoming traffic back to. But in your case both sides are preforming NAT so each side is hiding it's private addresses from the other. This is why you need port forwarding behind a NAT so the router knows where to route connections being initiated from outside the network. A great way to understand what is happening is to look into UDP hole punching which is what many VNC and gaming applications use to allow connections to be initiated from outside.

Strict NAT is generally a limitation with consumer grade routers, but some of the better ones allow you to adjust NAT settings. Alternatively you can use DD-WRT, tomato, or another thrid party firmware that allows adjustments made to the NAT. You can also use port forwarding (which is a little more cumbersome) as mentioned by other users.


(Assuming you can get router B's WAN interface to be a normal ethernet interface, like on a cable router)

You need to set static routes on both machines C and D. If you have something more than basic doing DHCP and the machines C and D get their addresses from DCHP, you could push the routes out to all DHCP clients automatically.

Otherwise, you can set the routes like this:


Machine C

route -p ADD MASK METRIC 1

Machine D

route -p ADD MASK METRIC 1

Linux (added to network interface settings)

Machine C

route add -net gw 

Machine D

route add -net gw
  • For machine D, is already the default gateway. No specific route needs to be added to the table. Commented Apr 13, 2012 at 21:26
  • @MarcksThomas: Oh yes of course, you're right.
    – paradroid
    Commented Apr 13, 2012 at 22:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .