前几天作的,我把服务写的挺工整,就整理了一下。
OS |
iface |
configration |
slackware |
eth0 |
10.0.0.1/24 |
|
ppp0 |
pppoe |
windows |
local |
use DHCP |
常识:如果是内部ethernet网关,给/proc/sys/net/ipv4/ip_forward赋值1就可以转发了,但是pppoe网关不同,这样做绝对不会给你转发的,但是也不用担心,pppoe程序会处理这个的,过会儿防火墙选项选择2(masquerade)就可以了。
下面是步骤:
<1>DHCP (怎么安装我就不说了)
root-zarok.gov#cp /usr/share/doc/dhcp-3.0.5/examples/dhcpd.conf /etc/
root-zarok.gov#vim /etc/dhcpd.conf
ddns-update-style ad-hoc;
log-facility local7;
option domain-name "zarok.gov";
option domain-name-servers 202.99.96.68;
default-lease-time 28800;
max-lease-time 32000;
#注:租期以秒为单位
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.20;
option domain-name-servers 202.99.96.68;
option routers 10.0.0.1;
option broadcast-address 10.0.0.255;
default-lease-tiom 28800;
max-lease-time 32000;
}
虽然ISC的dhcpd没有独立的日志,但好在它为syslogd提供了一个接口。
/etc/dhcpd.conf:
#Use this to send dhcp log messages to a different log file
#(You also have to hack syslog.conf to complete the redirection)
log-facility local7;
说明dhcpd的facility名称为local7。
root-zarok.gov#vim /etc/syslog.conf
在所有facility是*的行中加入local7.none
在文件末尾加入:
#This is log for dhcpd
local7.* /var/log/dhcpd
root-zarok.gov#touch /var/log/dhcpd
这样就完成了所谓的"hack syslog.conf"
root-zarok.gov#vim /etc/rc.d/rc.dhcpd(默认没有,自己写)
#!/bin/sh
#
#/etc/rc.d/rc.dhcpd
#
case "$1" in
'start')
/usr/sbin/dhcpd
;;
'stop')
killall dhcpd
rm /var/run/dhcpd.pid
;;
'restart')
killall dhcpd
rm /var/run/dhcpd.pid
sleep 1 (这是我个人爱好,也可以不写)
/usr/sbin/dhcpd
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
root-zarok.gov# chmod 755 /etc/rc.d/rc.dhcpd
root-zarok.gov#vim /etc/rc.d/rc.M
在比较靠后的位置加入——除非你确定在哪一行启动rc.inet1
if [ -x /etc/rc.d/rc.dhcpd ]; then
. /etc/rc.d/rc.dhcpd start
fi
root-zarok.gov#vim /etc/rc.d/rc.6(0只是个指向6的链接,改6就可以了)
在比较靠前的位置加入——因为这是关机脚本
if [ -x /etc/rc.d/rc.dhcpd ]; then
. /etc/rc.d/rc.dhcpd stop
fi
<2>pppoe
root-zarok.gov#pppoe-setup
这其中有一项问需不需要开机自启动,记得选no,要学会自己写脚本,便于管理。
最后的防火墙选项要选2(MASQUERADE)这个词也可以理解为forward。
root-zarok.gov#vim /etc/rc.d/rc.pppoe(默认没有,自己写)
#!/bin/sh
#
#/etc/rc.d/rc.pppoe
#
case "$1" in
'start')
/usr/sbin/pppoe-start
;;
case "$1" in
'stop')
/usr/sbin/pppoe-stop
;;
case "$1" in
'restart')
/usr/sbin/pppoe-stop
sleep 1
/usr/sbin/pppoe-start
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
root-zarok.gov#chmod 755 /etc/rc.d/rc.pppoe
root-zarok.gov#vim /etc/rc.d/rc.M
加入
if [ -x /etc/rc.d/rc.pppoe ]; then
. /etc/rc.d/rc.pppoe start
fi
root-zarok.gov#vim /etc/rc.d/rc.6
加入
if [ -x /etc/rc.d/rc.pppoe ]; then
. /etc/rc.d/rc.pppoe-stop
fi
root-zarok.gov#chmod 755 /etc/rc.d/rc.ip_forward
root-zarok.gov#init 6
[完成]
有人会奇怪,把启动它们的指令乱七八糟地追加到rc.M(相当于System V风格init中的/etc/rc.sysinit)或rc.local不是很轻松吗?干吗要写服务脚本?
原因很简单——你真的在“用”Linux吗?
——那就让它像你自己家里一样整齐吧。
阅读(2102) | 评论(1) | 转发(0) |