]>
git.proxmox.com Git - mirror_iproute2.git/blob - ip/ifcfg
2 # SPDX-License-Identifier: GPL-2.0
6 sbase
=/proc
/sys
/net
/ipv
4/conf
9 for dir
in $sbase/*/forwarding
; do
10 fwd
=$
(( fwd
+ $
(cat "$dir") ))
19 killall
-HUP rdisc || rdisc
-fs
26 if [ "$1" = "" -o $class -eq 0 -o $class -ge 224 ]; then return 0
27 elif [ $class -ge 224 ]; then return 0
28 elif [ $class -ge 192 ]; then return 24
29 elif [ $class -ge 128 ]; then return 16
36 if [ "$dev" = "" -o "$1" = "help" ]; then
37 echo "Usage: ifcfg DEV [[add|del [ADDR[/LEN]] [PEER] | stop]" 1>&2
38 echo " add - add new address" 1>&2
39 echo " del - delete address" 1>&2
40 echo " stop - completely disable IP" 1>&2
47 if [ $fwd -ne 0 ]; then
48 echo "Forwarding is ON or its state is unknown ($fwd). OK, No RDISC." 1>&2
56 if [ "$ldev" != "$dev" ]; then
57 echo "Cannot stop alias $ldev" 1>&2
60 ip
-4 addr flush dev
$dev $label ||
exit 1
61 if [ $fwd -eq 0 ]; then RestartRDISC
; fi
70 if [ "$1" != "" ]; then
72 if [ "$1" != "$ipaddr" ]; then
75 if [ "$ipaddr" = "" ]; then
76 echo "$1 is bad IP address." 1>&2
83 if [ "$peer" != "" ]; then
84 if [ "$pfxlen" != "" -a "$pfxlen" != "32" ]; then
85 echo "Peer address with non-trivial netmask." 1>&2
88 pfx
="$ipaddr peer $peer"
90 if [ "$ipaddr" = "" ]; then
91 echo "Missing IP address argument." 1>&2
94 if [ "$pfxlen" = "" ]; then
101 if [ "$ldev" = "$dev" -a "$ipaddr" != "" ]; then
105 if [ $deleting -ne 0 ]; then
106 ip addr del
$pfx dev
$dev $label ||
exit 1
107 if [ $fwd -eq 0 ]; then RestartRDISC
; fi
112 if ! ip link
set up dev
$dev ; then
113 echo "Error: cannot enable interface $dev." 1>&2
116 if [ "$ipaddr" = "" ]; then exit 0; fi
118 if ! arping
-q -c 2 -w 3 -D -I $dev $ipaddr ; then
119 echo "Error: some host already uses address $ipaddr on $dev." 1>&2
123 if ! ip address add
$pfx brd
+ dev
$dev $label; then
124 echo "Error: failed to add $pfx on $dev." 1>&2
128 arping
-q -A -c 1 -I $dev $ipaddr
131 arping
-q -U -c 1 -I $dev $ipaddr ) >/dev
/null
2>&1 </dev
/null
&
133 ip route add unreachable
224.0.0.0/24 >/dev
/null
2>&1
134 ip route add unreachable
255.255.255.255 >/dev
/null
2>&1
135 if [ "`ip link ls $dev | grep -c MULTICAST`" -ge 1 ]; then
136 ip route add
224.0.0.0/4 dev
$dev scope global
>/dev
/null
2>&1
139 if [ $fwd -eq 0 ]; then
140 if [ $noarp -eq 0 ]; then
141 ip ro append default dev
$dev metric
30000 scope global
142 elif [ "$peer" != "" ]; then
143 if ping -q -c 2 -w 4 $peer ; then
144 ip ro append default via
$peer dev
$dev metric
30001