分类:Linux

Linux

28 个必备的 Linux 命令行工具

No Comments Linux


dstat
& sar

iostat, vmstat, ifstat and much more in one.

dstat screenshot

slurm

网络流量图形化工具

slurm screenshot

vim & emacs

这个没人不知道吧~

vim screenshot

screen, dtach, tmux, byobu

保持你的终端连接活跃。

gnu screen screenshot

multitail

在不同的窗口查看日志文件。

multitail screenshot

tpp

命令行下面的PPT工具!

tpp screenshot

xargs & parallel

根据输入执行任务,多线程哦!

xargs screenshot

duplicity & rsyncrypto

加密备份工具。

duplicity screenshot

nethack & slash’em

这个星球上最复杂的游戏 =,=

nethack screenshot

lftp

FTP工具。

lftp screenshot

ack

比grep更好的检索源码的工具。

ack screenshot

calcurse & remind + wyrd

日历

calcurse screenshot

newsbeuter & rsstail

命令行RSS阅读器

newsbeuter screenshot

powertop

帮助Linux系统省电工具。

powertop screenshot

htop & iotop

------中间广告---------

进程,内存,IO,CPU监控工具。

htop screenshot

ttyrec & ipbt

终端操作录像/回放工具。

ipbt screenshot

rsync

文件系统同步工具,SSH哦!

rsync screenshot

mtr

traceroute 2.0.

mtr screenshot

socat & netpipes

在socket接口中导入或者导出信息。

socat screenshot

iftop & iptraf

看看你的流量都到哪里去了?

iftop screenshot

siege & tsung

命令行压力测试工具。

siege screenshot

ledger

会计工具!

ledger screenshot

taskwarrior

任务管理工具

taskwarrior screenshot

curl

做HTTP的都知道吧~

curl screenshot

rtorrent & aria2

命令行BT下载~

rtorrent screenshot

ttytter & earthquake

命令行twitter工具,哈哈!

ttytter screenshot

vifm & ranger

midnight 控制工具的替代者~

vifm screenshot

cowsay & sl

牛牛~~~~

cowsay screenshot

配置Linux的Syslog服务来记录Cisco路由器的日志(基本配置)

No Comments Linux

路由器的配置:

interface Ethernet0/0
ip address 192.168.1.2 255.255.255.0
!
logging 192.168.1.1
logging facility local0           //
配置日志存储的facility ,默认是local7,可以修改为其他,但推荐保存为local开头的facility里
logging trap debugging      //配置要发送到日志服务器的日志优先级,默认发送到日志服务器的优先级为Info

Linux服务器配置:

1、在/var/log目录下新建Cisco.log文件
2、在/etc/syslog.conf
增加:

# Cisco syslog messages
local0.* /var/log/Cisco.log                   //配置local0优先级记录的位置

3、在/etc/sysconfig/syslog文件
修改:

SYSLOGD_OPTIONS=”-r -x -m 0″       //配置服务器接收来自外部的log日志消息

4、重启Syslog服务,使新的配置生效:

[root@localhost /]#service syslog restart

注意:

  • Ubantu7.1的syslog文件为/etc/default/syslogd
  • Syslog服务名为sysklogd,重启Syslog服务的命令为:service sysklogd restart

附(转):配置linux syslog日志服务器

目前,linux依旧使用syslogd作为日志监控进程,而在主流的linux发行版中依旧使用sysklog这个比较老的日志服务器套件。

一、配置文件

默认的日志服务器就是sysklogd套件:

主要的配置文件有两个:

/etc/sysconfig/syslog      定义syslog服务启动时可加入的参数

/etc/syslog.conf              这个是syslog服务的主要配置文件,根据定义的规则导向日志信息。

二、设置主配置文件

/etc/syslog.conf根据如下的格式定义规则:

facility.level action
设备.优先级 动作

facility.level 字段也被称为seletor(选择条件),选择条件和动作之间用空格或tab分割开。
#号开头的是注释,空白行会自动跳过。

1、facility

facility定义日志消息的范围,其可使用的key有:

auth -由 pam_wdb 报告的认证活动。
authriv -包括特权信息如用户名在内的认证活动
cron -与 cron 和 at 有关的计划任务信息。
daemon -与 inetd 守护进程有关的后台进程信息。
kern -内核信息,首先通过 klogd 传递。
lr -与打印服务有关的信息。
mail -与电子邮件有关的信息
mark - syslog内部功能用于生成时间戳
news -来自新闻服务器的信息
syslog -由 syslog 生成的信息
user -由用户程序生成的信息
uuc -由 uuc 生成的信息
local0-local7 -与自定义程序使用
* 通配符代表除了 mark 以外的所有功能

除mark为内部使用外,还有security为一个旧的key定义,等同于auth,已经不再建议使用。

2、level级别

level定义消息的紧急程度。按严重程度由高到低顺序排列为:

emerg -该系统不可用,等同anic                                                     (severity=0)
alert -需要立即被修改的条件                                                           (severity=1)
crit -阻止某些工具或子系统功能实现的错误条件                              (severity=2)
err -阻止工具或某些子系统部分功能实现的错误条件,等同error     (severity=3)
warning -预警信息,等同warn                                                         (severity=4)
notice -具有重要性的普通条件                                                         (severity=5)
info -提供信息的消息                                                                       (severity=6)
debug -不包含函数条件或问题的其他信息                                        (severity=7)
none -没有重要级,通常用于排错
* 所有级别,除了none

其中,anic、error、warn均为旧的标识符,不再建议使用。

在定义level级别的时候,需要注意两点:

  • 优先级是由应用程序在编程的时候已经决定的,除非修改源码再编译,否则不能改变消息的优先级
  • 低的优先级包含高优先级,例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。(除非使用=号定义)

