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