Ok. I was able to get it to work. Things to note: - With current version of Raspbian (JESSE/LITE), the use of `/etc/network/interfaces` is obsolete. But keep it as it is used by `if-up` and `if-down` scripts. --- __My Setup__ - Gave Raspberry Pi's **_eth0_** a static IP address, connected to router's WAN port. - Gave router a static IP address on the same network with the Raspberry Pi as the gateway. - Installed **dnsmasq** [`sudo apt-get dnsmasq`] on the Raspberry Pi. - Configured packet forwarding [`net.ipv4.ip_forward = 1`] in `/etc/sysctl.conf` - Configured routing using `iptables` - `sudo iptables -t nat -A POSTROUTING -o usb0 -s 192.168.2.0/24 -j MASQUERADE`. **usb0** is the source interface. One can add a `post-up` script in **/etc/network/interfaces** to automate this. --- __Configuring the static IP address static in /etc/dhcpcd.conf__ interface eth0 static ip_address=192.168.0.10/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1