Quote:
When do we really need to add a static route on the server?
Your server needs to have a valid route back to a client whenever you want communication to occur between the two devices.
Your servers and hosts have routing tables which tell them where to send packets that *they* create, just like gateway devices use routing tables to forward other devices' traffic (and also for traffic the gateways create themselves). A gateway could forward a packet just fine, but if your server does not have a valid route, your server will never send the packet to the gateway in the first place. Type "ip route" at the command line to see the kernel IP routing table.
The most common static route you'll have on a server or a client is the default route. A default route tells a host to send all packets that do not match any other routes to a particular destination. This saves you from setting static routes to every host or network you want your server to be able to reply to; it covers everything in one route table entry. To set a default route, you can use the command:
ip route add default dev <interface> via <next hop IP address>