Netzwerkscripts erweitert.
[people/pmueller/ipfire-2.x.git] / src / initscripts / init.d / network
1 #!/bin/sh
2 ########################################################################
3 # Begin $rc_base/init.d/network
4 #
5 # Description : Network Control Script
6 #
7 # Authors     : Michael Tremer - m.s.tremer@googlemail.com
8 #
9 # Version     : 01.00
10 #
11 # Notes       : Written for IPFire by its team
12 #
13 ########################################################################
14
15 . /etc/sysconfig/rc
16 . ${rc_functions}
17 eval $(/usr/local/bin/readhash /var/ipfire/vpn/settings)
18 eval $(/usr/local/bin/readhash /var/ipfire/dhcp/settings)
19 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
20 eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
21
22
23 case "${1}" in
24         start)
25                 boot_mesg "Loading iptables helper modules"
26                 modprobe iptable_nat || failed=1
27                 modprobe ip_conntrack || failed=1
28                 modprobe ip_conntrack_ftp || failed=1
29                 modprobe ip_nat_ftp || failed=1
30                 modprobe ip_conntrack_h323 || failed=1
31                 modprobe ip_nat_h323 || failed=1
32                 modprobe ip_conntrack_irc || failed=1
33                 modprobe ip_nat_irc || failed=1
34                 modprobe ip_conntrack_mms || failed=1
35                 modprobe ip_nat_mms || failed=1
36                 modprobe ip_conntrack_pptp || failed=1
37                 modprobe ip_nat_pptp || failed=1
38                 modprobe ip_conntrack_sip || failed=1
39                 modprobe ip_nat_sip || failed=1
40                 (exit ${failed})
41                 evaluate_retval
42
43                 # Remove possible leftover files
44                 rm -f /var/ipfire/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf}
45                 
46                 boot_mesg "Setting up IPFire firewall rules"
47                 /etc/rc.d/init.d/firewall start; evaluate_retval
48
49                 boot_mesg "Setting up IP Accounting"
50                 /etc/rc.d/helper/writeipac.pl || failed=1
51                 /usr/sbin/fetchipac -S || failed=1 
52                 (exit ${failed})
53                 evaluate_retval
54
55                 boot_mesg "Setting IPFire DMZ pinholes"
56                 /usr/local/bin/setdmzholes; evaluate_retval
57
58                 if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
59                         boot_mesg "Setting up wireless firewall rules"
60                         /usr/local/bin/restartwireless; evaluate_retval
61                 fi
62                 
63                 # Starting interfaces...
64                 # GREEN
65                 name=green /etc/rc.d/init.d/net/ifup
66                 
67                 # BLUE
68                 if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
69                         name=blue /etc/rc.d/init.d/net/ifup
70                 fi
71                 
72                 # ORANGE
73                 if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "7" ]; then
74                         name=orange /etc/rc.d/init.d/net/ifup
75                 fi
76                 
77                 # Start DNSMASQ with defaults
78                 killall -KILL dnsmasq 2> /dev/null
79                 sleep 1
80                 if [ "$DOMAIN_NAME_GREEN" == "" ]; then
81                         /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases
82                 else 
83                         /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases -s "$DOMAIN_NAME_GREEN"
84                 fi
85                 
86                 # RED
87                 if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
88                         if [ "$AUTOCONNECT" == "off" ]; then
89                                 echo -n         # Do anything
90                         else
91                                 name=red /etc/rc.d/init.d/net/ifup
92                         fi
93                 fi
94                 ;;
95
96         stop)
97                 # Stopping interfaces...
98                 # GREEN
99                 name=green /etc/rc.d/init.d/net/ifdown
100                 
101                 # BLUE
102                 if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
103                         name=blue /etc/rc.d/init.d/net/ifdown
104                 fi
105                 
106                 # ORANGE
107                 if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "7" ]; then
108                         name=orange /etc/rc.d/init.d/net/ifdown
109                 fi
110                 
111                 # RED
112                 if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
113                         name=red /etc/rc.d/init.d/net/ifdown
114                 fi
115                 ;;
116
117         restart)
118                 ${0} stop
119                 sleep 1
120                 ${0} start
121                 ;;
122
123         *)
124                 echo "Usage: ${0} {start|stop|restart}"
125                 exit 1
126                 ;;
127 esac
128
129 # End /etc/rc.d/init.d/network