3、selector选择条件

  • 通过小数点符号“.”把facility和level连接在一起则成为selector(选择条件)。
  • 可以使用分号“;”同时定义多个选择条件。
  • 也支持三个修饰符:

* - 所有日志信息
= - 等于,即仅包含本优先级的日志信息
! - 不等于,本优先级日志信息除外

4、action动作

由前面选择条件定义的日志信息,可执行下面的动作:

file-指定日志文件的绝对路径
terminal 或 rint -发送到串行或并行设备标志符,例如/dev/ttyS2
@host -远程的日志服务器
username -发送信息本机的指定用户信息窗口中,但该用户必须已经登陆到系统中
named ie -发送到预先使用 mkfifo 命令来创建的 FIFO 文件的绝对路径

注意:

  • 不能通过“|/var/xxx.sh”方式导向日志到其他脚本中处理

5、举例

*.info;mail.none;news.none;authriv.none;cron.none                        /var/log/messages
#把除邮件、新闻组、授权信息、计划任务等外的所有通知性消息都写入messages文件中。

mail,news.=info                        /var/adm/info
#把邮件、新闻组中仅通知性消息写入info文件,其他信息不写入。

mail.*;mail.!=info                        /var/adm/mail
#把邮件的除通知性消息外都写入mail文件中。

mail.=info                        /dev/tty12
#仅把邮件的通知性消息发送到tty12终端设备

*.alert                        root,joey
#如果root和joey用户已经登陆到系统,则把所有紧急信息通知他们

*.*                        @finlandia
#把所有信息都导向到finlandia主机(通过/etc/hosts或dns解析其IP地址)

注意:每条消息均会经过所有规则的,并不是唯一匹配的。
也就是说,假设mail.=info信息通过上面范例中定义的规则,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主机都会收到相同的信息。这样看上去比较烦琐,但可以带来的好处就是保证了信息的完整性,可供不同地方进行分析。

6、测试

部分情况下,上述规的实际执行结果和定义的预想结果可能会有出入。这时,可使用logger程序辅助测试:

# logger – user.notice ‘Hello World!’

日志显示:

Nov 12 13:40:04 dc5test root: Hello World!

其表示意思如下:

第一列:日志产生时间
第二列:产生此日志的主机名称
第三列:产生此日志的应用程序或用户名称
第四列:日志信息

7、自定义日志级别

正如前面所说的,应用程序的日志级别是由应用程序所决定的。部分应用程序可通过配置,定义其日志级别。
例如,/etc/ssh/sshd_config文件中就有:

#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

把sshd的日志定义在authriv.info级别。配合syslog.conf中的:

authriv.* /var/log/secure

则日志文件被写入/var/log/secure文件中。

◎我们修改为:

SyslogFacility local0

配合在syslog.conf中增加:

local0.* /var/log/sshd.log

保存后,重新启动sshd或syslog服务,则以后sshd服务的所有日志都会单独的放到sshd.log文件中了。

三、设置服务参数

默认情况下,syslog进程是不能接受其他日志服务器发过来的消息的。而通过修改其启动参数,可实现日志的大集中功能。
修改/etc/sysconfig/syslog文件:

-r : 打开接受外来日志消息的功能,其监控514 UDP端口;
-x : 关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m : 修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次“–MARK–”信息;
-h : 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去。

通过man syslogd可获得更详细的帮助,而具体到实际配置文件为:

SYSLOGD_OPTIONS=”-r-x-m 0″

保存后,重启服务即可:# service syslog restart

此时,客户机只要通过修改syslog.conf,定义动作为@主机或IP,即可发送日志信息到本服务器中。
(在构建集中的日志服务器时,请务必配合nt时间服务,以保证信息的有效性,避免不必要的麻烦)
另外,/etc/sysconfig/syslog配置文件中,还定义有klogd服务的启动参数:

KLOGD_OPTIONS=”-x”

详细帮助,请参考man 8 klogd或man klogd。

Easy VPN with an PIX 515E as the Server and ASA 5505 as the Client (NEM) Configuration Example

No Comments Linux

5429370825788692275[1]

ASA 5505 – Easy VPN Remote Hardware Client

ciscoasa#write terminal

:

ASA Version 8.0(2)

!

hostname ciscoasa

enable password 8Ry2YjIyt7RRXU24 encrypted

names

!

interface Vlan1

nameif inside

security-level 100

ip address 172.16.1.1 255.255.255.0

!

interface Vlan2

nameif outside

security-level 0

ip address 10.10.10.1 255.255.255.0

!

interface Ethernet0/0

switchport access vlan 2

!

interface Ethernet0/1

!

!— Output Suppressed

!

interface Ethernet0/7

shutdown

!

passwd 2KFQnbNIdI.2KYOU encrypted

boot system disk0:/asa802-k8.bin

ftp mode passive

pager lines 24

mtu inside 1500

mtu outside 1500

no failover

icmp unreachable rate-limit 1 burst-size 1

asdm image disk0:/asdm-602.bin

no asdm history enable

arp timeout 14400

!— Set the standard NAT configuration. 

!— Easy VPN provides the NAT exceptions needed.

global (outside) 1 interface

nat (inside) 1 0.0.0.0 0.0.0.0 0 0

route outside 0.0.0.0 0.0.0.0 10.10.10.2 1

timeout xlate 3:00:00

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02

timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00

timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00

timeout uauth 0:05:00 absolute

dynamic-access-policy-record DfltAccessPolicy

no snmp-server location

no snmp-server contact

snmp-server enable traps snmp authentication linkup linkdown coldstart

telnet timeout 5

ssh timeout 5

console timeout 0

!— Easy VPN Client Configuration —!

!— Specify the IP address of the VPN server.

vpnclient server 10.20.20.1

!— This example uses network extension mode.

vpnclient mode network-extension-mode

!— Specify the group name and the pre-shared key.

vpnclient vpngroup mytunnel password ********

!— Specify the authentication username and password.

vpnclient username cisco password ********

!— In order to enable the device as hardware vpnclient, use this command.

vpnclient enable

threat-detection basic-threat

threat-detection statistics access-list

!

class-map inspection_default

match default-inspection-traffic

!

!— Output suppressed

!

service-policy global_policy global

prompt hostname context

Cryptochecksum:dfcc004fbc2988e4370226f8d592b205

: end

VoIP进行QoS的保障技术解决方案

No Comments Linux

   VoIP业务的QoS保障措施是当前业界探讨最多的话题, IETF(Internet Engineering Task Force)建议了数种支持QoS的技术解决方案,主要有:综合服务(Int-serv)/资源预留协议(RSVP)、区分服务(DiffServ)、多协议标签交换(MPLS)、业务流量工程(Traffic Engineering)等。电信运营商也根据自身网络的特点采用了一些措施。以下是 有关措施的介绍:
1.综合服务/资源预留协议RSVP
    IETF定义了RSVP(资源预留协议)及相应的系列协议,是IP路由器为提供更好的服务质量向前迈进的具有深刻意义的一步。传统的IP路由器只负责包转发,通过路由协议获得邻近路由器的地址,而RSVP则类似于电路交换系统的信令协议一样,为一个数据流通知其所经过的每个节点(IP路由器),与端点协商为此分组流提供质量保证。该策略提出了两种服务:一种是保证型服务,能够提供完全保障的服务,用于需要低延时的业务;另一种是负载受控服务,提供一种类似于网络低负载下的尽力而为的传递服务。RSVP协议一出现,便获得广泛的认同,基本基本上被认为较好地解决了资源预留的问题。但由于RSVP实现起来很复杂,因此该种策略在实际应用中又难以推广。
2.区分服务(Diff-Serv)
     DiffServ(Differentiated Service)(俗称差分法),是IETF新推出的一种QoS策略:在Ipv4包头(TOS)中有一个3位的区域用以标识此IP包的优先级(可定义8个优先级状态),据此优先级,IP路由器可决定不同IP包的转发优先顺序。也就是IP协议至制定之日起,就已经为日后提供更好的QoS预留了机制保证。但由于传统IP网络对带宽保障的“尽力而为”,仅在TOS中设定优先等级保障QoS措施虽然有线路利用率高的特点,但具体的效果难以预测。
    区分服务(Diff-Serv)区域的主要成员有:核心路由器、边缘路由器、资源控制器(BB,Bandwidth Broker)。在区分服务(Diff-Serv)中,网络的边缘路由器对每个分组进行分类、标记DS域,用DS域来携带IP分组的需求信息。在网络的核心节点上,路由器根据分组的DSCD选择相应的转发处理。资源控制器BB配置了管理规则,为客户分配资源,可以通过服务等级协定SLA(Service Level Agreement)与客户进行相互协调以分享规定的带宽。通过网络的边缘路由器对分组设置DS域以及接纳控制功能可以实现一系列的服务:加速转发(EF,Expedited Forwarding)服务、确定型转发(AF,Assured Forwarding)服务和优先级(CS,Class Selector)服务。加速转发服务的延时和延时抖动很小,主要服务于峰值速率恒定的实时业务,如VoIP、视频会议或VPN中的虚拟租用线。区分服务(Diff-Serv)的策略可采用渐进式逐步实施。区分服务(Diff-Serv)是当前较为看好的一种IP网络QoS策略。
3.多协议标签交换技术MPLS
    MPLS被称为是下一代最具竞争力的通信网络技术,是一种在开放的通信网上,利用标签引导数据高速、高效传输的技术。它在一个无连接的网络中引入了连接模式的特性,减少了网络的复杂性,兼容现有的各种主流网络技术,能降低50%的网络成本。在提供IP业务时能够确保QoS和安全性,并具有流量工程能力。
不仅如此,MPLS也被用来解决VPN的扩展和维护成本问题。MPLS把选路和转发分开,由标签来规定一个分组通过网络的路径。MPLS网络由核心标签交换路由器(LSR)、边缘标签路由器(LER)组成,其QoS是由这二者共同来完成。
    由于宽带管理的引入,MPLS将使传统IP网络“尽力而为”的状况得以改变。另外,采用更快包转发速率的路由器和更宽的带宽也是解决IP网络QoS的措施。更宽的带宽就是经常听到的“带宽保障QoS措施”,也就是这些运营商利用其带宽资源,为VoIP业务开辟了一个相对“资源无限”的环境,从而使QoS得到较好的保障。如中国电信、网通等运营商采用的VoIP业务网与Internet业务网隔离的方式,为VoIP业务提供了较为充分的带宽预留。
    在实际应用中,实施VoIP业务的QoS保障措施,需综合考虑多种因素和技术策略,决不能仅关注技术策略而忽视如网络规划、优化对IP网络的QoS的重要影响。

VOIP中QOS技术综述

No Comments Linux

   Internet在过去5年所取得的巨大成就和未来所蕴涵的巨大发展潜力几乎没有人怀疑。当人们在思考未来Internet的发展时,如何在IP网络上保证用户信息传输的质量就成为一个不容忽视的重要问题。为解决这一问题,IP QoS(服务质量)便应运而生。
  IP业务多样化和快速增长已成为一个不争的事实。因此, IP QoS已成为网络基础研究的一个重点,也是未来IP网络发展的关键技术,因为IP QoS 是IP网络增加服务内容、提高服务质量的关键技术,也是未来网络运营商竞争的一个焦点。

  IP QoS是指IP的服务质量,也是指IP数据流通过网络时的性能。它的目的就是向用户提供端到端的服务质量保证。它有一套度量指标,包括业务可用性、延迟、可变延迟、吞吐量和丢包率。IP QoS在可预测、可测量性方面比传统 IP有了很大的提高,基本解决了商业用户的基本需求,因而势必可以吸引更多的商业用户,形成一个新的利润增长点,带来可增值的业务种类。另外,IP QoS还可提高带宽的使用率。

