CentOS6 NAT+DHCP服务共享客户机上网

CentOS6 NAT+DHCP服务共享客户机上网
操作系统:CentOS6.2

dhcp版本:dhcp-common-4.1.1-25.P1.el6_2.1.i686
           dhcpdump-1.7-1.el6.rf.i686
           dhcp-4.1.1-25.P1.el6_2.1.i686
           dhcping-1.2-4.el6.i686
           dhcp-devel-4.1.1-25.P1.el6_2.1.i686


Linux实现nat共享上网

我的实体机为CentOS-6.2,学校迁的是校园网,IP我是这样设的:
$ vi /etc/sysconfig/network-scrips/ifcfg-eth0
输入以下内容:

DEVICE="eth0"
HWADDR="00:24:54:5E:5D:39"
NM_CONTROLLED="yes"

BOOTPROTO=static
IPADDR=58.195.172.229
NETMASK=255.255.255.192
GATEWAY=58.195.172.254
DNS1=58.195.1.1
DNS2=202.103.24.68

设好后,重启网络服务:service network restart 或 /etc/init.d/network restart
如果启不来,试试ifup eth0 或者ifconfig eth0 up

若还不行,没办法,重启下看看,呵呵。

查看一下IP设置:ifconfig

eth0      Link encap:Ethernet  HWaddr 00:24:54:5E:5D:39  
           inet addr:58.195.172.229  Bcast:58.195.172.255  Mask:255.255.255.192
           inet6 addr: fe80::224:54ff:fe5e:5d39/64 Scopeink
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:108823 errors:0 dropped:0 overruns:0 frame:0
           TX packets:97379 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:62428078 (59.5 MiB)  TX bytes:61038111 (58.2 MiB)
           Interrupt:18

好的,以经设置好了,接下来查看IP转发功能是否开启:
     cat /proc/sys/net/ipv4/ip_forward
结果为0,则表示未开。
echo "1" > /proc/sys/net/ipv4/ip_forward
临时开启IP转发功能。

