头重脚轻的一天

Posted by 曹宇伟 on 四月 29th, 2006

  昨天晚上加班到凌晨一点多。
  凌晨六点多躺下。
  领导走后,我一个人在公司待着,诺大的机房,空旷……虽然机房里嗡嗡声不断,却感觉静得可怕,我坐在办公室里,却能听得很远……有点儿害怕了。
  八点多睡来,被撞门声吵醒,然后就是同事陆续的到来……
  今天一天都感觉头重脚轻……
  很久没有这样的感觉了……恍惚记得在学校的日子天天如此……

重温Linux的netfilter

Posted by 曹宇伟 on 四月 28th, 2006

Netfilter内建了5条链路来处理数据包,它们分别是:PREROUTING、INPUT、FORWARD、OUTPUT和POSTROUTING:

                routing
                decision
IN ——> PRE —> ——> FORWARD —–> —-> POST —–> OUT
interface  ROUTING  \       filter       /       ROUTING     interface
           DNAT     |       tracking     ^       SNAT
           REDIRECT |                    |       MASQUERADE
                    v                    |
                  INPUT                OUTPUT
                    | filter             ^ filter,DNAT
                    v                    |
                    \–> Local Process –/
                       user-space programs

过滤表(Netfilter table)

数据包在每条内建的链路中传输时按如下过滤表中的规则进行处理。

    * filter(数据包过滤器,链路中默认的过滤器)
          o INPUT(作用于进入本机的数据包)
          o FORWARD(作用于路由到本机的数据包)
          o OUTPUT(作用于本地产生的数据包)
    * nat(网络地址翻译)
          o PREROUTING(作用于刚进入的待转换数据包)
          o OUTPUT(作用于在路由之前待转换的本地产生的数据包)
          o POSTROUTING(作用于待发出的已转换的数据包)
    * mangle (network address mangling, good only after 2.4.18)
          o 适用于所有5条链路。

过滤目标(Netfilter target)

Firewall rules have several targets:

    * 4个基本目标:
          o ACCEPT 允许数据包通过。
          o DROP 阻拦数据包。
          o QUEUE 允许数据包进入用户空间(userspace)(如果内核支持的话)。
          o RETURN means stop traversing this chain and resume at the next rule in the previous (calling) chain.
    * 扩展目标:
          o LOG 打开内核日志。
          o REJECT 回送错误数据包并阻拦该数据包。
          o SNAT 修改数据包源地址,仅作用于POSTROUTING链路。(仅适用于nat过滤表)

                 –to-source ipaddr[-ipaddr][:port-port]

          o MASQUERADE 作用和SNAT一样,但面向使用动态IP请求建立的连接(拔号连接)。(仅适用于nat过滤表)

                 –to-ports port[-port]

          o DNAT 修改数据包目的地址,仅作用于PREROUTING、OUTPUT链路以及由它们调用的用户自定义链路。(仅适用于nat过滤表)

                 –to-destination ipaddr[-ipaddr][:port-port]

          o REDIRECT 修改数据包目标地址使其发送给本机。

                 –to-ports port[-port]

网络过滤器命令

iptables的基本命令有:

iptables -N chain                    # create a chain
    
iptables -A chain \                  # add rule to chain
    -t table \                        # use table (filter, nat, mangle)
    -p protocol \                  # tcp, udp, icmp, or all,
    -s source-address[/mask] \
    –sport port[:port] \       # source port if -p is tcp or udp
    -d destination-address[/mask] \
    –dport port[:port] \       # dest. port if -p is tcp or udp
    -j target \                       # what to do if match
    -i in-interface-name \    # for INPUT,  FORWARD, PREROUTING
    -o out-interface-name   # for FORWARD, OUTPUT, POSTROUTING

什么是RSS

Posted by 曹宇伟 on 四月 28th, 2006