VoIP中主要采用资源预留协议(RSVP)以及进行服务质量监控的实时传输控制协议RTCP来避免网络拥塞,保障通话质量。

IP QoS——IP网络的核心技术

  在过去的25年中,Internet从一个美国政府建立的研究性网络发展成为今天全球性的商用网络。Internet是第一个IP(Internet Protocol)的大规模应用。IP技术现在已经成为网络话音 (Webtone)世界的基础平台。人们普遍认为,无论是在公用网络还是专用网络(如企业 Intranet)的演进过程中,IP技术都将发挥着举足轻重的作用。 为什么需要IP QoS?

  IP网络上多媒体业务的出现对IP环境中的服务质量 (QoS)提出了更高的要求。通过Intel和Microsoft等公司的努力,多媒体应用已经成为PC 结构中的一个有机组成部分,推动了公用和专用网络迅速地向多样化的、更具挑战性的业务组合发展。

  Internet上的分组话音和传真业务极大地降低了成本,使通信产业发生了彻底的变化。所有这些实时多媒体应用所需要的QoS远比目前Internet可以提供的尽力而为的服务等级保证要高。

  目前,Internet 远远不能提供企业所需要的且已经在其专用网络中习惯的可靠性和性能。商业客户在安全性、可预测性、可测量性等方面得到保证之前,还不大可能把关键业务的数据、话音和多媒体应用放到公用IP网络上。IP QoS 就是在这种环境下应运而生的。

  IP QoS是指IP的服务质量,是指IP数据流通过网络时的性能。它的目的就是向用户的业务提供端到端的服务质量保证。它有一套度量指标,包括业务可用性、延迟、可变延迟、吞吐量和丢包率。IP QoS在可预测、可测量性方面比传统IP有了很大提高,基本解决了商业用户的需求,因而势必可以吸引更多的商业用户,形成一个新的利润增长点,带来可增值的业务种类。另外,IP QoS还带来了更高效的带宽使用率等。因此可以说IP QoS将是今后一段时间促进IP网络增长的关键技术。

  有了IP QoS,服务提供商就可以通过吸引更多的商业用户、更高价位的业务级别以及更高效的带宽使用等来获得更大的收益。它们还可以通过增强不同业务的区分能力、Better-than-best-effort (优于尽力而为的传输) 的业务和客户化解决方案来获得更大竞争优势。

  尽管IP QoS的研究工作已经进行了一段时间,但是人们普遍认为目前还未出现一个成熟的体系架构、支持硬件以及相应的操作技术。但无论怎样,在IP网络中保证QoS将会是一个重要的发展方向。

  IP QoS的机遇

  将数据业务以及IP的话音业务转移到公用IP网络上是服务提供商最近几年寻找到的一个卖点或业务突破口。随着公网技术的不断成熟,一些商业用户已经开始将其应用逐渐地转移到了公用IP网络上来。吸引商业客户的最重要的一个条件就是这些关键业务都提供基于IP的QoS。IP QoS给运营商带来了很多好处。首先运营商通过IP QoS的引入,可以从性能上保证商业用户关键应用在运营网络中传输的服务质量,以提供原来无法提供的关键性业务,获得高额的利润;其次,由于IP QoS的引入,网络的带宽将会得到更有效的使用,可以根据商业用户的不同应用要求提供不同的带宽保证,使运营成本进一步降低。另外,如果从竞争的角度考虑,能够根据用户的需要来提供多种优于尽力而为的业务级别,为用户量体裁衣,提供个性化服务的运营商无疑最有竞争力。

  然而,要想实现上述几点并非易事。IP QoS仍然是一个比较新的概念,不同厂商提供了多种不同的专有解决方案,而且标准还未统一。因此,互连互通对运营商是一个不得不考虑的问题。除此之外,在这种不确定的环境中,服务提供商在实施IP QoS解决方案时,应该首先考虑以下几个问题: 应该为我的客户提供什么样的业务水平? 如何提供端到端的IP QoS?如何经济高效地管理IP QoS? 如何充分利用现有的IP或ATM基础设施? 如何将IP QoS与企业虚拟专用网业务结合?

  这些问题都是运营商在采用或实施IP QoS之前必须充分考虑的问题。

  IP QoS的定义

  大多数的业内专家都认为,QoS是区分服务提供商的一个重要标准。然而,与业务相关的一些重要概念和术语至今仍未达成普遍的一致,而这些概念和术语又恰恰是建立标准化的业务的重要前提。例如,IP QoS本身经常被误用,即使是业内的专家也不例外;所宣传的IP QoS往往只是IP CoS(Class of Service,服务级别)。它只能简单地将业务区分开来,而无法准确完善地定义和保证每一个服务级别。在一般的通信用语中,CoS的含义很广泛,它既包括一套已经标准化了的特性,也包括其他一些现在已经有效但还没有标准化的业务或业务集。而QoS的含义则很明确,主要用于度量与某种业务相关的一整套性能特点。

  QoS可以用一系列可度量的参数来描述: 业务可用性:用户到Internet业务之间连接的可靠性。 延迟:也称为时延(Latency),指两个参照点之间发送和接收数据包的时间间隔。 可变延迟:也称为抖动(Jitter),指在同一条路由上发送的一组数据流中数据包之间的时间差异。 吞吐量:网络中发送数据包的速率,可用平均速率或峰值速率表示。 丢包率:在网络中传输数据包时丢弃数据包的最高比率。数据包丢失一般是由网络拥塞引起的。

  IP QoS的体系结构

  IP QoS的概念应该分为两个部分,这两部分的IP QoS 定义和侧重点均有所不同。

  局域网中的IP QoS主要是对第二层的以太网帧头加入了优先级字段,以区分不同的优先级。严格地讲,在局域网中只能简单地区分业务的优先级,并不能像ATM QoS那样有精确的定义和详细的参数指标来衡量。

  这种解决方案是根据对IEEE 802.1p/q协议字段的处理来区分不同优先级业务的。IEEE 802.1p/q同属于一个子集,它在传统的以太网帧头中加入了4个字节,其中802.1p占3位。802.1p延伸了802.1d的协议,利用3位优先级位可以最多提供8个优先等级。而802.1q利用VI(VLAN Identifier,虚拟网标识)位识别传送的帧究竟属于哪一个虚网。VI位共有12位,最大可以支持的虚网个数不会超过4096个。 802.1p/q的具体定义可以参见图1。

  在广域网上,IETF(Internet Engineering Task Force)定义了两种IP QoS结构——综合业务结构(Int-Serv )和业务区分结构(Diff-Serv)。两种结构各有其特点和优势,目前还无法互通。

  Int-Serv 一般应用在企业网络的边沿,如图2所示,它使用一种类似ATM SVC的方法,在发送端和接收端之间用RSVP(资源预留协议)作为每个流(Flow)的信令。RSVP的信息跨越整个网络,请求/预留资源。路径沿途的各路由器(包括核心路由器)必须为每个要求服务质量保证的数据流维护一个“软状态”。所谓的“软状态” 就是一种临时性状态,由资源预留定期失效来控制,因此无需申请拆除显式路径。软状态被定期的RSVP信息更新。通过RSVP信息的预留,各路由器可以判断是否有足够的资源可以预留。只有所有的路由器都给RSVP提供了足够的资源,“路径”方可建立;否则,将返回并拒绝信息。

  Diff-Serv比Int-Serv 更具可扩展性,如图3所示,它可用于企业的广域网中,并在运营商网络中发挥重要的作用,因为它可以根据应用或业务类型排出不同的优先级别。业务区分结构使用IPv4报头中的业务类型(ToS)字段,并将8 位ToS字段重新命名,作为DS字段,其中6位可供目前使用,剩余2位以备将来使用,如图4所示。通过该字段的标记,下行节点可以获取足够的服务质量信息,以对到达该端口的数据包做出相应的“处理”,将它们正确地转发给下一跳的路由器。这里需要注意, ToS字段和DS字段的定义是不同的。边缘路由器可以将ToS字段映射到DS字段。

  IP QoS的未来

  IP QoS将成为运营商级IP联网解决方案的基础,这种解决方案既可以十分可靠地传输公共Internet等一般性数据业务,同时又能传输关键业务应用。分析家普遍认为,在今后两年中IP业务将迅速增长,并将成为大多数服务提供商网络中的主导业务,而不仅仅是ISP。随着IP业务的进一步商业化,产业结构将发生较大变化。

  目前还没有一个路由协议可以根据不同的业务特点来计算最优路径。众所周知,不同类型的业务,其特点不同。如视频和话音业务虽然对传输时延和时延抖动都十分敏感,但对数据的丢失却有一定的忍耐度;相反,一般的数据业务虽然对时延和时延抖动都不十分在意,但对数据本身的丢失和差错却十分敏感。因此,不同的业务在通过运营网络时对最优路径的理解是不同的。对于数据业务来说,最短的路径就是最优的路径;而对于实时业务来说却未必如此。这些分歧是为纯粹数据业务设计的传统路由协议很难弥补的。因此,与之相关的问题就会影响到IP网络的业务质量,这是一个难以解决的问题。所幸的是,新的路由协议出现了,使得这一问题的解决指日可待。

  新一代的IP产品还将提供不断增多的队列,以实现更精细的业务区分。将来,还可以实现为特定的数据流定义并分配队列。

  策略管理算法将完全符合网络拓扑及其他环境因素,使网络能够使用尖端的高级策略、更有效地控制SLA、网络和业务的管理以及业务恢复。

  IP业务模式定义将更为明确,IP的业务控制功能将进一步增强,它们的结果就是服务的质量和级别将迅速提高,使更多的用户群可以享用到功能更为丰富的IP业务。

  总之,尽管今天的IP QoS还有很多问题没有解决,但就像今天的IP业务一样,IP QoS将不可避免地成为运营商IP 网络中一项关键的核心技术。

