1 | .\" Automatically generated by Pod::Man v1.36, Pod::Parser v1.13 |
1 | .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 |
2 | .\" |
2 | .\" |
3 | .\" Standard preamble: |
3 | .\" Standard preamble: |
4 | .\" ======================================================================== |
4 | .\" ======================================================================== |
5 | .de Sh \" Subsection heading |
5 | .de Sh \" Subsection heading |
6 | .br |
6 | .br |
… | |
… | |
36 | . ds PI pi |
36 | . ds PI pi |
37 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
37 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
38 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
38 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
39 | . ds L" "" |
39 | . ds L" "" |
40 | . ds R" "" |
40 | . ds R" "" |
41 | . ds C` "" |
41 | . ds C` |
42 | . ds C' "" |
42 | . ds C' |
43 | 'br\} |
43 | 'br\} |
44 | .el\{\ |
44 | .el\{\ |
45 | . ds -- \|\(em\| |
45 | . ds -- \|\(em\| |
46 | . ds PI \(*p |
46 | . ds PI \(*p |
47 | . ds L" `` |
47 | . ds L" `` |
… | |
… | |
127 | .\} |
127 | .\} |
128 | .rm #[ #] #H #V #F C |
128 | .rm #[ #] #H #V #F C |
129 | .\" ======================================================================== |
129 | .\" ======================================================================== |
130 | .\" |
130 | .\" |
131 | .IX Title "VPED.CONF 5" |
131 | .IX Title "VPED.CONF 5" |
132 | .TH VPED.CONF 5 "2003-03-23" "0.1" "Virtual Private Ethernet" |
132 | .TH VPED.CONF 5 "2003-10-16" "1.2" "Virtual Private Ethernet" |
133 | .SH "NAME" |
133 | .SH "NAME" |
134 | vped.conf \- vpe daemon configuration file |
134 | vped.conf \- vpe daemon configuration file |
135 | .SH "SYNOPSIS" |
135 | .SH "SYNOPSIS" |
136 | .IX Header "SYNOPSIS" |
136 | .IX Header "SYNOPSIS" |
137 | .Vb 3 |
137 | .Vb 3 |
… | |
… | |
166 | The only exception to the above is the \*(L"on\*(R" directive that can prefix any |
166 | The only exception to the above is the \*(L"on\*(R" directive that can prefix any |
167 | \&\f(CW\*(C`name = value\*(C'\fR setting and will only \*(L"execute\*(R" it on the named node, or |
167 | \&\f(CW\*(C`name = value\*(C'\fR setting and will only \*(L"execute\*(R" it on the named node, or |
168 | (if the nodename starts with \*(L"!\*(R") on all nodes except the named one. |
168 | (if the nodename starts with \*(L"!\*(R") on all nodes except the named one. |
169 | .PP |
169 | .PP |
170 | .Vb 3 |
170 | .Vb 3 |
171 | \& name = value |
171 | \& name = value |
172 | \& on branch1 loglevel = noise |
172 | \& on branch1 loglevel = noise |
173 | \& on !branch2 connect = ondemand |
173 | \& on !branch2 connect = ondemand |
174 | .Ve |
174 | .Ve |
175 | .PP |
175 | .PP |
176 | All settings are executed \*(L"in order\*(R", that is, later settings of the same |
176 | All settings are executed \*(L"in order\*(R", that is, later settings of the same |
177 | variable overwrite earlier ones. |
177 | variable overwrite earlier ones. |
178 | .SH "ANATOMY OF A CONFIG FILE" |
178 | .SH "ANATOMY OF A CONFIG FILE" |
… | |
… | |
214 | \&\f(CW\*(C`vpectrl\*(C'\fR puts them. |
214 | \&\f(CW\*(C`vpectrl\*(C'\fR puts them. |
215 | .Sp |
215 | .Sp |
216 | Since only the private key file of the current node is used and the |
216 | Since only the private key file of the current node is used and the |
217 | private key file should be kept secret per-host to avoid spoofings, it is |
217 | private key file should be kept secret per-host to avoid spoofings, it is |
218 | not recommended to use this feature. |
218 | not recommended to use this feature. |
219 | .IP "ifpersist = yes|no" 4 |
219 | .IP "ifpersist = yes|true|on | no|false|off" 4 |
220 | .IX Item "ifpersist = yes|no" |
220 | .IX Item "ifpersist = yes|true|on | no|false|off" |
221 | Should the tun/tap device be made persistent, that is, should the device |
221 | Should the tun/tap device be made persistent, that is, should the device |
222 | stay up even when vped exits? Some versions of the tunnel device have |
222 | stay up even when vped exits? Some versions of the tunnel device have |
223 | problems sending packets when vped is restarted in persistent mode, so |
223 | problems sending packets when vped is restarted in persistent mode, so |
224 | if the connections can be established but you cannot send packets from |
224 | if the connections can be established but you cannot send packets from |
225 | the local node, try to set this to \f(CW\*(C`off\*(C'\fR and do an ifconfig down on the |
225 | the local node, try to set this to \f(CW\*(C`off\*(C'\fR and do an ifconfig down on the |
… | |
… | |
247 | this information to the \f(CW\*(C`if\-up\*(C'\fR script. |
247 | this information to the \f(CW\*(C`if\-up\*(C'\fR script. |
248 | .Sp |
248 | .Sp |
249 | Recommended values are 1500 (ethernet), 1492 (pppoe), 1472 (pptp). |
249 | Recommended values are 1500 (ethernet), 1492 (pppoe), 1472 (pptp). |
250 | .Sp |
250 | .Sp |
251 | This value must be the minimum of the mtu values of all hosts. |
251 | This value must be the minimum of the mtu values of all hosts. |
|
|
252 | .IP "ip-proto = numerical-ip-protocol" 4 |
|
|
253 | .IX Item "ip-proto = numerical-ip-protocol" |
|
|
254 | Sets the protocol number to be used for the rawip protocol. This is a |
|
|
255 | global option because all hosts must use the same protocol, and since |
|
|
256 | there are no port numbers, you cannot easily run more than one vped |
|
|
257 | instance using the same protocol, nor can you share the protocol with |
|
|
258 | other programs. |
|
|
259 | .Sp |
|
|
260 | The default is 47 (\s-1GRE\s0), which has a good chance of tunneling through |
|
|
261 | firewalls (but note that the rawip protocol is not \s-1GRE\s0 compatible). Other |
|
|
262 | common choices are 50 (\s-1IPSEC\s0, \s-1ESP\s0), 51 (\s-1IPSEC\s0, \s-1AH\s0), 4 (\s-1IPIP\s0 tunnels) or 98 |
|
|
263 | (\s-1ENCAP\s0, rfc1241) |
252 | .IP "if-up = relative-or-absolute-path" 4 |
264 | .IP "if-up = relative-or-absolute-path" 4 |
253 | .IX Item "if-up = relative-or-absolute-path" |
265 | .IX Item "if-up = relative-or-absolute-path" |
254 | Sets the path of a script that should be called immediately after the |
266 | Sets the path of a script that should be called immediately after the |
255 | network interface is initialized (but not neccessarily up). The following |
267 | network interface is initialized (but not neccessarily up). The following |
256 | environment variables are passed to it (the values are just examples): |
268 | environment variables are passed to it (the values are just examples): |
… | |
… | |
266 | The \s-1MTU\s0 to set the interface to. You can use lower values (if done |
278 | The \s-1MTU\s0 to set the interface to. You can use lower values (if done |
267 | consistently on all hosts), but this is usually ineffective. |
279 | consistently on all hosts), but this is usually ineffective. |
268 | .IP "MAC=fe:fd:80:00:00:01" 4 |
280 | .IP "MAC=fe:fd:80:00:00:01" 4 |
269 | .IX Item "MAC=fe:fd:80:00:00:01" |
281 | .IX Item "MAC=fe:fd:80:00:00:01" |
270 | The \s-1MAC\s0 address to set the interface to. The script *must* set the |
282 | The \s-1MAC\s0 address to set the interface to. The script *must* set the |
271 | interface \s-1MAC\s0 to this value. On GNU/Linux you will most likely use this: |
283 | interface \s-1MAC\s0 to this value. You will most likely use one of these: |
272 | .Sp |
284 | .Sp |
273 | .Vb 1 |
285 | .Vb 2 |
274 | \& ip link set $IFNAME address $MAC mtu $MTU up |
286 | \& ip link set $IFNAME address $MAC mtu $MTU up # GNU/Linux |
|
|
287 | \& ifconfig $IFNAME ether $MAC mtu $MTU up # FreeBSD |
275 | .Ve |
288 | .Ve |
|
|
289 | .Sp |
|
|
290 | Please see the \f(CW\*(C`vpe.osdep(5)\*(C'\fR manpage for platform-specific information. |
|
|
291 | .IP "IFTYPE=native # or tincd" 4 |
|
|
292 | .IX Item "IFTYPE=native # or tincd" |
|
|
293 | .PD 0 |
|
|
294 | .IP "IFSUBTYPE=linux # or freebsd, darwin etc.." 4 |
|
|
295 | .IX Item "IFSUBTYPE=linux # or freebsd, darwin etc.." |
|
|
296 | .PD |
|
|
297 | The interface type (\f(CW\*(C`native\*(C'\fR or \f(CW\*(C`tincd\*(C'\fR) and the subtype (usually the os |
|
|
298 | name in lowercase) that this vpe was configured for. Can be used to select |
|
|
299 | the correct syntax to use for network-related commands. |
276 | .IP "NODENAME=branch1" 4 |
300 | .IP "NODENAME=branch1" 4 |
277 | .IX Item "NODENAME=branch1" |
301 | .IX Item "NODENAME=branch1" |
278 | The nickname of the current node, as passed to the vped daemon. |
302 | The nickname of the current node, as passed to the vped daemon. |
279 | .IP "NODEID=1" 4 |
303 | .IP "NODEID=1" 4 |
280 | .IX Item "NODEID=1" |
304 | .IX Item "NODEID=1" |
… | |
… | |
284 | .RS 4 |
308 | .RS 4 |
285 | .Sp |
309 | .Sp |
286 | Here is a simple if-up script: |
310 | Here is a simple if-up script: |
287 | .Sp |
311 | .Sp |
288 | .Vb 5 |
312 | .Vb 5 |
289 | \& #!/bin/sh |
313 | \& #!/bin/sh |
290 | \& ip link set $IFNAME address $MAC mtu $MTU up |
314 | \& ip link set $IFNAME address $MAC mtu $MTU up |
291 | \& [ $NODENAME = branch1 ] && ip addr add 10.0.0.1 dev $IFNAME |
315 | \& [ $NODENAME = branch1 ] && ip addr add 10.0.0.1 dev $IFNAME |
292 | \& [ $NODENAME = branch2 ] && ip addr add 10.1.0.1 dev $IFNAME |
316 | \& [ $NODENAME = branch2 ] && ip addr add 10.1.0.1 dev $IFNAME |
293 | \& ip route add 10.0.0.0/8 dev $IFNAME |
317 | \& ip route add 10.0.0.0/8 dev $IFNAME |
294 | .Ve |
318 | .Ve |
295 | .Sp |
319 | .Sp |
296 | More complicated examples (using routing to reduce arp traffic) can be |
320 | More complicated examples (using routing to reduce arp traffic) can be |
297 | found in the etc/ subdirectory of the distribution. |
321 | found in the etc/ subdirectory of the distribution. |
298 | .RE |
322 | .RE |
… | |
… | |
311 | The node id of the remote node. |
335 | The node id of the remote node. |
312 | .IP "DESTIP=188.13.66.8" 4 |
336 | .IP "DESTIP=188.13.66.8" 4 |
313 | .IX Item "DESTIP=188.13.66.8" |
337 | .IX Item "DESTIP=188.13.66.8" |
314 | The numerical \s-1IP\s0 address of the remote host (vped accepts connections from |
338 | The numerical \s-1IP\s0 address of the remote host (vped accepts connections from |
315 | everywhere, as long as the other host can authenticate itself). |
339 | everywhere, as long as the other host can authenticate itself). |
316 | .IP "DESTPORT=407 # deprecated" 4 |
340 | .IP "DESTPORT=655 # deprecated" 4 |
317 | .IX Item "DESTPORT=407 # deprecated" |
341 | .IX Item "DESTPORT=655 # deprecated" |
318 | The \s-1UDP\s0 port used by the other side. |
342 | The \s-1UDP\s0 port used by the other side. |
319 | .IP "STATE=UP" 4 |
343 | .IP "STATE=UP" 4 |
320 | .IX Item "STATE=UP" |
344 | .IX Item "STATE=UP" |
321 | Node-up scripts get called with STATE=UP, node-down scripts get called |
345 | Node-up scripts get called with STATE=UP, node-down scripts get called |
322 | with STATE=DOWN. |
346 | with STATE=DOWN. |
… | |
… | |
325 | .Sp |
349 | .Sp |
326 | Here is a nontrivial example that uses nsupdate to update the name => ip |
350 | Here is a nontrivial example that uses nsupdate to update the name => ip |
327 | mapping in some dns zone: |
351 | mapping in some dns zone: |
328 | .Sp |
352 | .Sp |
329 | .Vb 6 |
353 | .Vb 6 |
330 | \& #!/bin/sh |
354 | \& #!/bin/sh |
331 | \& { |
355 | \& { |
332 | \& echo update delete $DESTNODE.lowttl.example.net. a |
356 | \& echo update delete $DESTNODE.lowttl.example.net. a |
333 | \& echo update add $DESTNODE.lowttl.example.net. 1 in a $DESTIP |
357 | \& echo update add $DESTNODE.lowttl.example.net. 1 in a $DESTIP |
334 | \& echo |
358 | \& echo |
335 | \& } | nsupdate -d -k $CONFBASE:key.example.net. |
359 | \& } | nsupdate -d -k $CONFBASE:key.example.net. |
336 | .Ve |
360 | .Ve |
337 | .RE |
361 | .RE |
338 | .IP "node-down = relative-or-absolute-path" 4 |
362 | .IP "node-down = relative-or-absolute-path" 4 |
339 | .IX Item "node-down = relative-or-absolute-path" |
363 | .IX Item "node-down = relative-or-absolute-path" |
340 | Same as \f(CW\*(C`node\-up\*(C'\fR, but gets called whenever a connection is lost. |
364 | Same as \f(CW\*(C`node\-up\*(C'\fR, but gets called whenever a connection is lost. |
|
|
365 | .IP "http-proxy-host = hostname/ip" 4 |
|
|
366 | .IX Item "http-proxy-host = hostname/ip" |
|
|
367 | The \f(CW\*(C`http\-proxy\-*\*(C'\fR family of options are only available if vpe was |
|
|
368 | compiled with the \f(CW\*(C`\-\-enable\-http\-proxy\*(C'\fR option and enable tunneling of |
|
|
369 | tcp connections through a http proxy server. |
|
|
370 | .Sp |
|
|
371 | \&\f(CW\*(C`http\-proxy\-host\*(C'\fR and \f(CW\*(C`http\-proxy\-port\*(C'\fR should specify the hostname and |
|
|
372 | port number of the proxy server. See \f(CW\*(C`http\-proxy\-loginpw\*(C'\fR if your proxy |
|
|
373 | requires authentication. |
|
|
374 | .Sp |
|
|
375 | Please note that vpe will still try to resolve all hostnames in the |
|
|
376 | configuration file, so if you are behind a proxy without access to a dns |
|
|
377 | server better use numerical \s-1IP\s0 addresses. |
|
|
378 | .Sp |
|
|
379 | To make best use of this option disable all protocols except tcp in your |
|
|
380 | config file and make sure your routers (or all other hosts) are listening |
|
|
381 | on a port that the proxy allows (443, https, is a common choice). |
|
|
382 | .Sp |
|
|
383 | If you have a router, connecting to it will suffice. Otherwise tcp must be |
|
|
384 | enabled on all hosts. |
|
|
385 | .Sp |
|
|
386 | Example: |
|
|
387 | .Sp |
|
|
388 | .Vb 3 |
|
|
389 | \& http-proxy-host = proxy.example.com |
|
|
390 | \& http-proxy-port = 3128 # 8080 is another common choice |
|
|
391 | \& http-proxy-auth = schmorp:grumbeere |
|
|
392 | .Ve |
|
|
393 | .IP "http-proxy-port = proxy-tcp-port" 4 |
|
|
394 | .IX Item "http-proxy-port = proxy-tcp-port" |
|
|
395 | The port where your proxy server listens. |
|
|
396 | .IP "http-proxy-auth = login:password" 4 |
|
|
397 | .IX Item "http-proxy-auth = login:password" |
|
|
398 | The optional login and password used to authenticate to the proxy server, |
|
|
399 | seperated by a literal colon (\f(CW\*(C`:\*(C'\fR). Only basic authentication is |
|
|
400 | currently supported. |
341 | .Sh "\s-1NODE\s0 \s-1SPECIFIC\s0 \s-1SETTINGS\s0" |
401 | .Sh "\s-1NODE\s0 \s-1SPECIFIC\s0 \s-1SETTINGS\s0" |
342 | .IX Subsection "NODE SPECIFIC SETTINGS" |
402 | .IX Subsection "NODE SPECIFIC SETTINGS" |
343 | The following settings are node\-specific, that is, every node can have |
403 | The following settings are node\-specific, that is, every node can have |
344 | different settings, even within the same vped instance. Settings that are |
404 | different settings, even within the same vped instance. Settings that are |
345 | executed before the first node section set the defaults, settings that are |
405 | executed before the first node section set the defaults, settings that are |
346 | executed within a node section only apply to the given node. |
406 | executed within a node section only apply to the given node. |
347 | .IP "udp-port = port-number" 4 |
407 | .IP "udp-port = port-number" 4 |
348 | .IX Item "udp-port = port-number" |
408 | .IX Item "udp-port = port-number" |
349 | Sets the port number used by the \s-1UDP\s0 protocol (default: \f(CW407\fR, not |
409 | Sets the port number used by the \s-1UDP\s0 protocol (default: \f(CW655\fR, not |
350 | officially assigned by \s-1IANA\s0!). |
410 | officially assigned by \s-1IANA\s0!). |
|
|
411 | .IP "tcp-port = port-number" 4 |
|
|
412 | .IX Item "tcp-port = port-number" |
|
|
413 | Similar to \f(CW\*(C`udp\-port\*(C'\fR (default: \f(CW655\fR), but sets the \s-1TCP\s0 port number. |
|
|
414 | .IP "enable-rawip = yes|true|on | no|false|off" 4 |
|
|
415 | .IX Item "enable-rawip = yes|true|on | no|false|off" |
|
|
416 | Enable the \s-1RAW\s0 IPv4 transport using the \f(CW\*(C`ip\-proto\*(C'\fR protocol |
|
|
417 | (default: \f(CW\*(C`no\*(C'\fR). This is the best choice, since the overhead per packet |
|
|
418 | is only 38 bytes, as opposed to \s-1UDP\s0's 58 (or \s-1TCP\s0's 60+). |
|
|
419 | .IP "enable-udp = yes|true|on | no|false|off" 4 |
|
|
420 | .IX Item "enable-udp = yes|true|on | no|false|off" |
|
|
421 | Enable the UDPv4 transport using the \f(CW\*(C`udp\-port\*(C'\fR port |
|
|
422 | (default: \f(CW\*(C`yes\*(C'\fR). This is a good general choice since \s-1UDP\s0 tunnels well |
|
|
423 | through many firewalls. |
|
|
424 | .IP "enable-tcp = yes|true|on | no|false|off" 4 |
|
|
425 | .IX Item "enable-tcp = yes|true|on | no|false|off" |
|
|
426 | Enable the TCPv4 transport using the \f(CW\*(C`tcp\-port\*(C'\fR port |
|
|
427 | (default: \f(CW\*(C`no\*(C'\fR). Support for this horribly unsuitable protocol is only |
|
|
428 | available when vpe was compiled using the \f(CW\*(C`\-\-enable\-tcp\*(C'\fR option. Never |
|
|
429 | use this transport unless you really must, it is horribly ineffiecent and |
|
|
430 | resource-intensive compared to the other transports. |
351 | .IP "router-priority = positive-number" 4 |
431 | .IP "router-priority = positive-number" 4 |
352 | .IX Item "router-priority = positive-number" |
432 | .IX Item "router-priority = positive-number" |
353 | Sets the router priority of the given host (default: \f(CW0\fR, disabled). If |
433 | Sets the router priority of the given host (default: \f(CW0\fR, disabled). If |
354 | some host tries to connect to another host without a hostname, it asks |
434 | some host tries to connect to another host without a hostname, it asks |
355 | the router host for it's \s-1IP\s0 address. The router host is the one with the |
435 | the router host for it's \s-1IP\s0 address. The router host is the one with the |
… | |
… | |
361 | try to establish and keep a conenction to the given host), \f(CW\*(C`never\*(C'\fR |
441 | try to establish and keep a conenction to the given host), \f(CW\*(C`never\*(C'\fR |
362 | (nevr initiate a connection to the given host, but accept connections), |
442 | (nevr initiate a connection to the given host, but accept connections), |
363 | \&\f(CW\*(C`ondemand\*(C'\fR (try to establish a connection on the first packet sent, and |
443 | \&\f(CW\*(C`ondemand\*(C'\fR (try to establish a connection on the first packet sent, and |
364 | take it down after the keepalive interval) or \f(CW\*(C`disabled\*(C'\fR (node is bad, |
444 | take it down after the keepalive interval) or \f(CW\*(C`disabled\*(C'\fR (node is bad, |
365 | don't talk to it). |
445 | don't talk to it). |
366 | .IP "inherit-tos = yes|no" 4 |
446 | .IP "inherit-tos = yes|true|on | no|false|off" 4 |
367 | .IX Item "inherit-tos = yes|no" |
447 | .IX Item "inherit-tos = yes|true|on | no|false|off" |
368 | Wether to inherit the \s-1TOS\s0 settings of packets sent to the tunnel when |
448 | Wether to inherit the \s-1TOS\s0 settings of packets sent to the tunnel when |
369 | sending packets to this node (default: \f(CW\*(C`yes\*(C'\fR). If set to \f(CW\*(C`yes\*(C'\fR then |
449 | sending packets to this node (default: \f(CW\*(C`yes\*(C'\fR). If set to \f(CW\*(C`yes\*(C'\fR then |
370 | outgoing tunnel packets will have the same \s-1TOS\s0 setting as the packets sent |
450 | outgoing tunnel packets will have the same \s-1TOS\s0 setting as the packets sent |
371 | to the tunnel device, which is usually what you want. |
451 | to the tunnel device, which is usually what you want. |
372 | .IP "compress = yes|no" 4 |
452 | .IP "compress = yes|true|on | no|false|off" 4 |
373 | .IX Item "compress = yes|no" |
453 | .IX Item "compress = yes|true|on | no|false|off" |
374 | Wether to compress data packets sent to this host (default: \f(CW\*(C`yes\*(C'\fR, |
454 | Wether to compress data packets sent to this host (default: \f(CW\*(C`yes\*(C'\fR). |
375 | compression is really cheap even on slow computers and has no size |
455 | Compression is really cheap even on slow computers and has no size |
376 | overhead at all). |
456 | overhead at all, so enabling this is a good idea. |
377 | .SH "CONFIG DIRECTORY LAYOUT" |
457 | .SH "CONFIG DIRECTORY LAYOUT" |
378 | .IX Header "CONFIG DIRECTORY LAYOUT" |
458 | .IX Header "CONFIG DIRECTORY LAYOUT" |
379 | The default (or recommended) directory layout for the config directory is: |
459 | The default (or recommended) directory layout for the config directory is: |
380 | .IP "vped.conf" 4 |
460 | .IP "vped.conf" 4 |
381 | .IX Item "vped.conf" |
461 | .IX Item "vped.conf" |
… | |
… | |
392 | .IP "pubkey/nodename" 4 |
472 | .IP "pubkey/nodename" 4 |
393 | .IX Item "pubkey/nodename" |
473 | .IX Item "pubkey/nodename" |
394 | The public keys of the other nodes, one file per node. |
474 | The public keys of the other nodes, one file per node. |
395 | .SH "SEE ALSO" |
475 | .SH "SEE ALSO" |
396 | .IX Header "SEE ALSO" |
476 | .IX Header "SEE ALSO" |
397 | \&\fIvpe\fR\|(8), \fIvped\fR\|(8), \fIvpectrl\fR\|(8). |
477 | \&\fIvpe\fR\|(5), \fIvped\fR\|(8), \fIvpectrl\fR\|(8). |
398 | .SH "AUTHOR" |
478 | .SH "AUTHOR" |
399 | .IX Header "AUTHOR" |
479 | .IX Header "AUTHOR" |
400 | Marc Lehmann <vpe@plan9.de> |
480 | Marc Lehmann <vpe@plan9.de> |