Jul 8
windows下的tracert使用icmp 而linux下的traceroute使用的是udp协议

windows下的:tracert

Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

Options:
    -d                 Do not resolve addresses to hostnames.
    -h maximum_hops    Maximum number of hops to search for target.
    -j host-list       Loose source route along host-list.
    -w timeout         Wait timeout milliseconds for each reply.

[root@dnsdiy-xm root]# traceroute --help
Version 1.4a12
Usage: traceroute [-dFInrvx] [-g gateway] [-i iface] [-f first_ttl]
        [-m max_ttl] [ -p port] [-q nqueries] [-s src_addr] [-t tos]
        [-w waittime] [-z pausemsecs] host [packetlen]


traceroute -I IP地址

从源开始的大于32768的端口 向目标IP的udp 33434端口发出udp包 通过回应包进行确认路由。

Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢? --摘自:[url=null]Traceroute的工作原理[/url]


参考资料:http://bbs.ccw.com.cn/archiver/?tid-771862.html
http://202.38.75.11/~ruizhang/blog/archives/000248.html
http://blog.csdn.net/crab2k/archive/2005/04/19/353958.aspx
Jul 5
系统管理员工具包: 使用 SNMP 数据
源文来自:
http://www.ibm.com/developerworks/cn/aix/library/au-satsnmp/

许多设备内置了简单网络管理协议(Simple Network Management Protocol,SNMP),但是当您只想检查某个简单统计数据或者跟踪某个特定设备或问题时,能够读取和分析该信息的工具和软件通常太大和太复杂了。本文研究一些用于从设备中获取 SNMP 信息的简化方法,以及如何将该信息集成到网络数据映射的其他部分中。
Tags: , , ,
Jul 3
昨晚9时,接值班人员电话。监控服务器显示dns节点故障。报警。

  联入公司内网,查看各dns服务器节点流量。单节点的影响达100M/s。发现各节点的cacti监控流量都近百M.
 
  测试域名解析情况。发现响应时间缓慢。

  取平时响应效率较高的浙江电信与厦门电信服务器节点。登陆查看。
 
  服务器负载正常。tcpdump侦听情况发现,竟有icmp包攻击,加对udp53端口的攻击流量。

  与厦门IDC联系。确定流量,同时让其帮忙加防火墙服务。

  登陆dns服务器, iptables -I INPUT -p icmp -j DROP 对ping数据库拒回应。同时提取攻击时的数据包信息。存档,以等后续分析。
  调用dns测试脚本。发现此时,dns服务器的单节点的回应效率<4%。用ifconfig 查看RX数据,刷一下,就是十几Mbyte的数据差异。
  确认攻击。加上防火墙。对icmp拒绝。
  因攻击流量大,北京节点,竟被IDC直接给屏蔽掉。
以下是在各时段的响应效率情况:攻击持续至今天上午7时。后面数值为百分比。

2008-07-02 21:21:39      4.26
2008-07-02 22:21:38      5.38
2008-07-02 23:21:35     17.98
2008-07-03 00:21:32     68.16
2008-07-03 01:21:32     79.47
2008-07-03 02:21:32     84.68
2008-07-03 03:21:30     84.49
2008-07-03 04:21:31     79.41
2008-07-03 05:21:29     77.97

2008-07-02 21:25:32 |     31.99 |
2008-07-02 22:24:49 |     20.99 |
2008-07-02 23:24:42 |     27.88 |
2008-07-03 00:24:42 |      87.6 |
2008-07-03 01:24:41 |     85.19 |
2008-07-03 02:24:41 |     85.68 |
2008-07-03 03:24:40 |     84.78 |
2008-07-03 04:24:40 |     84.24 |
2008-07-03 05:24:40 |     86.84 |
点击在新窗口中浏览此图片
  
Jul 1
ServiceDesk Plus6.0优化测试。

测试用ServiceDesk Plus6.0进行值班事务处理半年多时间了。整个数据库达3G。负荷基本是每天150+事务量,垃圾邮件等直接关滤掉,不计。

ServiceDesk Plus简称SDP

SDP目前已有7.0版本。因授权问题。未能使用。只有使用6.0版。

SDP基于java可跨平台。我用的是linux+mysql。

使用非常简单。安装。另外是用点时间在于配置上。主要是帐号创建,培训邮件过滤及相关的报表生成数据。

今天的优化内容是:
  硬件配置:2核双智强2.4GCPU+2G内存+36G硬盘。
  
变更的内容有:
参考其官方论坛中说明的删除两个表的数据。资料来源:http://forums.adventnet.com/viewtopic.php?t=280391
内容:

cd /opt/ns/ServiceDesk/mysql/bin/
./mysql -u root -h localhost -P 33366 -p --socket=/opt/ns/ServiceDesk/mysql/tmp/mysql.sock

mysql> delete from AaaAccSession;
mysql> delete from AuditRecord;


我查看了我的aaaaccsession表共50万+条记录auditrecord也是50万+记录。

删除后,发现,状况并未有大改观。打开事务列表还是慢。发现数据库占用资源情况较严重。
决定再次优化数据库。

查其官方BLOG,对于硬件较优的情况下。如内存>2G的机器,可使用更多内存进行启动。
资料来源:http://blogs.manageengine.com/servicedesk/2007/04/03/servicedesk-plus-database-performance-tuning/

操作如下:
  在startDB.sh中的mysql启动参数中加入以下两条。
--key_buffer_size=100000000

--innodb_buffer_pool_size=350000000

再次测试,仍无大改善。

最后一招,将数据库与web程序分离。
再次调用一台服务器 cpu 2.4*2 内存2G 的机器,让其做数据库服务器。
对此服务器安装SDP。
再将原数据库mysql中的数据拷贝,直接覆盖新装的SDP系统。



使用:
cd /opt/ns/ServiceDesk/mysql/bin/
./mysql -u root -h localhost -P 33366 -p --socket=/opt/ns/ServiceDesk/mysql/tmp/mysql.sock
登陆数据库服务器“/opt/ns”为我的安装路径。
为SDP创建一个帐号。专用于连接之用。

grant all on servicedesk.* to servicedesk@"%" identified by 'password'; 创建一个用户servicedesk让其在任何地方都可以对数据库servicedesk用password的密码进行访问。

变更WEB中的数据库连接。
使用./changeDBServer.sh --console 变更数据库服务器IP 端口号,用户名,密码。

因程序run.sh启动过程中会检测及启动数据库。是以,若是以这种web及数据库分离的方式,即使改了数据库连接语句,还是无法正常启动的。会提供33366端口被占用,无法正常启动。

修改配置档:

vi /root/AdventNet/ME/ServiceDesk/server/default/conf/nms-service.xml 中找到

<mbean code="com.adventnet.persistence.service.PersistenceService" name="user:service=PersistenceService">
                 <attribute name="JndiName">persistence</attribute>
        <attribute name="StartDBServer">true</attribute>
         <attribute name="OperationHandler">
            <handler name="com.adventnet.persistence.DefaultOperationHandler">
                <max-rows-per-operation>1000</max-rows-per-operation>
                <max-rows-per-table>50</max-rows-per-table>


将上面的true改为false 即不对数据库进行检查。

再次重启run.sh 
OK~

再备注一下相关的几个主要的配置项位置:/root/AdventNet/ME/ServiceDesk/server/default/deploy/
日志查看位置:/root/AdventNet/ME/ServiceDesk/server/default/log





Jun 24
主机 备份机。

主机服务器定时进行相关数据打包。再通过rsync以daemon模式。异地机通过rsync拉数据。

40 1 * * * root /root/bin/backup.sh

/root/bin/backup.sh内容:
wdpost_time=`date +%Y-%m-%d`
cd /opt/backup/
find /opt/backup -ctime +6  -type f -regex ".*tar.gz"  -exec rm {} \;
tar -czf dnsdiy_web${wdpost_time}.tar.gz /opt/data --exclude /opt/data/logs
tar -czf dnsdiy_mysql_data${wdpost_time}.tar.gz /opt/dnsdiy/data/mysql


实现打包。并将数据包放置于/opt/backup中。

开启rsync

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf &

/etc/rsyncd.conf内容:

use chroot = false
max connections = 4
log file = /etc/rsyncd/rsyncd.log
pid file = /etc/rsyncd/rsyncd.pid
lock file = /etc/rsyncd/rsyncd.lock

[backup]
    path = /opt/backup
    hosts allow = 127.0.0.1#将这里的127.0.0.1改为相应的异备机器的ip。若要实现多个备份机同时备份。可用,分隔多个IP.

    strict modes = false
    read only = true
    list = false

异备机上跑指令:
rsync -vau 192.168.0.1::backup /backup2/data/

分页: 8/9 第一页 上页 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]