引用:

  讨论与Blog相关的技术,不可不谈的就是RSS,这个缩写在英文中可以有几个源头,并被不同的技术团体做不同的解释。既可以是“Rich Site Summary”,或“RDF Site Summary”,也可以是“Really Simple Syndication”。为什么有这么多含义呢?这还要从RSS的一段今天也没有理清的关系说起。
  今天肯定有人还记得IE 4刚刚推出来的时候有一个有趣的功能,那就是新闻频道。这个新闻频道的功能与Netscape推出的新闻频道是很相似的(当时Netscape还是市场上领先的浏览器)。为此Netscape 定义了一套描述新闻频道的语言,这就是RSS,只不过Netscape自当时起每况愈下,所以最终也没有发布一个正式的RSS规范(只发布了一个0.9版本)。而微软也在当时推出了支持自己IE的CDF(Channel Definition Format)数据规格,与RSS非常接近。微软试图用新闻频道的功能把“推”(Push)技术变成一个应用主流,并与Netscape抗衡。不过出乎预测的是,“推”技术自始至终没有找到合适的商业模型,而且伴随着其他各类网络特性的出现,也日益无法显现自身的优势。新闻频道在浏览器中的地位最终日暮西山,最后也在IE的后续版本中消失了。
  新闻频道的确进入了低谷,但是RSS并没有被业界人士所抛弃。过去两年,Blog从一个专业群体开始,逐步成为了网络上最热门的新话题。而RSS成为了描述Blog主题和更新信息的最基本方法。于是RSS这项技术被著名Blogger/Geek戴夫·温那(Dave Winner)的公司UserLand所接手,继续开发新的版本,以适应新的网络应用需要。新的网络应用就是Blog,因为戴夫·温那的努力,RSS升级到了0.91版,然后达到了0.92版,随后在各种Blog工具中得到了应用,并被众多的专业新闻站点所支持。在广泛的应用过程中,众多的专业人士认识到需要组织起来,把RSS发展成为一个通用的规范,并进一步标准化。一个联合小组根据W3C新一代的语义网技术RDF对RSS进行了重新定义,发布了RSS 1.0,并把RSS定义为“RDF Site Summary”。这项工作并没有与戴夫·温那进行有效的沟通,而戴夫则坚持在自己设想的方向上进一步开发RSS的后续版本,也并不承认RSS 1.0的有效性。RSS由此开始分化形成了RSS 0.9x/2.0和RSS 1.0两个阵营,也由此引起了在专业人群中的广泛争论。
  因为争论的存在,一直到今天,RSS 1.0还没有成为标准化组织的真正标准。而戴夫·温那却在2002年9月独自把RSS升级到了2.0版本,其中的定义完全是全新的模式,并没有任何RSS 1.0的影子。这引发了网络上进一步争议,究竟让一个越来越普及的数据格式成为一个开放的标准,还是被一家公司所定义和控制,成为了争议的焦点。戴夫·温那并没有为自己辩解,他的观点是RSS还需要进一步发展,需要专业人士更明确的定义,不过恐怕这种轻描淡写不能消除人们对RSS“被一家商业公司独占”的担心。
  前面的铺垫对用户来说也许没有什么太大的意义,可能更多人关心如何在自己的Blog增加RSS输出,这样可以让很多新闻聚合工具(例如CNBlog刚刚推荐的NewzCrawler)很容易找到你并自动获得你在Blog中的更新内容。
  它是什么:站点用来和其他站点之间共享内容的简易方式(也叫聚合内容)。 RSS使肵ML作为彼此共享内容的标准方式。
  它代表什么:Really Simple Syndication (或RDF Site Summary,RDF站点摘要)
  例如:一些免费的软件能够让你阅读那些RSS使能的站点,比如 NewsIsFree 和 Amphetadesk。
  它有什么用处:让别人容易的发现你已经更新了你的站点,让人们很容易的追踪他们阅读的所有weblogs。
  原文出处:博客中国