IP QoS的流量管理

  一、 为什么需要流量管理

  用户的各种业务在经过网络时,会受到各种因素的影响,如节点延迟、可变延迟以及丢包率等。IP QoS的宗旨就是解决这些问题,使网络通过控制这些参数来保证业务在网络中的性能。那么,对于那些高于尽力而为的业务,究竟保持什么样的水平才是比较合适的?可以说这里没有统一的规定,不同的业务对网络的要求不一样,不同的业务级别对指标的要求也不一样。因此,需要一个可以在用户和运营商之间达成一种默契的桥梁,用户的业务可以定量地以节点延迟、可变延迟等指标来描述;而对于运营商,可以根据协议中所商定的这些量化指标,保证用户业务在运营网络中的性能。这个协议就是业务等级协议(SLA)。

  业务等级协议实质上就是要分清用户与运营商之间的责、权、利。对于一般用户而言,SLA可以是非常简化的标准协议,以方便使用;而对于商业用户来说,SLA可以是为其专门定制的多方位协议。当然,如果一般用户愿意为细化的服务而额外支付费用,那么也可以为他们定制专门的协议。

  一般地说,SLA定义了端到端的业务规程,它包括以下几个方面的内容:

  可用性——有保证的正常运行时间。 提供的业务——提供业务级别的规程。

  服务保证——对每种级别,提供包括吞吐量、丢包率、延迟、延迟偏差以及对超额预定的处理等方面的保证。

  责任——违反合同条款的后果。

  定价——为每项具体的业务级别定制的价格。

  业务等级协议的核心是运营商可以给最终用户提供的业务水平或级别。不同业务级别的业务可获得不同级别的质量保证。因此,SLA的一个重要内容就是将业务映射到不同的业务等级上。例如,我们就可以将现在所遇到的业务大体分为三级,如下表所示。

  有了这些量化的指标,运营商就可以根据这些指标来实现对业务的保证,以达到业务等级协议的要求。当然,如何实现这些指标的要求,使业务能够在保证性能的情况下通过网络,必须满足两个最基本的条件:

  首先,良好的网络设计是达到SLA的前提之一。

  其次,在实际网络中有一个很好的流量管理机制。流量管理是保证实现SLA的关键。

  二、 流量管理的过程

  IP QoS的流量管理从一个业务数据包进入网络到退出网络,可以分为几个过程,即业务的分类、业务的监管、业务的调节以及业务的过滤。

  1.业务的分类

  对进入Diff Serv域的业务进行分类,以便在网络中得到相应的适当处理。业务必须由客户预先标记或在运营商网络一端与客户最临近的路由器上进行标记。

  数据包进入某一域时,可以有多种方法对它进行分类,但并不是所有方法对于每一种业务都是必需的。我们可以根据SLA规定的一些策略给每个数据包加上DS字段标记,从而对数据包进行分类。

  例如,客户网络到运营商的路由器之间的连接是以太网而不是广域网接口(ATM、FR等)时,客户可使用以太网的802.1p优先权方案在自己的局域网内部对业务进行分类;在进入运营商网络边缘时,再根据SLA中的规定将优先权映射到该数据包的DS字段中。

  当然,运营商的边缘路由器还可以根据其他多种手段对客户业务进行分类,如IP数据包头的ToS (业务类型)字段、ATM QoS等。

  2.业务的监管

  业务监管(Traffic policing)是为了监督用户是否根据SLA中所赋予的权利来使用运营商网络,一方面是保证运营商自己的利益不受侵害,另一方面也从间接上保证了其他用户在网络中的权利。

  业务的监管可以采用一个较为简单的方法——令牌漏桶 (Token Bucket)算法,当然也可以采用其他类似的机制来监控每一个级别的输入业务量。如下图所示,每一种业务都有相应数量的令牌(Token),令牌按照SLA所规定的速率发出。如果用户的业务到达的速度快于令牌发出的速度,则说明用户没有遵守SLA,因此就需要对用户超出SLA的这些业务数据有一个策略。例如,可以将它们加上标记,在网络不拥塞的情况下允许它们通过网络,而在网络拥塞时首先将它们丢弃。当然,也可以在一开始就将这部分数据丢弃,完全取决于运营商和用户之间所达成的协议和策略。

  3.业务的调节

  实际上,业务的分类和业务的监管都发生在运营网络的边缘。而业务的调节阶段则是完全的运营网络行为。它的好坏直接决定了IP QoS能否实现的问题。

  一般来说,业务调节主要有两个手段,一个是预防拥塞的排队和调节机制,另一个就是遇到拥塞时的丢弃机制。

  去往输出接口的业务都被分类并插入到相应的输出队列中,每个队列都具有可设置的调节程序,这些程序可以利用加权公平排队(WFQ)、循环方式(RR:Round Robin)及严格优先权等算法实现;同样,每个队列也有多种可选择的丢弃算法,如随机早期检测(RED)或尾部丢弃(Tail-drop),均可通过业务级别进行配置。

  (1) 排队调节机制 严格的优先级调节:某一级别的业务只有在当队列中没有更高优先权业务时才被发送。这一方法实施起来较为简单;缺点是永远只传输一个级别(最高优先权的)的业务。 公平排队或循环方式:简单地从多个队列中进行循环,这有助于使不同队列公平地使用带宽,但缺点是大量的数据流不得不需要更多的带宽。 加权公平排队:对公平排队的一种改进。在这种方案中,我们给每个队列分配权限,该权限确定队列中的哪些数据包优先使用链路带宽。 基于级别的排队:可以分为几个队列,每个队列与不同的业务级别相对应(可能由PHB 定义),可以使用不同方法发送或调节队列。 分级的基于级别的排队(CBQ):业务被分成不同级别,每种级别又可细分成若干子级 (Sub-class)。这种分级形成一种树状结构,若一个子级使用的链路带宽超过它应得的份额,那么它将首先向姊妹子集(Sister sub-class)借用带宽,依此类推。在分级结构中这一树形结构可以用来区分各种业务类型。

  (2) 丢弃机制 尾部丢弃:只有分配的缓冲器空间被全部占用时才丢弃到达的数据包。这种方法易于实施,但众所周知,它会导致网络的崩溃,因为它可触发TCP全局同步。 随机早期探测:防止TCP全局同步的有效方法。该方法主要是在队列占用率(Queue occupancy)开始上升时(但又在真正发生拥塞之前)随机丢弃到达的数据包,从而始终保持一个较小的队列。但这只能在一定程度上通过降低TCP源拥塞的概率,缓解网络的拥塞。一旦当队列的平均尺寸增大时,那么到达的数据包被丢弃的概率仍会随着队列的增大而增高。 加权RED(WRED):是RED的一种变体,它可以更加合理地选择将被丢弃的数据包。

  4.业务的过滤

  业务过滤一般用于退出一个域的行为,一方面是出于安全性考虑而进行过滤,而另一方面也是防止低优先权业务阻塞接入链路而进行过滤。

  例如,过滤策略可从其他站点分出业务终接容量,使关键的高优先权业务可优先于低优先权业务被终接;同时,为防止非法业务进入专用域,也有必要使用安全过滤功能。过滤必须在接入链路的运营商一端进行,否则心怀恶意的用户有可能向网络上输送大量业务,使合法用户的业务得不到传输。过滤是在运营商一端的边缘路由器上进行的。

