version 1.190, 2018/02/10 08:46:10 |
version 1.191, 2018/02/14 22:08:45 |
|
|
set +o noglob |
set +o noglob |
} |
} |
|
|
|
ifcreate() { |
|
local _if=$1 |
|
|
|
{ ifconfig $_if || ifconfig $_if create; } >/dev/null 2>&1 || return |
|
} |
|
|
|
vifscreate() { |
|
local _vifs=$(ifconfig -C) _vif _hn _if |
|
|
|
for _vif in ${_vifs}; do |
|
for _hn in /etc/hostname.${_vif}*; do |
|
[[ -f $_hn ]] || continue |
|
_if=${_hn#/etc/hostname.} |
|
|
|
# Create wanted ifs. |
|
ifcreate $_if || return |
|
done |
|
done |
|
} |
|
|
# Start a single interface. |
# Start a single interface. |
# Usage: ifstart if1 |
# Usage: ifstart if1 |
ifstart() { |
ifstart() { |
|
|
|
|
# Check for ifconfig'able interface, except if -n option is specified. |
# Check for ifconfig'able interface, except if -n option is specified. |
if ! $PRINT_ONLY; then |
if ! $PRINT_ONLY; then |
(ifconfig $_if || ifconfig $_if create) >/dev/null 2>&1 || |
ifcreate $_if || return |
return |
|
fi |
fi |
|
|
# Parse the hostname.if(5) file and fill _cmds array with interface |
# Parse the hostname.if(5) file and fill _cmds array with interface |
|
|
ip6kernel=NO |
ip6kernel=NO |
fi |
fi |
|
|
|
# Create all the pseudo interfaces up front |
|
vifscreate |
|
|
# Configure all the non-loopback interfaces which we know about, but |
# Configure all the non-loopback interfaces which we know about, but |
# do not start interfaces which must be delayed. Refer to hostname.if(5) |
# do not start interfaces which must be delayed. Refer to hostname.if(5) |
ifmstart "" "trunk svlan vlan carp gif gre pfsync pppoe tun bridge switch pflow" |
ifmstart "" "trunk svlan vlan carp pppoe tun tap gif etherip gre egre mobileip pflow" |
|
|
# The trunk interfaces need to come up first in this list. |
# The trunk interfaces need to come up first in this list. |
# The (s)vlan interfaces need to come up after trunk. |
# The (s)vlan interfaces need to come up after trunk. |
# Configure all the carp interfaces which we know about before default route. |
# Configure all the carp interfaces which we know about before default route. |
ifmstart "trunk svlan vlan carp" |
ifmstart "trunk svlan vlan carp pppoe" |
|
|
# Look for default routes in /etc/mygate. |
# Look for default routes in /etc/mygate. |
defaultroute |
defaultroute |
|
|
route -qn add -net 224.0.0.0/4 -interface 127.0.0.1 -reject >/dev/null |
route -qn add -net 224.0.0.0/4 -interface 127.0.0.1 -reject >/dev/null |
fi |
fi |
|
|
# Configure PPPoE, GIF, GRE, TUN and PFLOW interfaces, delayed because they |
|
# require routes to be set. TUN might depend on PPPoE, and GIF or GRE may |
|
# depend on either of them. PFLOW might bind to ip addresses configured |
|
# on either of them. |
|
ifmstart "pppoe tun gif gre bridge switch pflow" |
|
|
|
# Reject 127/8 other than 127.0.0.1. |
# Reject 127/8 other than 127.0.0.1. |
route -qn add -net 127 127.0.0.1 -reject >/dev/null |
route -qn add -net 127 127.0.0.1 -reject >/dev/null |
|
|
|
# Configure interfaces that rely on routing |
|
ifmstart "tun tap gif etherip gre egre mobileip pflow" |
|
|
if [[ $ip6kernel == YES ]]; then |
if [[ $ip6kernel == YES ]]; then |
# This is to make sure DAD is completed before going further. |
# This is to make sure DAD is completed before going further. |