2003-02-14 19:11:34 +03:00
|
|
|
.\" $NetBSD: ifwatchd.8,v 1.13 2003/02/14 16:11:35 grant Exp $
|
2001-11-19 13:10:45 +03:00
|
|
|
.\"
|
2002-04-14 15:41:42 +04:00
|
|
|
.\" Copyright (c) 2001-2002 The NetBSD Foundation, Inc.
|
2001-11-19 12:43:03 +03:00
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
2002-04-14 15:41:42 +04:00
|
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
2003-02-14 19:11:34 +03:00
|
|
|
.\" by Martin Husemann <martin@NetBSD.org>.
|
2002-04-14 15:41:42 +04:00
|
|
|
.\"
|
2001-11-19 12:43:03 +03:00
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
2002-04-14 15:41:42 +04:00
|
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
|
|
.\" must display the following acknowledgement:
|
|
|
|
.\" This product includes software developed by the NetBSD
|
|
|
|
.\" Foundation, Inc. and its contributors.
|
|
|
|
.\" 4. Neither the name of The NetBSD Foundation nor the names of its
|
|
|
|
.\" contributors may be used to endorse or promote products derived
|
|
|
|
.\" from this software without specific prior written permission.
|
2001-11-19 12:43:03 +03:00
|
|
|
.\"
|
2002-04-14 15:41:42 +04:00
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
|
|
|
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
|
|
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
|
|
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
|
|
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
2001-11-19 12:43:03 +03:00
|
|
|
.\" POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
.\"
|
|
|
|
.Dd September 2, 2001
|
|
|
|
.Os
|
|
|
|
.Dt IFWATCHD 8
|
|
|
|
.Sh NAME
|
|
|
|
.Nm ifwatchd
|
2001-12-10 18:04:51 +03:00
|
|
|
.Nd "watch for addresses added to or deleted from interfaces and call up/down-scripts for them"
|
2001-11-19 12:43:03 +03:00
|
|
|
.Sh SYNOPSIS
|
|
|
|
.Nm
|
2001-12-10 18:04:51 +03:00
|
|
|
.Op Fl d Ar down-script
|
2001-11-19 12:43:03 +03:00
|
|
|
.Op Fl h
|
2001-12-10 17:54:09 +03:00
|
|
|
.Op Fl i
|
2001-11-19 12:43:03 +03:00
|
|
|
.Op Fl u Ar up-script
|
2001-12-10 18:04:51 +03:00
|
|
|
.Op Fl v
|
2001-11-19 12:43:03 +03:00
|
|
|
.Ar ifname(s)
|
|
|
|
.Sh DESCRIPTION
|
2001-12-10 18:04:51 +03:00
|
|
|
.Nm
|
2001-11-19 12:43:03 +03:00
|
|
|
is used to monitor dynamic interfaces (for example PPP interfaces) for address
|
2001-11-19 13:10:45 +03:00
|
|
|
changes. Sometimes these interfaces are accompanied by a daemon program, which
|
|
|
|
can take care of running any necessary scripts (like
|
|
|
|
.Xr pppd 8
|
|
|
|
or
|
|
|
|
.Xr isdnd 8 ) ,
|
|
|
|
but sometimes the interfaces run completely autonomously (like
|
|
|
|
.Xr pppoe 8 ) .
|
2001-11-19 12:43:03 +03:00
|
|
|
.Pp
|
2001-12-10 18:04:51 +03:00
|
|
|
.Nm
|
2001-11-19 13:10:45 +03:00
|
|
|
provides a generic way to watch this type of changes. It works by monitoring
|
2001-11-19 12:43:03 +03:00
|
|
|
the routing socket and interpreting
|
|
|
|
.Ql RTM_NEWADDR
|
|
|
|
.Pq address added
|
|
|
|
and
|
|
|
|
.Ql RTM_DELADDR
|
|
|
|
.Pq address deleted
|
2001-11-19 13:10:45 +03:00
|
|
|
messages. It does not need special privileges to do this. The scripts called
|
2001-11-19 12:43:03 +03:00
|
|
|
for up or down events are run with the same user id as
|
|
|
|
.Nm
|
|
|
|
is run.
|
|
|
|
.Pp
|
|
|
|
The following options are available:
|
|
|
|
.Bl -tag -width indent
|
2001-11-19 13:10:45 +03:00
|
|
|
.It Fl d Ar down-script
|
|
|
|
Specify the command to invoke on
|
|
|
|
.Dq interface down
|
|
|
|
events (or: deletion of an address from an interface).
|
2001-11-19 12:43:03 +03:00
|
|
|
.It Fl h
|
|
|
|
Show the synopsis.
|
2001-12-10 18:04:51 +03:00
|
|
|
.It Fl i
|
|
|
|
Inhibit a call to the up-script on startup for all watched interfaces
|
|
|
|
already marked up. If this option is not given,
|
|
|
|
.Nm
|
|
|
|
will check all watched interfaces on startup whether they are already marked
|
|
|
|
up and, if they are, call the up-script with appropriate parameters.
|
|
|
|
.Pp
|
|
|
|
Since ifwatchd typically is started late in the system boot sequence, some
|
|
|
|
of the monitored interfaces may already have come up when it finally starts,
|
|
|
|
but their up-scripts have not been called. By default
|
|
|
|
.Nm
|
|
|
|
calls them on startup to account for this (and make the scripts easier.)
|
2001-11-19 12:43:03 +03:00
|
|
|
.It Fl u Ar up-script
|
|
|
|
Specify the command to invoke on
|
|
|
|
.Dq interface up
|
|
|
|
events (or: addition of an address to an interface).
|
2001-11-19 13:10:45 +03:00
|
|
|
.It Fl v
|
|
|
|
Output verbose progress messages and flag errors ignored during normal
|
|
|
|
operation.
|
|
|
|
.It Ar ifname(s)
|
|
|
|
The name of the interface to watch. Multiple interfaces may be specified.
|
2001-11-19 12:43:03 +03:00
|
|
|
Events for other interfaces are ignored.
|
|
|
|
.El
|
|
|
|
.Sh EXAMPLES
|
2001-11-19 13:10:45 +03:00
|
|
|
.Bd -literal -offset indent
|
2001-11-19 12:43:03 +03:00
|
|
|
# ifwatchd -u /etc/ppp/ip-up -d /etc/ppp/ip-down pppoe0
|
2002-04-15 21:32:18 +04:00
|
|
|
|
2001-11-19 12:43:03 +03:00
|
|
|
.Ed
|
2002-02-23 11:11:22 +03:00
|
|
|
If your pppoe0 interface is your main connection to the internet, the typical
|
|
|
|
use of the up/down scripts is to add and remove a default route. This is
|
|
|
|
an example for an up script doing this:
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
#! /bin/sh
|
2002-04-15 21:32:18 +04:00
|
|
|
/sbin/route add default $5
|
|
|
|
|
2002-02-23 11:11:22 +03:00
|
|
|
.Ed
|
2002-04-15 22:08:22 +04:00
|
|
|
As described below the fifth command line parameter will contain the peer
|
2002-02-23 20:03:18 +03:00
|
|
|
address of the pppoe link. The corresponding ip-down script is:
|
2002-02-23 11:11:22 +03:00
|
|
|
.Bd -literal -offset indent
|
|
|
|
#! /bin/sh
|
2002-04-15 21:32:18 +04:00
|
|
|
/sbin/route delete default $5
|
|
|
|
|
2002-02-23 11:11:22 +03:00
|
|
|
.Ed
|
2002-02-23 20:03:18 +03:00
|
|
|
Note that this is not a good idea if you have pppoe0 configured to connect
|
2002-02-23 11:11:22 +03:00
|
|
|
only on demand (via the link1 flag), but works well for all permanent connected
|
|
|
|
cases. Use
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
! /sbin/route add default -iface 0.0.0.1
|
2002-04-15 21:32:18 +04:00
|
|
|
|
2002-02-23 11:11:22 +03:00
|
|
|
.Ed
|
|
|
|
in your
|
|
|
|
.Pa /etc/ifconfig.pppoe0
|
|
|
|
file in the on-demand case.
|
2001-11-19 12:43:03 +03:00
|
|
|
.Sh PARAMETERS PASSED TO SCRIPTS
|
2002-04-16 11:28:09 +04:00
|
|
|
The invoked scripts get passed these parameters:
|
2002-01-10 22:38:51 +03:00
|
|
|
.Bl -tag -width destination
|
2001-11-19 12:43:03 +03:00
|
|
|
.It Ar ifname
|
|
|
|
The name of the interface this change is for (this allows to share the same
|
2001-11-19 13:10:45 +03:00
|
|
|
script for multiple interfaces watched and dispatching on the interface name
|
2001-11-19 12:43:03 +03:00
|
|
|
in the script).
|
2002-04-15 21:32:18 +04:00
|
|
|
.It Ar tty
|
|
|
|
Dummy parameter for compatibility with
|
|
|
|
.Xr pppd 8
|
|
|
|
which will always be
|
|
|
|
.Em /dev/null .
|
|
|
|
.It Ar speed
|
|
|
|
Dummy parameter for compatibility with
|
|
|
|
.Xr pppd 8
|
|
|
|
which will always be
|
|
|
|
.Em 9600 .
|
2001-11-19 12:43:03 +03:00
|
|
|
.It Ar address
|
2001-11-19 13:10:45 +03:00
|
|
|
The new address if this is an up event, or the no longer valid old address
|
2001-11-19 12:43:03 +03:00
|
|
|
if this is a down event.
|
|
|
|
.Pp
|
|
|
|
The format of the address depends on the address family, for IPv4 it is the
|
|
|
|
usual dotted quad notation, for IPv6 the colon separated standard notation.
|
2002-01-10 22:38:51 +03:00
|
|
|
.It Ar destination
|
|
|
|
For point to point interfaces, this is the remote address of the interface.
|
|
|
|
For other interfaces it is the broadcast address.
|
2001-11-19 12:43:03 +03:00
|
|
|
.El
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr route 4 ,
|
|
|
|
.Xr ifconfig.if 5 ,
|
|
|
|
.Xr pppoe 8 ,
|
|
|
|
.Xr rc.d 8 ,
|
|
|
|
.Xr route 8
|
|
|
|
.Sh HISTORY
|
2001-11-19 13:10:45 +03:00
|
|
|
The
|
2001-11-19 12:43:03 +03:00
|
|
|
.Nm
|
|
|
|
utility appeared in
|
|
|
|
.Nx 1.6 .
|
2001-11-19 13:10:45 +03:00
|
|
|
.Sh AUTHORS
|
2001-11-19 12:43:03 +03:00
|
|
|
The program was written by
|
2003-02-14 19:11:34 +03:00
|
|
|
.An Martin Husemann
|
|
|
|
.Aq martin@NetBSD.org .
|