QoS术语说明

两种主要的IP QoS服务模型
为满足Internet上多种业务对QoS的需求,Internet工程任务组(IETF)先后制定了两种QoS服务模型:集成服务(InterServ)/RSVP模型和区分服务(DiffServ)模型,用来在不同的场合提供相应的质量保证。

Type-of-service (ToS) 比特

在IP数据包头的8位的空间,IP Precedence优先级、DSCP(Differentiated Services Code Point)和ToS 域都使用这一字节。(虽然看上去中文的翻译和英文都有些类似,都使用这个字段,都是0和1,但是有不同的标准对0和1的含义加以定义。

Differentiated Services Code Point (DSCP)

IETF 在RFC2472、RFC2475中提出DiffServ(Differentiated Services Architecture) 体系结构,旨在定义一种实施IP QoS且更容易扩展的方式,以解决IntServ 扩展性差的缺点。

DiffServ力图通过对业务流的分类、整形、标记、调度来实现对业务QoS一定程度上的保证。目前在DiffServ上主要提出了下面两种业务:Expedited Services(EF-RFC 2598) 提供类似于专线或租用线的服务。Assured Services(AF-RFC 2597)提供比Best-Effort尽量好的QoS。

DiffServ 利 用 了IPv4 数据包头的ToS字段(或IPv6的COS字段),作为DSCP(DiffServ 编 码 点) 使用。DSCP使用了前面的6位。

DSCP面临的一个问题是对这一协议支持的网络设备比较少,同时DSCP与早先的IP Precedence不兼容。.

IP Precedence 域

在IP数据包头的ToS字节中,有三位被使用了,RFC 791对此进行了定义(从RFC的编号上可以看出年代久远)。使用IP Precedence,网络管理员可以将网络中传输的数据分为从0到7的八个优先级,并进行标记,网络设备可以依次提供不同服务质量的服务,现今很多应用和路由器支持这一协议。

ToS 域

RFC1349对ToS字段又进行了新的定义,一共定义了从0到15个优先级的值(分为16种),根据这些值,网络设备可以对数据包进行不同的操作,比如尽快转发或者是最大的吞吐量。同上两个标准一样与DSCP不兼容。

Multi-protocol Label Switching (MPLS)

MPLS给数据包打上了标记,用来做路由等处理,同样也可以对数据包进行区分和提供优先级服务,RFC3031对这一技术进行了定义。

IEEE 802.1p

一个支持IEEE 802.1Q协议的主机,在发送数据包时,都在原来的以太网帧头中的源地址后增加了一个4字节的802.1Q帧头。这4个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID–Tag Protocol Identifier,它的值是8100),和两个字节的标签控制信息(TCI–Tag Control Information),TPID是IEEE定义的新的类型,表明这是一个加了802.1Q标签的本文。