永久开启则需编辑/etc/sysctl.conf文件,将其中的net/ipv4/ip_forward=0换成net/ipv4/ip_forward=1(有的是需将net/ipv4/ip_forward=1前的#删除即可)。



最后设定iptables,允许nat进行IP映射,使数据能重定向到指定主机。
#先清除已有规则
iptables -F
iptables -X
iptables -Z
#设定预设规则

iptables -P INPUT    ACCEPT
iptables -P OUTPUT   ACCEPT
iptables -P FORWARD  ACCEPT
iptables -t nat   -P PREROUTING   ACCEPT
iptables -t nat   -P POSTROUTING  ACCEPT
iptables -t nat   -P OUTPUT       ACCEPT
#nat转发
iptables -t nat   -A POSTROUTING -s 58.195.172.0/24 -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp  --sport 80  -j  ACCEPT


以上iptables规则只是作了很简陋的设置,更为科学合理的设置还请各位前辈朋友们多指点,哈

小提示:若要长期使用的话,可以将上述iptables规则写到shell脚本里面,每次开机运行一下就OK,或者直接通过~/.bashrc或~/.bash_profile或/etc/rc.local添加一句运行该脚本的语句即可,还或者将脚本放在/etc/rc*.d/中,这里的*指启动时所对应的启动级别,这样就可以顺利实现开机自动运行喽!

好的,现在客户机只要作一下简单的设置。
客户机只需把网关改为主机的IP(我这里设的是58.195.172.229,也就是linux主机的IP)即可,DNS等保持不变。
处在58.195.172.0/24网段的的IP就可以上网了


二 配置DHCP服务器
如上面所说,如果纯粹只想实现nat共享上网的话上面的步骤就可以实现了,当然,要是还想让“客户”朋友们在“舒服”点的话就再配个DHCP喽!呵呵

首先,当然还是安装啦!
对于rpm系列的linux如果用的是yum包管理器的话,可以在配好yum源后直接

yum   install   dhcp*

呵呵,简单吧!
麻烦点的话,在rpmfind等或者google找一下相关的软件包即可

最后是配置喽!
vi   /etc/dhcp/dhcpd.conf
下面是我的配置文件
#
# DHCP Server Configuration file.
 see /usr/share/doc/dhcp*/dhcpd.conf.sample
 see 'man 5 dhcpd.conf'
#
ddns-update-style interim;#DHCP-DNS互动更新模式
ignore client-updates;#允许客户机更新DNS记录
allow booting;#响应使用者查询
allow bootp;#响应激活查询
allow unknown-clients;#是否动态分配IP给未知的使用者

#定义作用域
subnet 58.195.172.0 netmask 255.255.255.0 {

option routers                         58.192.172.229;         #指定默认网关
option subnet-mask                 255.255.255.0;            #指定子网掩码

#option domain-name                 "jlive.org";                #DNS名字
option domain-name-servers         58.195.1.1,202.103.24.68;     #指定DNS的IP地址

option time-offset                 -18000;                           #指定和格林尼治时间的偏移差,单位是秒

range dynamic-bootp 58.195.172.100 58.195.172.254;             #提供动态分配IP的范围
default-lease-time                 21600;                           #默认租赁时间的长度,单位是秒
max-lease-time                         43200;                      #最大租赁时间的长度,单位是秒
#为固定机器绑定固定IP,指定多个主机--IP绑定时用group{}将主机扩起来
group{

host lei {
hardware ethernet 98:4b:e1:a2:f7:fd;               #客户机网卡的MAC地址
fixed-address           58.195.172.230;          #给定固定IP给该客户机
      option host-name  ct6.example.com;
            }

host ang {
         hardware ethernet 00:21:70:93:87:c1;
         fixed-address           58.195.172.231;
      option host-name  ubuntu.example.com;
             }

host yue {
         hardware ethernet 00:30:67:57:4b:a1;
         fixed-address           58.195.172.232;
      option host-name  ubuntu.example.com;
       }

#与group{ 相对应
}
#与subnet{ 相对应,哈,有始有终么!
}

好的,到此就全部配置安装完成,重启一下服务看看。

service   dhcpd   restart

如果没有报错则说明成功,如有问题很可能是配置上出了点岔子,可以通过
查看日志,用以下命令

tail   -f   /var/log/messages

实时监视出错及运行情况也方便找出错误点。

开机运行dhcp通过以下命令来实现:

chkconfig   --level   35   dhcpd   on       #在启动级别3和5开启dhcp

有兴趣的同学们可以尝试尝试,有错误的地方还望不吝指教噢!呵呵,


下面是dhcpd.conf配置的参数对照表
######################################################
######################################################
参数
ddns-update-style                             配置DHCP-DNS互动更新模式(必选)
allow/ignore client-updates                   允许或忽略客户机更新DNS记录
default-lease-time                            默认租赁时间的长度,单位是秒
max-lease-time                               最大租赁时间的长度,单位是秒
hardware                                     网卡接口类型和MAC地址
server-name                                 通知DHCP客户机服务器名称
get-lease-hostnames flag                    检查客户端使用的IP地址
fixed-address ip                             分配给客户端一个固定的地址
authritative                                  拒绝不正确的IP地址的要求


声明
shared-network{}                             定义超级作用域,告知哪些子网分享相同网络
subnet{}                                     定义作用域,描述一个IP地址是否属于该子网
range                                        提供动态分配IP的范围
host 主机名{}                                特别主机
group{}                                      一组主机
allow/deny unknown-clients                 是否动态分配IP给未知的使用者
allow/deny bootp                            是否响应激活查询
allow/deny booting                          是否响应使用者查询
filename                                    开始启动文件的名称,应用于无盘工作站
next-server                                  设置服务器从引导文件装入主机名,应用于无盘工作站


选项
subnet-mask                                为客户端指定子网掩码
domain-name                               为客户端指定DNS名字
domain-name-server                         为客户端指定DNS的IP地址
host-name                                  为客户端指定主机名
routers                                      为客户端指定默认网关
broadcast-address                          为客户端指定广播地址
netbios-name-servers                       为客户端指定WINS服务器的IP地址
netbios-node-type                           为客户端指定节点类型
ntp-server                                   为客户端指定网络时间服务器IP地址
nis-server                                    为客户端指定NIS域服务器IP地址
nis-domain                                   为客户端指定NIS域服务器的名称
time-offset                                    为客户端指定和格林尼治时间的偏移差,单位是秒
################################################################
################################################################
posted @ 2013-05-11 20:33  李庆喜  阅读(285)  评论(0编辑  收藏  举报