1*1dee92ebSDavid van Moolenbroek.\" $NetBSD: ifconfig.if.5,v 1.18 2014/12/29 14:22:25 wiz Exp $ 2*1dee92ebSDavid van Moolenbroek.\" 3*1dee92ebSDavid van Moolenbroek.\" Copyright (c) 1996 Matthew R. Green 4*1dee92ebSDavid van Moolenbroek.\" All rights reserved. 5*1dee92ebSDavid van Moolenbroek.\" 6*1dee92ebSDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without 7*1dee92ebSDavid van Moolenbroek.\" modification, are permitted provided that the following conditions 8*1dee92ebSDavid van Moolenbroek.\" are met: 9*1dee92ebSDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright 10*1dee92ebSDavid van Moolenbroek.\" notice, this list of conditions and the following disclaimer. 11*1dee92ebSDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright 12*1dee92ebSDavid van Moolenbroek.\" notice, this list of conditions and the following disclaimer in the 13*1dee92ebSDavid van Moolenbroek.\" documentation and/or other materials provided with the distribution. 14*1dee92ebSDavid van Moolenbroek.\" 15*1dee92ebSDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16*1dee92ebSDavid van Moolenbroek.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17*1dee92ebSDavid van Moolenbroek.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18*1dee92ebSDavid van Moolenbroek.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19*1dee92ebSDavid van Moolenbroek.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 20*1dee92ebSDavid van Moolenbroek.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21*1dee92ebSDavid van Moolenbroek.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 22*1dee92ebSDavid van Moolenbroek.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23*1dee92ebSDavid van Moolenbroek.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24*1dee92ebSDavid van Moolenbroek.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25*1dee92ebSDavid van Moolenbroek.\" SUCH DAMAGE. 26*1dee92ebSDavid van Moolenbroek.\" 27*1dee92ebSDavid van Moolenbroek.Dd December 18, 2014 28*1dee92ebSDavid van Moolenbroek.Dt IFCONFIG.IF 5 29*1dee92ebSDavid van Moolenbroek.Os 30*1dee92ebSDavid van Moolenbroek.Sh NAME 31*1dee92ebSDavid van Moolenbroek.Nm ifconfig.if 32*1dee92ebSDavid van Moolenbroek.Nd interface-specific configuration files or variables 33*1dee92ebSDavid van Moolenbroek.Sh DESCRIPTION 34*1dee92ebSDavid van MoolenbroekThe 35*1dee92ebSDavid van Moolenbroek.Nm 36*1dee92ebSDavid van Moolenbroekfiles or variables contain information regarding the configuration 37*1dee92ebSDavid van Moolenbroekof each network interface. 38*1dee92ebSDavid van Moolenbroek.Nm 39*1dee92ebSDavid van Moolenbroekis processed by 40*1dee92ebSDavid van Moolenbroek.Pa /etc/rc.d/network 41*1dee92ebSDavid van Moolenbroekat system boot time. 42*1dee92ebSDavid van Moolenbroek.Pp 43*1dee92ebSDavid van MoolenbroekFor each interface 44*1dee92ebSDavid van Moolenbroek.Pq Ar nnX 45*1dee92ebSDavid van Moolenbroekthat is to be configured, there should be either an 46*1dee92ebSDavid van Moolenbroek.Sy ifconfig_nnX 47*1dee92ebSDavid van Moolenbroekvariable in 48*1dee92ebSDavid van Moolenbroek.Xr rc.conf 5 , 49*1dee92ebSDavid van Moolenbroekor an 50*1dee92ebSDavid van Moolenbroek.Pa /etc/ifconfig.nnX 51*1dee92ebSDavid van Moolenbroekfile 52*1dee92ebSDavid van Moolenbroek(such as the 53*1dee92ebSDavid van Moolenbroek.Sy ifconfig_fxp0 54*1dee92ebSDavid van Moolenbroekvariable or the 55*1dee92ebSDavid van Moolenbroek.Pa /etc/ifconfig.fxp0 56*1dee92ebSDavid van Moolenbroekfile for the 57*1dee92ebSDavid van Moolenbroek.Sy fxp0 58*1dee92ebSDavid van Moolenbroekinterface). 59*1dee92ebSDavid van MoolenbroekOnly characters allowed in 60*1dee92ebSDavid van Moolenbroek.Xr sh 1 61*1dee92ebSDavid van Moolenbroekvariables names should be used for 62*1dee92ebSDavid van Moolenbroek.Ar nnX 63*1dee92ebSDavid van Moolenbroek.Po Xr ascii 7 64*1dee92ebSDavid van Moolenbroekuppercase and lowercase letters, digits, and underscore 65*1dee92ebSDavid van Moolenbroek.Pc . 66*1dee92ebSDavid van Moolenbroek.Pp 67*1dee92ebSDavid van MoolenbroekThe variable or file will get evaluated only if the interface exists on 68*1dee92ebSDavid van Moolenbroekthe system. 69*1dee92ebSDavid van MoolenbroekMultiple lines can be placed in a variable or file, and will be 70*1dee92ebSDavid van Moolenbroekevaluated sequentially. 71*1dee92ebSDavid van MoolenbroekIn the case of a variable, semicolons may be used instead of 72*1dee92ebSDavid van Moolenbroeknewlines, as described in 73*1dee92ebSDavid van Moolenbroek.Xr rc.conf 5 . 74*1dee92ebSDavid van Moolenbroek.Ao backslash Ac Ns Ao newline Ac 75*1dee92ebSDavid van Moolenbroeksequences in files are ignored, so long logical lines may be 76*1dee92ebSDavid van Moolenbroekmade up of several shorter physical lines. 77*1dee92ebSDavid van Moolenbroek.Pp 78*1dee92ebSDavid van MoolenbroekNormally, a line will be evaluated as command line arguments to 79*1dee92ebSDavid van Moolenbroek.Xr ifconfig 8 . 80*1dee92ebSDavid van Moolenbroek.Dq Li ifconfig Ar nnX 81*1dee92ebSDavid van Moolenbroekwill be prepended on evaluation. 82*1dee92ebSDavid van MoolenbroekArguments with embedded shell metacharacters should be quoted in 83*1dee92ebSDavid van Moolenbroek.Xr sh 1 84*1dee92ebSDavid van Moolenbroekstyle. 85*1dee92ebSDavid van Moolenbroek.Pp 86*1dee92ebSDavid van MoolenbroekIf the line is equal to 87*1dee92ebSDavid van Moolenbroek.Dq dhcp , 88*1dee92ebSDavid van Moolenbroek.Xr dhcpcd 8 89*1dee92ebSDavid van Moolenbroekwill be started for the interface. 90*1dee92ebSDavid van MoolenbroekHowever, it is instead recommended that 91*1dee92ebSDavid van Moolenbroek.Sy dhcpcd 92*1dee92ebSDavid van Moolenbroekis set to true in 93*1dee92ebSDavid van Moolenbroek.Xr rc.conf 5 94*1dee92ebSDavid van Moolenbroekand any per interface configuration or restriction is done in 95*1dee92ebSDavid van Moolenbroek.Xr dhcpcd.conf 5 . 96*1dee92ebSDavid van Moolenbroek.Pp 97*1dee92ebSDavid van MoolenbroekIf a line is empty, or starts with 98*1dee92ebSDavid van Moolenbroek.Sq # , 99*1dee92ebSDavid van Moolenbroekthe line will be ignored as comment. 100*1dee92ebSDavid van Moolenbroek.Pp 101*1dee92ebSDavid van MoolenbroekIf a line starts with 102*1dee92ebSDavid van Moolenbroek.Sq \&! , 103*1dee92ebSDavid van Moolenbroekthe rest of line will get evaluated as shell script fragment. 104*1dee92ebSDavid van MoolenbroekShell variables declared in 105*1dee92ebSDavid van Moolenbroek.Pa /etc/rc.d/network 106*1dee92ebSDavid van Moolenbroekare accessible but may not be modified. 107*1dee92ebSDavid van MoolenbroekThe most useful variable is 108*1dee92ebSDavid van Moolenbroek.Li $int , 109*1dee92ebSDavid van Moolenbroekas it will be bound to the interface being configured with the file. 110*1dee92ebSDavid van Moolenbroek.Pp 111*1dee92ebSDavid van MoolenbroekFor example, the following illustrates static interface configuration: 112*1dee92ebSDavid van Moolenbroek.Bd -literal -offset indent 113*1dee92ebSDavid van Moolenbroek# IPv4, with an alias 114*1dee92ebSDavid van Moolenbroekinet 10.0.1.12 netmask 255.255.255.0 media 100baseTX 115*1dee92ebSDavid van Moolenbroekinet 10.0.1.13 netmask 255.255.255.255 alias 116*1dee92ebSDavid van Moolenbroek# let us have IPv6 address on this interface 117*1dee92ebSDavid van Moolenbroekinet6 2001:db8::1 prefixlen 64 alias 118*1dee92ebSDavid van Moolenbroek# have subnet router anycast address too 119*1dee92ebSDavid van Moolenbroekinet6 2001:db8:: prefixlen 64 alias anycast 120*1dee92ebSDavid van Moolenbroek.Ed 121*1dee92ebSDavid van Moolenbroek.Pp 122*1dee92ebSDavid van MoolenbroekThe following example sets a network name for a wireless interface 123*1dee92ebSDavid van Moolenbroek(using quotes to protect special characters in the name), 124*1dee92ebSDavid van Moolenbroekand starts 125*1dee92ebSDavid van Moolenbroek.Xr dhcpcd 8 : 126*1dee92ebSDavid van Moolenbroek.Bd -literal -offset indent 127*1dee92ebSDavid van Moolenbroekssid 'my network' 128*1dee92ebSDavid van Moolenbroekdhcp 129*1dee92ebSDavid van Moolenbroek.Ed 130*1dee92ebSDavid van Moolenbroek.Pp 131*1dee92ebSDavid van MoolenbroekThe following example is for dynamically-created pseudo interfaces like 132*1dee92ebSDavid van Moolenbroek.Xr gif 4 . 133*1dee92ebSDavid van MoolenbroekEarlier versions of 134*1dee92ebSDavid van Moolenbroek.Pa /etc/rc.d/network 135*1dee92ebSDavid van Moolenbroekrequired an explicit 136*1dee92ebSDavid van Moolenbroek.Sq create 137*1dee92ebSDavid van Moolenbroekcommand for such interfaces, 138*1dee92ebSDavid van Moolenbroekbut creation is now handled automatically. 139*1dee92ebSDavid van Moolenbroek.Bd -literal -offset indent 140*1dee92ebSDavid van Moolenbroekup 141*1dee92ebSDavid van Moolenbroek# configure IPv6 default route toward the interface 142*1dee92ebSDavid van Moolenbroek!route add -inet6 default ::1 143*1dee92ebSDavid van Moolenbroek!route change -inet6 default -ifp $int 144*1dee92ebSDavid van Moolenbroek.Ed 145*1dee92ebSDavid van Moolenbroek.Sh FILES 146*1dee92ebSDavid van Moolenbroek.Pa /etc/rc.d/network 147*1dee92ebSDavid van Moolenbroek.Sh SEE ALSO 148*1dee92ebSDavid van Moolenbroek.Xr rc.conf 5 , 149*1dee92ebSDavid van Moolenbroek.Xr ifconfig 8 150