这其中,VLAN ID和Priority经常被用到,解释如下:

VLAN Identified( VLAN ID ): 这是一个12位的域,指明VLAN的ID,一共4096个,每个支持IEEE 802.1Q协议的主机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。

Priority:这3 位指明帧的优先级。一共有8种优先级,主要用于当交换机阻塞时,优先发送哪个数据包。之所以称之为IEEE 802.1p优先级,是因为有关这些优先级的应用是在802.1p规范中被详细定义。

IEEE 802.1p优先级位于二层报文头部,适用于不需要分析三层报头,而需要在二层环境下保证QoS的场合。

这一协议于IP Precedence非常类似,通常的情况下,以太网帧到达第一个路由器的时候会实现与IP Precedence或者DSCP的替换。

数据包丢失

当一个队列被充满的时候,数据包丢失会出现。当数据包丢失出现,面向连接的协议,比如TCP会降低他们的传输速率,让队列中的数据包被服务。

带宽预留

把一部分的带宽留给一些特定的应用,不论是产生拥塞的时候,这部分带宽也不会被其他的应用所使用,在一些QoS的算法比如WFQ已经启用的时候,这一功能也不应该受到影响。

本篇文章来源于 中国协议分析网|www.cnpaf.net 原文链接:http://www.cnpaf.net/Class/voip/200511/10182.html

SCRIPT:关于expect的使用

No Comments Linux

#!/usr/bin/expect
set timeout 10
set foo [lindex $argv 1]
spawn scp /root/bash/ss.txt 192.168.1.1:/root/file/$foo
expect "password:"
send "123456\r"
expect eof
exit 0

#./bash.sh a b
脚本功能:

上面为一个使用了expect的脚本,目的是将本地/root/bash/ss.txt拷贝到192.168.1.1的/root/file/目录,并命名为b,

其中:

  • a为第一个参数,b为第二个参数,expect的参数从0开始,a对应参数0,b对应参数1
  • foo为一个脚本内定义的变量
  • 等待出现password:字样后,输入密码123456并回车(\r)

expect安装使用

No Comments Linux

Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作,在远程管理方面发挥很大的作用。
spawn命令激活一个Unix程序来进行交互式的运行。 
send命令向进程发送字符串。
expect命令等待进程的某些字符串。 
expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作.

A. Tcl 安装 主页: http://www.tcl.tk下载地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml1.下载源码包wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gzwget http://nchc.dl.sourceforge.net/sourceforge/tcl/tk8.4.11-src.tar.gz2.解压缩源码包tar xfvz tcl8.4.11-src.tar.gztar xfvz tk8.4.11-src.tar.gz3.安装配置cd tcl8.4.11cd unix./configure –prefix=/usr/tcl –enable-sharedmakemake install安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中。暂时不要删除tcl源代码,因为expect的安装过程还需要用。B. expect 安装 (需Tcl的库)主页: http://expect.nist.gov/1.下载源码包wget http://expect.nist.gov/expect.tar.gz2.解压缩源码包tar xfvz expect.tar.gz3.安装配置cd expect-5.43./configure –prefix=/usr/expect –with-tcl=/usr/tcl/lib –with-tclinclude=/tcl源代码路径/genericmakemake install