几个防火墙产品

Posted by 曹宇伟 on 四月 27th, 2006

  对这几种产品的性能先不做评价,只是先记录下来,回头再仔细学习研究。
  这些均系低成本的中、低端(自认为)防火墙产品。
 
  其中 SmoothWall,官方网址:http://www.smoothwall.org/
  是基于Linux的一个防火墙产品,以前试用过一段,因为没有投入到应用环境中去,效果不明。
 
  M0n0Wall  官方网址:http://www.m0n0.ch/wall/  (英文) http://www.m0n0.com.cn/wall/ (中文)
  一个基于FreeBSD的防火墙产品。
 
  1000gWall   http://www.1000gwall.com/
  知道是基于FreeBSD的,但尚不清楚属于什么产品。
 
  一个关于路由器的网站:http://www.router.net.cn/
  很多时候,路由器就充当成防火墙的角色,有空要再看看,可惜今天我打不开,估计是电信的网站。

烦啊 烦啊

Posted by 曹宇伟 on 四月 27th, 2006

  今天烦啊、烦啊!
  什么也不想说啊,什么也不想做啊!谁都别来招我啊!
  我想我是走火入魔啦,肯定是因为我急于求成啦!
  近日,NetApp的 DATA ONTAP OS,Juniper的NetScreen OS,再加上F5 BigIp的LTM OS,其实上还包括Cisco的IOS,这四个系统都让我遇到了不少问题,对我来说是学习的机会,是挑战,是好事儿。然而,几个系统同时需要调整,乱了、急了、看了、忘了、记不住了,于是烦了、躁了、还后悔了,后悔没有早入手学习了,应该早些时候就有机会撑握的没有下决心抽时间撑握了。便是如此也不至于现在有许多问题想不明白,急成这个样子了……
  我要学习啊,我要学习啊!
  日子天天去,技术却不见长啊,变懒了啊,懈怠啊!
  我知道的东西实在太少啊,需要学习的东西实在太多啊。吾生有涯而学无涯啊~~路漫漫其修远啊~~吾有涯之生如何去求索啊??
  烦啊,烦啊!
  什么时候能把这四个系统认知的就像Linux/FreeBSD一样熟啊!
  烦啊,烦啊!还要不停学习啊,要是能过目不忘多好啊!!!
  学习啊,学习啊,我又去学习啦!脑子太笨啦……只能这样啦!!

使用串口访问FreeBSD/Linux系统

Posted by 曹宇伟 on 四月 7th, 2006

  最近热衷于使用串口登录系统,这样就不用在需要调试系统的时候为系统连接显示器和键盘了。
 
  FreeBSD中的串口通信,可以阅读它的手册,下面的地址是中文手册中的串口通信部分,可以仔细阅读它。
  http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/serialcomms.html
  以下为引用:
  在FreeBSD中,您可以通过 /dev 目录中的一个记录来访问每个串行端口。有两种不同的记录:
  呼入端口被命名为/dev/ttydN, 这里 N 是端口号,从零开始。 通常,您使用呼入端口作为终端。呼入端口要求数据线使用载波检测 (DCD) 信号来工作。
  呼出端口被命名为 /dev/cuadN。 您通常不使用呼出端口作为终端, 只使用modem。如果串行线或终端不支持载波检测数据传输, 您可以使用呼出端口。
 
注意: 在 FreeBSD 5.X 和更早版本中, 呼出端口的名字是 /dev/cuaaN。
 
  如果您已经连接一个终端到第一个串行端口 (在 MS-DOS® 上是COM1), 则可以使用 /dev/ttyd0 来作为终端。 如果它是在第二个串行端口 (COM2), 那就是 /dev/ttyd1,等等。
 
  引用完毕。
 
  简单地来说,使用串口访问FreeBSD需要修改FreeBSD的配置文件/etc/ttys,我现在使用的版本是5.4的,找到
