0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
阅读:1534回复:0

3.7M的DNS Server

楼主#
更多 发布于:2007-07-18 16:42
3.7M的DNS Server

研究综合利用老服务器:)
单位有台旧的邮件服务器,不管是什么原因,反正现在已经不用了,看起来就是一个方盒子,长得跟工控机一样,上周四本来是打算给自己搞台svn服务器来着,领导发现后以为偶在搞那个dns服务器(领导一直说要一个备用DNS),就让偶看看能不能把那个破邮件给利用了。
得令。
于是开始研究那个东西~~找来了显示器键盘电源线等物件,开机……
看着熟悉的启动过程,还好,是linux系列~~好像是个什么什么friendly linux
到了登入介面……不知道是哪年的历史了,没人有密码$#@$DR#$@
最简单的办法是重装~~9*&*(&*9789

拆机……(长成那个样子的机箱也真不容易,非主要问题,省略……为什么要拆机?装机插个盘不就可以了么?因为这东西连个光驱都没有-_-#)

拆开后发现东西看起来基本上还是很熟的,两个cpu,一个SCSI OR RAID卡,四个ide槽(4个?是的),其中一个被一个写着32M的小东西占用了,看起来像闪存,研究了一下开机时的信息,发现系统应该是在那个“闪存”里的,硬盘应该就只是用来存储数据。这样的话,有必要发扬一下这个优秀传统,继续利用那个小闪存然后把硬盘富余出来备用(自用……嘿嘿……邪恶无耻地笑)

以下就开始了无尽的装机过程:
第一回:
FreeBSD:
选择minimal安装,装了一会儿提示空间不够,失败!

第二回:
FreeBSD:
选择自定义安装,选择base和kernel包,仍然空间不够,再次失败!

第三回:
DSL(Damn Small Linux这名字太他妈的合适了):
这东西50M的身体里居然包含了图形界面、web浏览器等等一堆正常人用的东西,简直太可怕了
但是,对不起,我们的要求是32M,但是这个该死(Damn)的小东西居然不能简单地让我把那些不必要的软件们痛快地删掉,第三回合仍然失败

第四回:
LFS(ms只能自己来了):
看到read me里那1G多的空间需求,试都没试就放弃了

第五回:
TTYLinux:
今天早上一来,居然让我google到一个只有3.7M的小东西,就是ttylinux,据说是麻雀虽小,五脏俱全,里面有ssh,文字界面的web浏览器等等,虽然没有我要的bind但是往里加东西总比减掉一些东西要容易。
以下是所有软件列表:

    basesystem-5.3-1
    bash-3.2.9-1
    busybox-1.3.1-1
    dropbear-0.48.1-2
    e2fsprogs-1.39-2
    glibc-2.3.6-3
    iptables-1.3.7-1
    isdn4k-utils-3.2p1-3
    lilo-22.7.3-2
    ncurses-5.6-1
    ppp-2.4.4-2
    retawq-0.2.6c-2

第一节 系统安装
安装很容易,真的是很容易,下一个3.7M的iso镜像,刻盘(要是你能有什么奇怪的办法能让它从U盘启动就不用因为3.7M去浪费一张700M的CD- R了──也可以换一张4.5G的DVD-R),从光驱起动,很快就到shell了。默认用户名和密码都是root,进系统后fdisk建立分区, mke2fs格式化为ext2,准备工作就算完毕
installer mbr /dev/hdc /dev/hda1
完整的命令格式:installer [mbr] source-device target-device

重启(记得取出光盘)

第二节 安装Bind提供DNS服务
找到bind的网站,我靠,居然只提供source code下载,我可不想在我32M的“硬盘”上装上一堆dev套件,看到有这一句

    ttylinux uses the same C library as full Linux systems, so compiling programs on another Linux machine and copying them over to the ttylinux filesystem should result in working programs.

打算在其它linux机器上编译再拿过来用
下到源码直接
./configure –prefix=/usr/loca/bind #这个一定得要,要不make install之后满世界都是,去哪里找你要的那块肉
make
make install

完了之后还不能直接启动named,因为没有named.conf等一系列配置文件,对照现在活着的那台DNS Server搞一点配置
/usr/local/bind/sbin/rndc-confgen >> /usr/local/bind/etc/rndc.conf
tail –n10 /usr/local/bind/sbin/etc/rndc.conf | head -n9 | sed -e s/#\ //g > /usr/local/bind/etc/named.conf
options{
        directory "/usr/local/bind/etc";
 };
 zone "." {
        type hint;
        file "named.root";
 };
 zone "0.0.127.IN-ADDR.ARPA"{
        type master;
        file "master/localhost.rev";
 };

 
 key "rndc-key" {
        algorithm hmac-md5;
        secret "ihk9yUzqDPnus7QW42H9Cw==";
 };
 
 controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
 };

用 /usr/local/bind/sbin/named -gc /usr/local/bind/etc/named.conf 启动,参数-gc用来查看输出信息,要不什么都不显示,启动失败也不知道什么原因(我之前就是不知道走了不少弯路)。
这里的named.conf基本上什么用都没有,要研究bind怎么配置可以参看我的另一篇博文:DNS配置记录,这里就不重复了。回头了有时间再写一下根据来源不同解析不同ip的作法。

—-补充:
忘了写结论:
在不知道-gc的情况下尝试了n次,不成功,后来知道-gc这个参数了,修改一下就成功了(一个文件路径写错了):)
and最后的成品不只5.7M,还有一个bind,不过应该不会超过32M–现在看起来好像还是超了,不可能的呀,系统只有那么点儿,难道bind…?

----再次补充:
最后居然还大于32M, 把 bind/bin 和 bind/sbin 下几个运行时基本用不到的文件给删掉, 终于将大小控制在32M以内(bind 17M+ 系统5M)~~~还不错哈哈~~~


原文地址: http://color-magic.cn/archives/51
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
游客

返回顶部