在RedHat7.2下配置ADSL通过双网卡共享局域网上网

前一段Michael在网通申请开通了包月的ADSL,于是开始了Michael网上真正冲浪的日子,这些年在IT圈里混,家里电脑加起来都有三台了,加上室友的一台笔记本和一台PC,一共有5台电脑了,于是开始琢磨怎么能让这些电脑都上网。

在网上找了一阵,从一些坛子上看到有些地方有不限制一个帐户多次拨号的情况,于是我也抱着试试看的想法动手试我家的ADSL,结果一试才发现家里的ADSL居然也可以多次拨号,嘿,这下可爽了。我买了一个8口的HUB,把ADSL猫接到HUB的UP Link口上,然后别的机器都用网线接到HUB上,分别在各个机器上都安装了ADSL拨号软件,结果每台电脑都可以独立拨号上去,并且各自的速度都是512Kbps,实在是爽!有ADSL的朋友不妨也试试看运气!

结果好日子没有持续多久就发生噩梦了,昨天回到家和往常一样打开HUB和ADSL猫的电源,结果发现无论怎么试都只能拨通一台机器,后来经过确认得知我们这个区的电话局也做了限制了,这下没办法了,只能开始折腾代理服务器了。

历史原因留下来家里有一台比较旧的电脑,目前闲置不用,配置为赛扬366、内存64MB、硬盘2.5G、无显示器和键盘鼠标、双网卡,正好用来做代理服务器,经过一晚上的折腾,总算是搞好了,现在大家虽然上网速度慢了点,不过也还算满意,下面就是整个的安装配置过程。

1、确定实现目标:
我们要实现代理服务器一块网卡和ADSL猫连接,另外一个和HUB连接,在服务器上设置NAT,并配置防火墙和DHCP,内网的其他电脑使用自动获取IP地址方式,并通过代理服务器共享上网。

2、服务器安装和网络配置:
由于当时手里只有RedHat Linux 7.2 的安装光盘,于是就决定安装RedHat7.2作为代理服务器的系统,安装过程不用详细说明了,我选择了最小安装方式,自定义选择了pppd服务、防火墙、rp-pppoe包安装。

系统安装好以后,开始配置两个网卡,两块网卡分别为eth0和eth1,我选择eth0连接ADSL猫,eth1连接内网。ADSL拨号上网无需设置eth0的ip地址,下面是我的网络配置文件设置情况
/etc/sysconfig/networks文件:

NETWORKING=yes
HOSTNAME=proxy
FORWARD_IPV4="yes"
GATEWAY="ppp0"
GATEWAYDEV=""

/etc/sysconfig/network-scripts/ifcfg-eth0文件:

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth1文件:

DEVICE=eth1
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

接下来设置ip转发和打开核心对ip转发的支持,打开/etc/rc.local文件,加入下面三行

echo 1 > /proc/sys/net/ipv4/ip_forward
ipchains -A forward -s 192.168.0.0/24 -d 0/0 -j MASQ
adsl-start &

最后一行设置系统在启动时自动连接ADSL,这在后面有说明。

3、ADSL配置
配置好服务器的基本环境后,开始进行ADSL拨号设置,Michael在设置的时候发现了一个很奇怪的问题,就是系统中怎么都找不到adsl-setup命令,别的如adsl-start 、adsl-connect等都有,这让我很纳闷。实在没有办法,我去openbsd.org下载了redhat7.3的rp-pppoe-3.5-1.i386.rpm 包,然后用下面的命令重新安装了rp-pppoe包
#rpm -Uhiv –replacepkgs rp-pppoe-3.5-1.i386.rpm

一看一下就好了,呵呵,不知道7.2带的包到底有什么毛病,也没有功夫仔细研究了。
接下来开始运行adsl-setup来设置ADSL,下面是配置过程
#/usr/sbin/adsl-setup
当出现
>>> Enter your PPPoE user name :
输入ADSL帐号的用户名
当出现
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where ‘n’ is a number.
(default eth0):
输入 eth0 ,这是ADSL相连的网卡的名字
当出现
>>> Enter the demand value (default no):
输入 no
当出现
>>> Enter the DNS information here:
输入 “server” ,这表示使用ADSL拨号自动获得的DNS服务器IP地址
当出现
>>> Please enter your PPPoE password:
输入ADSL帐号的密码
当出现
>>> Choose a type of firewall (0-2):
输入 0 ,不使用防火墙
当出现
>>> Accept these settings and adjust configuration files (y/n)?
如果输入的信息正确,输入 y ,完成配置,否则,输入 n 重新输入。

这样就完成了ADSL的配置,这时试着运行一下adsl-start,正确的话应该可以看到connected的信息,如果有问题试着看看/var/log/message的信息,然后重新进行配置。

运行adsl-start成功连接后,运行ifconfig -a看看网络设备信息,应该可以看到ppp0的信息,这就是ADSL建立的连接,应该可以看到电信分配的IP地址之类的信息。

此时,Michael尝试设置了其他的电脑的ip信息,比如设置了另外一台接在HUB上的笔记本的ip地址为192.168.0.128,网关设置为192.168.0.1,打开ie上网,呵呵,大功告成!

4、配置DHCP服务
为了让家里的网络环境更方便,于是开始在代理服务器上配置DHCP服务,下面是DHCP的简单配置过程;
从光盘或者网上找到dhcp-2.0pl5-8.i386.rpm和dhcpcd-1.3.22pl1-7.i386.rpm两个包,用rpm -hiv 安装。
拷贝/usr/share/doc/dhcp-2.0pl5/dhcpd.conf.sample 文件到 /etc/dhcpd.conf 然后根据自己具体情况修改部分配置信息,下面是Michael的dhcpd.conf文件内容:

subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;

option nis-domain "toplee.com";
option domain-name "toplee.com";
option domain-name-servers 202.106.196.115,202.106.196.152,202.96.199.133;

option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;

range dynamic-bootp 192.168.0.128 192.168.0.255;
default-lease-time 21600;
max-lease-time 43200;

# we want the nameserver to appear at a fixed address
host ns {
next-server ns.toplee.com;
hardware ethernet 00:03:0F:F8:60:22;
fixed-address 192.168.0.1;
}
}

基本上你直接拷贝上面的内容就可以了。

然后运行/etc/init.d/dhcpd start 启动dhcp服务(另外可以在setup里面设置启动的时候自动运行dhcp服务)
一切ok,设置内网其他的机器使用自动获取就ok了!你可以通过查看/var/lib/dhcp/dhcpd.leases 文件查看客户机器租用ip的情况。

好了,有点晚了,Michael就写到这里,基本上都说清楚了,大家有什么问题或者发现Michael有些什么设置不够好的都可以告诉我!

大家相互交流,共同进步!

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
No Responses
  1. Pingback: Ads

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image