arp.conf
24 answers - 3071 bytes -

Hi.
I'm not sure if people are still using arp(8) a lot, but I've been using
this on several boxes for a while (except for the man page changes I
just wrote).
Juts like mixerctl.conf(5) and wsconsctl.conf(5) and their respective
commands if /etc/arp.conf exists, rc will use arp(8) to add entries on
system startup.
Cheers!
Index: rc
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.298
diff -u -r1.298 rc
rc2 Feb 2007 14:51:19 -00001.298
rc6 Feb 2007 16:17:02 -0000
@@ -251,6 +251,10 @@
fi
. /etc/netstart
+if [ -s /etc/arp.conf ]; then
+echo 'setting static ARP entries';arp -Ff /etc/arp.conf >/dev/null 2>&1
+fi
+
if [ X"${pf}" != X"N" ]; then
if [ -f ${pf_rules} ]; then
pfctl -f ${pf_rules}
Index: arp.8
RCS file: /cvs/src/usr.sbin/arp/arp.8,v
retrieving revision 1.17
diff -u -r1.17 arp.8
arp.826 May 2006 09:00:57 -00001.17
arp.84 Feb 2007 17:00:38 -0000
@@ -123,6 +123,12 @@
even though the host address is not its own.
This behavior has traditionally been called
.Em proxy ARP .
+.Pp
+If the file
+.Em /etc/arp.conf
+exists, it will be processed by
+.Xr rc 8
+as input file on system startup.
.It Fl n
Show network addresses as numbers (normally
.Nm
@@ -175,6 +181,7 @@
.Sh SEE ALS
.Xr inet 3 ,
.Xr arp 4 ,
+.Xr arp.conf 5 ,
.Xr ifconfig 8
.Sh HISTRY
The
/dev/nullSun Feb 4 18:09:37 2007
/Sun Feb 4 17:51:20 2007
@@ -0,0 +1,46 @@
+.\"$BSD$
+.\"
+.\" Copyright (c) 2007 Antoine Jacoutot <ajacoutot (AT) openbsd (DOT) org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SFTWARE IS PRVIDED "AS IS" AND THE AUTHR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD T THIS SFTWARE INCLUDING ALL IMPLIED WARRANTIES F
+.\" MERCHANTABILITY AND FITNESS. IN N EVENT SHALL THE AUTHR BE LIABLE FR
+.\" ANY SPECIAL, DIRECT, INDIRECT, R CNSEQUENTIAL DAMAGES R ANY DAMAGES
+.\" WHATSEVER RESULTING FRM LSS F USE, DATA R PRFITS, WHETHER IN AN
+.\" ACTIN F CNTRACT, NEGLIGENCE R THER TRTIUS ACTIN, ARISING UT F
+.\" R IN CNNECTIN WITH THE USE R PERFRMANCE F THIS SFTWARE.
+.\"
+.Dd February 04, 2007
+.Dt ARP.CNF 5
+
+.Sh NAME
+.Nm arp.conf
+.Nd static arp entries processed at system startup
+.Sh DESCRIPTIN
+.Nm
+contains a list of static
+.Xr arp 8
+entries to be set in the ARP tables at system startup by
+.Xr rc 8 .
+.Pp
+As described in
+.Xr arp 8 ,
+entries in this file should be of the form:
+.Bd -filled -offset indent
+.Ar hostname ether_addr
+ Cm temp | permanent
+ Cm pub
+.Ed
+.Pp
+.Sh FILES
+.Bl -tag -width /etc/arp.conf -compact
+.It Pa /etc/arp.conf
+.El
+.Ed
+.Sh SEE ALS
+.Xr arp 8 ,
+.Xr rc 8
No.1 | | 3197 bytes |
| 
Tue 2007.02.06 at 17:32 +0100, Antoine Jacoutot wrote:
Hi.
I'm not sure if people are still using arp(8) a lot, but I've been using
this on several boxes for a while (except for the man page changes I
just wrote).
Juts like mixerctl.conf(5) and wsconsctl.conf(5) and their respective
commands if /etc/arp.conf exists, rc will use arp(8) to add entries on
system startup.
cool - how about adding it to changelist as well?
Cheers!
Index: rc
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.298
diff -u -r1.298 rc
rc2 Feb 2007 14:51:19 -00001.298
rc6 Feb 2007 16:17:02 -0000
@@ -251,6 +251,10 @@
fi
. /etc/netstart
+if [ -s /etc/arp.conf ]; then
+echo 'setting static ARP entries';arp -Ff /etc/arp.conf
>/dev/null 2>&1
+fi
+
if [ X"${pf}" != X"N" ]; then
if [ -f ${pf_rules} ]; then
pfctl -f ${pf_rules}
Index: arp.8
RCS file: /cvs/src/usr.sbin/arp/arp.8,v
retrieving revision 1.17
diff -u -r1.17 arp.8
arp.826 May 2006 09:00:57 -00001.17
arp.84 Feb 2007 17:00:38 -0000
@@ -123,6 +123,12 @@
even though the host address is not its own.
This behavior has traditionally been called
.Em proxy ARP .
+.Pp
+If the file
+.Em /etc/arp.conf
+exists, it will be processed by
+.Xr rc 8
+as input file on system startup.
.It Fl n
Show network addresses as numbers (normally
.Nm
@@ -175,6 +181,7 @@
.Sh SEE ALS
.Xr inet 3 ,
.Xr arp 4 ,
+.Xr arp.conf 5 ,
.Xr ifconfig 8
.Sh HISTRY
The
/dev/nullSun Feb 4 18:09:37 2007
/Sun Feb 4 17:51:20 2007
@@ -0,0 +1,46 @@
+.\"$BSD$
+.\"
+.\" Copyright (c) 2007 Antoine Jacoutot <ajacoutot (AT) openbsd (DOT) org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SFTWARE IS PRVIDED "AS IS" AND THE AUTHR DISCLAIMS ALL
WARRANTIES
+.\" WITH REGARD T THIS SFTWARE INCLUDING ALL IMPLIED WARRANTIES F
+.\" MERCHANTABILITY AND FITNESS. IN N EVENT SHALL THE AUTHR BE LIABLE FR
+.\" ANY SPECIAL, DIRECT, INDIRECT, R CNSEQUENTIAL DAMAGES R ANY DAMAGES
+.\" WHATSEVER RESULTING FRM LSS F USE, DATA R PRFITS, WHETHER IN AN
+.\" ACTIN F CNTRACT, NEGLIGENCE R THER TRTIUS ACTIN, ARISING UT F
+.\" R IN CNNECTIN WITH THE USE R PERFRMANCE F THIS SFTWARE.
+.\"
+.Dd February 04, 2007
+.Dt ARP.CNF 5
+
+.Sh NAME
+.Nm arp.conf
+.Nd static arp entries processed at system startup
+.Sh DESCRIPTIN
+.Nm
+contains a list of static
+.Xr arp 8
+entries to be set in the ARP tables at system startup by
+.Xr rc 8 .
+.Pp
+As described in
+.Xr arp 8 ,
+entries in this file should be of the form:
+.Bd -filled -offset indent
+.Ar hostname ether_addr
+ Cm temp | permanent
+ Cm pub
+.Ed
+.Pp
+.Sh FILES
+.Bl -tag -width /etc/arp.conf -compact
+.It Pa /etc/arp.conf
+.El
+.Ed
+.Sh SEE ALS
+.Xr arp 8 ,
+.Xr rc 8
No.2 | | 237 bytes |
| 
Tue, 6 Feb 2007, Demirmen wrote:
cool - how about adding it to changelist as well?
Sure, why not. But let's wait for more feedbacks and see if people are
interested in this change first.
Anyway, thanks for the idea.
No.3 | | 591 bytes |
| 
Tue, Feb 06, 2007 at 06:34:59PM +0100, Antoine Jacoutot wrote:
Sure, why not. But let's wait for more feedbacks and see if people are
interested in this change first.
Anyway, thanks for the idea.
At the moment I use a quick'n'dirty script for setting up a large table
of ARP entries at my dorm's gateway to prevent ARP spoofing to some
extent. I would surely like to see the arp.conf idea implemented in
BSD :)
- Martin
[demime 1.01d removed an attachment of type application/pgp-signature which had a name of signature.asc]
No.4 | | 72 bytes |
| 
antoine, this looks pretty reasonable to me.
?
-Bob
No.5 | | 416 bytes |
| 
* Bob Beck <beck (AT) bofh (DOT) cns.ualberta.ca[2007-02-06 19:24]:
antoine, this looks pretty reasonable to me.
?
makes sense.
there are environments where you want to use static arp; right now you
have to put sth in rc.local or hostname.if.
We do, however, potentially have exactly the same information used in
arp.conf in /etc/ethers already. I tend to think this is not a problem.
No.6 | | 477 bytes |
| 
Tue, 6 Feb 2007, Henning Brauer wrote:
makes sense.
there are environments where you want to use static arp; right now you
have to put sth in rc.local or hostname.if.
Yes, this is what I used to do actually.
We do, however, potentially have exactly the same information used in
arp.conf in /etc/ethers already. I tend to think this is not a problem.
Both files have a different syntax and use so I don't think this is a
problem either.
No.7 | | 81 bytes |
| 
antoine, this looks pretty reasonable to me.
?
i like it
No.8 | | 3423 bytes |
| 
Antoine Jacoutot wrote:
Hi.
I'm not sure if people are still using arp(8) a lot, but I've been using
this on several boxes for a while (except for the man page changes I
just wrote).
Juts like mixerctl.conf(5) and wsconsctl.conf(5) and their respective
commands if /etc/arp.conf exists, rc will use arp(8) to add entries on
system startup.
Cheers!
I don't see a benefit from this.
If you need static arp entries, you can add the corresponding arp
command to /etc/rc.local.
( the more than 150 openbsd systems we operate, not a single one uses
static arp entries, so for me this is creeping featurism ;)
Index: rc
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.298
diff -u -r1.298 rc
rc 2 Feb 2007 14:51:19 -0000 1.298
rc 6 Feb 2007 16:17:02 -0000
@@ -251,6 +251,10 @@
fi
. /etc/netstart
+if [ -s /etc/arp.conf ]; then
+ echo 'setting static ARP entries'; arp -Ff /etc/arp.conf
>/dev/null 2>&1
+fi
+
if [ X"${pf}" != X"N" ]; then
if [ -f ${pf_rules} ]; then
pfctl -f ${pf_rules}
Index: arp.8
RCS file: /cvs/src/usr.sbin/arp/arp.8,v
retrieving revision 1.17
diff -u -r1.17 arp.8
arp.8 26 May 2006 09:00:57 -0000 1.17
arp.8 4 Feb 2007 17:00:38 -0000
@@ -123,6 +123,12 @@
even though the host address is not its own.
This behavior has traditionally been called
.Em proxy ARP .
+.Pp
+If the file
+.Em /etc/arp.conf
+exists, it will be processed by
+.Xr rc 8
+as input file on system startup.
.It Fl n
Show network addresses as numbers (normally
.Nm
@@ -175,6 +181,7 @@
.Sh SEE ALS
.Xr inet 3 ,
.Xr arp 4 ,
+.Xr arp.conf 5 ,
.Xr ifconfig 8
.Sh HISTRY
The
/dev/null Sun Feb 4 18:09:37 2007
/ Sun Feb 4 17:51:20 2007
@@ -0,0 +1,46 @@
+.\" $BSD$
+.\"
+.\" Copyright (c) 2007 Antoine Jacoutot <ajacoutot (AT) openbsd (DOT) org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SFTWARE IS PRVIDED "AS IS" AND THE AUTHR DISCLAIMS ALL
WARRANTIES
+.\" WITH REGARD T THIS SFTWARE INCLUDING ALL IMPLIED WARRANTIES F
+.\" MERCHANTABILITY AND FITNESS. IN N EVENT SHALL THE AUTHR BE LIABLE
FR
+.\" ANY SPECIAL, DIRECT, INDIRECT, R CNSEQUENTIAL DAMAGES R ANY DAMAGES
+.\" WHATSEVER RESULTING FRM LSS F USE, DATA R PRFITS, WHETHER IN AN
+.\" ACTIN F CNTRACT, NEGLIGENCE R THER TRTIUS ACTIN, ARISING
UT F
+.\" R IN CNNECTIN WITH THE USE R PERFRMANCE F THIS SFTWARE.
+.\"
+.Dd February 04, 2007
+.Dt ARP.CNF 5
+
+.Sh NAME
+.Nm arp.conf
+.Nd static arp entries processed at system startup
+.Sh DESCRIPTIN
+.Nm
+contains a list of static
+.Xr arp 8
+entries to be set in the ARP tables at system startup by
+.Xr rc 8 .
+.Pp
+As described in
+.Xr arp 8 ,
+entries in this file should be of the form:
+.Bd -filled -offset indent
+.Ar hostname ether_addr
+ Cm temp | permanent
+ Cm pub
+.Ed
+.Pp
+.Sh FILES
+.Bl -tag -width /etc/arp.conf -compact
+.It Pa /etc/arp.conf
+.El
+.Ed
+.Sh SEE ALS
+.Xr arp 8 ,
+.Xr rc 8
No.9 | | 1299 bytes |
| 
* Marc Balmer <marc (AT) msys (DOT) ch[2007-02-06 23:27]:
Antoine Jacoutot wrote:
>Hi.
>
>I'm not sure if people are still using arp(8) a lot, but I've been using
>this on several boxes for a while (except for the man page changes I
>just wrote).
>
>Juts like mixerctl.conf(5) and wsconsctl.conf(5) and their respective
>commands if /etc/arp.conf exists, rc will use arp(8) to add entries on
>system startup.
>
>Cheers!
I don't see a benefit from this.
If you need static arp entries, you can add the corresponding arp
command to /etc/rc.local.
( the more than 150 openbsd systems we operate, not a single one uses
static arp entries, so for me this is creeping featurism ;)
yeah sure, and your usage case is the only one that matters, right.
together with mac-locked switch ports, static arp entries on routers
are powerful. both are somewhat common in service provider networks, and
fortunately becoming more popular.
I am not certain we need arp.conf, but your argument is pure bull****.
on the, dunno the number really, 100+ systems we operare, none has a
mixerctl.conf or a wsconsctl.comf, so both are useless, right?
No.10 | | 482 bytes |
| 
Antoine Jacoutot wrote:
+if [ -s /etc/arp.conf ]; then
+echo 'setting static ARP entries';arp -Ff /etc/arp.conf
/dev/null 2>&1
+fi
I'd like to suggest a construction like this:
set -- $(stripcom /etc/arp.conf)
if [ $# -gt 0 ]; then
echo 'setting static ARP entries'
arp -Ff /etc/arp.conf >/dev/null 2>&1
fi
If the file only contains comments and blank lines nothing is
done.
# Han
No.11 | | 460 bytes |
| 
* Marc Balmer <marc (AT) msys (DOT) ch[2007-02-06 15:31]:
( the more than 150 openbsd systems we operate, not a single one uses
static arp entries, so for me this is creeping featurism ;)
because you don't have places where you may be concerned
about traffic hijacking through a switch. I do have servers that
do this, and usually to staticly arp their default gateway and the
important stuff they talk to.
-Bob
No.12 | | 647 bytes |
| 
Tue, 6 Feb 2007, Marc Balmer wrote:
I don't see a benefit from this.
Really?
Do you see a ! benefit?
If you need static arp entries, you can add the corresponding arp
command to /etc/rc.local.
Yes!
( the more than 150 openbsd systems we operate, not a single one uses
static arp entries, so for me this is creeping featurism ;)
, should I be impressed?
, yes, sorry, 150 BSD systems man allright, you must be God
speaking
Actually you now what, if out of the "150 openbsd systems you operate,
not a single one uses static arp entries", then this diff diff does
_not_ concern you!
No.13 | | 1918 bytes |
| 
Wed, Feb 07, 2007 at 12:11:06AM +0100, Han Boetes wrote:
Antoine Jacoutot wrote:
+if [ -s /etc/arp.conf ]; then
+echo 'setting static ARP entries';arp -Ff /etc/arp.conf
/dev/null 2>&1
+fi
I'd like to suggest a construction like this:
set -- $(stripcom /etc/arp.conf)
if [ $# -gt 0 ]; then
echo 'setting static ARP entries'
arp -Ff /etc/arp.conf >/dev/null 2>&1
fi
If the file only contains comments and blank lines nothing is
done.
it's true that nothing is done if there's no output from stripcom(),
but you're twiddling $@/$*/$# for no good reason if the file
contains relevant file entries. currently /etc/rc
only fricks with those ("set -- blah") in situations where
it shifts them back out.
this construction doesn't make any actual *use* of the 'set --'
construct other than using it as a way to check if anything
actually happened as a result of doing it, which gives it
(imo) a two prong detrement of being a bit confusing (ie: why
use that technique if you're not really going to take advantage
of its unique effects) and also leaving a dirty environment for
the rest of the script.
using "[ -s /etc/arp.conf ]" is most similar to how /etc/ethers
is tested for (with the exception that it doesn't look for rarpd
for arp.conf) and also is how (test -s) the rest of the config
files are tested.
given that that -F is relevant for -s, but still entirely optional,
there is some logic in a construct like:
if [ X"${arp_flags}" != X"N" -a -s /etc/arp.conf ]; then
echo 'setting static ARP entries'; arp $arp_flags -f /etc/arp.conf
fi
i'll defer to commiter@ re: redirecting output to /dev/null as i don't
know if the rule-of-thumb for do/don't do it.
No.14 | | 75 bytes |
| 
I don't see your criticism as relevant at all.
# Han
No.15 | | 1624 bytes |
| 
Henning Brauer wrote:
* Marc Balmer <marc (AT) msys (DOT) ch[2007-02-06 23:27]:
>Antoine Jacoutot wrote:
Hi.
I'm not sure if people are still using arp(8) a lot, but I've been using
this on several boxes for a while (except for the man page changes I
just wrote).
Juts like mixerctl.conf(5) and wsconsctl.conf(5) and their respective
commands if /etc/arp.conf exists, rc will use arp(8) to add entries on
system startup.
Cheers!
>I don't see a benefit from this.
>>
>If you need static arp entries, you can add the corresponding arp
>command to /etc/rc.local.
>>
>( the more than 150 openbsd systems we operate, not a single one uses
>static arp entries, so for me this is creeping featurism ;)
yeah sure, and your usage case is the only one that matters, right.
together with mac-locked switch ports, static arp entries on routers
are powerful. both are somewhat common in service provider networks, and
fortunately becoming more popular.
I am not certain we need arp.conf, but your argument is pure bull****.
oh boy my argument was _not_ about my boxes, but that
a static arp table can be loaded with a single command in rc.local and
that does the job perfectly with a single line added to a single file.
on the, dunno the number really, 100+ systems we operare, none has a
mixerctl.conf or a wsconsctl.comf, so both are useless, right?
No.16 | | 990 bytes |
| 
Antoine Jacoutot wrote:
Tue, 6 Feb 2007, Marc Balmer wrote:
>I don't see a benefit from this.
Really?
Do you see a ! benefit?
>If you need static arp entries, you can add the corresponding arp
>command to /etc/rc.local.
Yes!
>( the more than 150 openbsd systems we operate, not a single one uses
>static arp entries, so for me this is creeping featurism ;)
, should I be impressed?
, yes, sorry, 150 BSD systems man allright, you must be God
speaking
Actually you now what, if out of the "150 openbsd systems you operate,
not a single one uses static arp entries", then this diff diff does
_not_ concern you!
don't be an asshole, antoine. that was a remark only. My point was
that a single command does the job as well and _not_ that it is not
needed just because I don't use it at the moment.
No.17 | | 643 bytes |
| 
Wed, 7 Feb 2007, Marc Balmer wrote:
don't be an asshole, antoine. that was a remark only. My point was
, my bad, maybe I took it an another way.
that a single command does the job as well and _not_ that it is not
needed just because I don't use it at the moment.
I never said it was _needed_, I just though it could be usefull in some
situations and copy/paste the behaviour from what's already in rc (and
not needed either) like mixerctl.conf.
Anyway, I've been called stupid for proposing this, so obviously it was
a bad idea and there's no point in discussing it anymore.
No.18 | | 333 bytes |
| 
Antoine Jacoutot wrote:
Anyway, I've been called stupid for proposing this, so obviously it was
a bad idea and there's no point in discussing it anymore.
Really? I thought almost everyone agreed it was a good idea?
At least that's the impression I got from the responses.
Lars Hansson
No.19 | | 708 bytes |
| 
Antoine Jacoutot wrote:
>Anyway, I've been called stupid for proposing this, so obviously it was
>a bad idea and there's no point in discussing it anymore.
>
Really? I thought almost everyone agreed it was a good idea?
At least that's the impression I got from the responses.
Lars Hansson
Hey, you have my vote FR implementing arp.conf . I have been doing this
by modyfying rc.local and calling a script to do so.
Mr Antoine, do not loose your spirit, it just happens that people go too
far in their opinions. But there are other users who might listen to.
Thanks for raising this topic.
Chris Pfaff
No.20 | | 434 bytes |
| 
Anyway, I've been called stupid for proposing this, so obviously it was
a bad idea and there's no point in discussing it anymore.
Antoine get some balls. some of us do not think you're stupid
for proposing it and think it's a good idea. Particularly since it puts
the issue front and center that is something that people should often
times be considering, and they don't.
-Bob
No.21 | | 598 bytes |
| 
Wed, 7 Feb 2007, Bob Beck wrote:
Antoine get some balls. some of us do not think you're stupid
for proposing it and think it's a good idea. Particularly since it puts
the issue front and center that is something that people should often
times be considering, and they don't.
I was under the impression that if Theo said no about something there
was no need to really keep discussing it or am I wrong?
I could get some balls, but besides juggling with them, I don't think
they would help in this case.
Anyway, thanks for your input on this ;-)
No.22 | | 1456 bytes |
| 
Tue, Feb 06, 2007 at 05:32:06PM +0100, Antoine Jacoutot wrote:
Hi.
I'm not sure if people are still using arp(8) a lot, but I've been using
this on several boxes for a while (except for the man page changes I
just wrote).
Juts like mixerctl.conf(5) and wsconsctl.conf(5) and their respective
commands if /etc/arp.conf exists, rc will use arp(8) to add entries on
system startup.
Cheers!
Index: rc
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.298
diff -u -r1.298 rc
rc2 Feb 2007 14:51:19 -00001.298
rc6 Feb 2007 16:17:02 -0000
@@ -251,6 +251,10 @@
fi
. /etc/netstart
+if [ -s /etc/arp.conf ]; then
+echo 'setting static ARP entries';arp -Ff /etc/arp.conf
>/dev/null 2>&1
+fi
+
if [ X"${pf}" != X"N" ]; then
if [ -f ${pf_rules} ]; then
pfctl -f ${pf_rules}
I do not like this /etc/arp.conf idea because arp entries are not
globaly defined they are part of an interface and a more correct place to
play around with arp is as ! line in hostname.if.
Additionally, by adding the static entries in /etc/rc you lose them when
running /etc/netstart again (which is explicitly allowed).
arp entries are interface bound and should be added when the interface is
configured. Doing a
!arp -Ff /etc/arp.$if
in hostname.if would be my prefered way to set static arp entries.
No.23 | | 268 bytes |
| 
Fri, Feb 09, 2007 at 09:05:50PM +0100, Claudio Jeker wrote:
arp entries are interface bound and should be added when the interface is
configured. Doing a
!arp -Ff /etc/arp.$if
in hostname.if would be my prefered way to set static arp entries.
Nice!
No.24 | | 657 bytes |
| 
Fri, Feb 09, 2007 at 09:05:50PM +0100, Claudio Jeker wrote:
Additionally, by adding the static entries in /etc/rc you lose them when
running /etc/netstart again (which is explicitly allowed).
arp entries are interface bound and should be added when the interface is
configured. Doing a
!arp -Ff /etc/arp.$if
in hostname.if would be my prefered way to set static arp entries.
We could very easily modify /etc/netstart to do the right thing if
/etc/arp.$if exists. There's no compelling reason to have to leave
all those extra calls to !arp in the hostname files.
I am definitely for a change along these lines.