I am using BSNL BroadBand connection and a DSL Router is provided that can act as a Default Gateway to many wireless devices. One such device is my server. I have bought a static ip on lease. So that all the traffic on the to that ip directed to the Router.
But to forward the request from the router to the my server (which connected using wifi) requires port forwarding (got help from here). Port forwarding for BSNL DSL Router can be done by going to the VIRTUAL SERVER
section of the NAT
section. There I have forwarded all the requests on port 8080 (my JBOSS uses port 8080) to the server, which has an internal ip address 192.168.1.7
.
I am able to connect to internet from the server (192.168.1.7
), all the devices connected to the Router via wifi are able to ping each other. But traffic on port 8080 is not being directed to the server.
What can be the possible reasons for this?
NOTE
I am able to access the server when my request url is http://192.168.1.7:8080/myapp
. But When my url is http://118.XXX.XXX.XXX:8080/myapp
. I am not able to access it. 118.xxx.xxx.xxx is the public ip of the router.
Best Answer
It won't work from inside your LAN. It will only work from the rest of the Internet. Here's why:
You try to reach your public IP address from a LAN machine.
The machine sees that the address is outside the LAN and sends the packet to the router.
The router NATs the destination to the LAN machine, but the source address is unmodified (still the LAN machine that originated the request).
Your server receives the request and sends a response to the source of the connection (still the LAN machine).
The LAN machine receives a response from the server, but it was expecting a response from the router (since it connected to the public IP address, it must get a response from the public IP address, not the server's LAN address). Since the reply has the wrong source address, it is not accepted. Oops.
Port forwarding (rewriting the destination address) only works from the outside to the inside, not from the inside to the inside. For that, you need hairpin NAT which rewrites the destination address in addition to the source.