使用示例:

#!/usr/bin/expect # 设置超时时间为 60 秒 set timeout 60 # 设置要登录的主机 IP 地址 set host 10.20.23.43 # 设置以什么名字的用户登录 set name root # 设置用户名的登录密码 set password 111111 #spawn 一个 ssh 登录进程 spawn ssh $host -l $name # 等待响应,第一次登录往往会提示是否永久保存 RSA 到本机的 know hosts 列表中;等到回答后,在提示输出密码;之后就直接提示输入密码 expect { “(yes/no)?” { send “yes\n” expect “Password:” send “$pasword\n” } “Password:” { send “$password\n” } } expect “*” # 下面测试是否登录到 $host send “uname\n” expect “Linux” #send_user “Now you can do some operation on this terminal\n” exit

郭学敏经典原创:Linux服务器部署系列

No Comments Linux

Linux服务器部署系列之一—Apache篇(上) http://g.51cto.com/yibi/34312 Linux服务器部署系列之一—Apache篇(下)http://g.51cto.com/yibi/34413 Linux服务器部署系列之二—MySQL篇            http://g.51cto.com/yibi/34500 Linux服务器部署系列之三—DNS篇             http://g.51cto.com/yibi/35340 Linux服务器部署系列之四—DHCP篇 http://g.51cto.com/yibi/37461 Linux服务器部署系列之五—Webmin篇http://g.51cto.com/yibi/37027 Linux服务器部署系列之六—远程管理篇 http://g.51cto.com/yibi/41021/ Linux服务器部署系列之七—OpenLDAP篇http://g.51cto.com/yibi/42751 Linux服务器部署系列之八—Sendmail篇http://g.51cto.com/yibi/45486

CentOS+Cacti安装配置

No Comments Linux

####################################
#Cacti Configuration
#Date: 2009-11-04
#Env: Centos 5.4 x86_64
#Author:

http://www.chengyongxu.com/blog/centoscacti%E5%9F%BA%E6%9C%AC%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/

####################################

一、准备工作

环境:Centos 5.4 x86_64
所需软件:

http
Php
Php-mysql
Php-snmp
Mysql
Perl-DBD-MySQL
Php-pdo
rrdtool
Net-snmp
Net-snmp-libs
Net-snmp-utils

#下载相关软件

cd /usr/local/src/
wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz

二、环境介绍
主监控机是Centos 5.4 x86_64
主监控机IP=10.0.0.52

三、安装配置
(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,不再赘述,本处方便起见用yum装了

yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL

(2)在主监控机上安装rrdtool,rrdtool依赖的包过多,所以选择增加源,然后用yum安装
#增加源

vi /etc/yum.repos.d/CentOS-Base.repo

#在文件末尾增加以下部分

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1yum install rrdtool

(3)配置snmp
vi /etc/snmp/snmp.conf
#将下边这行中的default

com2secnotConfigUser default public

#改为127.0.0.1

com2secnotConfigUser 127.0.0.1 public

#将下边这行中的systemview

access notConfigGroup “” any noauth exact systemview none none

#改为all

access notConfigGroup “” any noauth exact all none none

#将下边这行的注释“#”号去掉

#view all included .1 80

#重启snmpd服务

service snmpd restart

(4)安装cacti
#把解压后的包移动到你的相应的web目录

tar xvf cacti-0.8.7e.tar.gz
mv cacti-0.8.7e /var/www/html/cacti

(5)在数据库中建库、授权、导入数据库结构
#注意导入cacti.sql时该文件的路径
mysql -p

mysql> create database cacti;
mysql> grant all privileges on cacti.* to cacti@localhost identified by ‘cacti’ with grant option;
mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by ‘cacti’ with grant option;
mysql> use cacti;
mysql> source /var/www/html/cacti/cacti.sql;

#配置cacti以连接数据库

vi /var/www/html/cacti/include/config.php

(6)浏览器下配置
#用浏览器打开 http://10.0.0.52/cacti ,会显示 cacti的安装指南,设置好就不会再出现了。
#点击 “Next”
#选择“New Install”,点击“Next”
#指定 rrdtool、 php、 snmp 工具的 Binary 文件路径,确保所有的路径都是显示“ FOUND”,没有 “NOT FOUND”的,点击 Finish 完成安装。
#Cacti 默认的用户名与密码是 admin,输入用户名与密码,点击 login
#为了安全的原因,第一次登录成功后,cacti 会强制要求你更改一个新的 password ,输入新密码并确认密码,点击 save ,进入 cacti 控制台界面:
#点击 graphs ,查看cacti 监控本机的图表:

(7)增加入一个计划任务,使得 cacti 每五分钟生成一个监控图表。

crontab -e

#加入如下内容。注意poller.php的路径

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

#确保 /var/www/html/cacti/rra/目录存在
#如果暂时未看到图表,可以手工执行,生成图表

#php /var/www/html/cacti/poller.php > /dev/null 2>&1

(8)使用 Cacti 监控 Linux 主机
#在被监控的linux主机上安装net-snmp

yum install net-snmp
vi /etc/snmp/snmpd.conf

#更改以下部分

#将下边这行中的default

com2secnotConfigUser default public

#改为10.0.0.52(cacti)服务器的地址)

com2secnotConfigUser 10.0.0.52 public

#将下边这行中的systemview

access notConfigGroup “” any noauth exact systemview none none

#改为all

access notConfigGroup “” any noauth exact all none none

#将下边这行的注释“#”号去掉

#view all included .1 80service snmpd restart

(9)如果出现问题请注意一下snmp协议的版本,都用version 1是一种解决方法
如果都用version 1,需要把所有监控机和被监控机的snmpd.conf改一下
#vi /etc/snmp/snmpd.conf
#将下边这行

view systemview included .1.3.6.1.2.1.1

#改为

view systemview included .1.3.6.1.2.1