Skip to content
stef edited this page Sep 14, 2010 · 33 revisions

wshare

wshare is a simple program to share an existing network connection. There are two modes, master and client. The master shares an existing network connection (probably to the internet) via an unused wireless device. The client can connect either via the operating system provided facilities or this script in client mode – which is the default. To enable a master supply the the -m parameter to the script.

wshare is currently linux only, released under the GPLv3 and avaible via git:


git clone git://github.com/stef/wshare.git

the script itself is very short, download it directly

News

  • [2008/06/17] fixed two grave bugs

behind the scenes

In master mode (-m),

  1. the wireless device is switched to ad-hoc mode
  2. the essid is set
  3. optionally – an encryption key is set (experimental WEP only currently)
  4. the device is brought up via ifconfig
  5. NAT is set up
  6. dhcpd3 server is configured and brought up to provide network and nameserver settings.

In client mode,

  1. the wireless device is switched to ad-hoc mode
  2. the essid is set
  3. optionally – an encryption key is set (experimental WEP only currently)
  4. the device is brought up via ifconfig
  5. dhclient is run to retrieve shared network information from the Master dhcpd3 server

example

to share a network, either set the parameters in the config file, or adapt the call below:

  1. wshare -m -o ppp0 -i eth0

the important switch is -m, which is necessary for enabling the master mode.

to connect to such a shared network simply call

  1. wshare -i eth0

or you could use NetworkManager under linux, or your operating system provided facilities.

Common settings

the following parameters are to be set either via a configuration file (/etc/wshare.conf, ~/.wshare.conf or in the same directory where the wshare script is located) or or superseding these via command line parameters.

Common parameters are necessary for both master and client operation.

innet

set internal network, over which the external is shared. this must be a wireless device, if none is set, the script tries to use the first device from /proc/net/wireless.

  • default: ath0
  • command line: -i <device>

essid

set the essid of the shared network master

  • default: wshared
  • command line: -e <essid>

key

specify the key for WEP encryption of the internal network. beware this is yet untested and probably not working

  • default: unset
  • command line: -k <key>

Master settings

these settings are only necessary for nodes acting as masters.

subnet

specify the subnet of the internal network. this must be in the /24 range currently… thus it is only possible to specify networks with 3 of four octets

  • default: 10.17.17
  • command line: -n <X.X.X>

exnet

specify which network to share, this is the device that connects to the internet

  • default: ppp0
  • command line: -o <device>

ownip

specify Master IP address, defaults to <subnet>.1

  • default: 10.17.17.1
  • command line: -a <X.X.X.X>