array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 DHCP服务攻略 - 爱码网
sharecast

一、 常规DHCP服务器的配置

查看相关配置文件

[root@RHEL1 dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf
[root@RHEL1 dhcp]# cat dhcpd.conf 		#默认是没有配置信息的
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see \'man 5 dhcpd.conf\'
#
[root@RHEL1 dhcp]# rpm -ql dhcp
/etc/dhcp
/etc/dhcp/dhcpd.conf		#Ipv4的DHCP配置文件
/etc/dhcp/dhcpd6.conf		#IPV6的DHCP配置文件
/etc/openldap/schema/dhcp.schema	#认证相关的,我也不懂
/etc/portreserve/dhcpd
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcpd6
/etc/rc.d/init.d/dhcrelay		
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay 	DHCP中继代理
/usr/bin/omshell
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.1.1
/usr/share/doc/dhcp-4.1.1/3.0b1-lease-convert
/usr/share/doc/dhcp-4.1.1/IANA-arp-parameters
/usr/share/doc/dhcp-4.1.1/README.ldap
/usr/share/doc/dhcp-4.1.1/api+protocol
/usr/share/doc/dhcp-4.1.1/dhclient-tz-exithook.sh
/usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample	#默认模板文件
/usr/share/doc/dhcp-4.1.1/dhcpd6.conf.sample	
/usr/share/doc/dhcp-4.1.1/draft-ietf-dhc-ldap-schema-01.txt
/usr/share/doc/dhcp-4.1.1/ms2isc
/usr/share/doc/dhcp-4.1.1/ms2isc/Registry.perlmodule
/usr/share/doc/dhcp-4.1.1/ms2isc/ms2isc.pl
/usr/share/doc/dhcp-4.1.1/ms2isc/readme.txt
/usr/share/doc/dhcp-4.1.1/sethostname.sh
/usr/share/doc/dhcp-4.1.1/solaris.init
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases	#租约数据库文件
/var/lib/dhcpd/dhcpd6.leases

 

 

主配置文件

dhcpd.conf组成部分

parameter(参数)

declaration(声明)

option(选项)

从整体框架来看分为全局配置和局部配置

复制模板

[root@RHEL1 dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 
cp: overwrite `/etc/dhcp/dhcpd.conf\'? y

 

 

配置文件简介

parameter(参数)
ddns-update-style (none|interim|ad-hoc);  #默认是被注释的;在RHEL6.4之前好像是必须要启用才能启动dhcp服务
none: 表示不支持动态更新。
Interim: 表示DNS互动更新模式
ad-hoc: 表示特殊DNS更新模式
ignore client-updates	#忽略客户端动态更新
default-lease-time		#指定确省租赁时间的长度,单位是秒。
max-lease-time			#指定最大租赁时间长度,单位是秒。
hardware			#指定网卡接口类型和MAC地址。
server-name		#通知DHCP客户服务器名称。
get-lease-hostnames flag	#检查客户端使用的IP地址。
fixed-address ip		#分配给客户端一个固定的地址。
authoritative		#拒绝不正确的IP地址的要求。
log-facility local7	#用于定义DHCP的日志

declaration(声明)
shared-network		#用来告知是否一些子网络分享相同网络。
subnet				#描述一个IP地址是否属于该子网。
range 起始IP 终止IP	#提供动态分配IP 的范围。
host 主机名称		#参考特别的主机。
group		#为一组参数提供声明。
allow unknown-clients ﹔deny unknown-client		#是否动态分配IP给未知的使用者。
allow bootp;deny bootp		#是否响应激活查询。
allow booting﹔deny booting		#是否响应使用者查询。
filename		#开始启动文件的名称,应用于无盘工作站。
next-server		#设置服务器从引导文件中装如主机名,应用于无盘工作站。

option(选项)
subnet-mask		#为客户端设定子网掩码。
domain-name		#为客户端指明DNS名字。
domain-name-servers	#为客户端指明DNS服务器IP地址。
host-name			#为客户端指定主机名称。
routers		#为客户端设定默认网关。
broadcast-address		#为客户端设定广播地址。
ntp-server			#为客户端设定网络时间服务器IP地址。
time-offset		#为客户端设定和格林威治时间的偏移时间,单位是秒。

二、 简单配置应用案例

某部门有60台计算机,网段192.168.1.1-192.168.1.254,子网掩码24位,网关为192.168.1,192.168.1.2-192.168.1.30为服务器固定地址,客户端可用网段为192.168.1.100-192.168.1.200,其余IP为保留地址,DNS为192.168.1.11

[root@RHEL1 dhcp]# vim dhcpd.conf		#建议先复制需要部分,然后再对不需要的局部进行注释,默认配置是104行(:.,104s/^/#/g 注释)

#全局配置
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
#局部配置
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.100 192.168.10.200;
  option routers 192.168.10.1;
  option domain-name-servers 192.168.10.11;
}

 

 

启动dhcpd服务

[root@RHEL1 dhcp]# service dhcpd restart //如果没有问题就可以进行测试;

关闭vmware的DHCP;

clip_image005

clip_image006

测试主机网卡选择

clip_image007

测试主机2003设置为DHCP获取

clip_image008

释放IP,顺便用wireshark抓包看看

clip_image009

DHCP数据包

clip_image010

三、 多网卡多作用域的实现

网络拓扑

clip_image011

在vmware上添加网卡vm2并去掉其DHCP功能,手工配置网卡中的IP与DHCP服务器同一网段即可,我这里已经添加过了

clip_image012

然后ping测试一下,保证其连通性;

clip_image013

clip_image014

配置dhcpd.conf

全局部分不变 局部配置

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.100 192.168.10.200;
  option domain-name-servers 172.16.0.1;
   option routers 192.168.10.1;
  option broadcast-address 192.168.10.255;
}


subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.200 192.168.20.200;
  option domain-name-servers 172.16.0.1;  
  option routers 192.168.20.1;
  option broadcast-address 192.168.20.255;
}

重启服务

[root@sharecast dhcp]# service dhcpd restart

Starting dhcpd: [ OK ]

测试服务

clip_image016

再将RHEL2网卡改为DHCP模式获取,如图

clip_image017

clip_image018

看一下服务求租约数据库文件

clip_image019

end

四、 超级作用域配置、主机绑定IP和中继代理

网络拓扑

clip_image020

主要原理是DHCP是同过广播的方式进行通话,广播包无法跨网段,故需要中继代理和数据转发DHCP服务器的网关一定要指向中继代理商的网卡

vmware网卡配置按照网络拓扑配置即可

DHCP server

dhcp.conf配置

全局不变即可, 局部参数如下

shared-network test {
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.100 192.168.10.200;
  option routers 192.168.10.1;
  option domain-name-servers 192.168.10.11;

}

subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.100 192.168.20.200;
  option routers 192.168.20.1;
  option domain-name-servers 192.168.10.11;

}
}
host win2003 {
  hardware ethernet 00:0C:29:F8:48:2C;
  fixed-address 192.168.20.150;
}

 

 

配置完成重启服务

网卡配置为如拓扑所示即可

DHCRELAY SERVER

首先,将网卡配置为拓扑所要求的,并且启用linux的转发功能

[root@sharecast dhcp]# ifconfig 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:38:D4:8E  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe38:d48e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2698 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:245806 (240.0 KiB)  TX bytes:268177 (261.8 KiB)
          Interrupt:19 Base address:0x2000 

eth2      Link encap:Ethernet  HWaddr 00:0C:29:38:D4:98  
          inet addr:192.168.20.1  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe38:d498/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:919 errors:0 dropped:0 overruns:0 frame:0
          TX packets:282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:108776 (106.2 KiB)  TX bytes:22690 (22.1 KiB)
          Interrupt:19 Base address:0x2400 

[root@sharecast dhcp]# vim /etc/sysctl.conf 
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 1		#将这里改为1即可
[root@sharecast dhcp]# sysctl –p		#检查配置
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456

[root@sharecast dhcp]# vim /etc/sysconfig/dhcrelay 	
# Command line options here
#DHCRELAYARGS=""
# DHCPv4 only
INTERFACES="eth1 eth2"		#本机网卡
# DHCPv4 only
DHCPSERVERS="192.168.10.11"		#指向DHCP服务器

[root@sharecast dhcp]# service dhcrelay restart		#重启代理服务器
Shutting down dhcrelay:                                    [  OK  ]
Starting dhcrelay:                                         [  OK  ]
[root@RHEL1 ~]# iptables –F		#清除防火墙规则

 

 

测试

clip_image023

clip_image024

end

五、 DHCP排错思路

 

image

分类:

技术点:

相关文章: