[Google Chromecast] bagl0312:
I decided to write a small guide describing my configuration with the tp-link wr703n which I am using with success since a while.

It should work in principle for many routers supported by OpenWRT

0) Get the cheap TP-link wr703n portable router + a small and compact USB memory stick (2GB is enough).

For example: http://www.amazon.com/gp/product/B0083Z54P0/ref=s9_dcbhrz_bw_d2_g147_i1_sh

Here you find the official OpenWRT documentation for the above router:

http://wiki.openwrt.org/toh/tp-link/tl-wr703n

However I followed the links below to setup a working configuration (WLAN client+server, VPN client)

1) Install Openwrt+luci (instructions to replace original chinese firmware):

http://wiki.xinchejian.com/wiki/Install_OpenWRT_on_TPlink_WR703N

remember to install also luci-ssl: opkg install luci-ssl

2) Instructions to use the USB memory stick as internal memory (needed since the internal memory of wr703n is so small (4 MB) that it is difficult to install also the VPN PPTP package):

http://en.code-bude.net/2013/02/16/how-to-increase-storage-on-tp-link-wr703n-with-extroot/

3) Install the pptp VPN client:

http://wiki.openwrt.org/doc/howto/vpn.client.pptp

commands are:

opkg update

opkg install ppp-mod-pptp

opkg install luci-proto-ppp

Then connecting my laptop to the router through the LAN cable I configured the following interfaces with luci:

LAN: it is enabled by default, it acts as DHCP server, I changed the ip range to: 192.168.20.x

LANclient: I added this interface to be used when you want to connect your router to a physical ethernet outlet, it gets an IP address with DHCP

Please note that since there is a single physical RJ45 port in the router ONLY ONE of the two above interfaces must be enabled.

In my configuration, LAN starts always enabled so, if needed, I have to disable it and enable LANclient through the web interface after the router bootstrap

WIFI Configuration, I added two wifi interfaces:

WLANclient: acting as DHCP client, it must be configured with the right SSID of the WLAN you want to use

WLANserver: acting as DHCP server, I assigned the 192.168.30.x range, and configured it to broadcast a SSID with WPA2 protection

In the firewall configuration LANclient and WLANclient should be put in the "WAN" zone, while LAN and WLANserver are in the "LAN" zone

With the above settings I can quickly configure the router to share a wired connection OR a wifi connection enabling and configuring the appropriate interfaces: it takes few minutes to "adjust" the configuration to the "hotel" situation.

case 1) a physical RJ45 connection is available

I connect the router to the outlet with a ethernet cable and I access the router with my PC/tablet using WLANserver interface (address 192.168.30.1), then I disable the LAN interface and enable LANclient interface which will get the IP through DHCP.

case 2) A wifi connection is available

I connect to the router with a LAN cable (address 192.168.20.1) OR with the WLANserver interface (address 192.168.30.1).

Then configure the WLANclient interface with the correct SSID (and access encryption, if needed). I start the WLANclient interface which will get an IP address through DHCP

In case VPN is needed:

add a VPNclient pptp interface with the proper access credentials for my VPN service. The VPNclient interface is in the WAN zone of the firewall.

Note that VPN will work perfectly both in case 1) and case 2) above :)

That's it, it seems quite complicated, but using the LUCI web interface it is quite easy to setup everything and it works really well.

For example I am able to watch netflix with my chromecast even when I am outside US, thanks to the VPN, and to share BOTH wifi OR ethernet connections depending on the needs