<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>冷博客 &#187; Linux</title>
	<atom:link href="http://loneblog.com/blog/category/about-linux/feed" rel="self" type="application/rss+xml" />
	<link>http://loneblog.com/blog</link>
	<description>见的人多了，我就更喜欢狗——罗曼·罗兰</description>
	<lastBuildDate>Fri, 10 Feb 2012 00:43:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>搭建简单的pptp vpn</title>
		<link>http://loneblog.com/blog/make-pptp-vpn-server.html</link>
		<comments>http://loneblog.com/blog/make-pptp-vpn-server.html#comments</comments>
		<pubDate>Fri, 18 Mar 2011 01:40:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/make-pptp-vpn-server.html</guid>
		<description><![CDATA[今天使用smoking测试一个百兆出口，冷博客觉得这个出口闲着也是闲着，不如给我下载东西用  
于是乎搭建一个简单的VPN服务器来独享百兆，哈哈。
  
一、安装
如果使用MPPE微软的加密协议，dkms和kernel_ppp_mppe，这两个需要安装，而且基础的yum源找不到这两个软件，当然这也跟你使用的源有关。
所有软件都可以从 http://poptop.sourceforge.net/yum/stable/packages/ 这里找到。
安装ppp和pptpd，可以rpm或者yum
#yum install –y ppp
#yum install –y pptpd
&#160;
二、配置
/etc/pptpd.conf配置
localip&#160; 服务器监听端口ip
remoteip 分配给VPN用户的IP段，比如192.168.1.1-100 
&#160;
/etc/ppp/options.pptpd配置
ms-dns 这是分给windows的dns，写一个公网的就行，不写不能上网
&#160;
/etc/ppp/chap-secrets 配置
其中自带一个名叫u20的用户，格式如下
用户名&#160;&#160; 服务名&#160;&#160; 密码&#160;&#160; IP
比如我新增加的一个用户   loneblog&#160; vpn passwd&#160;&#160;&#160; 192.168.1.2
分配的IP只有一个就是192.168.1.2了.也就是说只能一个人同时使用.    如果你想多人同时使用&#8230;可以将IP栏改为*，据说支持40并发，不过我们一般需要一人一号
&#160;
NAT设置和ipforward
#iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j SNAT &#8211;to 9.9.9.9
#echo 1 &#62;/proc/sys/net/ipv4/ip_forward 
或者sysctl.conf中修改 或者把上面的写入启动脚本。
&#160;
三、启动服务和测试
#/etc/init.d/pptpd start
或者
#service pptpd start
客户端配置：
windows默认的不允许无加密连接，需要手工改一下

linux下的我没试过，图形化界面应该更容易些。
&#160;
结束语：由于透过内网的设备很多，而且有个上联端口由于设备不兼容导致半双工（好囧），所以可能没有百兆带宽。
用迅雷测了个速，竟然排前十&#8230;
我不是广东的出口哈~显示错了

]]></description>
			<content:encoded><![CDATA[<p>今天使用smoking测试一个百兆出口，冷博客觉得这个出口闲着也是闲着，不如给我下载东西用 <img src='http://loneblog.com/blog/wp-includes/images/smilies/icon_px_11.gif' alt=':pxxiao:' class='wp-smiley' /> </p>
<p>于是乎搭建一个简单的VPN服务器来独享百兆，哈哈。</p>
<p>  <span id="more-1533"></span>
<p>一、安装</p>
<p>如果使用MPPE微软的加密协议，dkms和kernel_ppp_mppe，这两个需要安装，而且基础的yum源找不到这两个软件，当然这也跟你使用的源有关。</p>
<p>所有软件都可以从 <a href="http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm">http://poptop.sourceforge.net/yum/stable/packages/</a> 这里找到。</p>
<p>安装ppp和pptpd，可以rpm或者yum</p>
<p>#yum install –y ppp</p>
<p>#yum install –y pptpd</p>
<p>&#160;</p>
<p>二、配置</p>
<p>/etc/pptpd.conf配置</p>
<p>localip&#160; 服务器监听端口ip</p>
<p>remoteip 分配给VPN用户的IP段，比如192.168.1.1-100 </p>
<p>&#160;</p>
<p>/etc/ppp/options.pptpd配置</p>
<p>ms-dns 这是分给windows的dns，写一个公网的就行，不写不能上网</p>
<p>&#160;</p>
<p>/etc/ppp/chap-secrets 配置</p>
<p>其中自带一个名叫u20的用户，格式如下</p>
<p>用户名&#160;&#160; 服务名&#160;&#160; 密码&#160;&#160; IP</p>
<p>比如我新增加的一个用户   <br />loneblog&#160; <span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/vpn" title="查看 vpn 的全部文章" target="_blank">vpn</a></span> passwd&#160;&#160;&#160; 192.168.1.2</p>
<p>分配的IP只有一个就是192.168.1.2了.也就是说只能一个人同时使用.    <br />如果你想多人同时使用&#8230;可以将IP栏改为*，据说支持40并发，不过我们一般需要一人一号</p>
<p>&#160;</p>
<p>NAT设置和ipforward</p>
<p>#iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j SNAT &#8211;to 9.9.9.9</p>
<p>#echo 1 &gt;/proc/sys/net/ipv4/ip_forward </p>
<p>或者sysctl.conf中修改 或者把上面的写入启动脚本。</p>
<p>&#160;</p>
<p>三、启动服务和测试</p>
<p>#/etc/init.d/pptpd start</p>
<p>或者</p>
<p>#service pptpd start</p>
<p>客户端配置：</p>
<p>windows默认的不允许无加密连接，需要手工改一下</p>
<p><a href="http://loneblog.com/blog/wp-content/uploads/2011/03/12.jpg" class="highslide-image" onclick="return hs.expand(this);"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="12" border="0" alt="12" src="http://loneblog.com/blog/wp-content/uploads/2011/03/12_thumb.jpg" width="300" height="166" /></a></p>
<p>linux下的我没试过，图形化界面应该更容易些。</p>
<p>&#160;</p>
<p>结束语：由于透过内网的设备很多，而且有个上联端口由于设备不兼容导致半双工（好囧），所以可能没有百兆带宽。</p>
<p>用迅雷测了个速，竟然排前十&#8230;</p>
<p>我不是广东的出口哈~显示错了</p>
<p><a href="http://loneblog.com/blog/wp-content/uploads/2011/03/pptp-test-01.jpg" class="highslide-image" onclick="return hs.expand(this);"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="pptp-test-01" border="0" alt="pptp-test-01" src="http://loneblog.com/blog/wp-content/uploads/2011/03/pptp-test-01_thumb.jpg" width="300" height="214" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/make-pptp-vpn-server.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>谈谈Linux的学习</title>
		<link>http://loneblog.com/blog/talk-about-linux-learning.html</link>
		<comments>http://loneblog.com/blog/talk-about-linux-learning.html#comments</comments>
		<pubDate>Mon, 21 Feb 2011 14:59:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rhce]]></category>
		<category><![CDATA[鸟哥]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/?p=1503</guid>
		<description><![CDATA[09年一次偶然的机会，冷博客接触到了生产环境的Linux。就算开始了对Linux的学习，到现在也仅有1年多的时间。
在这一年多的时间里，冷博客从自己动手搭建一个DNS服务器到RHCE证书的考取，其中经历了一些坎坷，现把一些学习经验分享给大家。
  
首先不得不提的是鸟哥——《鸟哥的Linux私房菜》
冷博客Linux的入门教材，相信也是很多Linux爱好者心中的大神。
我觉得鸟哥的基础篇讲的是不错的，反复看过两遍。不过其中死记硬背的内容过多，很多内容可以从帮助文档中找到，这点鸟哥没有详细的讲过。
服务器篇部分内容个人认为鸟哥的理解有偏颇，还是那句话“尽信书不如无书”。
关于深度和广度
Linux中的服务和程序随便拿出来一个都够研究半年的了。
关于培训
参加培训的大部分为了应试。可惜的是，国内还没有特牛的培训机构（原厂除外哈）可以像培训cisco认证一样大量生产rhce，所以如果只为了考证，没有基础而直接去培训中心的话，还是很可能挂。虽然很多培训中心都有免费重考的机会，不过你浪费的青春没有补救。
关于桌面环境
使用Linux当日常的桌面环境是非常不明智的，你会因此耗费大量的时间和精力。
尤其是你的硬件不能被Linux安装时识别，你会陷入这样的循环：在墙上挂一幅油画——找钉子——买钉子——做公交车买钉子——办公交卡——搭车去公交站办卡——找邻居搭车——打电话找邻居，到最后也许会忘了初衷，或者筋疲力竭。
更不要试图使用U盘、PXE或者量产U盘里安装Linux，尤其是你有光驱的情况下（RHEL是个例外）
up：不要用ultroiso或者xxcreate，要用dd写入usb device，更正上面内条
还要多说几句，看到我们用的windows视窗操作系统了么？世界首富领导的世界顶尖团队，全都是各方面的高手，用了大量的人力物力和财力，才做成了现在的windows7。
即使这样，windows7还是漏洞百出，不容易使用。更不要说是一个论坛支持或者某个公司开源免费的Linux发行版本了，根本做不到，也不能做到微软这样的水平（冷博客没用过Apple OS，不敢妄加评论，虽然他也是unix一个分支，不过定制化的东西太多）
最后
这篇博文写了很久，应该是冷博客拖得时间最长的博文了，我一直使用live writer写草稿，然后想起一些来就写下来，都是经过反复斟酌过的经验之谈。
]]></description>
			<content:encoded><![CDATA[<p>09年一次偶然的机会，冷博客接触到了生产环境的<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/about-linux" title="查看 Linux 的全部文章" target="_blank">Linux</a></span>。就算开始了对Linux的学习，到现在也仅有1年多的时间。</p>
<p>在这一年多的时间里，冷博客从自己动手搭建一个DNS服务器到RHCE证书的考取，其中经历了一些坎坷，现把一些学习经验分享给大家。</p>
<p>  <span id="more-1503"></span>
<p>首先不得不提的是<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/%e9%b8%9f%e5%93%a5" title="查看 鸟哥 的全部文章" target="_blank">鸟哥</a></span>——《鸟哥的Linux私房菜》</p>
<p>冷博客Linux的入门教材，相信也是很多Linux爱好者心中的大神。</p>
<p>我觉得鸟哥的基础篇讲的是不错的，反复看过两遍。不过其中死记硬背的内容过多，很多内容可以从帮助文档中找到，这点鸟哥没有详细的讲过。</p>
<p>服务器篇部分内容个人认为鸟哥的理解有偏颇，还是那句话“尽信书不如无书”。</p>
<p>关于深度和广度</p>
<p>Linux中的服务和程序随便拿出来一个都够研究半年的了。</p>
<p>关于培训</p>
<p>参加培训的大部分为了应试。可惜的是，国内还没有特牛的培训机构（原厂除外哈）可以像培训cisco认证一样大量生产<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/rhce" title="查看 rhce 的全部文章" target="_blank">rhce</a></span>，所以如果只为了考证，没有基础而直接去培训中心的话，还是很可能挂。虽然很多培训中心都有免费重考的机会，不过你浪费的青春没有补救。</p>
<p>关于桌面环境</p>
<p>使用Linux当日常的桌面环境是非常不明智的，你会因此耗费大量的时间和精力。</p>
<p>尤其是你的硬件不能被Linux安装时识别，你会陷入这样的循环：在墙上挂一幅油画——找钉子——买钉子——做公交车买钉子——办公交卡——搭车去公交站办卡——找邻居搭车——打电话找邻居，到最后也许会忘了初衷，或者筋疲力竭。</p>
<p><strike>更不要试图使用U盘、PXE或者量产U盘里安装Linux</strike>，尤其是你有光驱的情况下（RHEL是个例外）</p>
<p>up：不要用ultroiso或者xxcreate，要用dd写入usb device，更正上面内条</p>
<p>还要多说几句，看到我们用的windows视窗操作系统了么？世界首富领导的世界顶尖团队，全都是各方面的高手，用了大量的人力物力和财力，才做成了现在的windows7。</p>
<p>即使这样，windows7还是漏洞百出，不容易使用。更不要说是一个论坛支持或者某个公司开源免费的Linux发行版本了，根本做不到，也不能做到微软这样的水平（冷博客没用过Apple OS，不敢妄加评论，虽然他也是unix一个分支，<strike>不过定制化的东西太多</strike>）</p>
<p>最后</p>
<p>这篇博文写了很久，应该是冷博客拖得时间最长的博文了，我一直使用live writer写草稿，然后想起一些来就写下来，都是经过反复斟酌过的经验之谈。</p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/talk-about-linux-learning.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>iptables&#124;Netfilter基本配置说明手册</title>
		<link>http://loneblog.com/blog/iptables-netfilter.html</link>
		<comments>http://loneblog.com/blog/iptables-netfilter.html#comments</comments>
		<pubDate>Thu, 10 Feb 2011 01:51:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[netfilter]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/iptables-netfilter.html</guid>
		<description><![CDATA[今天来说一下Netfilter相关事宜。
选取了培亚的培训视频截图（不知道算不算侵权），RHCE的课程中培亚的这一节课讲得非常好。

  
&#160;
iptables的三个tables，用-t表示
共3+3+2个chains
每个chain有若干rules
每个chain有个默认缺省的rule，称作policy，用-P表示
&#160;
filter 过滤封包

INPUT 进入本机的封包 
OUTPUT 从本机出去的封包 
FORWARD 经过本机路由转送的封包 

&#160;
nat 转译ip位置

PREROUTING 路由前 所有来的封包 
OUTPUT 从本机出去的封包 
POSTROUTING 路由后 所有出去的封包 

&#160;
mangle 改变封包内容

PREROUTING 路由前 所有来的封包 
OUTPUT 从本机出去的封包 

&#160;
下面这个图说明了封包经过这几个tables和chains的流程

下面介绍了rule的几种target
&#160;

分别为

DROP 直接丢弃 
ACCEPT 允许 
REJECT 退回错误信息并丢弃 
LOG 记录，不处理 

&#160;
chain的管理
-A 在chain末尾append若干条rule
-D 在chain中delete若干条rule
-I 在chain中指定位置insert若干条rule
还有 -R replace –L list –F flush –P policy 
–N new-chain –X delet-chain只能删除自定义的
&#160;

parameters的分类
-p protocal 可以是 tcp udp icmp
-s source 可以是 [...]]]></description>
			<content:encoded><![CDATA[<p>今天来说一下Netfilter相关事宜。</p>
<p>选取了培亚的培训视频截图（不知道算不算侵权），RHCE的课程中培亚的这一节课讲得非常好。</p>
<p><a href="http://loneblog.com/blog/wp-content/uploads/2011/02/snapshot20110208215727.jpg" class="highslide-image" onclick="return hs.expand(this);"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="snapshot20110208215727" border="0" alt="snapshot20110208215727" src="http://loneblog.com/blog/wp-content/uploads/2011/02/snapshot20110208215727_thumb.jpg" width="400" height="300" /></a></p>
<p>  <span id="more-1477"></span>
<p>&#160;</p>
<p><span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/iptables" title="查看 iptables 的全部文章" target="_blank">iptables</a></span>的三个tables，用-t表示</p>
<p>共3+3+2个chains</p>
<p>每个chain有若干rules</p>
<p>每个chain有个默认缺省的rule，称作policy，用-P表示</p>
<p>&#160;</p>
<p><strong>filter 过滤封包</strong></p>
<ul>
<li>INPUT 进入本机的封包 </li>
<li>OUTPUT 从本机出去的封包 </li>
<li>FORWARD 经过本机路由转送的封包 </li>
</ul>
<p>&#160;</p>
<p><strong>nat 转译ip位置</strong></p>
<ul>
<li>PREROUTING 路由前 所有来的封包 </li>
<li>OUTPUT 从本机出去的封包 </li>
<li>POSTROUTING 路由后 所有出去的封包 </li>
</ul>
<p>&#160;</p>
<p><strong>mangle 改变封包内容</strong></p>
<ul>
<li>PREROUTING 路由前 所有来的封包 </li>
<li>OUTPUT 从本机出去的封包 </li>
</ul>
<p>&#160;</p>
<p>下面这个图说明了封包经过这几个tables和chains的流程</p>
<p><a href="http://loneblog.com/blog/wp-content/uploads/2011/02/snapshot20110208224041.jpg" class="highslide-image" onclick="return hs.expand(this);"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="snapshot20110208224041" border="0" alt="snapshot20110208224041" src="http://loneblog.com/blog/wp-content/uploads/2011/02/snapshot20110208224041_thumb.jpg" width="400" height="300" /></a></p>
<p>下面介绍了rule的几种target</p>
<p>&#160;</p>
<p><a href="http://loneblog.com/blog/wp-content/uploads/2011/02/rule-target.jpg" class="highslide-image" onclick="return hs.expand(this);"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rule-target" border="0" alt="rule-target" src="http://loneblog.com/blog/wp-content/uploads/2011/02/rule-target_thumb.jpg" width="400" height="300" /></a></p>
<p>分别为</p>
<ul>
<li>DROP 直接丢弃 </li>
<li>ACCEPT 允许 </li>
<li>REJECT 退回错误信息并丢弃 </li>
<li>LOG 记录，不处理 </li>
</ul>
<p>&#160;</p>
<p><strong>chain的管理</strong></p>
<p>-A 在chain末尾append若干条rule</p>
<p>-D 在chain中delete若干条rule</p>
<p>-I 在chain中指定位置insert若干条rule</p>
<p>还有 -R replace –L list –F flush –P policy </p>
<p>–N new-chain –X delet-chain只能删除自定义的</p>
<p>&#160;</p>
<p><a href="http://loneblog.com/blog/wp-content/uploads/2011/02/filter-match.jpg" class="highslide-image" onclick="return hs.expand(this);"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="filter-match" border="0" alt="filter-match" src="http://loneblog.com/blog/wp-content/uploads/2011/02/filter-match_thumb.jpg" width="400" height="300" /></a></p>
<p><strong>parameters的分类</strong></p>
<p>-p protocal 可以是 tcp udp icmp</p>
<p>-s source 可以是 ip 或者 域名</p>
<p>-d destination 可以内容同上</p>
<p>-j jump 定义封包处理方法</p>
<p>-i in-interface 可以是eth0 或者子接口 或者eth+</p>
<blockquote><p>只能用在INPUT FORWARD和PREROUTING中</p>
</blockquote>
<p>-o out-interface 同上 只能用在OUTPUT FORWARD 和 POSTROUTING</p>
<p><strong>其中tcp参数的条件：</strong></p>
<p>&#8211;sport source-port 起始端口：终止端口</p>
<p>&#8211;dport destination-port 起始端口：终止端口</p>
<p>&#8211;tcp-flags 可以是SYN ACK FIN RST URG PSH </p>
<p>例如：&#8211;tcp-flags SYN,ACK,FIN,RST SYN 仅仅匹配带有SYN，而没有其他标志的</p>
<p>&#8211;syn 防止SYN攻击的参数 相当于匹配 –tcp-flags SYN,RST,ACK SYN</p>
<p><strong>其中udp参数的条件：</strong></p>
<p>&#8211;sport 与 &#8211;dport同上</p>
<p><strong>其中icmp参数的条件：</strong></p>
<p>&#8211;icmp-type icmp封包类型</p>
<p>&#160;</p>
<p><strong>owner模组</strong></p>
<p>只能用在OUTPUT chain</p>
<p>-m owner 要提前说明</p>
<p>&#8211;uid-owner 制定用户</p>
<p>&#8211;gid-owner 制定组</p>
<p>&#8211;pid-owner 制定进程</p>
<p>&#8211;sid-owner 制定子进程</p>
<p>&#8211;cmd-owner 指定指令</p>
<p>&#160;</p>
<p><strong>state模组</strong></p>
<p>&#8211;state 根据状态匹配</p>
<p>-m state 要提前说明</p>
<p>INVALID 未知封包</p>
<p>ESTABLISHED 已建立三次握手的封包</p>
<p>NEW 新建立连线</p>
<p>RELATED 再建立一条新连线的封包</p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/iptables-netfilter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 编译新的驱动模块到内核</title>
		<link>http://loneblog.com/blog/linux-how-to-add-mod.html</link>
		<comments>http://loneblog.com/blog/linux-how-to-add-mod.html#comments</comments>
		<pubDate>Tue, 25 Jan 2011 02:50:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[modprobe.conf]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/linux-how-to-add-mod.html</guid>
		<description><![CDATA[这篇挺水的，老鸟略过吧
一、用命令自动添加模块
这个很简答，分为三步。
1.查看模块是否已经存在当前内核中
这里以ipip.ko这个模块为例，一般都没有被编译进去
#lsmod &#124; grep ipip   
如果没有的话，查看本地lib中是否有这个模块
#modprobe –l &#124; grep ipip   /lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipip.ko    
或者手动查看/lib/modules/$(unmae -r)/kernel/
  
&#160;
2.使用mkinitrd新建内核
#mkinitrd &#8211;with=ipip /boot/initrd-2.6.18-194.ido.img $(uname -r)
3.修改grub.conf添加新启动项
root (hd0,0)   kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet    initrd /initrd-2.6.18-194.ido.img    
二、手工添加模块，编译initrd
手动添加比较繁琐，大概分为3大步
1.解压initrd文件
#cp /boot/initrd-2.6.18-194.el5.img /tmp
# file /tmp/initrd-2.6.18-194.el5.img   /tmp/initrd-2.6.18-194.el5.img: gzip compressed data, from Unix, [...]]]></description>
			<content:encoded><![CDATA[<p>这篇挺水的，老鸟略过吧</p>
<h1>一、用命令自动添加模块</h1>
<p>这个很简答，分为三步。</p>
<h2>1.查看模块是否已经存在当前内核中</h2>
<p>这里以ipip.ko这个模块为例，一般都没有被编译进去</p>
<p>#lsmod | grep ipip   </p>
<p>如果没有的话，查看本地lib中是否有这个模块</p>
<p>#modprobe –l | grep ipip   <br />/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipip.ko    </p>
<p>或者手动查看/lib/modules/$(unmae -r)/kernel/</p>
<p>  <span id="more-1442"></span>
<p>&#160;</p>
<h2>2.使用mkinitrd新建内核</h2>
<p>#mkinitrd &#8211;with=ipip /boot/initrd-2.6.18-194.ido.img $(uname -r)</p>
<h2>3.修改grub.conf添加新启动项</h2>
<p>root (hd0,0)   <br />kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet    <br />initrd /initrd-2.6.18-194.ido.img    </p>
<h1>二、手工添加模块，编译initrd</h1>
<p>手动添加比较繁琐，大概分为3大步</p>
<h2>1.解压initrd文件</h2>
<p>#cp /boot/initrd-2.6.18-194.el5.img /tmp</p>
<p># file /tmp/initrd-2.6.18-194.el5.img   <br />/tmp/initrd-2.6.18-194.el5.img: gzip compressed data, from Unix, last modified: Sun Jan 16 20:30:13 2011, max compression</p>
<p>#gzip –dv –S .img&#160; /tmp/initrd-2.6.18-194.el5.img</p>
<p># file /tmp/initrd-2.6.18-194.el5   <br />/tmp/initrd-2.6.18-194.el5: ASCII cpio archive (SVR4 with no CRC)</p>
<p>#mkdir /tmp/initrd;cpio –id &lt; /tmp/initrd-2.6.18-194.el5</p>
<p>经过这些步骤，我们就在/tmp/initrd中看到了全部已经解压的文件</p>
<p>在lib中，有所有编译的模块，我们把需要的ipip.ko拷贝进去，然后再init中添加如下内容：</p>
<p>echo ‘Loading ipip mod…’</p>
<p>insmod /lib/ipip.ko</p>
<h2>2.压缩还原initrd</h2>
<p>#find /tmp/initrd &gt;/tmp/initrd.ls</p>
<p>#cpio –oc &lt; /tmp/initrd.ls &gt; /boot/initrd-2.6.18-194.ido</p>
<p>#gzip –v9 –S .img /boot/initrd-2.6.18-194.ido</p>
<h2>3.修改grub.conf重新启动</h2>
<p>这个步骤同上第一章   </p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/linux-how-to-add-mod.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让RedHat使用CentOS yum源</title>
		<link>http://loneblog.com/blog/redhat-use-centos-yum-repo.html</link>
		<comments>http://loneblog.com/blog/redhat-use-centos-yum-repo.html#comments</comments>
		<pubDate>Sun, 23 Jan 2011 13:42:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/redhat-use-centos-yum-repo.html</guid>
		<description><![CDATA[由于正版的红帽需要RHN等注册才能使用yum服务源，因此对于我们这些实验用机很不柔道的说。因此我们要使用免费的centos做源！
方法是网上看来得，不过说实话对于版本兼容性问题，冷博客在这里还是打个问号的
不过一般实验用没问题，系统都是同根而生的呀
网上流传着南京啥啥大学ftp源，冷博客觉得这个不好，大学ftp说变就变，而且十有八九是教育网的速度不会很快，不如用163的。
这里特别谢谢163能提供国内知名的一个免费开源镜像！
  

方法如下：
[root@loneblog ~]# vim /etc/yum.repos.d/centos.repo
新建一个repo，填入如下内容，其实后几项没有必要，更新的时候特费时，把base 和 upate 填上就行！
[base]     name=CentOS-5-163-Base      baseurl=http://mirrors.163.com/centos/5.5/os/i386/      gpgcheck=0      gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5      [update]      name=CentOS-5-Updates      baseurl=http://mirrors.163.com/centos/5.5/os/i386/      [...]]]></description>
			<content:encoded><![CDATA[<p>由于正版的红帽需要RHN等注册才能使用<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/yum" title="查看 yum 的全部文章" target="_blank">yum</a></span>服务源，因此对于我们这些实验用机很不柔道的说。因此我们要使用免费的<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/centos" title="查看 centos 的全部文章" target="_blank">centos</a></span>做源！</p>
<p>方法是网上看来得，不过说实话对于版本兼容性问题，冷博客在这里还是打个问号的</p>
<p>不过一般实验用没问题，系统都是同根而生的呀</p>
<p>网上流传着南京啥啥大学ftp源，冷博客觉得这个不好，大学ftp说变就变，而且十有八九是教育网的速度不会很快，不如用163的。</p>
<p><font color="#ff0000">这里特别谢谢163能提供国内知名的一个免费开源镜像！</font></p>
<p>  <span id="more-1441"></span>
<p><font color="#ff0000"></font></p>
<p>方法如下：</p>
<p>[root@loneblog ~]# vim /etc/yum.repos.d/centos.repo</p>
<p>新建一个repo，填入如下内容，其实后几项没有必要，更新的时候特费时，把base 和 upate 填上就行！</p>
<blockquote><p>[base]     <br />name=CentOS-5-163-Base      <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5      <br />[update]      <br />name=CentOS-5-Updates      <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5      <br />[addons]      <br />name=CentOS-5-Addons      <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5</p>
<p>[extras]     <br />name=CentOS-5-Extras      <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5</p>
<p>[centosplus]</p>
<p>name=CentOS-5-Plus     <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5</p>
<p>enabled=0      <br />#contrib &#8211; packages by Centos Users      <br />[contrib]      <br />name=CentOS-5-Contrib      <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5</p>
<p>[dag]     <br />name=Dag RPM Repository for RHEL5      <br />enabled=1      <br />baseurl=http://mirrors.163.com/centos/5.5/os/i386/      <br />gpgcheck=0      <br />gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5</p>
</blockquote>
<p>然后gpgkey神马的随意~</p>
<p>测试一下</p>
<blockquote><p>[root@loneblog ~]# yum reinstall nmap     <br />Loaded plugins: rhnplugin, security      <br />This system is not registered with RHN.      <br />RHN support will be disabled.      <br />Setting up Reinstall Process      <br />Resolving Dependencies      <br />&#8211;&gt; Running transaction check      <br />&#8212;&gt; Package nmap.i386 2:4.11-1.1 set to be updated      <br />&#8211;&gt; Finished Dependency Resolution</p>
<p>Dependencies Resolved</p>
<p>================================================================================     <br /> Package&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Arch&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Version&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Repository&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Size      <br />================================================================================      <br />Reinstalling:      <br /> nmap&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; i386&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2:4.11-1.1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; addons&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 672 k</p>
<p>Transaction Summary     <br />================================================================================      <br />Remove&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 Package(s)      <br />Reinstall&#160;&#160;&#160;&#160; 1 Package(s)      <br />Downgrade&#160;&#160;&#160;&#160; 0 Package(s)</p>
<p>Total download size: 672 k     <br />Is this ok [y/N]: y      <br />Downloading Packages:      <br /><font color="#ff0000">nmap-4.11-1.1.i386.rpm&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; | 672 kB&#160;&#160;&#160;&#160; 00:03       <br /></font>Running rpm_check_debug      <br />Running Transaction Test      <br />Finished Transaction Test      <br />Transaction Test Succeeded      <br />Running Transaction      <br />&#160; Installing&#160;&#160;&#160;&#160; : nmap&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1/1</p>
<p>Installed:     <br />&#160; nmap.i386 2:4.11-1.1</p>
<p>Complete!     </p>
</blockquote>
<p>看到了吧速度嗖嗖的，672kB用了3秒~呵呵   </p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/redhat-use-centos-yum-repo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Grub开机启动故障排查大全</title>
		<link>http://loneblog.com/blog/linux-grub-error.html</link>
		<comments>http://loneblog.com/blog/linux-grub-error.html#comments</comments>
		<pubDate>Sun, 23 Jan 2011 12:17:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/linux-grub-error.html</guid>
		<description><![CDATA[来源：http://servershuji.blog.51cto.com/1283121/340779
这个是原创滴，非常实用，特转之。
原文标题如下，冷博客觉得还是叫做 开机启动故障 比较好。
  
&#160;
RHEL服务器故障排除精粹
大家好！我是书记。今天给大家打来的是Linux服务器中常见故障的一些解决方案。
首先，我们要知道对Linux进行故障排错的学习方法和步骤：
一、要非常熟悉Linux的启动过程。    二、要学会查看日志的好习惯。     三、要具备常见的Linux故障的场景及解决方法的经验。     四、不断的积累、总结。
引导流程图：

（1）修复MBR扇区故障
故障原因：    &#160;&#160;&#160;&#160;&#160;&#160;&#160; One：一些病毒、木马等造成的破坏。     &#160;&#160;&#160;&#160;&#160;&#160;&#160; two：不正确的分区操作、磁盘读写的误操作。
故障现象：    &#160;&#160;&#160;&#160;&#160;&#160;&#160; one :无法加载OS，开机后出现黑屏。     &#160;&#160;&#160;&#160;&#160;&#160;&#160; two：找不到引导程序，启动过程中突然中断。     解决方案：
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one:应提前作好备份文件    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two:以RHEL5安装光盘引导进入急救模式   [...]]]></description>
			<content:encoded><![CDATA[<p>来源：<a title="http://servershuji.blog.51cto.com/1283121/340779" href="http://servershuji.blog.51cto.com/1283121/340779">http://servershuji.blog.51cto.com/1283121/340779</a></p>
<p>这个是原创滴，非常实用，特转之。</p>
<p>原文标题如下，冷博客觉得还是叫做 开机启动故障 比较好。</p>
<p>  <span id="more-1439"></span>
<p>&#160;</p>
<p>RHEL服务器故障排除精粹</p>
<p>大家好！我是书记。今天给大家打来的是<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/about-linux" title="查看 Linux 的全部文章" target="_blank">Linux</a></span>服务器中常见故障的一些解决方案。</p>
<p>首先，我们要知道对Linux进行故障排错的学习方法和步骤：</p>
<p>一、要非常熟悉Linux的启动过程。    <br />二、要学会查看日志的好习惯。     <br />三、要具备常见的Linux故障的场景及解决方法的经验。     <br />四、不断的积累、总结。</p>
<p>引导流程图：</p>
<p><img border="0" alt="" src="http://img1.51cto.com/attachment/201006/201006291277781938843.png" /></p>
<p>（1）修复MBR扇区故障</p>
<p>故障原因：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; One：一些病毒、木马等造成的破坏。     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; two：不正确的分区操作、磁盘读写的误操作。</p>
<p>故障现象：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; one :无法加载OS，开机后出现黑屏。     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; two：找不到引导程序，启动过程中突然中断。     <br />解决方案：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one:应提前作好备份文件    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two:以RHEL5安装光盘引导进入急救模式     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; three:从备份文件中恢复</p>
<p>Example：</p>
<p>1.备份MBR扇区数据    <br />&#160;&#160;&#160; dd if=/dev/sda of =/backup/sda.mbr.bak bs=512 count=1</p>
<p>2.模拟MBR被破坏额故障    <br />&#160;&#160;&#160; dd if=/dev/sda of=/dev/sda bs=512 count=1</p>
<p><img border="0" alt="" src="http://img1.51cto.com/attachment/201006/201006291277782147828.png" /></p>
<p>3.RHEL5关盘引导，进入到急救模式</p>
<p>&#160;&#160;&#160;&#160; boot:linux resure</p>
<p>4.从备份文件中恢复MBR扇区    <br />&#160;&#160;&#160;&#160; dd if=/tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>&#160; (2)修复GRUB引导故障 </p>
<p>故障原因:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; one :MBR中的GRUB引导程序遭到破坏     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; two :<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/grub" title="查看 grub 的全部文章" target="_blank">grub</a></span>.conf文件丢失、引导配置有误</p>
<p>故障现象:</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 系统引过程中停止不前，显示“<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/grub" title="查看 grub 的全部文章" target="_blank">grub</a></span>&gt;”提示符</p>
<p><img border="0" alt="" src="http://img1.51cto.com/attachment/201006/201006291277782162375.png" /></p>
<p>解决方案：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 手动输入引导命令     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 进入急救模式，从备份中恢复grub.conf配置文件     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 向MBR扇区中重建grub程序</p>
<p>Example:</p>
<p>1.在“grub&gt;”提示符后，手动输入引导命令,    <br />成功进入系统后，恢复或重建 grub.conf 配置文件</p>
<p>grub&gt; root&#160; (hd0,0)    <br />grub&gt; kernel&#160; /vmlinuz-2.6.9-5.EL ro root=LABEL=/ rhgb quiet     <br />grub&gt; initrd&#160; /initrd-2.6.9-5.EL.img     <br />grub&gt; boot     <br />==================================================================     <br />[root@localhost ]# cd&#160; /boot/grub/     <br />[root@localhost ]# cp&#160; grub.conf.bak&#160; grub.conf </p>
<p>==================================================================</p>
<p>2.进入急救模式，从备份文件中恢复 grub.conf 文件,    <br />向MBR扇区中重建GRUB程序</p>
<p>sh-3.1# chroot&#160; /mnt/sysimage    <br />sh-3.1# cd&#160; /boot/grub/     <br />sh-3.1# cp&#160; grub.conf.bak&#160; grub.conf     <br />sh-3.1# grub-install&#160; /dev/sda</p>
<p>(3)etc/inittab文件丢失</p>
<p>故障原因:    <br />inittab文件被误删除，或者存在配置上的问题</p>
<p>故障现象：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one:启动中提示 “&#8230; INIT: No inittab file found”</p>
<p><img border="0" alt="" src="http://img1.51cto.com/attachment/201006/201006291277783432859.png" /></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two:系统停滞，无法完成初始化</p>
<p>解决方案：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; One：进入急救模式，从备份文件中恢复     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two: 在急救模式中重新安装 initscripts 软件包     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; rpm&#160; -ivh &#8211;aid &#8211;force &#8211;replacepkgs&#160; initscripts-8.45.14.EL.i386.rpm</p>
<p>(4)etc/fstab文件丢失</p>
<p>故障原因:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fstab文件被误删除，或者存在配置错误</p>
<p>故障现象:    <br />&#160;&#160;&#160;&#160;&#160; one:启动中提示 “&#8230; /etc/fstab: No such file or directory”</p>
<p><img border="0" alt="" src="http://img1.51cto.com/attachment/201006/201006291277783495671.png" /></p>
<p>&#160;&#160;&#160;&#160;&#160; two :系统停滞，无法完成初始化</p>
<p>解决方案：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one&#160; :进入急救模式，手动查找并挂载根分区     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 查找逻辑卷：lvm vgscan     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 激活指定的逻辑卷：lvm vgchange -ay&#160; /dev/VolGroup00     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two :恢复或重建fstab配置文件</p>
<p>（5）忘记root用户的密码 </p>
<p>故障原因：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 忘记root用户的密码</p>
<p>故障现象：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one :无法进行需要root权限的管理操作     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two :若没有其他可用帐号，将无法登录系统</p>
<p>解决方案：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one :引导进入单用户模式（runlevel=1），然后重设密码     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; grub &gt; kernel&#160; &#8230;&#160; single 或 s 或 1     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two :进入急救模式，然后重设密码 </p>
<p>(6)软件包类故障 —— rpm数据库损坏 </p>
<p>故障原因:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 非正常关机、误删除运行中的程序文件     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; RPM数据文件被误写或删除</p>
<p>故障现象:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 不能正常查询rpm包信息 rpm -ql ; rpm -qa &#8230;..     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 无法安装、升级或卸载软件包等 rpm -U ; rpm -i&#8230;&#8230;     <br />解决方案：     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重建RPM数据库     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重建命令：rpm&#160; &#8211;rebuilddb 或 rpm&#160; &#8211;initdb</p>
<p>（7）磁盘资源耗尽故障</p>
<p>故障原因:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one :磁盘空间已被大量的数据占满，空间耗尽     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two :虽然还有可用空间，但文件数i节点耗尽 </p>
<p>故障现象:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; one :无法写入新的文件，提示“… : 设备上没有空间”     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; two : 部分程序无法运行，甚至系统无法启动</p>
<p>解决方案：    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1. 清理磁盘空间，删除无用、冗余的文件     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2 .转移或删除占用大量i节点的琐碎文件     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3. 进 入单用户模式、急救模式进行修复     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4.用户设置磁盘配额&#8212;系统管理中必做的</p>
<p>一些细节上的故障，只要我们做了必要的备份的话， 解决这个问题不会很难。好了，就到这吧！同时祝愿大家天天好心情，偶也!</p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/linux-grub-error.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t locate RRDs.pm in @INC 类似问题的解决</title>
		<link>http://loneblog.com/blog/cant-locate-rrds-pm.html</link>
		<comments>http://loneblog.com/blog/cant-locate-rrds-pm.html#comments</comments>
		<pubDate>Fri, 21 Jan 2011 13:32:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/cant-locate-rrds-pm.html</guid>
		<description><![CDATA[ 上篇文章说了关于smokeping的安装，他是基于perl语言的。
其实使用perl加上模块跑的软件，如果没处理好其中任何一个环节，都会报错，而且让你根本不知道哪里出的错。
冷博客在安装smokeping的时候就报错，差点儿重做系统。
首先，一个通用的检测perl+RRDs的方法
perl -MRRDs -le &#8216;print q(ok!)&#8217;
如果显示ok!就证明你的perl+MRRDs工作正常
报错的话，两种已知错误。
Can&#8217;t locate RRDs.pm in @INC (@INC contains:     /usr/lib/perl5/5.8.5/i386-linux-thread-multi      
ln -sv /usr/local/rrdtool/lib/perl/5.8.5/i386-linux-thread-multi/RRDs.pm \   /usr/lib/perl5/5.8.5/i386-linux-thread-multi/
Can&#8217;t locate loadable object for module RRDs in @INC (@INC contains:     /usr/lib/perl5/5.8.5/i386-linux-thread-multi      
ln -sv /usr/local/rrdtool/lib/perl/5.8.5/i386-linux-thread-multi/auto/RRDs/RRDs.so \   [...]]]></description>
			<content:encoded><![CDATA[<p> 上篇文章说了关于smokeping的安装，他是基于perl语言的。</p>
<p>其实使用perl加上模块跑的软件，如果没处理好其中任何一个环节，都会报错，而且让你根本不知道哪里出的错。</p>
<p>冷博客在安装smokeping的时候就报错，差点儿重做系统。</p>
<p>首先，一个通用的检测perl+RRDs的方法</p>
<p>perl -MRRDs -le &#8216;print q(ok!)&#8217;</p>
<p>如果显示ok!就证明你的perl+MRRDs工作正常</p>
<p>报错的话，两种已知错误。</p>
<p><strong>Can&#8217;t locate RRDs.pm in @INC (@INC contains:     <br />/usr/lib/perl5/5.8.5/i386-linux-thread-multi      <br /></strong></p>
<p>ln -sv /usr/local/rrdtool/lib/perl/5.8.5/i386-linux-thread-multi/RRDs.pm \   <br />/usr/lib/perl5/5.8.5/i386-linux-thread-multi/</p>
<p><strong>Can&#8217;t locate loadable object for module RRDs in @INC (@INC contains:     <br />/usr/lib/perl5/5.8.5/i386-linux-thread-multi      <br /></strong></p>
<p>ln -sv /usr/local/rrdtool/lib/perl/5.8.5/i386-linux-thread-multi/auto/RRDs/RRDs.so \   <br />/usr/lib/perl5/5.8.5/i386-linux-thread-multi/    </p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/cant-locate-rrds-pm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>smokeping安装配置超详细流程</title>
		<link>http://loneblog.com/blog/how-to-configure-smokeping.html</link>
		<comments>http://loneblog.com/blog/how-to-configure-smokeping.html#comments</comments>
		<pubDate>Fri, 21 Jan 2011 12:50:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[smokeping]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/how-to-configure-smokeping.html</guid>
		<description><![CDATA[来自how2centos的教程，非常详细，原帖找不到了。
使用RH或者CentOS的朋友完全可以直接复制命令。
为了方面大家直接复制命令，冷博客把原文重新排版，把一些#号去掉了 :)
而且这套方法经过冷博客在真机实验的，现在还在运行。
我们在下一篇要谈谈关于perl报错的问题。
  
开始了~
Installing Smokeping on CentOS 5.5
 yum update    rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
安装httpd
 yum install httpd
‍ 安装探针    yum install rrdtool     yum install fping     yum install echoping     yum install curl     yum install perl perl-Net-Telnet [...]]]></description>
			<content:encoded><![CDATA[<p>来自how2centos的教程，非常详细，原帖找不到了。</p>
<p>使用RH或者CentOS的朋友完全可以直接复制命令。</p>
<p>为了方面大家直接复制命令，冷博客把原文重新排版，把一些#号去掉了 :)</p>
<p>而且这套方法经过冷博客在真机实验的，现在还在运行。</p>
<p>我们在下一篇要谈谈关于perl报错的问题。</p>
<p>  <span id="more-1425"></span>
<p>开始了~</p>
<p>Installing Smokeping on CentOS 5.5</p>
<p> yum update   <br /> rpm -Uhv http://apt.sw.be/<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/redhat" title="查看 redhat 的全部文章" target="_blank">redhat</a></span>/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm</p>
<p>安装httpd</p>
<p> yum install httpd</p>
<p>‍ 安装探针   <br /> yum install rrdtool    <br /> yum install fping    <br /> yum install echoping    <br /> yum install curl    <br /> yum install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI</p>
<p> wget http://oss.oetiker.ch/<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/smokeping" title="查看 smokeping 的全部文章" target="_blank">smokeping</a></span>/pub/smokeping-2.4.1.tar.gz   <br /> tar zxvf smokeping-2.4.1.tar.gz    <br /> mv smokeping-2.4.1 /opt/smokeping    <br /> cd /opt/smokeping</p>
<p> cd bin/   <br /> cp smokeping.dist smokeping    <br /> cd ../htdocs/    <br /> cp smokeping.cgi.dist smokeping.cgi    <br /> cp tr.cgi.dist tr.cgi    <br /> cd ../etc/    <br /> cp config.dist config    <br /> cp basepage.html.dist basepage.html    <br /> cp smokemail.dist smokemail    <br /> cp tmail.dist tmail    <br /> cp smokeping_secrets.dist smokeping_secrets    <br /> chmod 600 /opt/smokeping/etc/smokeping_secrets</p>
<p> vim /opt/smokeping/bin/smokeping</p>
<p><strong>Replace this:</strong></p>
<blockquote><p> !/usr/sepp/bin/perl-5.8.4 -w      <br /> -*-perl-*-      <br />&#160; <br />use lib qw(/usr/pack/rrdtool-1.2.23-mo/lib/perl);      <br />use lib qw(lib);      <br />&#160; <br />use Smokeping 2.004000;      <br />&#160; <br />Smokeping::main(&quot;etc/config.dist&quot;);      <br />&#160;</p>
</blockquote>
<p><strong>With This:</strong></p>
<blockquote><p> !/usr/bin/perl -w      <br /> -*-perl-*-      <br />&#160; <br />use lib qw(/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/RRDs/);      <br />use lib qw(/opt/smokeping/lib);      <br />&#160; <br />use Smokeping 2.004000;      <br />&#160; <br />Smokeping::main(&quot;/opt/smokeping/etc/config&quot;);      <br />&#160; <br />&#160; vim /opt/smokeping/htdocs/smokeping.cgi</p>
</blockquote>
<p><strong>Replace this:</strong></p>
<blockquote><p> !/usr/sepp/bin/speedy -w      <br /> -*-perl-*-      <br />&#160; <br />use lib qw(/usr/pack/rrdtool-1.0.33-to/lib/perl);      <br />use lib qw(/home/oetiker/data/projects/AADJ-smokeping/dist/lib);      <br />use CGI::Carp qw(fatalsToBrowser);      <br />&#160; <br />use Smokeping 2.004000;      <br />&#160; <br />Smokeping::cgi(&quot;/home/oetiker/data/projects/AADJ-smokeping/dist/etc/config&quot;);      <br />&#160;</p>
</blockquote>
<p><strong>With this:</strong></p>
<blockquote><p> !/usr/bin/speedy -w      <br /> -*-perl-*-      <br />&#160; <br />use lib qw(/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/RRDs);      <br />use lib qw(/opt/smokeping/lib);      <br />use CGI::Carp qw(fatalsToBrowser);      <br />&#160; <br />use Smokeping 2.004000;      <br />&#160; <br />Smokeping::cgi(&quot;/opt/smokeping/etc/config&quot;);      <br />&#160;</p>
</blockquote>
<p>&#160;</p>
<p> cd /opt/smokeping/htdocs   <br /> vim /opt/smokeping/htdocs/tr.cgi</p>
<p><strong>Change this:</strong></p>
<blockquote><p> !/usr/sepp/bin/speedy-5.8.8 -w     <br />use strict;      <br />use lib qw(/home/oposs/smokeping/software/lib);      <br />use lib qw(perl);      <br />&#160;</p>
</blockquote>
<p><strong>To this:</strong></p>
<blockquote><p> !/usr/bin/speedy -w      <br />use strict;      <br />use lib qw(/opt/smokeping/lib);      <br />use lib qw(perl);      <br />&#160;</p>
</blockquote>
<p>&#160;</p>
<p> mkdir -p /var/www/html/smokeping/img /var/www/html/smokeping/script/ /opt/smokeping/data /opt/smokeping/var   <br /> chown -R apache:apache /var/www/html/smokeping/img</p>
<p> ln -s /opt/smokeping/htdocs/cropper /var/www/html/smokeping/cropper   <br /> ln -s /opt/smokeping/htdocs/resource /var/www/html/smokeping/resource    <br /> ln -s /opt/smokeping/htdocs/script/Tr.js /var/www/html/smokeping/script/Tr.js    <br /> ln -s /opt/smokeping/htdocs/smokeping.cgi /var/www/html/smokeping/smokeping.cgi    <br /> ln -s /opt/smokeping/htdocs/tr.cgi /var/www/html/smokeping/tr.cgi</p>
<p> chmod 4775 /bin/traceroute</p>
<p>vim /etc/httpd/conf/httpd.conf</p>
<p><strong>change &gt;</strong> AddHandler cgi-script .cgi    <br /><strong>to &gt;</strong> AddHandler cgi-script .cgi</p>
<p><strong>Under </strong>&lt;Directory “/var/www/html”&gt;</p>
<p><strong>change&gt;</strong> Options Indexes FollowSymLinks    <br /><strong>to &gt;</strong> Options Indexes FollowSymLinks ExecCGI</p>
<p>&#160;</p>
<p> vim /opt/smokeping/etc/basepage.html</p>
<p><strong>Change this:</strong></p>
<blockquote><p>&lt;script src=&quot;cropper/lib/prototype.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;     <br />&lt;script src=&quot;cropper/lib/scriptaculous.js?load=builder,dragdrop&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;      <br />&lt;script src=&quot;cropper/cropper.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;      <br />&lt;script src=&quot;cropper/smokeping-zoom.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</p>
</blockquote>
<p><strong>To this:</strong></p>
<blockquote><p>&lt;script src=&quot;/smokeping/cropper/lib/prototype.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;     <br />&lt;script src=&quot;/smokeping/cropper/lib/scriptaculous.js?load=builder,dragdrop&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;      <br />&lt;script src=&quot;/smokeping/cropper/cropper.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;      <br />&lt;script src=&quot;/smokeping/cropper/smokeping-zoom.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</p>
</blockquote>
<p>&#160;</p>
<p> vim /opt/smokeping/htdocs/tr.html</p>
<p><strong>Change this:</strong></p>
<blockquote><p>&lt;html&gt;     <br /> &lt;head&gt;      <br />&#160;&#160; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;      <br />&#160; &lt;title&gt;SmokeTrace&lt;/title&gt;      <br />&#160;&#160; &lt;script type=&quot;text/javascript&quot; src=&quot;script/Tr.js&quot;&gt;&lt;/script&gt;      <br /> &lt;/head&gt;      <br />&lt;/html&gt;</p>
</blockquote>
<p><strong>To this:</strong></p>
<blockquote><p>&lt;html&gt;     <br /> &lt;head&gt;      <br />&#160;&#160; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;      <br />&#160; &lt;title&gt;SmokeTrace&lt;/title&gt;      <br />&#160;&#160; &lt;script type=&quot;text/javascript&quot; src=&quot;/script/Tr.js&quot;&gt;&lt;/script&gt;      <br /> &lt;/head&gt;      <br />&lt;/html&gt;</p>
</blockquote>
<p> ln -s /opt/smokeping/htdocs/tr.html /var/www/html/smokeping/tr.html    <br />&#160;</p>
<p>Lets create a basic Config file for Smokeping to get started:</p>
<p> vim /opt/smokeping/etc/config</p>
<p><font color="#ff0000">冷博客按：这个配置文件中，需要把how2centos改成你的地址，还有最后检测的地址那里也要换。</font></p>
<blockquote><p>*** General ***      <br />&#160; <br />owner&#160;&#160;&#160; = Peter Random      <br />contact&#160; = some@address.nowhere      <br />mailhost = my.mail.host      <br />sendmail = /usr/sbin/sendmail      <br /># NOTE: do not put the Image Cache below cgi-bin      <br /># since all files under cgi-bin will be executed &#8230; this is not      <br /># good for images.      <br />imgcache = /var/www/html/smokeping/img      <br />imgurl&#160;&#160; = http://www.how2centos.com/smokeping/img      <br />datadir&#160; = /opt/smokeping/data      <br />piddir&#160; = /opt/smokeping/var      <br />cgiurl&#160;&#160; = http://www.how2centos.com/smokeping/smokeping.cgi      <br />smokemail = /opt/smokeping/etc/smokemail      <br />tmail = /opt/smokeping/etc/tmail      <br />&#160; <br /># specify this to get syslog logging      <br />syslogfacility = local0      <br />&#160; <br /># each probe is now run in its own process      <br /># disable this to revert to the old behaviour      <br /># concurrentprobes = no      <br />&#160; <br />*** Alerts ***      <br />to = alertee@address.somewhere      <br />from = smokealert@company.xy      <br />&#160; <br />+someloss      <br />type = loss      <br /># in percent      <br />pattern = &gt;0%,*12*,&gt;0%,*12*,&gt;0%      <br />comment = loss 3 times&#160; in a row      <br />&#160; <br />*** Database ***      <br />&#160; <br />step&#160;&#160;&#160;&#160; = 300      <br />pings&#160;&#160;&#160; = 20      <br />&#160; <br /># consfn mrhb steps total      <br />&#160; <br />AVERAGE&#160; 0.5&#160;&#160; 1&#160; 1008      <br />AVERAGE&#160; 0.5&#160; 12&#160; 4320      <br />&#160;&#160;&#160; MIN&#160; 0.5&#160; 12&#160; 4320      <br />&#160;&#160;&#160; MAX&#160; 0.5&#160; 12&#160; 4320      <br />AVERAGE&#160; 0.5 144&#160;&#160; 720      <br />&#160;&#160;&#160; MAX&#160; 0.5 144&#160;&#160; 720      <br />&#160;&#160;&#160; MIN&#160; 0.5 144&#160;&#160; 720      <br />&#160; <br />*** Presentation ***      <br />&#160; <br />template = /opt/smokeping/etc/basepage.html      <br />&#160; <br />+ charts      <br />&#160; <br />menu = Charts      <br />title = The most interesting destinations      <br />&#160; <br />++ stddev      <br />sorter = StdDev(entries=&gt;4)      <br />title = Top Standard Deviation      <br />menu = Std Deviation      <br />format = Standard Deviation %f      <br />&#160; <br />++ max      <br />sorter = Max(entries=&gt;5)      <br />title = Top Max Roundtrip Time      <br />menu = by Max      <br />format = Max Roundtrip Time %f seconds      <br />&#160; <br />++ loss      <br />sorter = Loss(entries=&gt;5)      <br />title = Top Packet Loss      <br />menu = Loss      <br />format = Packets Lost %f      <br />&#160; <br />++ median      <br />sorter = Median(entries=&gt;5)      <br />title = Top Median Roundtrip Time      <br />menu = by Median      <br />format = Median RTT %f seconds      <br />&#160; <br />+ overview      <br />&#160; <br />width = 600      <br />height = 50      <br />range = 10h      <br />&#160; <br />+ detail      <br />&#160; <br />width = 600      <br />height = 200      <br />unison_tolerance = 2      <br />&#160; <br />&quot;Last 3 Hours&quot;&#160;&#160;&#160; 3h      <br />&quot;Last 30 Hours&quot;&#160;&#160; 30h      <br />&quot;Last 10 Days&quot;&#160;&#160;&#160; 10d      <br />&quot;Last 400 Days&quot;&#160;&#160; 400d      <br />&#160; <br />#+ hierarchies      <br />#++ owner      <br />#title = Host Owner      <br />#++ location      <br />#title = Location      <br />&#160; <br />*** Probes ***      <br />&#160; <br />+ FPing      <br />&#160; <br />binary = /usr/sbin/fping      <br />&#160; <br />*** Targets ***      <br />&#160; <br />menuextra = &lt;a target=&#8217;_blank&#8217; href=&#8217;/smokeping/tr.html{HOST}&#8217; class=&#8217;{CLASS}&#8217; \      <br />onclick=&quot;window.open(this.href,this.target, \      <br />&#8216;width=800,height=500,toolbar=no,location=no,status=no,scrollbars=no&#8217;); \      <br />return false;&quot;&gt;(TR)&lt;/a&gt;      <br />&#160; <br />probe = FPing      <br />&#160; <br />menu = Top      <br />title = Network Latency Grapher      <br />remark = Welcome to the SmokePing website of xxx Company. \      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Here you will learn all about the latency of our network.      <br />&#160; <br />+ hosts      <br />menu= Targets      <br />&#160; <br />++ How2CentOS      <br />&#160; <br />menu = How2CentOS.com      <br />title = How2CentOS.com      <br />alerts = someloss      <br />host = www.how2centos.com      <br />&#160; <br />++ CentOS      <br />&#160; <br />menu = CentOS.org      <br />title = CentOS.org      <br />alerts = someloss      <br />host = www.<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/centos" title="查看 centos 的全部文章" target="_blank">centos</a></span>.org      <br />&#160;</p>
</blockquote>
<p>Lets create a service startup script for Smokeping</p>
<p>&#160;</p>
<p> vim /etc/init.d/smokeping</p>
<blockquote><p>#!/bin/bash     <br />#      <br /># chkconfig: 2345 80 05      <br /># Description: Smokeping init.d script      <br /># Hacked by : How2CentOS &#8211; http://www.how2centos.com # Get function from functions library./etc/init.d/functions      <br /> # Start the service Smokepingstart() {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo -n &quot;Starting Smokeping: &quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; /opt/smokeping/bin/smokeping&gt;/dev/null2&gt;&amp;1      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ### Create the lock file ###      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; touch /var/lock/subsys/smokeping      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; success $&quot;Smokeping startup&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo      <br />} # Restart the service Smokepingstop() {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo -n &quot;Stopping Smokeping: &quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; kill -9 `psax| grep &quot;/opt/smokeping/bin/smokeping&quot; | grep -v grep | awk &#8216;{ print $1 }&#8217;` &gt;/dev/null2&gt;&amp;1      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ### Now, delete the lock file ###      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; rm -f /var/lock/subsys/smokeping      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; success $&quot;Smokeping shutdown&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo      <br />} ### main logic ###      <br />case &quot;$1&quot; instart)start;;stop)stop;;status)status Smokeping;;restart|reload|condrestart)stop      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; start;;      <br />&#160; *)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo$&quot;Usage: $0 {start|stop|restart|reload|status}&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; exit 1      <br />esac exit 0</p>
</blockquote>
<p>&#160; <br /> chmod 755 /etc/init.d/smokeping</p>
<p> Finally lets add Apache and Smokeping to startup and get them started:</p>
<p># chkconfig smokeping on   <br /># chkconfig httpd on    <br /># service smokeping start    <br />Starting Smokeping: [ OK ]    <br /># service httpd start    <br />Starting httpd: [ OK ]</p>
<p>Now browse to your new installed Smokeping and Smoketrace installation</p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/how-to-configure-smokeping.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>老生重弹：LVM配置详解</title>
		<link>http://loneblog.com/blog/lvm.html</link>
		<comments>http://loneblog.com/blog/lvm.html#comments</comments>
		<pubDate>Wed, 19 Jan 2011 08:40:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[rhce]]></category>
		<category><![CDATA[rhel]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/%e8%80%81%e7%94%9f%e9%87%8d%e5%bc%b9%ef%bc%9alvm%e9%85%8d%e7%bd%ae%e8%af%a6%e8%a7%a3.html</guid>
		<description><![CDATA[上次说了关于LVM的一些原理和命令，见：LVM配置命令笔记。这次做个比较全面的说明。
LVM的基础知识和分区的基础知识这篇不涉及。以下实验均为在VM上的RHEL5.5原始命令。
LVM有三层结构：PV VG 和 LV
  
&#160;
一、准备工作
#fdisk –l
/dev/sda6&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 727&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 739&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; Linux    /dev/sda7&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 740&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 752&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; Linux     /dev/sda8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 753&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 765&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; Linux     /dev/sda9&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 766&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 778&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; Linux
二、PV操作
&#160;
1.创建pv盘
[root@rhce ~]# pvcreate /dev/sda{6,7,8}    &#160; Physical volume &#34;/dev/sda6&#34; successfully created   [...]]]></description>
			<content:encoded><![CDATA[<p>上次说了关于LVM的一些原理和命令，见：<a title="Permalink to LVM配置命令笔记" href="http://loneblog.com/blog/lvm-learn-note.html">LVM配置命令笔记</a>。这次做个比较全面的说明。</p>
<p>LVM的基础知识和分区的基础知识这篇不涉及。以下实验均为在<font color="#ff0000">VM上的RHEL5.5</font><font color="#c0504d">原始命令</font>。</p>
<p>LVM有三层结构：PV VG 和 LV</p>
<p>  <span id="more-1411"></span>
<p>&#160;</p>
<h1>一、准备工作</h1>
<p>#fdisk –l</p>
<p>/dev/sda6&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 727&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 739&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; <span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/about-linux" title="查看 Linux 的全部文章" target="_blank">Linux</a></span>    <br />/dev/sda7&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 740&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 752&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; <span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/about-linux" title="查看 Linux 的全部文章" target="_blank">Linux</a></span>     <br />/dev/sda8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 753&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 765&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; Linux     <br />/dev/sda9&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 766&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 778&#160;&#160;&#160;&#160;&#160; 104391&#160;&#160; 83&#160; Linux</p>
<h1>二、PV操作</h1>
<p>&#160;</p>
<h2>1.创建pv盘</h2>
<p>[root@<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/rhce" title="查看 rhce 的全部文章" target="_blank">rhce</a></span> ~]# pvcreate /dev/sda{6,7,8}    <br />&#160; Physical volume &quot;/dev/sda6&quot; successfully created     <br />&#160; Physical volume &quot;/dev/sda7&quot; successfully created     <br />&#160; Physical volume &quot;/dev/sda8&quot; successfully created</p>
<p>&#160;</p>
<h2>2.还原pv</h2>
<p>[root@<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/rhce" title="查看 rhce 的全部文章" target="_blank">rhce</a></span> ~]# pvremove /dev/sda{6,7,8}</p>
<p>&#160; Labels on physical volume &quot;/dev/sda6&quot; successfully wiped    <br />&#160; Labels on physical volume &quot;/dev/sda7&quot; successfully wiped     <br />&#160; Labels on physical volume &quot;/dev/sda8&quot; successfully wiped</p>
<p>&#160;</p>
<h2>3.查看pv</h2>
<p>[root@rhce ~]# pvdisplay /dev/sda7    <br />&#160; &#8212; Physical volume &#8212;     <br />&#160; PV Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /dev/sda7     <br />&#160; VG Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; loneblog     <br />&#160; PV Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 101.94 MB / not usable 1.94 MB     <br />&#160; Allocatable&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; yes     <br />&#160; PE Size (KByte)&#160;&#160;&#160;&#160;&#160;&#160; 4096     <br />&#160; Total PE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 25     <br />&#160; Free PE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 25     <br />&#160; Allocated PE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0     <br />&#160; PV UUID&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; hvV24Y-bvuf-MfbC-ssCH-MyRU-2QZG-bNw3JX</p>
<p>后面有用pvscan查看的例子。</p>
<p>&#160;</p>
<h1>三、VG操作</h1>
<p>&#160;</p>
<h2>1.创建vg</h2>
<p>[root@rhce ~]# vgcreate loneblog /dev/sda{6,7,8}    <br />&#160; No physical volume label read from /dev/sda6     <br />&#160; Physical volume &quot;/dev/sda6&quot; successfully created     <br />&#160; No physical volume label read from /dev/sda7     <br />&#160; Physical volume &quot;/dev/sda7&quot; successfully created     <br />&#160; No physical volume label read from /dev/sda8     <br />&#160; Physical volume &quot;/dev/sda8&quot; successfully created     <br />&#160; Volume group &quot;loneblog&quot; successfully created</p>
<p>&#160;</p>
<h2>2.移除vg</h2>
<p>[root@rhce ~]# vgremove loneblog    <br />&#160; Volume group &quot;loneblog&quot; successfully removed</p>
<p>&#160;</p>
<h2>3.增加vg——添加pv盘</h2>
<p>[root@rhce ~]# vgextend loneblog /dev/sda9    <br />&#160; Volume group &quot;loneblog&quot; successfully extended     <br />[root@rhce ~]# vgdisplay loneblog     <br />&#160; &#8212; Volume group &#8212;     <br />&#160; VG Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; loneblog     <br />&#160; System ID     <br />&#160; Format&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2     <br />&#160; Metadata Areas&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4     <br />&#160; Metadata Sequence No&#160; 2     <br />&#160; VG Access&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; read/write     <br />&#160; VG Status&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; resizable     <br />&#160; MAX LV&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0     <br />&#160; Cur LV&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0     <br />&#160; Open LV&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0     <br />&#160; Max PV&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0     <br />&#160; Cur PV&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4     <br />&#160; Act PV&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4     <br />&#160; VG Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 400.00 MB     <br />&#160; PE Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4.00 MB     <br />&#160; Total PE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 100     <br />&#160; Alloc PE / Size&#160;&#160;&#160;&#160;&#160;&#160; 0 / 0     <br />&#160; Free&#160; PE / Size&#160;&#160;&#160;&#160;&#160;&#160; 100 / 400.00 MB     <br />&#160; VG UUID&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; y8s1UH-PWC2-1T3Z-rGfJ-ue6c-S8M9-qB7xY4</p>
<p>&#160;</p>
<h2>4.减少vg——剔除pv盘</h2>
<p>&#160;</p>
<p>没有任何lv占用的情况下</p>
<p>[root@rhce ~]# vgreduce loneblog /dev/sda9    <br />&#160; Removed &quot;/dev/sda9&quot; from volume group &quot;loneblog&quot;</p>
<p>如果被占用，则先要把要移除pv中的数据腾出来：</p>
<p>[root@rhce ~]# pvscan    <br />&#160; PV /dev/sda6&#160;&#160; VG loneblog&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2 [100.00 MB / 0&#160;&#160;&#160; free]     <br />&#160; PV /dev/sda7&#160;&#160; VG loneblog&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2 [100.00 MB / 40.00 MB free]     <br />&#160; PV /dev/sda8&#160;&#160; VG loneblog&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2 [100.00 MB / 100.00 MB free]</p>
<p>[root@rhce ~]# pvmove /dev/sda6 /dev/sda8     <br />&#160; /dev/sda6: Moved: 100.0%</p>
<p>[root@rhce ~]# pvscan    <br />&#160; PV /dev/sda6&#160;&#160; VG loneblog&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2 [100.00 MB / 100.00 MB free]     <br />&#160; PV /dev/sda7&#160;&#160; VG loneblog&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2 [100.00 MB / 40.00 MB free]     <br />&#160; PV /dev/sda8&#160;&#160; VG loneblog&#160;&#160;&#160;&#160;&#160;&#160;&#160; lvm2 [100.00 MB / 0&#160;&#160;&#160; free]</p>
<p>&#160;</p>
<h1>四、LV操作</h1>
<p>&#160;</p>
<h2>1.创建lv</h2>
<p>[root@rhce ~]# lvcreate -n loneblog-lv -L 280m loneblog    <br />&#160; Logical volume &quot;loneblog-lv&quot; created</p>
<p>&#160;</p>
<h2>2.移除lv</h2>
<p>[root@rhce ~]# lvremove /dev/mapper/loneblog-loneblog&#8211;lv2    <br />Do you really want to remove active logical volume loneblog-lv2? [y/n]: y     <br />&#160; Logical volume &quot;loneblog-lv2&quot; successfully removed</p>
<p>&#160;</p>
<h2>3.增加lv分区</h2>
<p>vg要有这么多空间，没有的话参考增加vg小节</p>
<p>[root@rhce ~]# lvextend -L +90M /dev/mapper/loneblog-loneblog&#8211;lv    <br />&#160; Rounding up size to full physical extent 92.00 MB     <br />&#160; Extending logical volume loneblog-lv to 372.00 MB     <br />&#160; Logical volume loneblog-lv successfully resized</p>
<p>[root@rhce ~]# resize2fs /dev/mapper/loneblog-loneblog&#8211;lv    <br />resize2fs 1.39 (29-May-2006)     <br />Filesystem at /dev/mapper/loneblog-loneblog&#8211;lv is mounted on /mnt; on-line resizing required     <br />Performing an on-line resize of /dev/mapper/loneblog-loneblog&#8211;lv to 380928 (1k) blocks.     <br />The filesystem on /dev/mapper/loneblog-loneblog&#8211;lv is now 380928 blocks long.</p>
<p>[root@rhce ~]# lvdisplay /dev/mapper/loneblog-loneblog&#8211;lv    <br />&#160; &#8212; Logical volume &#8212;     <br />&#160; LV Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /dev/loneblog/loneblog-lv     <br />&#160; VG Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; loneblog     <br />&#160; LV UUID&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; jPDiH4-mgtN-2U2f-3g2w-93BE-q6vc-ZrJv1Q     <br />&#160; LV Write Access&#160;&#160;&#160;&#160;&#160;&#160;&#160; read/write     <br />&#160; LV Status&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; available     <br />&#160; # open&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1     <br />&#160; LV Size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 372.00 MB     <br />&#160; Current LE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 93     <br />&#160; Segments&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4     <br />&#160; Allocation&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; inherit     <br />&#160; Read ahead sectors&#160;&#160;&#160;&#160; auto     <br />&#160; &#8211; currently set to&#160;&#160;&#160;&#160; 256     <br />&#160; Block device&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 253:0</p>
<p>&#160;</p>
<h2>4.减少lv分区</h2>
<p><span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/lvm" title="查看 lvm 的全部文章" target="_blank">lvm</a></span>的操作里减小LV最麻烦，最容易搞错，因为和常理 和<font color="#ff0000">增加lv相反</font>！</p>
<p>遵循如下顺序：</p>
<p><font color="#ff0000">先resize2fs 后lvreduce</font> ，其中的e2fsck和umount都有提示，按照做即可</p>
<p>[root@rhce ~]# resize2fs /dev/mapper/loneblog-loneblog&#8211;lv 120M     <br />resize2fs 1.39 (29-May-2006)     <br />Filesystem at /dev/mapper/loneblog-loneblog&#8211;lv is mounted on /mnt; on-line resizing required     <br />On-line shrinking from 163840 to 122880 not supported.     <br />[root@rhce ~]# umount /dev/mapper/loneblog-loneblog&#8211;lv     <br />[root@rhce ~]# resize2fs /dev/mapper/loneblog-loneblog&#8211;lv 120M     <br />resize2fs 1.39 (29-May-2006)     <br />Please run &#8216;e2fsck -f /dev/mapper/loneblog-loneblog&#8211;lv&#8217; first.</p>
<p>[root@rhce ~]# e2fsck -f /dev/mapper/loneblog-loneblog&#8211;lv    <br />e2fsck 1.39 (29-May-2006)     <br />Pass 1: Checking inodes, blocks, and sizes     <br />Pass 2: Checking directory structure     <br />Pass 3: Checking directory connectivity     <br />Pass 4: Checking reference counts     <br />Pass 5: Checking group summary information     <br />/dev/mapper/loneblog-loneblog&#8211;lv: 12/40960 files (8.3% non-contiguous), 163733/163840 blocks     <br />[root@rhce ~]# resize2fs /dev/mapper/loneblog-loneblog&#8211;lv 120M     <br />resize2fs 1.39 (29-May-2006)     <br />Resizing the filesystem on /dev/mapper/loneblog-loneblog&#8211;lv to 122880 (1k) blocks.     <br />The filesystem on /dev/mapper/loneblog-loneblog&#8211;lv is now 122880 blocks long.</p>
<p>[root@rhce ~]# lvreduce -L -40m /dev/mapper/loneblog-loneblog&#8211;lv    <br />&#160; WARNING: Reducing active and open logical volume to 120.00 MB     <br />&#160; THIS MAY DESTROY YOUR DATA (filesystem etc.)     <br />Do you really want to reduce loneblog-lv? [y/n]: y     <br />&#160; Reducing logical volume loneblog-lv to 120.00 MB     <br />&#160; Logical volume loneblog-lv successfully resized</p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/lvm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dhcp和ip helper-address命令工作过程</title>
		<link>http://loneblog.com/blog/dhcp-and-ip-helper-address.html</link>
		<comments>http://loneblog.com/blog/dhcp-and-ip-helper-address.html#comments</comments>
		<pubDate>Thu, 13 Jan 2011 07:05:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[网络相关]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[dhcp]]></category>

		<guid isPermaLink="false">http://loneblog.com/blog/dhcp-and-ip-helper-address.html</guid>
		<description><![CDATA[百年一遇的好文章：http://www.jakee.cn/index.php/archives/576.html
不得不承认，技术宅拯救世界！
讨论了几个主要问题：
dhcp工作原理
dhcp分配多套IP地址方法
dhcp跨交换机路由器分配地址
ip helper-address命令工作原理
  
&#160;
&#160;
1典型配置命令   Router1#configure terminal     Enter configuration commands, one per line. End with CNTL/Z.      Router1(config)#interface Ethernet0      Router1(config-if)#ip helper-address 172.25.1.1 /*指定dhcp服务器的地址，表示通过Ethernet0向该服务器发送DHCP请求包*/      Router1(config-if)#ip helper-address 172.25.10.7 /*作用同上*/      Router1(config-if)#end    [...]]]></description>
			<content:encoded><![CDATA[<p>百年一遇的好文章：<a title="http://www.jakee.cn/index.php/archives/576.html" href="http://www.jakee.cn/index.php/archives/576.html">http://www.jakee.cn/index.php/archives/576.html</a></p>
<p>不得不承认，技术宅拯救世界！</p>
<h2>讨论了几个主要问题：</h2>
<h2><span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/dhcp" title="查看 dhcp 的全部文章" target="_blank">dhcp</a></span>工作原理</h2>
<h2>dhcp分配多套IP地址方法</h2>
<h2>dhcp跨交换机路由器分配地址</h2>
<h2>ip helper-address命令工作原理</h2>
<p>  <span id="more-1397"></span><br />
<h2>&#160;</h2>
<p>&#160;</p>
<p>1典型配置命令   <br /><code>Router1#configure terminal     <br />Enter configuration commands, one per line. End with CNTL/Z.      <br />Router1(config)#interface Ethernet0      <br />Router1(config-if)#ip helper-address 172.25.1.1 /*指定dhcp服务器的地址，表示通过Ethernet0向该服务器发送DHCP请求包*/      <br />Router1(config-if)#ip helper-address 172.25.10.7 /*作用同上*/      <br />Router1(config-if)#end      <br />Router1# </code>    <br />关于以上配置的讨论    <br />1 在客户端设备和DHCP服务器不再同一广播域内的时候，中间设备即路有器（路有功能的设备）必须要能够转发这种广播包，具体到<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/cisco" title="查看 cisco 的全部文章" target="_blank">cisco</a></span>的设备上，则启用ip helper-address命令，来实现这种中继。</p>
<p>2 DHCP服务器要给终端设备分配地址则需要掌握两个重要的信息，第一，该客户端设备所在网络的子网掩码，DHCP服务器依据子网掩码的信息来判断，服务器该分配哪个IP地址，以使得该ip地址在那个子网内，第二，DHCP服务器必须知道客户端的MAC地址，以维护DHCP服务器的ip 地址和MAC之间的映射关系，由此保证同样一台客户机，每次启动后能获得和前一次相同的ip地址。</p>
<p>3 配置了ip helper-address命令之后的路由器在中继DHCP请求时的工作过程如下:   <br />a,DHCP客户端发送请求，由于没有ip地址，所以自己的源IP地址为0.0.0.0，而且也不知道目的DHCP服务器的地址，所以为广播255.255.255.255。该数据报中当然还包含其他信息，比如二层的信息，源mac地址，和目的mac地址FFFFFFFFFFFF。</p>
<p>b，当路由器接收到该数据报的时候，他就用自己的接口地址（接收到数据报的接口）来取代源地址0.0.0.0，并且用ip help-address 命令中指定的地址（上例中为172.25.1.1以及172.25.10.7）来取代目的地址255.255.255.255</p>
<p>c 当DHCP服务器接收到路有器转发过来的DHCP请求包时，他有了足够的信息，（由源IP地址中的地址，确定客户机所在的子网掩马，由此分配相应地址池中的空闲地址，并且知道了客户记得MAC地址，把它写入自己的数据库，建立IP地址和MAC的映射关系）然后DHCP服务器做出响应，并且由路有器把数据报转发会客户端。（整个过程应该在客户机和服务器之间还有一次会话，由于这不是路由器DHCP配置的讨论重点，这里不谈）</p>
<p>4 例子中配置了两个DHCP服务器，我们必须分别用ip helper-address 命令指明，路有器会转发DHCP请求包到所有的DHCP服务器上。很多企业的做法都是至少有两台DHCP服务器，有提高冗余和可靠性的作用。此时，如果客户端受到几个来自不同DHCP服务器的应答，则只选择最先接收到的应答数据报。</p>
<p>5 必须要注意的是；ip helper-address 命令不仅仅是只转发DHCP请求包，事实上，在默认情况下，他还转发其他的UDP报（比如DNS请求）到ip helper-address命令所指定的服务器上，所以这种额外的数据流量可能会增加DHCP服务器链路的负担以及服务器CPU负担，可能会引起问题，关于解决办法，将在后面讨论。</p>
<p>所以<span class='wp_keywordlink_affiliate'><a href="http://loneblog.com/blog/tag/cisco" title="查看 cisco 的全部文章" target="_blank">cisco</a></span> 的ios 提供了限制ip helpe-address 命令所带来的负面影响的方法。</p>
<p>解决实例；   <br />CISCO路由器允许用no ip forward-protocol udp 命令来禁止对所无意义的UDP`数据报的转发</p>
<p>配置路由器为DHCP服务器，使之给dhcp客户端动态分配ip地址</p>
<p>问题的提出:   <br />把路由器配置为dhcp的服务器端，以对路由器下所连接的客户工作站进行ip地址的分配。    <br />（这可真是一个了不起的改进！路由器从此腰身一变，看上去更加多姿多彩了）</p>
<p>解决实例；   <br />下面的配置命令，可以配置路由器为DHCP服务器，用以给DHCP客户端动态分配ip地址。</p>
<p>Router1#configure terminal   <br />Enter configuration commands, one per line. End with CNTL/Z.    <br />Router1(config)#service dhcp //开启 DHCP 服务    <br />Router1(config)#ip dhcp pool 172.25.1.0/24 //定义DHCP地址池    <br />Router1(dhcp-config)#network 172.25.1.0 255.255.255.0 // 用network 命令来定义网络地址的范围    <br />Router1(dhcp-config)#default-router 172.25.1.1 //定义要分配的网关地址    <br />Router1(dhcp-config)#exit    <br />Router1(config)#ip dhcp excluded-address 172.25.1.1 172.25.1.50 //该范围内的ip地址不能分配给客户端    <br />Router1(config)#ip dhcp excluded-address 172.25.1.200 172.25.1.255 //该范围内的ip地址不能分配给客户端    <br />Router1(config)#end    <br />Router1#</p>
<p>关于配置的相关讨论；</p>
<p>1 CISCO路由器的dhcp服务器功能也是在ios 12.0(1)T.以后才出现的，这一功能的出现，使我们没有必要在专门网络的中心（或者说企业本部）另外配置一台DHCP server，从而降低了网络构建成本。</p>
<p>2 在路由器上直接配置dhcp服务器相比于传统的在专门服务器上实现dhcp有其独到的优点。   <br />比如 </p>
<p>A 由于传统的构建方法是，在企业的总部设立DHCP服务器，各分支机构通过路有器去获取ip地址，所以当dhcp服务器出现问题的时候，整个企业的网络都会受到影响，而如果把dhcp 服务器功能设在各个分支机构的路由器上实现，则某个分支机构的路由器DHCP出现问题，就只能影响该分支机构的网络本身，而其他分支机构则不受任何影响。从而可见，实现了问题的局部化。</p>
<p>B 在各分支机构的路由器上实现DHCP服务器功能后，大量的DHCP UDP请求报文将不会通过wan link 转发到 中心机构上去，由此，相比于传统的方式，它有减少广域网负荷的优点。</p>
<p>C 同样的道理，在各分支机构的路由器上实现DHCP服务器功能后，如果某条广域网连路坏了，本地的局域网依然能够正常运行</p>
<p>D基于路由器的DHCP 具有很高的可管理性，它通过ios的命令界面是比较容易配置的。</p>
<p>3 上边的配置例子，我们用ip dhcp exclude-address 命令来指定不能用来被分配的ip地址,这种配置往往是很需要的（甚至说是必需的，几乎所有的；路有其DHCP 服务器配置中都会有），因为往往有一些地址我们会用来作为其他的用途，比如，我们至少应该保留路有器本身的地址不被分配给dhcp客户端，还有一些比如说网络服务器，打印机等等，我们也往往会给他指定静态的地址，所以这一部分地址。我们不允许路有其分配出去，上例中的172.25.1.1 到172.25.1.50 之间，172.25.1.200 到172.25.1.255的地址就做了保留。</p>
<p>4 当路由器给客户端动态分配地址后，就会绑定（binding）分配的ip地址以及客户端设备的mac地址信息，保存在路由器的配置中，以便下一次相同的mac地址请求dhcp服务也能够获得同样的ip地址。下面给出的例子是，用show ip dhcp binding 命令显示的 ip binding的信息。其中Lease expiration 表示该ip 地址，客户端还能占有的时间，（当然客户端可以在期满之前再次发送dhcp请求报，事实上dhcp的规范也是有这样的规定的，即在租期还有一半时间的时候就会发出dhcp请求，如果租期更新失败，那么再过省下时间的一半的时候，他还会发出dhcp的请求，依此类推。）</p>
]]></content:encoded>
			<wfw:commentRss>http://loneblog.com/blog/dhcp-and-ip-helper-address.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