# Serial terminals
# The ‘dialup’ keyword identifiles dialin lines to login, fingerd etc.
ttyd0  “/usr/libexec/getty std.9600″        dialup    off     secure
ttyd1  “/usr/libexec/getty std.9600″        dialup    off     secure
ttyd2  “/usr/libexec/getty std.9600″        dialup    off     secure
ttyd3  “/usr/libexec/getty std.9600″        dialup    off     secure
……
 
将ttyd0行如下修改:
ttyd0   “/usr/libexec/getty std.38400″      vt100    on     secure
 
然后让init 进程重新读取一下配置文件:
#kill -HUP1
 
使用命令:ps aux |grep getty 来查看是否运行
输出中包含
root  24331  0.0  0.1  1288   800  d0  Is+   8:26PM   0:00.00 /usr/libexec/getty std.38400 ttyd0
表示ttyd0上已经有getty程序在监听。
 
然后,就可以使用串口线连接到服务器的COM1口,将波特率设置成38400,进行连接测试。需要说明的是:
 
  引用:
  如果 getty 进程确实在运行,但终端上仍然没有显示出登录提示, 或者虽然显示了单缺不允许您输入,您的终端或电缆可能不支持硬件握手。请尝试将 /etc/ttys 中的 std.38400 改为 3wire.38400 并一定能够记得在改完 /etc/ttys 之后 kill -HUP 1)。 3wire 记录和 std 类似,但忽略硬件握手。 您可能需要在使用 3wire 时减少波特率或启用软件流控制以避免缓冲区溢出。
  我的是HP DL380 G3的服务器,FreeBSD 5.4的系统,Cisco自带的串口线,和一个RJ-45到RS-232转换器,我的设置是这样的:
ttyd0   “/usr/libexec/getty 3wire.38400″      vt100    on     secure
 
  当是std.38400时无法正常通信。
 
  下面谈Linux系统。
  在Linux系统中,让串口上运行监听程序比在FreeBSD中在容易的多。
  大部分Linux发行版,在配置文件/etc/inittab中都已经包含了串口的getty配置信息,形似:
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100
只不过默认是注释掉的,把前面的“#”去掉,然后执行一下kill -HUP 1,ps aux |grep getty查看一下是否已经在运行,就可以了。可以看到,Linux中与FreeBSD中的串口设备命名是不一样的,不再赘述。
 
  建议把9600改成38400,这样操作起来就真得跟插上显示器键盘操作的感觉相似了。
 
  最后:
 
  这种使用串口访问系统方式,只有在getty程序运行在串口的时候才能正常使用,就是说系统必然是正常在运行的,尽管可能网络不通。假如出现文件系统损坏需要修复的情况,串口就不能访问了,为了使串口在这种情况下也能使用,在Linux 中,可以在内核启动参数(kenel一行)中加入console=ttyS0,38400 ,这样会把内核console定义到ttyS0(COM1)上去。
  不用困惑,试一下就明白了,其实上目前流行的服务器像HP DL380 G4等都支持串口,就是说系统启动,硬件POST自检的时候,串口上都有输出,而且可以互动操作。但是不要误以为终端屏幕(VT100)上所有的显示都会跟显示器(console)一样,Linux的话,从内核开始解压开始,终端上就没有任何信息了,除非内核接收到了console=ttyS0这样的参数,否则,串口会一直到系统启动完毕,才会在终端上显示login信息。
  FreeBSD也可以让内核信息显示在串口上,甚至还可以在没有显示器,没有键盘的情况下从串口安装系统。这个在上面给出的FreeBSD手册串中通信中有详细的说明,没有我还没有用过,就不写了。

重启Oracle数据库

Posted by 曹宇伟 on 四月 4th, 2006

sqlplus /nolog
connect /as sysdba
starup
exit
lsnrctl start   #启动网络监听进程


Copyright © 2007 花开的地方. All rights reserved.