Introduction ============ etherws is an implementation of Ethernet over WebSocket tunnel based on Linux Universal TUN/TAP device driver. Usage ===== For example, if you want to make virtual ethernet link for VM1 and VM2 whose hypervisor's broadcast domains were split by router R:: +------------------+ +------------------+ | Hypervisor1 | | Hypervisor2 | | +-----+ | | +-----+ | | | VM1 | | | | VM2 | | | +--+--+ | | +--+--+ | | | (vnet0) | | (vnet0) | | | +--+--+ | | +--+--+ | | | br0 | | | | br0 | | | +--+--+ | | +--+--+ | | | | | | | | (ethws0) (eth0) | | (eth0) (ethws0) | +----||--------+---+ +----+-------||----+ || | +---+ | || || -----+--------| R |--------+----- || || +---+ || || || ``======================================'' (Ethernet over WebSocket tunnel) then you can type following commands. on Hypervisor1:: # etherws server # brctl addbr br0 # brctl addif br0 vnet0 # brctl addif br0 ethws0 # ifconfig br0 up on Hypervisor2:: # etherws client --uri ws:/// # brctl addbr br0 # brctl addif br0 vnet0 # brctl addif br0 ethws0 # ifconfig br0 up If connection through this tunnel is unstable, then you may fix it by changing VM's MTU to under 1500. Also etherws supports SSL/TLS connection (but authentication is not supported yet), so if you want to encrypt this tunnel, then you can use following options. on Hypervisor1 (options *keyfile* and *certfile* were specified):: # etherws server --keyfile ssl.key --certfile ssl.crt on Hypervisor2 (option *uri*'s scheme was changed to *wss*):: # etherws client --uri wss:/// History ======= 0.2 (2012-05-16 JST) - SSL/TLS connection support 0.1 (2012-05-15 JST) - First release