ubuntu下配置dhcp服务器





配置dhcp服务器需要:
为计算机设置静态ip,(充当dhcp服务器的计算机的ip需要是静态ip,不可以是通过动态获得的),(设置静态ip需要制定网卡:如eth0)设置子网掩码,默认网关,然后在配置dhcp。
最初我的ip为172.6.33.23,是通过dhcp方式获得的,即不是静态ip。
所以需要配置静态ip。


(0)sudo apt-get install dhcp3-server
或者sudo apt-get install isc-dhcpd-server 


(1)设置静态ip:


我的手动设置的静态ip地址为172.6.33.222.


静态ip的配置:
设置-》系统设置-》网络-》选项-》ipv4-》方法:手动-》添加-》address,subnet,netmask,dns.


sudo vim /etc/network/interfaces


auto lo
iface lo inet loopback
 auto eth0
 iface eth0 inet static
 address 172.6.33.222
 gateway 172.6.1.1
 netmask 255.255.0.0
 network 172.6.0.0
 broadcast 172.6.255.255
 dns-nameservers 210.30.100.2 202.118.66.6


配置完成后重启网络服务:
sudo /etc/init.d/networking restart


(2)dhcp服务器的相关配置:


配置dhcp的网卡:
sudo vim /etc/default/isc-dhcp-server
INTERFACES = "eth0"




#备份当前配置
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp3/dhcpd.conf.bak


编辑当前配置:
sudo vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 172.6.0.0  netmask 255.255.0.0 {
  range 172.6.33.111 172.6.33.120;
  option domain-name-servers 210.30.100.2;
  option domain-name "internal.example.org";
  option routers 172.6.1.1;
  option subnet-mask 255.255.0.0;
  option broadcast-address 172.6.255.255;
  default-lease-time 7200;
  max-lease-time 7200;
  filename "pxelinux.0"; #当需要使用pxe启动时,需要该参数,如果不用pxe启动的配置,则不需该参数
 next-server 172.6.33.222; #tftp服务器的地址。此中要pxe启动,所以需要该参数,如果不用pxe,则不需要该参数。
  
}


配置完成后,重启dhcp服务:
sudo /etc/init.d/isc-dhcpd-server restart


注意的是:这个子网为172.6.0.0,我之前写的是172.6.33.0,就会总是启动失败。


然后我ifconfig eth0之后的内容为:
eth0      Link encap:以太网  硬件地址 34:17:eb:c2:51:02  
          inet 地址:172.6.33.222  广播:172.6.255.255  掩码:255.255.0.0
          inet6 地址: fe80::3617:ebff:fec2:5102/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:9183 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:9727 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:5833130 (5.8 MB)  发送字节:1213000 (1.2 MB)
          中断:20 Memory:f7100000-f7120000 


注意事项:/etc/dhcp/dhcpd.conf中的subnet一定要包含server本机的ip在内,否则启动不了。。


(3)dhcp的客户端的处理:
sudo vim /etc/network/interface


配置范例如下:
auto lo 
iface lo inet loopback


auto eth0 #开机网卡0启动
iface eth0 inet dhcp #eth0动态获取ip
配置完成后,重启网络服务
sudo /etc/init.d/networking restart

sudo /etc/init.d/networking restart重启之后,如果出现下列错误:
Error: /etc/resolv.conf isn't a symlink, not doing anything。
resolv.conf默认是个软链接,resolvconf默认会检查resolv.conf不是软链接就报错。
方法一:
如果想不设置软链接可以通过/etc/default/resolvconf默认文件(没有可新建)设置参数
REPORT_ABSENT_SYMLINK no
方法二:
 1),把/etc/resolv.conf 文件拷贝到目录:/run/resolvconf/ 下
 2),删除/etc/resolv.conf


 3),建立软连接:ln -s ../run/resolvconf/resolv.conf  /etc/resolv.conf
方法三:

apt-get remove resolvconf  


测试DHCP是否在运行,如果是则返回DHCP进程的ID;
sudo  pgrep dhcpd
如果什么都没有,就是没有运行。。


然后如何找到dhcp服务器的ip地址:
sudo dhclient
或者
tail -n 15 /var/lib/dhcp3/dhclient.*.leases


(4)dhcp的各个参数解释:
命令详解:
  dns-update-style none; //动态DNS的更新方式,必须添加,否则服务器无法启动
  option routers 192.168.1.1; // 客户端默认网关
  option subnet-mask 255.255.255.0; //设置客户端广播地址,子网掩码
  option domain-name "domain.org"; //域名
  option domain-name-servers 192.168.1.100; //客户端DNS服务器
  subnet 192.168.0.0 netmask 255.255.255.0 { //定义网段的服务范围,与服务器所在IP段在同一范围
  range 192.168.0.2 192.168.0.99; //地址池范围,注意已经使用的固定地址要排除在外
  default-lease-time 21600; // 客户端能使用该IP地址的时间
   # 以秒计算
  max-lease-time 43200; //最长释放时间


#根据客户端MAC地址分配给他静态IP
  host ns{
  hardware ethernet 00:03:FF:B6:9E:AB; //这部分定义了静态地址,mac与IP绑定,该IP地址不要放在地址池中,每个静态地址要建一个host
  fixed-address 192.168.0.200;
  }

  }

(6)windows下测试dhcp服务器是否成功:


用一条网线将dhcp服务器的电脑主机与自己的pc连接起来,然后在自己的电脑上,
cmd->ipconfig /all,可以看到ipv4地址,子网掩码,获得租约时间,租约过期时间,默认网关,dhcp服务器,等等,与dhcp服务器中的配置
/etc/dhcp/dhcpd.conf比较。。。



你可能感兴趣的:(linux)