ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/doc/gvpe.osdep.5.pod
(Generate patch)

Comparing gvpe/doc/gvpe.osdep.5.pod (file contents):
Revision 1.3 by pcg, Tue Mar 15 18:15:39 2005 UTC vs.
Revision 1.9 by pcg, Fri Mar 25 15:38:07 2005 UTC

5=head1 DESCRIPTION 5=head1 DESCRIPTION
6 6
7This file tries to capture OS-dependent configuration or build issues, 7This file tries to capture OS-dependent configuration or build issues,
8quirks and platform limitations, as known. 8quirks and platform limitations, as known.
9 9
10=head2 TUN vs. TAP interface 10=head1 TUN vs. TAP interface
11 11
12Most operating systems nowadays support something called a 12Most operating systems nowadays support something called a
13I<tunnel>-device, which makes it possible to divert IPv4 (and often other 13I<tunnel>-device, which makes it possible to divert IPv4 (and often other
14protocols, too) into a userspace daemon like C<gvpe>. This is being 14protocols, too) into a userspace daemon like C<gvpe>. This is being
15referred to as a TUN-device. 15referred to as a TUN-device.
28found on a specific host, you will either need to hardwire the MAC address 28found on a specific host, you will either need to hardwire the MAC address
29for TUN-style hosts on all networks (and avoid ARP altogether, which is 29for TUN-style hosts on all networks (and avoid ARP altogether, which is
30possible), or you need to send a packet from these hosts into the vpn 30possible), or you need to send a packet from these hosts into the vpn
31network to tell gvpe the local interface address. 31network to tell gvpe the local interface address.
32 32
33=head1 Interface Initialisation
34
35Unless otherwise notes, the network interface will be initialized with the
36expected MAC address and correct MTU value. With most interface drivers,
37this is done by running C</sbin/ifconfig>, so make sure that this command
38exists.
39
40=head1 Interface Types
41
33=head2 native/linux 42=head2 native/linux
34 43
35TAP-device; already part of the kernel (only 2.4+ supported, but see 44TAP-device; already part of the kernel (only 2.4+ supported, but see
36tincd/linux). This is the configuration tested best, as gvpe is being 45tincd/linux). This is the configuration tested best, as gvpe is being
37developed on this platform. 46developed on this platform.
38 47
39To configure the interface, use either iproute2: 48C<ifname> should be set to the name of the network device.
40 49
41 ip set $IFNAME address $MAC mtu $MTU up
42 ip addr add $IFNAME 10.11.12.13
43 ip route add $IFNAME 10.11.12.13/8
44
45Or ifconfig:
46
47 ifconfig $IFNAME hw ether $MAC mtu $MTU
48 ifconfig $IFNAME 10.11.12.13 netmask 255.0.0.0
49
50To hardwire ARP addresses, use iproute2 (ifconfig can do it, too): 50To hardwire ARP addresses, use iproute2 (C<arp> can do it, too):
51 51
52 MAC=fe:fd:80:00:00:$(printf "%02x" $NODEID) 52 MAC=fe:fd:80:00:00:$(printf "%02x" $NODEID)
53 ip neighbour add 10.11.12.13 lladdr $MAC nud permanent dev $IFNAME 53 ip neighbour add 10.11.12.13 lladdr $MAC nud permanent dev $IFNAME
54 54
55=head2 tincd/linux 55=head2 tincd/linux
56 56
57TAP-device; already part of the kernel (2.2+ supported). See 57TAP-device; already part of the kernel (2.2 only). See
58C<native/linux> for more info. 58C<native/linux> for more info.
59
60C<ifname> should be set to the path of a tap device,
61e.g. C</dev/tap0>. The interface will be named accordingly.
59 62
60=head2 native/cygwin 63=head2 native/cygwin
61 64
62TAP-device; The TAP device to be used must either be the CIPE driver 65TAP-device; The TAP device to be used must either be the CIPE driver
63(C<http://cipe-win32.sourceforge.net/>), or (highly recommended) the newer 66(C<http://cipe-win32.sourceforge.net/>), or (highly recommended) the newer
64TAP-Win32 driver bundled with openvpn (http://openvpn.sf.net/). Just 67TAP-Win32 driver bundled with openvpn (http://openvpn.sf.net/). Just
65download and run the openvpn installer. The only option you need to select 68download and run the openvpn installer. The only option you need to select
66is the TAP driver. 69is the TAP driver.
67 70
68The MAC need not be set (and in fact I<cannot> be set). The 71C<ifname> should be set to the name of the device, found in the registry
72at (no kidding :):
73
74 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\<adapterid>\Connection\Name
75
69MAC address is dynamically being patched into packets and ARP-requests, so 76The MAC address is dynamically being patched into packets and
70only IPv4 works with ARP on this platform. 77ARP-requests, so only IPv4 works with ARP on this platform.
71 78
72=head2 tincd/freebsd 79=head2 tincd/freebsd
73 80
74TAP-device; part of the kernel (since 4.x, maybe earlier). To initialize 81TAP-device; part of the kernel (since 4.x, maybe earlier).
75the interface, use this command:
76 82
77 ifconfig $IFNAME ether $MAC mtu $MTU up 83C<ifname> should be set to the path of a tap device,
84e.g. C</dev/tap0>. The interface will be named accordingly.
85
86These commands might be helpful examples:
87
88 ifconfig $IFNAME 10.0.0.$NODEID
89 route add -net 10.0.0.0 -netmask 255.255.255.0 -interface $IFNAME 10.0.0.$NODEID
78 90
79=head2 tincd/netbsd 91=head2 tincd/netbsd
80 92
81TUN-device; The interface is a point to point-device. To initialize it, 93TUN-device; The interface is a point-to-point device. To initialize it,
82you currently need to configure it as such, giving it an address on your 94you currently need to configure it as a point-to-point device, giving it
83vpn (the exact address doesn't matter), like this: 95an address on your vpn (the exact address doesn't matter), like this:
84 96
85 ifconfig $IFNAME mtu $MTU up 97 ifconfig $IFNAME mtu $MTU up
86 ifconfig $IFNAME 10.11.12.13 10.55.66.77 98 ifconfig $IFNAME 10.11.12.13 10.55.66.77
87 route add -net 10.0.0.0 10.55.66.77 255.0.0.0 99 route add -net 10.0.0.0 10.55.66.77 255.0.0.0
88 ping -c1 10.55.66.77 # ping once to tell gvpe your gw ip 100 ping -c1 10.55.66.77 # ping once to tell gvpe your gw ip
89 101
102The ping is required to tell the ARP emulator inside GVPE the local IP
103address.
104
105C<ifname> should be set to the path of a tun device,
106e.g. C</dev/tun0>. The interface will be named accordingly.
107
90=head2 tincd/openbsd 108=head2 tincd/openbsd
91 109
92TUN-device; already part of the kernel. See C<tincd/netbsd> for more information. 110TUN-device; already part of the kernel. See C<tincd/netbsd> for more information.
93 111
112=head2 native/darwin
113
114TAP-device;
115
116The necessary kernel extension can be found here:
117
118 http://www-user.rhrk.uni-kl.de/~nissler/tuntap/
119
120There are two drivers, the one to use is the "tap" driver. It driver must
121be loaded before use, read the docs on how to install it as a startup
122item.
123
124C<ifname> should be set to the path of a tap device,
125e.g. C</dev/tap0>. The interface will be named accordingly.
126
127These commands might be helpful examples:
128
129 ifconfig $IFNAME 10.0.0.$NODEID
130 route add -net 10.0.0.0 -interface $IFNAME 255.255.255.0
131
94=head2 tincd/darwin 132=head2 tincd/darwin
95 133
96TUN-device; See C<tincd/netbsd> for more information. 134TUN-device; See C<tincd/netbsd> for more information. C<native/darwin> is
135preferable.
97 136
98The necessary kernel extension can be found here: 137The necessary kernel extension can be found here:
99 138
100 http://chrisp.de/en/projects/tunnel.html 139 http://chrisp.de/en/projects/tunnel.html
101 140
102A newer (and reportedly much more stable) driver that also supports TAP 141C<ifname> should be set to the path of a tun device,
103operations is available here: 142e.g. C</dev/tun0>. The interface will be named accordingly.
104 143
105 http://www-user.rhrk.uni-kl.de/~nissler/tuntap/ 144The driver must be loaded before use:
106 145
107But GVPE has not been used with it, and has not been ported to it's TAP 146 kmodload tunnel
108interface. Patches are welcome.
109 147
110=head2 tincd/solaris 148=head2 tincd/solaris
111 149
112TUN-device; already part of the kernel. see C<tincd/netbsd> for more 150TUN-device; already part of the kernel(?), or available here:
151
152 http://vtun.sourceforge.net/tun/
153
154Some precompiled tun drivers might be available here:
155
156 http://www.monkey.org/~dugsong/fragroute/
157
158The interface MAC and MTU are I<NOT> set up for you. Please try it out and
159send me an C<ifconfig> command invocation that does that.
160
161See C<tincd/netbsd> for more information.
162
113information. Completely untested so far. 163Completely unstested so far.
114 164
115=head2 tincd/mingw 165=head2 tincd/mingw
116 166
117TAP-device; see C<native/cygwin> for more information. Completey untested so far. 167TAP-device; see C<native/cygwin> for more information.
168
169The setup is likely to be similar to C<native/cygwin>.
170
171Completely untested so far.
172
173=head2 tincd/raw_socket
174
175TAP-device; purpose unknown and untested, probably binds itself on an
176existing ethernet device (given by C<ifname>). It must be down prior to
177running the command, and GVPE will try to set it's MAC address and MTU to
178the "correct" values.
179
180Completely untested so far.
181
182=head2 tincd/uml_socket
183
184TAP-device; purpose unknown and untested, probably creates a unix datagram
185socket (path given by C<ifname>) and reads and writes raw packets, so
186might be useful in other than UML contexts.
187
188No network interface is created, and the MAC and MTU must be set as
189approriate on the other side of the socket. GVPE will exit if the MAC
190address doesn't match what it expects.
191
192Completely untested so far.
118 193
119=head2 tincd/cygwin 194=head2 tincd/cygwin
120 195
121Known to be broken. 196Known to be broken, use C<native/cygwin> instead.
122
123 197
124=head1 SEE ALSO 198=head1 SEE ALSO
125 199
126gvpe(5). 200gvpe(5).
127 201

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines