一个奇怪的路由走向问题

部门一个项目要上LVS,之前我是没有真正做过LVS,只做过FREEBSD的HA,那真是费了很大劲,每次还必须自己手动编译内核来支持CARP,每次都得这样加上

# To make an SMP kernel, the next line is needed
options     SMP         # Symmetric MultiProcessor Kernel

# increase max allowable process virtual memory size
options     DFLDSIZ="(128*1024*1024)"
options     MAXDSIZ="(1024*1024*1024)"
options     MAXSSIZ="(1024*1024*1024)"

options     DEVICE_POLLING
options     HZ=1000

##CARP
options         ALTQ
options         ALTQ_CBQ
device          pf
#device          pflog
#device          pfsync
device          carp
options         AUDIT

而现在用的Linux的LVS已经从2.4需要手动编译,而现在2.6内核直接就内核支持了,真是方便太多了,但是没有实际操作过。这次就出现问题了。由于nagios和lvs在一台机器上,问题出现了,居然虚拟IP需要配置在lo口上,真是奇怪了,为什么要配置在lo上而不是eth0上。
nagios要安装nrpe来跟nagios进行通信,另外一台LVS没有问题,直接telnet 192.168.1.3 5666也没有问题,可以通过相关命令获得系统信息。而这台LVS居然不能telnet 192.168.1.2 5666直接就给退出了。奇怪了,配置都是一样啊。都是允许1.2进行访问的呀。界面上显示的可以是nrpe ssl握手出错,于是想估计是ssl的问题,可重装下也还是一样。这就奇怪了。
后来用netstat -rn看了下本地路由也没有问题,实在是没辙了.

于是就看看log里都是记录着什么,结果发现居然全部都是外网IP的访问拒绝信息,可路由信息里没有显示啊,而且就算通过traceroute也是本地啊。想来想去还是lo造成的,而且log里记录的还都是LVS的虚拟ip,于是就在Nrpe加入了虚拟IP的可访问权限,这下一试就通过了,同时snmpd.conf也加入了虚拟IP,这下终于OK了,明天可得看看Linux的路由策略到底是怎么走的。奇了怪了。
今天看了下了iptables,感觉iptables也会导致这样的问题存在。但是如果是iptables的问题的话,那telnet到内网其它机器就也会有问题的,是否也会走公网端口呢?

Advertisements

一次防火墙配置故障

昨天要在一台远程服务器上配置防火墙,系统是freebsd,所以首选当然是ipfw。 很简单的在rc.conf加入了启用ipfw的相关语句

firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="open"
firewall_quiet="YES"

这样应该是没有问题了,于是重刷下rc.conf,结果把自己给档在外面了,想想不可能,以前一直在本机上操作也没有把自己档在外面的情况发生,今天怎么这样,难道我漏写了什么东西。没有办法,只能让机房把机器重启了,结果居然又可以进入系统了。这让我很郁闷,既然是错的语句在配置文件里,那应该是重启后还是无法连接系统的呀。

于是自己有重新写了下ipfw.rules,也加入到rc.conf中,然后又刷了下ipfw.rules,我还特地在规则最后加入了全开的选项。可这次居然又把自己档在外面了。在不知道情况的情况下,于是让机房的工作人员帮我们插上显示器和键盘进行处理,这个还是要非常感谢该机房工作人员任劳任怨。授权他们进入系统后把防火墙相关内容注释掉后重启刷下rc.conf,总算是可以登陆到系统了。

可问题还是存在阿,为什么明明最后写了允许通过,而实际却没办法登陆系统呢。而自己在本地进行测试这些规则都是没有问题的。

在百思不得其解后终于想明白了,原来是该规则中第一句是清空现有防火墙规则,而ipfw默认是deny所有连接的,而我远程操作的时候在执行完第一句就把我给deny掉了,于是后面的语句就不再执行下去了,这就是为什么每次重启后我能登陆到系统中,而直接远程操作的时候却无法连接进去。所以只要执行

sh /etc/ipfw.rules &;

这样就会把这个指令放入后台执行,这样做的后果是执行完就可以进入到系统中。

openbsd网络设置

作者:Timo

openbsd的网络设置并不像freebsd只需要修改/etc/rc.conf文件就可以了,它是每个设置都有这个单独的设置文件,有好处也有坏处。

下面我们就看一下Openbsd下是如何对网络进行初步的设置。

通过ifconfig得到网卡名,注意lo0是回环,不是真实的网卡。
修改网卡配置文件 vi /etc/hostname.pcn0 注意:pcn0是网卡名。hostname.pcn0具体内容为 inet IP地址 子网掩码 广播地址
如:inet 172.16.30.231 255.255.255.0 NONE
网关设置 vi /etc/mygate 直接在里面输入网关地址就可以了。
机器名字设置  vi /etc/myname 直接输入机器的名字就可,如www.timo.com
设置DNS地址  vi /etc/resolv.conf

输入格式为:
最后通过 sh /etc/netstart使网络设置生效

网络监控介绍

In network security, there are a few important tasks you just can’t ignore. They include things such as perimeter security (firewalls and proxies), disaster recovery (backups and redundant systems), and monitoring (packet analysis and system logs). In the area of monitoring, there are a few tools that you might consider evaluating for use in your own network.
在网络安全上,你有很多重要的工作不能忽视。这些工作包括边界安全(防火墙和代理设备),灾难恢复(备份和系统冗余)和监控(包分析和系统日志)。在监控这个部分,你可以考虑和评估许多工具针对你的网络。

Nagios: One example is Nagios, a highly configurable, flexible network resource monitoring tool. It’s open source (thus available for free), highly extensible, and very customizable to your needs. Unless otherwise noted, all of the following are open source software (and thus available for free).
nagios:nagios的一个例子,高可配置性,易用的网络资源监控工具。它是开放源码的,高扩展性和容易的定制成你需要的。除非有特别注明,下面所有的都是开放源码软件。

Snort: Another is Snort, “the de facto standard for instrustion detection/prevention.” It is, in essence, exactly as advertised.
Snort:”监控和防御方面的事实标准”。事实上,正是由于广告宣传

tcpdump: Don’t forget venerable standards such as tcpdump. Combined with a scripting language that provides powerful text filtering abstractions such as Perl, Python, or Ruby, or even with something a bit more basic like grep+sed+awk, it’s the expert’s packet analysis toolkit.
tcpdump:不要忘记其它的标准,比如tcpdump。配合脚本语言就能提供强大的字符界面下的过滤提炼,比如配合Perl,Python以及Ruby甚至是基本的grep+sed+awk。它是专业级的包分析工具。

lsof: For more localized use, lsof can be an incredibly flexible and powerful tool. Again, you’ll need some text filtering to really make use of it.
lsof:为了更能特定的使用,lsof一种灵活的强大的工具。作为字符界面的过滤工具你得使用它。

syslog: It doesn’t get much more basic and ubiquitous than syslog. If you have to maintain security on any UNIX or UNIX-like system — such as a Linux distribution, FreeBSD, NetBSD, OpenBSD, OpenSolaris, or Darwin, for instance — you should learn how to put syslog’s facilities to good use (and, once again, how to effectively automate text filtering).
syslog: 没有必syslog更为基础的和普通的工具了。如果你不得不维护UNIX和类UNIX系统如Linux和 FreeBSD,NetBSD,OpenBSD,OpenSolaris或Darwin,例如–你需要学会如何如何用好syslog这个工具(如何更有 效的自动进行文字过滤)

event log: There’s also event log on Windows. It’s not open source, but it’s part of the system. You need to know something about it if you’re going to try to maintain security on Windows systems.
事件日志:在Windows中也有事件日志。 它不是开放源码的,但它是系统的一部分。你必须知道事件日志如果你想在Windows系统上维护安全。

EventSentry: Tools like EventSentry can be of incredible benefit to the Windows network administrator. For single-system monitoring, you might be able to get by with nothing more than the free trial version, which isn’t time-limited but does strip away many of the more powerful features of the full version. To monitor an entire network, you’ll want to invest in the complete package — or get something else. It’s not open source software, which means licensing issues must be dealt with.
事件警告:如 EventSentry这样的工具可以难以执行的造福于Windows网络管理员。对于单个系统监控,你也许能找不到免费版的软件,要不就是有时间限制和 或者功能上有限制的版本。要监控一个整个的网络,你需要一个完整的方案–或者别的。它不是开源软件就意味着必须购买许可证。

Eventlog to Syslog Utility: For “something else,” there’s always the open source Purdue University Eventlog to Syslog Utility, AKA “evtsys.” It’s a simple tool that you run on Windows systems to automatically read and reformat events in the event log, then send them to a UNIX system to be handled by syslog. It’s an excellent tool and makes the life of the busy netadmin much more easily managed by collecting all the necessary log events in one convenient place on the network.
Syslog程序的事件日志:其它 的有普度大学的开源的Syslog应用程序“AKA”。它是个运行于Windows系统的简单的工具,能够自动的读取和重新格式化事件日志,然后把它们发 送到UNIX系统中让syslog操作。它是一个杰出的工具,也使得忙碌的网络管理员更容易管理从单一网络中收集到的必要的日志文件。

glTail.rb:My inspiration for writing this article, however, was one I’ve only just discovered today. I’m not 100 percent certain it’s all that useful in practice, yet, but it sure as heck

is fun to watch it work. Get a load of glTail.rb, a “realtime logfile visualization.” It looks a lot better than similarly graphical (though not very similarly functioning) tools like EtherApe ever did. Check out the “xvid movie” link there — it’s an AVI video, so even Ubuntu users who haven’t figured out how to get WMV files working in MPlayer shouldn’t

have any trouble with it.It’s mesmerizing.
glTail.rb: 我写这篇文章的创作灵感,然而,我现在仅仅只是在发觉中。我不能100%的确定它在实际中能够有用,但从它的工作中来看它肯定非常有趣。一个“实时的日志 形象化”。它看上去可必简单的图形化工具如EtherApe要好许多。仔细检查“xvid电影”中的联系—这是一个AVI格式的电影,因此即使 ubuntu用户还没懂wmv格式的文件如何用Mplayer播放,应该也不会有任何问题。它是迷人的。

Citrix Netscaler还是F5 BIG-IP

2家基本是属于LB领域的TOP CLASS,到底选哪个呢?
其实2家都已经测试过,F5的远程连接非常的慢,但是直接连上还是非常快,后台是JSP的。
Netscaler的后台是JAVA,但是远程连接没有问题,就是相对速度比较慢。
界面上来看相对Netscaler比较友好点,但是从压力测试的效果来是很不好。不知道是我们的Load Runner的配置错误还是它机器本身有问题。 Connection Pool基本没有什么效果,但是一些内容转发这样的功能还是很不错的。不过我想现在apache2的rewrite功能完全可以实现。
F5一开始放在机房基本没有什么测试,现在放在公司内部后连接上是没有问题了,但是效果现在还没有很确定,等明后天测试后再看看吧。
Netcaler被测试的直接挂掉,这样也太强了。忘记说了内核是BSD4.9

Netscaler:
平台:freebsd4.9
进去之后只要打shell,就可以当成freebsd来使用了
root@NS-9000# netstat -an | grep -i list
tcp4       0      0 127.0.0.1.3013         *.*                    LISTEN
tcp4       0      0 172.16.27.73.6743      *.*                    LISTEN
tcp46      0      0 *.7776                 *.*                    LISTEN
tcp4       0      0 *.2601                 *.*                    LISTEN
tcp4       0      0 *.3010                 *.*                    LISTEN
tcp4       0      0 127.0.0.1.2600         *.*                    LISTEN
tcp4       0      0 127.0.0.1.4002         *.*                    LISTEN
tcp4       0      0 127.0.0.1.3002         *.*                    LISTEN
tcp4       0      0 127.0.0.1.3020         *.*                    LISTEN
tcp4       0      0 127.0.0.1.8766         *.*                    LISTEN
tcp4       0      0 *.22                   *.*                    LISTEN
tcp46      0      0 *.22                   *.*                    LISTEN
tcp4       0      0 *.80                   *.*                    LISTEN
tcp4       0      0 *.1034                 *.*                    LISTEN
tcp4       0      0 *.27000                *.*                    LISTEN

f5:
内核:Linux 2.4.21-9.1.2.37.0smp #2 SMP Tue Apr 25 15:38:38 PDT 2006 i686 i686 i386 GNU/Linux

webserver:tomcat4.1
config # netstat -an | grep -i list
tcp        0      0 10.10.0.70:4353         0.0.0.0:*               LISTEN
tcp        0      0 172.16.27.70:4353       0.0.0.0:*               LISTEN
tcp        0      0 127.1.1.1:4353          0.0.0.0:*               LISTEN
tcp        0      0 192.168.1.245:4353      0.0.0.0:*               LISTEN   管理地址和端口
tcp        0      0 127.0.0.1:6666          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:80            0.0.0.0:*               LISTEN
tcp        0      0 :::4352                 :::*                    LISTEN
tcp        0      0 :::161                  :::*                    LISTEN
tcp        0      0 ::ffff:127.0.0.1:8005   :::*                    LISTEN
tcp        0      0 ::ffff:127.0.0.1:8009   :::*                    LISTEN
tcp        0      0 :::22                   :::*                    LISTEN
tcp        0      0 :::443                  :::*                    LISTEN
unix 2      [ ACC ]     STREAM     LISTENING     5378   /var/run/mcp
unix 2      [ ACC ]     STREAM     LISTENING     3348   /var/run/uds_host_wdt
unix 2      [ ACC ]     STREAM     LISTENING     4635   /var/run/uds_sc_led
unix 2      [ ACC ]     STREAM     LISTENING     2618   /var/run/uds_host_chman
unix 2      [ ACC ]     STREAM     LISTENING     4170   /var/run/eventd
unix 2      [ ACC ]     STREAM     LISTENING     9294   /tmp/ssh-Riynob2130/agent.2130
unix 2      [ ACC ]     STREAM     LISTENING     383    /dev/log
unix 2      [ ACC ]     STREAM     LISTENING     5652   /var/agentx/master
unix 2      [ ACC ]     STREAM     LISTENING     938    /var/run/fcgi/iControlPortal
unix 2      [ ACC ]     STREAM     LISTENING     7628   /var/run/uds_bcm56xxd

奇怪网络故障若干

近日碰到2个奇怪的网络故障,现在也不知是什么原因。

一个是在电信机房里问题,按电信给的端口接上,但是服务器灯不亮,怀疑是网线问 题,于是又拿了一根接上还是不亮。于是找电信说话了,电信说是不是你服务器的问题啊,于是我把服务器接交换机,一点问题都没有啊。于是就怀疑到电信端口, 这个时候他们用测线器测试下,两头都是通的,我让他远端换个千兆交换机接口,刚接上的一瞬间居然灯亮了,然后马上就暗了,这个时候就怀疑到机柜上的那个接 口了,果然换了一个机柜的接口。现在问题虽然是解决了,可为什么测线器测下来那个接口是通的,但是连上服务器就不通了呢。

另外一个问题是我 同学身上发生的,2台PC A和B,接上了宽带路由器,DHCP关闭,自己设置好IP,A PING路由器以及B都没有问题,也可以登陆路由器进行WEB设置,但是B只能PING通路由器,但是PING不通A,也不能登陆路由器进行WEB设置, 出现的是401错误,网线对换过,机器的防火墙也关闭了。估计是宽带路由器的问题了,因为路由器RESET也没有用