花生的花 花生的生
===========================================================
perldoc的使用小结
===========================================================
1.查看函数使用方法
perldoc -f map

2.查看模块使用方法
perldoc CGI

3.查看模块源代码
perldoc -m CGI


huasheng 发表于:2005.05.08 17:31 ::分类: ( 杂七杂八 ) ::阅读:(5464次) :: 评论 (0)
===========================================================
Mysql4安装Client does not support authentication protocol requested问题的解决(ZT)
===========================================================
今天在自己的虚拟机上安装mysql(4.1.11),准备随便玩玩perl,俺教程学习时发现如下报错:
DBI connect('imusic:localhost','imusic',...) failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client at db01.pl line 10
确认脚本中的用户名和密码无误后只要求助google,解决方法如下:
http://blog.csdn.net/eygle/archive/2004/12/18/221135.aspx

Mysql4安装Client does not support authentication protocol requested问题的解决

今天升级了一下Mysql数据库,结果出现了以下错误:
Client does not support authentication protocol requested by server; consider upgrading MySQL client

升级到4.1.7版:
[root@eygle gbook]# mysql -uroot -p -heygle
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 44 to server version: 4.1.7-max

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql>

查询了一下,在官方网站发现了解决方法:
http://dev.mysql.com/doc/mysql/en/Old_client.html

共有以下两种解决方法:

一:

mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

二:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;


使用第二种方法,解决了该问题。



huasheng 发表于:2005.04.20 12:16 ::分类: ( 初始分类 ) ::阅读:(1466次) :: 评论 (0)
===========================================================
一些sendmail.cf的配置
===========================================================

如果AllowBogusHELO and PrivacyOptions=needmailhelo都进行设置,需要提交正常的HELO命令,否则返回"503 5.0.0 Polite people say HELO first"错误
# Allow HELO SMTP command that does not include a host name
#O AllowBogusHELO=False
# privacy flags
O PrivacyOptions=authwarnings,novrfy,noexpn,restrictqrun,needmailhelo

当文件系统的空闲块少于MinFreeBlocks时,sendmail系统停止收邮件
# minimum number of free blocks on filesystem
O MinFreeBlocks=100

每封邮件的最大size
# maximum message size
O MaxMessageSize=100000

隔CheckpointInterval时间检查请求队列文件
# checkpoint queue runs after every N successful deliveries
#O CheckpointInterval=10

sendmail会拒绝超过MaxDaemonChildren的连接,只作用于incoming的连接
# maximum number of children we allow at one time
O MaxDaemonChildren=12

每秒钟允许incoming连接数,对于超过的连接不是拒绝只是延迟.这个值应该低于MaxDaemonChildren.
# maximum number of new connections per second
#O ConnectionRateThrottle=0


队列中邮件的超时值
O Timeout.queuereturn=2d

队列中邮件超过Timeout.queuewarn没有被正常投递,通知发件人邮件延迟
O Timeout.queuewarn=2h

为每个任务单独创建一个子进程
# deliver each queued job in a separate process?
#O ForkEachJob=False

更加详细的资料见下:
http://www.sendmail.org/~ca/email/doc8.8/op-sh-4.html


huasheng 发表于:2005.04.04 16:33 ::分类: ( 操作系统 ) ::阅读:(955次) :: 评论 (0)
===========================================================
一个解释window和软件进程的网页
===========================================================
http://www.liutilities.com/products/wintaskspro/processlibrary/
huasheng 发表于:2005.01.30 09:53 ::分类: ( 操作系统 ) ::阅读:(657次) :: 评论 (0)
===========================================================
找回2950交换机enable密码
===========================================================

1.用超级终端加console线登陆。

2.拔掉交换机的电源线,然后插上。

3.迅速按交换机面板的MODE键五秒钟。

4.当超级终端显示

C2900XL Boot Loader (C2900-HBOOT-M) Version 12.0(5)XU, RELEASE SOFTWARE (fc1)
Compiled Mon 03-Apr-00 17:20 by swati
 starting...
Base ethernet MAC Address: 00:04:dd:f3:22:80
Xmodem file system is available.

The system has been interrupted prior to initializing the
flash filesystem.  The following commands will initialize
the flash filesystem, and finish loading the operating
system software:

    flash_init
    load_helper
    boot

switch:

输入:flash_init


输入:load_helper

5.输入:more flash:config.text,配置文件中root就是enable密码。

line vty 0 4
 -- MORE --
            password root
 login
line vty 5 15
 password root
 login

6.输入:boot,引导交换机启动。

Initializing Flash...
flashfs[0]: 112 files, 2 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 3612672
flashfs[0]: Bytes used: 2781184
flashfs[0]: Bytes available: 831488
flashfs[0]: flashfs fsck took 8 seconds.
...done Initializing Flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4
switch:
huasheng 发表于:2005.01.05 11:43 ::分类: ( 初始分类 ) ::阅读:(916次) :: 评论 (0)
===========================================================
zone简单配置过程
===========================================================

Zone的类型
Global Zone
Solaris系统本身就是Global Zone。
# zoneadm list -v
  ID NAME             STATUS         PATH                         
   0 global           running        /                            
Non-Global Zone
在Solaris系统上创建的Zone就是Non-Global Zone。

Zone的创建
创建Zone存放的目录,该目录的权限必须为700
mkdir /export/zone
chmod 700 /export/zone
mkdir /opt/sfw

使用zonecfg命令配置Zone
bash-2.05b# zonecfg -z zone
zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone> create                              
zonecfg:zone> set zonepath = /export/zone
zonecfg:zone> set autoboot = true
zonecfg:zone> add inherit-pkg-dir                 
zonecfg:zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:zone:inherit-pkg-dir> end
zonecfg:zone> add net
zonecfg:zone:net> set physical = elxl0
zonecfg:zone:net> set address = 173.21.73.121
zonecfg:zone:net> end
zonecfg:zone> info
zonepath: /export/zone
autoboot: true
pool:
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
inherit-pkg-dir:
        dir: /opt/sfw
net:
        address: 173.21.73.121
        physical: elxl0
zonecfg:zone> verify
zonecfg:zone> commit
zonecfg:zone> exit
inherit-pkg-dir 表示zone共享Global Zone的软件包,默认共享四个目录:/lib /platform /sbin /usr,zone对这四个目录的权限是read only。

安装配置完成的zone
bash-2.05b# zoneadm -z zone install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <2436> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <888> packages on the zone.
大约等待二十分钟左右
Initialized <888> packages on zone.                               
Zone is initialized.
Installation of these packages generated warnings:
The file contains a log of the zone installation.

bash-2.05b# zoneadm list -vc
  ID NAME             STATUS         PATH                         
   0 global           running        /                            
   - zone             installed      /export/zone                 
Zone已经安装完成。

配置zone中的系统
启动zone
zoneadm -z zone boot
登陆zone console进行配置,配置跟solaris安装时一样,需要配置地区、时区、主机名、root密码等。
# zlogin -C zone
关闭zone
zoneadm -z zone halt


huasheng 发表于:2004.12.23 12:47 ::分类: ( 操作系统 ) ::阅读:(880次) :: 评论 (2)
===========================================================
Solaris 10的10大新变化
===========================================================

作者: Badcoffee
Email:
blog.oliver@gmail.com
2004年9月

原文出处: http://blog.csdn.net/yayong
版权所有: 转载时请务必以超链接形式标明文章原始出处、作者信息及本声明

Solaris 10 马上就要发布了,新的版本里到底包含了哪些值得期待的功能呢?

1. DTrace (Dynamic Tracing)

       中文叫动态跟踪系统, 是一种Debug和性能调优的工具。
       传统上的UNIX/Linux系统提供的netstat,vmstat,iostat,systat,fstat这些工具可以提供一些系统信息,但是缺乏per process, per user的能力,Dtrace通过在内核中超过25,000 个数据监测点使这成为了可能。
       DTrace 还允许编程人员通过观察用户/内核边界之间的控制流查看其应用程序和内核之间的交互活动。再加上Dtrace简单易学的D语言,使构建自定义程序以动态跟踪系统,并对有关操作系统和用户程序的任意问题提供即时、简明的回答成为可能。
       感兴趣的话看看下面的Dtrace的实例,领略一下它的威力吧:

               Top I/O consumers in 5 minutes or less
               DTrace for developers
               Demo'ing DTrace

      
2. N1 Grid containor
       中文叫N1网格容器,允许一个Solaris系统内划分多个分区,每个分别独立运行Solaris实例。
       相信大家对IBM的硬件分区技术也有所耳闻。而N1 Grid containor则是纯粹的软件实现。
       在一个机器上划分的多个分区的Solaris系统,彼此相互隔离,就好像同时拥有多个机器一样,使硬件得到最有效的利用。
       用过Vmware的大概应该更容易理解吧。

3. ZFS
       海量的日志文件系统,具有相当于现有文件系统160亿倍的容量。
       支持128位寻址空间,可以支持Zbyte级(1G个GB!)的文件系统。ZFS可以轻松管理跨区卷,自动在读写数据时校验错误。
       支持逻辑卷管理(LVM),逻辑卷的大小可以被认为没有限制,支持RAID的Mirror和Strip类似功能。
       也就是说,有了zfs,Veritas类似的卷管理统统不需要了。

4. Java Desktop System
      非常Cool的桌面, 比起Linux毫不逊色, 用过Linux版本的JDS的用户会吃惊的发现, Solaris 10也有了!
      下面是JDS的截图:

5. 框架式的系统服务管理
       熟悉Unix和Linux的用户都知道,系统服务的启动是依靠rc*.d 下的脚本来进行的,所有的服务都是顺序启动,而不管其中的依赖关系。察看系统已经启动的服务也只能用ps命令。
       Solaris 10不再用rc*.d 那样的脚本来做系统服务的管理, 而是把所有系统服务封装在一种ramework下,管理员可以通过专门的命令察看或者启动停止服务,对服务进行统一管理. 启动时, 会根据服务之间的依赖关系, 并行的启动服务(这点大概是学习Windows)。
       

6. 直接运行Linux二进制程序

       Linux的二进制程序可以在Solaris X86上直接运行。再也不用愁Solaris的桌面应用少了!
       Sun明确表示可以同Red Hat Enterprise Linux 3完全通用,但还没有对Novell的SuSE等其它企业的Linux发布说明。

7. 新64位Solaris操作系统
  
        AMD 64位CPU Opteron的推出,无疑已经判了Intel 安腾处理器的死刑。
        Sun已经推出1路和2路,而且即将推出4路基于Optern处理器的服务器,32位的Solaris已经可以运行在Optern上,64位的Solaris即将面世,64位计算能力将被充分发挥。
        希望Sun能否把握这一良机,在X86服务器市场占有一席之地。

8. Predictive Self Healing (预测性自愈)

       该技术会在服务器上建立一个内存的镜像缓冲,当服务器侦测到CPU, memory和I/O总线上的某一部件可能发生故障时,自动切换到另一个镜像,避免操作系统崩溃或丢失数据。
       这种技术大概需要硬件的支持才能实现,所以还只能应用在Sun的高端sparc服务器上,X86还不支持。
     

9. Xorg

       大名鼎鼎的Xorg, 相信很多人都不陌生,Solaris将集成Xorg,Xsun不再是你唯一的选择。
       届时,Solaris将支持更多的显卡,再X86上启动漂亮的JDS将和Linux一样容易。

10. Driver

       Solaris 10 版本发布时,来自Sun和第三方IHV的上百种新的硬件将追加到HCL(硬件兼容清单)中,在X86系统上安装Solaris将会更容易。
       访问Solaris OS HCL,即了解自己的硬件是否在Solaris上可用:
  
             www.sun.com/bigadmin/hcl


        此外,值得一提的是,Sun重新实现了全部TCP/IP网络协议栈,使得Solaris的TCP/IP性能得到极大的优化和提高。


        以上是值得期待的Solaris的最新变化,你可以从SUN公司的Blog(http://blog.sun.com)上得到所有最新消息。或者,到Sun的网站免费下载最新的Solaris 10版本,体验一下这些最新的功能。当然,有些功能也许正在开发中,想随时得到最新的版本可以去下载Solaris Express版本:
        http://wwws.sun.com/software/solaris/solaris-express/get.html



huasheng 发表于:2004.12.23 10:14 ::分类: ( 操作系统 ) ::阅读:(995次) :: 评论 (0)
===========================================================
Solaris操作环境系统日志
===========================================================

关于syslog的说明,我想这篇文档足已。
http://www.douzhe.com/docs/bbsjh/3/14671.html
SA-288读书笔记3

 
作者:科学球     发表时间:2002/11/05 05:30pm
 
第三章Solaris操作环境系统日志
syslog工具
syslog()函数通过内核传送信息,并且系统生效到syslogd守护进程。这依赖于设置文件/etc/syslog.conf。这个守护进程可以:
l将信息写入系统日志
l将信息写入系统控制台
l将信息发送到用户的列表
l将信息发送到在网络上的其他主机的syslogd

syslog最有价值的功能是帮助你控制系统日志。这可以帮助你决定哪个信息是被保存的,和信息将保存在哪里
书上有图在3-3,描述了syslogd的运做工程。

控制syslogd运做
在动作回应,或者在操作期间遭遇的情况中,许多进程可以在不同的重要级别上产生可编程的信息。

你可以通过修改/etc/syslog.conf来控制syslogd按照你的习惯去管理这些信息。通过这个设置文件,你可以告诉syslogd通过他们的资源或者他们的重要性并且指定一个目的地来进行分类。

设置/etc/syslog.conf文件
在/etc/syslog.conf中的一个设置条目包括两个部分的区域:selector和action

在selector区域包括一个事件和一个级别,facility.level。事件表现的是可以产生信息的系统进程的类别。级别是表示安全的或者重要的信息

action区域决定了往哪里传送信息。

比如,在/etc/syslog.conf文件中有下列条目,需要将所有事件的错误信息都传送到文件/var/adm/messages中。

*.err                           /var/adm/messages

*.err:是selector区域;*代表的是事件,.是分隔符,err是信息的级别。
/var/adm/messages:是action区域

警告:/etc/syslog.conf文件中的空白部分是用tab分开的。

Selector区域
Selector区域是使用分号在表中列出优先权:
Facility.level;facility.level

Facility是一个系统通过下面表显示中的定义的事件

Kern通过内核产生的信息
User通过用户进程产生的信息。这是一个不在文件中列出的默认优先权的信息。
Mail邮件系统
Daemon系统守护进程,例如in.ftpd和telnetd
Auth授权系统,包括login,su和getty
Syslogsyslogd信息产生中心
Lpr在线打印机交换系统lpr和lpc
News为USENET网络新闻系统保留的文件
UucpUNIX-to-UNIX拷贝系统;不使用syslog
Croncron和at工具,包括crontab,at和cron
Local0-7为本地使用保留的区域
Mark通过syslogd产生的时间标记信息
*所有事件,除了mark事件
注:可是使用*选择所有事件,但是不能使用*选择所有的级别

level是一个严格的信息。在下面的级别中,级别的能力是递减的
emerg没有任何理由而正常的广播到用户
alert即将被纠正,比如数据库崩溃
crit临界状态警告。例如硬件错误
err其他错误
warning警告信息
notice没有错误,但是需要指定
info情报信息
debug只有当调试程序时,正常使用的信息

none信息是只当在调试程序的时候使用的。当信息不从指定的事件传送到文件的时候,使用none信息。比如,一个selector是*.debug;mail.none传送所有信息,除了mail信息到选择的文件。

Action区域
Action区域定义了信息将被保存的地方。他可以是下面任何一种格式
l/filename
日志文件的绝对路径
l@host
你必须在主机名或者IP地址之前加一个@标志。信息会发送到远程主机的syslogd
luser1,user2
如果用户1和用户2登陆,就会收到信息
l*
所有登陆的用户,都会收到信息

/etc/syslog.conf文件
#ident "@(#)syslog.conf 1.5 98/12/14 SMI" /* SunOS 5.0 */
#
# Copyright (c) 1991-1998, by Sun Microsystems, Inc.
# All rights reserved
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (‘’) names
# that match m4 reserved words. Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.err;kern.notice;auth.notice /dev/sysmsg
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
*.emerg *
# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice ifdef(‘LOGHOST’, /var/log/authlog, @loghost)
mail.debug ifdef(‘LOGHOST’, /var/log/authlog, @loghost)
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef (‘LOGHOST’, ,
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert ‘root, operator’
user.emerg *
)

启动和停止syslogd
每次syslogd启动,都会读设置文件。每次系统启动,都会利用/etc/rc2.d/S74syslog来启动syslogd。

如果设置文件被更改了,你可以手动启动或者停止syslogd。使用命令:
# /etc/init.d/syslog start | stop

syslogd和m4宏处理器

syslogd,m4宏处理器和/etc/syslog.conf文件是互相作用的,在概念上,决定信息的正确去向。这些概念上的描述是:
1.sylogd运行m4
2.m4处理在/etc/syslog.conf中的ifdef语句
3.syslogd使用m4将路由信息输出到适当的位置
按最初的估计,syslogd守护进程从/etc/syslog.conf文件中返回信息日志路由信息。可是,syslogd不能直接读/etc/syslog.conf文件。作为代替,syslogd启动m4,为可以通过m4解释的ifdef语句解析/etc/syslog.conf文件

如果m4不能识别一行上任何m4命令,他通过输出返回给syslogd需要的2列值,即selector和action。然后将适当的目的用于路由信息。如果m4在/etc/syslog.conf文件中遇到一个ifdef语句,那么ifdef将会被计算出是true或者false,并且根据测试的输出产生相应的路由信息。

详细操作
你必须首先确定两个host1上的/etc/hosts文件
注:这些/etc/hosts文件样板可以被短暂的引用

范例A
192.9.200.1   hosts1   loghost
192.9.200.2   host2

范例B
192.9.200.1   host1
192.9.200.2   host2    loghost

你下一步必须决定两个m4命令的样板
1./usr/ccs/bin/m4  /etc/syslog.conf
2./usr/ccs/bin/m4 –D LOGHOST /etc/syslog.conf

第一阶段
当syslogd在系统启动的时候启动,syslogd通过/etc/hosts文件来检测IP地址与hostname的关系与IP地址与loghost之间的关系

在范例A,host1和loghost是共同的IP,192.9.200.1;因此syslogd运行第二个命令行,/usr/ccs/bin/m4 –D LOGHOST,并因此决定m4 LOGHOST值在分解/etc/syslog.conf期间的值为true。

在范例B,host1与IP地址192.9.200.1相关,而hosts2与loghost都与IP地址192.9.200.2相关;因此,syslogd运行第一个命令行,/usr/ccs/bin/m4 (没有 –D LOGHOST),并因此而决定m4 LOGHOST在分解/etc/syslog.conf文件期间的值为false。

第二阶段
在第二阶段,m4宏处理器解析/etc/syslog.conf文件。每个非注释行都被解析,m4搜索包含了ifdef语句的行。如果没有遇到包含ifdef的语句行,m4通过并返回给syslogd守护进程。

如果m4找到了一个包含有ifdef的语句行,就根据LOGHOST状态来设置成TRUE或者FALSE,并且m4通过syslogd输出。例如:
mail.debug                ifdef(‘LOGHOST’, /var/log/authlog, @loghost)

考虑,如果LOGHOST值在第一阶段为TRUE,那么m4处理器返回:
mail.debug               /var/log/authlog
如果LOGHOST值在第一阶段为FALSE,那么m4处理器返回:
mail.debug               @loghost
在任一情况中,输出在selector区域和action区域都有一个条目

第三阶段
在第二阶段,为/etc/syslog.conf文件中的每一行进行了解析,m4提示输出两个部分:一个selector区域和一个action区域。这个信息返回给syslogd,并且syslogd使用这个信息去路由消息到他们的正确的目的地。

一旦设置了,syslogd继续运行这个设置。

使用syslog来改变inetd
inetd是许多服务的服务器进程。Inetd在TCP(或则UDP)端口上侦听每个相关的在设置文件中列出的服务需求。当一个需求到达,inetd执行与服务相关的服务器程序。你可以使用syslogd改变inetd把TCP连接记入日志

inetd手册页摘录

下列inetd手册页显示只有daemon时间和notice消息级别是被支持的。
% man inetd

inetd启动文件

inetd使用-t选项可以跟踪TCP。你必须为inetd守护进程syslog消息使追踪选项生效。你在条目中添加-t选项,启动在/etc/init.d目录中的inetsvc脚本的inetd

使用类似下列的方法改变条目
# grep inetd /etc/init.d/inetsvc
/usr/sbin/inetd –s –t &
注:需要重起inet进程使新选项生效

/etc/syslog.conf文件设置syslogd来有选择性的分布的发送他;
# grep daemon.notice /etc/syslog.conf
*.err;kern.debug;daemon.notice;mail.crit         /var/adm/messages
在/etc/syslog.conf文件中的notice条目引起所有daemon的notice级别的消息被发送到/var/adm/messages文件中

/var/adm/messages文件必须存在,并且你必须停止并重新启动syslog守护进程

syslog日志条目的范例
你可以使用tail –f命令来实时监视syslog文件,/var/adm/messages。这保持文件是打开的,所以你可以通过syslog在这个文件中查看。
# tail –f /var/adm/messages
书上有个图,在3-17

logger实用程序
使用logger使用程序,你可以添加一行条目到系统的日志文件中。例如,你可以使用logger命令分开脚本

命令格式
logger [-i] [-f file] [-p priority] [-t tag] [message]

命令选项
l-f file
使用文件的内容来做日志的信息(文件必须存在)
l-i
每行都列出logger进程的进程ID
l-p priority
输入指定权限的信息
l-t tag
每行增加的日志都加上一个指定的标记
lmessage
在消息中,指定的命令中,通过空格符分开连接的串变量


我发现288比238难的多哦,而且章节都超长。。。

加一点东西:

/var/adm目录下的messages~messages.7文件的轮询管理由root用户cron中脚本完成。

10 3 * * 0   /usr/lib/newsyslog

 
 


huasheng 发表于:2004.11.24 14:16 ::分类: ( 操作系统 ) ::阅读:(1757次) :: 评论 (0)
===========================================================
syslog
===========================================================

22日在itpub上发了个syslog的帖子,bloomit解答的还真快,嘿嘿!

http://www.itpub.net/292104.html

有空整理一下syslog有关的东西,让自己加深记忆。


huasheng 发表于:2004.11.24 10:29 ::分类: ( 操作系统 ) ::阅读:(704次) :: 评论 (0)
===========================================================
Linux LVM
===========================================================

Linux LVM

 

 

目的:将220G的硬盘做成一个35G的卷。

 

步骤:

 

  1. 在硬盘上创建一个LVM分区。使用fdisk或者其它的分区工具来创建一个LVM分区。Linux LVM的分区类型为8e

# fdisk /dev/hdb

# fdisk /dev/hdd

 

  1. 初始化磁盘或磁盘分区:

# pvcreate /dev/hdb1

pvcreate -- physical volume "/dev/hdb1" successfully created

 

# pvcreate /dev/hdd1

pvcreate -- physical volume "/dev/hdd1" successfully created

 

  1. 创建卷组:

#vgcreate main_vlm /dev/hdb1 /dev/hdd1

vgcreate -- INFO: using default physical extent size 4 MB

vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte

vgcreate -- doing automatic backup of volume group "main_vlm"

vgcreate -- volume group "main_vlm" successfully created and activated

 

  1. 激活卷组:

#vgchange -a y main_vlm

vgchange -- volume group "main_vlm" already active

 

  1. 删除卷组:

#vgchange -a n main_vlm       去激活

#vgremove main_vlm            删除

 

  1. 添加一个物理卷至卷组

 

#vgextend main_vlm /dev/hdb2

 

  1. 从卷组中移去一个物理卷

#vgreduce main_vlm /dev/hdb2

 

  1. 查看所建立卷组的细节信息:

#vgdisplay

--- Volume group ---

VG Name               main_vlm

VG Access             read/write

VG Status             available/resizable

VG #                  0

MAX LV                256

Cur LV                0

Open LV               0

MAX LV Size           255.99 GB

Max PV                256

Cur PV                2

Act PV                2

VG Size               37.23 GB

PE Size               4 MB

Total PE              9532

Alloc PE / Size       0 / 0

Free  PE / Size       9532 / 37.23 GB

VG UUID               GX1KHB-YqZM-3DKe-2z9q-h4Kh-eS3g-2rcq9u

 

  1. 创建一个逻辑卷:

# lvcreate -L35G -nlogvol1 main_vlm

lvcreate -- doing automatic backup of "main_vlm"

lvcreate -- logical volume "/dev/main_vlm/logvol1" successfully created

 

  1. 移去一个逻辑卷:

#lvremove /dev/main_vlm/logvol1

 

  1. 减小逻辑卷大小的方法:

# lvreduce -L-5G /dev/main_vlm/logvol1

lvreduce -- WARNING: reducing active and open logical volume to 29.99 GB

lvreduce -- THIS MAY DESTROY YOUR DATA (filesystem etc.)

lvreduce -- do you really want to reduce "/dev/main_vlm/logvol1"? [y/n]: y

lvreduce -- doing automatic backup of volume group "main_vlm"

lvreduce -- logical volume "/dev/main_vlm/logvol1" successfully reduced

 

  1. 增加逻辑卷大小的方法:

#lvextend -L+5G /dev/main_vlm/logvol1

lvextend -- extending logical volume "/dev/main_vlm/logvol1" to 34.99 GB

lvextend -- doing automatic backup of volume group "main_vlm"

lvextend -- logical volume "/dev/main_vlm/logvol1" successfully extended

 

  1. 创建文件系统:

[root@labgw /]# mke2fs /dev/main_vlm/logvol1

mke2fs 1.32 (09-Nov-2002)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

4587520 inodes, 9175040 blocks

458752 blocks (5.00%) reserved for the super user

First data block=0

280 block groups

32768 blocks per group, 32768 fragments per group

16384 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624

 

Writing inode tables: done                           

Writing superblocks and filesystem accounting information:

 

  1. 使用mount命令来加载新创建的文件系统:

#mount /dev/main_vlm/logvol1 /mnt/movie/

 

  1. /etc/fstab中加入以下入口,在启动时加载文件系统:

#vi /etc/fstab

/dev/main_lvm/logvol1   /mnt/movie              ext3    defaults        1 1

 

 

 


huasheng 发表于:2004.11.22 17:10 ::分类: ( 操作系统 ) ::阅读:(910次) :: 评论 (0)
===========================================================
RFC2516抓包分析
===========================================================
粗略的看了一遍,一会有空把抓包分析贴出来,嘿嘿。
huasheng 发表于:2004.11.22 14:22 ::分类: ( 初始分类 ) ::阅读:(643次) :: 评论 (0)
===========================================================
RFC2516 A Method for Transmitting PPP Over Ethernet (PPPoE)
===========================================================
组织:中国互动出版网(http://www.china-pub.com/
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:Hlp(hlp,huangliuqi@hotmail.com)
译文发布时间:2001-4-9
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。

Network Working Group                                        L. Mamakos
Request for Comments: 2516                                      K. Lidl
Category: Informational                                       J. Evarts
                                               UUNET Technologies, Inc.
                                                              D. Carrel
                                                              D. Simone
                                                 RedBack Networks, Inc.
                                                             R. Wheeler
                                                       RouterWare, Inc.
                                                          February 1999

在以太网上传输PPP的方法(PPPoE)
(RFC2516  A Method for Transmitting PPP Over Ethernet (PPPoE))

本备忘录状态
   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.
版权声明
   Copyright (C) The Internet Society (1999).  All Rights Reserved.
摘要
   点到点协议(PPP,参考文献[1])提供在点到点连路上传送多协议数据报的标准方法。
   本文档描述在以太网上建立PPP会话以及封装PPP数据报的方法。

可行性
   本说明书试图提供PPP所定义的工具,如链路控制协议(Link Control Protocol,LCP),网络层控制协议(Network-layer  Control Protocols, NCP),认证以及其它机制。这些功能要求在通信双方之间存在点到点的关系,而不是在以太网和其他多访问环境中所出现的多点关系。
   本规范可用于同一个以太网上的多个主机通过一个或多个跨接(桥接)的调制解调器向多个目的主机开放其PPP会话。主要用于宽带远程访问技术,即访问服务的提供者希望通过提供一个桥接的拓扑结构从而保持PPP会话摘要。
   本文档描述的PPPoE是RedBack Networks, RouterWare, UUNET 及其它厂商所采用的在以太网上封装PPP的方法。

目录
1. 简介    3
2. 约定    3
3. 协议总述    3
4. 净载数据    4
5. DISCOVERY阶段    5
5.1 PPPoE Active Discovery Initiation数据包(PADI)    5
5.2 The PPPoE Active Discovery Offer 数据包(PADO)    5
5.3 The PPPoE Active Discovery Request 数据包(PADR)    6
5.4 The PPPoE Active Discovery Session-confirmation 数据包(PADS)    6
5.5 THE PPPOE ACTIVE DISCOVERY TERMINATE数据包(PADT)    6
6. PPP会话阶段    6
7. LCP方面的考虑    7
8. 其它方面的考虑    7
9. 安全方面的考虑    7
10. 致谢    8
11. 参考文献    8
附录 A    8
附录B    9
作者地址    10
完整的版权通告    11

1. 简介
    现代访问技术有几个互相冲突的设计目标。人们想通过相同的以顾客为前提的访问设备(接入设备)来连接到远程站点上的多个主机,同时提供与拨号上网(使用PPP)类似的访问控制和支付功能。在很多访问技术(接入技术)中,把多个主机连接到以顾客为前提的访问设备(接入设备)的最经济的方法就是通过以太网。另外,还想尽量保持设备的低成本同时要求不改变或很少改变其配置。
    以太网上的PPP(PPPoE)提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。使用该模型,每一个主机使用自己的PPP协议栈,呈现给用户的还是熟悉的用户接口,访问控制、支付以及服务类型(type of service)都能基于每一个用户,而不是基于站点。
    为了提供以太网上的点到点连接,每一个PPP会话必须知道远程通信对方的以太网地址,并建立一个唯一的会话标识符。PPPoE包含一个(以太网地址)发现协议来提供这个功能。
2. 约定
    本文当中出现的关键词必须(MUST),不允许(MUST NOT),必需(REQUIRED),应该(SHALL),不应(SHALL NOT),应该(SHOULD),不应该(SHOULD NOT),推荐(RECOMMENDED),可以(可能,MAY),以及可选(OPTIONAL),按参考文献[2]解释。中译版本将对这些关键词加粗并加上红色突出显示。
3. 协议总述
    PPPoE分为两个阶段,即Discovery(地址发现)阶段和PPP会话阶段。当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确定对方的以太网MAC地址并建立起一个PPPoE会话标识符SESSION_ID。虽然PPP定义的是端到端的对等关系,Discovery却是天生的一种客户端-服务器关系。在Discovery的过程中,主机(作为客户端)发现某个访问集中器(Access Concentrator,作为服务器),根据网络的拓扑结构,可能主机能够跟不止一个的访问集中器通信 。Discovery阶段允许主机发现所有的访问集中器并从中选择一个。当Discovery阶段成功完成之后,主机和访问集中器两者都具备了用于在以太网上建立点到点连接所需的所有信息。
    Discovery阶段保持无状态(stateless)直到建立起一个PPP会话。一旦PPP会话建立,主机和访问集中器两者都必须为一个PPP虚拟接口分配资源。
4. 净载数据
    这里定义了下面所示的数据包格式。payload的内容将在Discovery和PPP的章节中描述。
  
以太网的帧格式如下所示:

                                       1
                   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |       DESTINATION_ADDR        |
                  |          (6 octets)           |
                  |                               |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |         SOURCE_ADDR           |
                  |          (6 octets)           |
                  |                               |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |    ETHER_TYPE  (2 octets)     |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  ~                               ~
                  ~           payload             ~
                  ~                               ~
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |           CHECKSUM            |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    DESTINATION_ADDR域是一个以太网单播目的地址或者以太网广播地址(0xffffffff)。对于Discovery数据包来说,该域的值是在Descovery章节中定义的单播或者多播地址。对于PPP会话流量来说,该域必须是Descovery阶段已确定的通信对方的单播地址。
    SOURCE_ADDR域必须包含源设备的以太网MAC地址。
    ETHER_TYPE设置为0x8863(Discovery阶段)或者0x8864(PPP会话阶段)。

PPPoE的以太网payload如下所示:

                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  VER  | TYPE  |      CODE     |          SESSION_ID           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            LENGTH             |           payload             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    VER域为4位,PPPoE规范的本版本必须设置为0x1。
    TYPE域为4位,PPPoE规范的本版本必须设置为0x1。
    CODE域为8位,其定义在后面的Discovery和PPP会话章节分别指定。
    SESSION_ID域为16位,是一个网络字节序的无符号值。其值在后面Discovery数据包中定义。对一个给定的PPP会话来说该值是一个固定值,并且与以太网SOURCE_ADDR和DESTINATION_ADDR一起实际地定义了一个PPP会话。值0xffff为将来的使用保留,不允许使用。
    LENGTH域为16位。该值(网络字节序)表明了PPPoE 的payload长度。不包括以太网头部和PPPoE头部的长度。

5. Discovery阶段
    Discovery阶段由4个步骤组成。完成之后通信双方都知道了PPPoE SESSION_ID以及对方以太网地址,它们共同定义了唯一的PPPoE会话。这些步骤包括:主机广播一个(会话)发起数据包(以请求建立链路),一个或多个访问集中器发送提供(服务)数据包,主机发送单播会话请求数据包以及选中的访问集中器发送确认数据包。当主机接收到该确认数据包后,它就可以进入PPP会话阶段。访问集中器发送确认数据包后,它就可以进入到PPP会话阶段。

    Discovery阶段所有的以太网帧的ETHER_TYPE域都设置为0x8863。

PPPoE的payload部分包含0个或多个TAG。一个TAG是一个 TLV(type-length-value)结构,定义如下:
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          TAG_TYPE             |        TAG_LENGTH             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          TAG_VALUE ...                                        ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    TAG_TYPE域为16位值(网络字节序),附录A列出了各种TAG_TYPE和TAG_VALUE。
    TAG_LENGTH域为16位,是无符号值(网络字节序),表明TAG_VALUE的字节数。
    如果收到的discovery数据包中包含未知的TAG_TYPE,则必须忽略掉该TAG,除非本文档特别指出。这样规定是为了在增加新的TAG时保持向后兼容。如果增加强制使用的TAG,则版本号(version)将会提高。

    附录B中有一些Discovery数据包的例子。

5.1 PPPoE Active Discovery Initiation数据包(PADI)
    主机发送DESTINATION_ADDR 为广播地址的PADI数据包,CODE域设置为0x09,SESSION_ID域必须设置为0x0000。
    PADI数据包必须包含且仅包含一个TAG_TYPE为Service-Name的TAG,以表明主机请求的服务,以及任意数目的其它类型的TAG。整个PADI数据包(包括PPPoE头部)不允许超过1484个字节,以留足空间让中继代理(向数据包中)增加类型为Relay-Session-Id的TAG。
5.2 The PPPoE Active Discovery Offer 数据包(PADO)
    如果访问集中器能够为收到的PADI请求提供服务,它将通过发送一个PADO数据包来做出应答。DESTINATION_ADDR为发送PADI的主机的单播地址,CODE域为0x07,SESSION_ID域必须设置为0x0000。
    PADO数据包必须包含一个类型为AC-Name的TAG(包含了访问集中器的名字),与PADI中相同的Service-Name,以及任意数目的类型为Service-Name的TAG表明访问集中器提供的其它服务。如果访问集中器不能为PADI提供服务,则不允许用PADO作响应。
5.3 The PPPoE Active Discovery Request 数据包(PADR)
   由于PADI是广播的,主机可能收到不止一个PADO,它将审查接收到的所有PADO并从中选择一个。可以根据其中的AC-Name或PADO所提供的服务来作出选择。然后主机向选中的访问集中器发送一个PADR数据包。其中,DESTINATION_ADDR域设置为发送PADO的访问集中器的单播地址,CODE域设置为0x19,SESSION_ID必须设置为0x0000。
   PADR必须包含且仅包含一个TAG_TYPE为Service-Name的TAG,表明主机请求的服务,以及任意数目其他类型的TAG。
5.4 The PPPoE Active Discovery Session-confirmation 数据包(PADS)
   当访问集中器收到一个PADR数据包,它就准备开始一个PPP会话。它为PPPoE会话创建一个唯一的SESSION_ID并用一个PADS数据包来给主机作出响应。DESTINATION_ADDR域为发送PADR数据包的主机的单播以太网地址,CODE域设置为0x65,SESSION_ID必须设置为所创建好的PPPoE会话标识符。
   PADS数据包包含且仅包含一个TAG_TYPE为Service-Name的TAG,表明访问集中器已经接受的该PPPoE会话的服务类型,以及任意数目的其他类型的TAG。
   如果访问集中器不喜欢PADR中的Service-Name,那么它必须用一个带有类型为Service-Name-Error的TAG(以及任意数目的其它TAG类型)的PADS来作出应答。这种情况下,SESSION_ID必须设置为0x0000。
5.5 The PPPoE Active Discovery Terminate数据包(PADT)
   这种数据包可以在会话建立以后的任意时刻发送,表明PPPoE会话已经终止。它可以由主机或访问集中器发送,DESTINATION_ADDR域为单播以太网地址,CODE域设置为0xa7,SESSION_ID必须表明终止的会话,这种数据包不需要任何TAG。
   当收到PADT以后,就不允许再使用该会话发送PPP流量了。在发送或接收到PADT后,即使是常规的PPP结束数据包也不允许发送。PPP通信双方应该使用PPP协议自身来结束PPPoE会话,但在无法使用PPP时可以使用PADT。
6. PPP会话阶段
   一旦PPPoE会话开始,PPP数据就像其它PPP封装一样发送。所有的以太网数据包都是单播的。ETHER_TYPE域设置为0x8864。PPPoE的CODE必须设置为0x00。PPPoE会话的SESSION_ID不允许发生改变,必须是Discovery阶段所指定的值。PPPoE的payload包含一个PPP帧,帧始于PPP Protocol-ID。

    附录B中给出了数据包的一个实例。
7. LCP方面的考虑
    推荐使用Magic Number LCP配置选项,不推荐使用协议域压缩( Protocol Field Compression,PFC) 选项。不允许实现请求使用下面的任何一个选项,对此必须作出拒绝:

      Field Check Sequence (FCS) Alternatives,
      Address-and-Control-Field-Compression (ACFC),
      Asynchronous-Control-Character-Map (ACCM)
    协商后(PPPoE)的最大接收单元(MRU)不允许超过1492。因为以太网的最大净载为1500字节,而PPPoE头部为6个字节,PPP Protocol-ID为2个字节,所以PPP的MTU不允许超过1492。

    推荐访问集中器不时向主机发送回声请求(Echo-Request)数据包,以确定会话的状态。否则如果主机在没有发送结束请求(Terminate-Request)数据包的情况下终止会话,则访问集中器将无法得知该会话已经“死去”。
    当LCP结束的时候,主机和访问集中器必须停止使用该PPPoE会话。如果主机希望开始另一个PPP会话,则它必须重新进入PPPoE Discoverey阶段。
8. 其它方面的考虑
    如果主机在一段指定时间内没有收到PADO数据包,它应该重发其PADI数据包并把等待的间隔加倍。按所期望的次数重复这个动作。主机在等待接收PADS数据包时,应该采用类似的定时机制,只是主机重新发送的是PADR数据包。在重发指定次数后(还没有收到PADO),主机应该重新发送PADI。
    本文档中的ETHER_TYPE(0x8863,0x8864)已经被IEEE指定专用于以太网上的PPP(PPPoE),使用这两个值和PPPoE VER(版本)域将唯一标识本协议。

    本文档始终使用UTF-8(参考文献[5])而不是ASCII。UTF-8支持所有ASCII字符集同时允许国际字符集。参见参考文献[5]。
9. 安全方面的考虑
    为了防止拒绝服务攻击(Denial of Service,简称DOS),访问集中器可以使用类型为AC-Cookie的TAG。访问集中器应该能够根据PADR的SOURCE_ADDR来重新产生具有唯一性的TAG_VALUE。使用这种方法,访问集中器可以确保PADI的SOURCE_ADDR确实是可到达的,并对该地址的并行会话数进行限制。使用什么样的算法并没有指定,留给实现细节自己选择。对主机MAC地址使用HMAC(参考文献[3])就是一个例子,(在进行HMAC密码散列时)使用的是仅有访问集中器知道的密码。虽然AC-Cookie对防止某些DOS有用,但它不能防止所有的DOS攻击,访问集中器可以使用其它的方法来保护。
    很多访问集中器不希望提供信息表明为未认证实体提供什么服务。在这种情况下,访问集中器应该使用下面两种策略之一:它应该根据请求中的Service-Name标签不拒绝该请求,并返回收到的TAG_VALUE;或者应该仅接受带有TAG_LENGTH为0(表明任意服务)的Service-Name标签的请求。推荐使用前一种方案。
10. 致谢
    本文档建立在几个论坛所讨论概念的基础上,包括ADSL论坛。还从RFC 1661, RFC 1662以及RFC 2364中借用了很多内容。
11. 参考文献
   [1] Simpson, W., Editor, “点到点协议(PPP)”, STD 51,   RFC 1661, July 1994
   [2] Bradner, S., “RFC中表明条件级别的关键词”, BCP 14, RFC 2119, March 1997.
   [3] Krawczyk, H., Bellare, M. and R. Canetti, “HMAC:消息认证的密钥散列”, RFC2104, February 1998.
   [4] Reynolds, J. and J. Postel, “指定值”, STD 2, RFC 1700,  October 1994.  参见: http://www.iana.org/numbers.html
   [5] Yergeau, F., “UTF-8,ISO 10646的一种转换”, RFC 2279, January 1998.
附录 A
    TAG_TYPE和TAG_VALUE

    0x0000 End-Of-List
    该TAG表明表中没有其它TAG了。该TAG的TAG_LENGTH必须总是0。不要求使用该标签,存在是为了向后兼容。
  
    0x0101 Service-Name
    该TAG表明后面紧跟的是服务的名称。TAG_VALUE是不以NULL结束的UTF-8字符串。当TAG_LENGTH为0时,该TAG用于表明接受任何服务。使用Service-Name标签的例子是表明ISP(Internet服务提供商)或者一类服务或者服务的质量。
  
    0x0102 AC-Name
    该TAG表明后面紧跟的字符串唯一地表示了某个特定的访问集中器。它可以是商标、型号以及序列号等信息的集合,或者该访问集中器MAC地址的一个简单的UTF-8表示。它不以NULL来结束。
  
    0x0103 Host-Uniq
    该TAG由主机用于把访问集中器的响应(PADO或者PADS)与主机的某个唯一特定的请求联系起来。TAG_VALUE是主机选择的长度和值为任意的二进制数据。它不能由访问集中器解释。主机可以在PADI或者PADR中包含一个Host-Uniq标签。如果访问集中器收到了该标签,它必须在对应的PADO或者PADS中不加改变的包含该标签。
  
    0x0104 AC-Cookie
    该TAG由访问集中器用于防止拒绝服务攻击(见“安全方面的考虑”)。访问集中器可以在PADO数据包中包含该TAG。如果主机收到了该标签,它必须在接下来的PADR中不加改变的包含该标签。TAG_VALUE I是长度和值任意的二进制数据,不能由主机解释。
  
    0x0105 Vendor-Specific
    该TAG用来传送厂商自定义的信息。TAG_VALUE的头4个字节包含了厂商的识别码 ,其余字节尚未定义。厂商识别码的高字节为0,低3个字节为网络字节序的厂商的SMI网络管理专用企业码,如“定义值RFC”(参考文献[4])中定义的那样。
    不推荐使用该TAG。为了确保互操作性,实现可以悄悄的忽略Vendor-Specific TAG。
  
    0x0110 Relay-Session-Id
    该TAG可由中继流量的中间代理加入到Discovery数据包中。TAG_VALUE对主机和访问集中器都是晦涩难懂的(paque)。如果主机或访问集中器收到该TAG,则它们必须在所有的Discovery数据包中包含该TAG以作为响应。所有的PADI数据包必须保证足够空间来加入TAG_VALUE长度为12字节的Relay-Session-Id标签。
    如果Discovery数据包中已经包含一个Relay-Session-Id标签,则不允许再加入该标签。这种情况下,中间代理应该使用该现有的Relay-Session-Id标签。如果它不能使用现有的标签,或者没有足够空间来增加一个Relay- Session-Id标签,那么它应该向发送者返回一个Generic-Error标签。
  
    0x0201 Service-Name-Error
    该TAG(典型的有一个长度为零的数据部分)表明了由于某种原因,没有理睬所请求的Service-Name。如果有数据部分,并且数据部分的头一个字节非0,那么它必须是一个可打印的UTF-8字符串,解释请求被拒绝的原因。该字符串可以不以NULL结束。
  
    0x0202 AC-System-Error
    该TAG表明了访问集中器在处理主机请求时出现了某个错误。(例如没有足够资源来创建一个虚拟电路。PADS数据包中可以包含该标签。
    如果有数据,并且数据的第一个字节不为0,那么(数据)必须是一个可打印的UTF-8 字符串,该字符串解释了错误的性质。该字符串可以不以NULL结束。
    0x0203 Generic-Error
    该TAG表明发生了一个错误。当发生一个不可恢复的错误并且没有其它合适的TAG时,它可被加到PADO, PADR或PADS数据包中。如果出现数据部分,那么数据必须是一个UTF-8字符串,解释错误的性质。该字符串不允许以NULL结束。
 

附录B
    下面是数据包的几个例子:
    PADI数据包:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         0xffffffff                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           0xffff              |        Host_mac_addr          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Host_mac_addr (cont)                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    ETHER_TYPE = 0x8863        | v = 1 | t = 1 |  CODE = 0x09  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     SESSION_ID = 0x0000       |      LENGTH = 0x0004          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      TAG_TYPE = 0x0101        |    TAG_LENGTH = 0x0000        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    PADO数据包:

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Host_mac_addr                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Host_mac_addr (cont)     | Access_Concentrator_mac_addr  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Access_Concentrator_mac_addr (cont)               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    ETHER_TYPE = 0x8863        | v = 1 | t = 1 |  CODE = 0x07  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     SESSION_ID = 0x0000       |      LENGTH = 0x0020          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      TAG_TYPE = 0x0101        |    TAG_LENGTH = 0x0000        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      TAG_TYPE = 0x0102        |    TAG_LENGTH = 0x0018        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x47      |     0x6f      |     0x20      |     0x52      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x65      |     0x64      |     0x42      |     0x61      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x63      |     0x6b      |     0x20      |     0x2d      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x20      |     0x65      |     0x73      |     0x68      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x73      |     0x68      |     0x65      |     0x73      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     0x68      |     0x6f      |     0x6f      |     0x74      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


    PPP LCP数据包:显示了PPP protocol的值(0xc021),但是PPP的净载数据留给读者。这是一个从主机发给访问集中器的数据包。
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Access_Concentrator_mac_addr                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Access_Concentrator_mac_addr(c)|        Host_mac_addr          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Host_mac_addr (cont)                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    ETHER_TYPE = 0x8864        | v = 1 | t = 1 |  CODE = 0x00  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     SESSION_ID = 0x1234       |      LENGTH = 0x????          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    PPP PROTOCOL = 0xc021      |        PPP payload            ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

作者地址
   Louis Mamakos
   UUNET Technologies, Inc.
   3060 Williams Drive
   Fairfax, VA  22031-4648
   United States of America
   EMail: louie@uu.net

   Kurt Lidl
   UUNET Technologies, Inc.
   3060 Williams Drive
   Fairfax, VA  22031-4648
   United States of America
   EMail: lidl@uu.net

   Jeff Evarts
   UUNET Technologies, Inc.
   3060 Williams Drive
   Fairfax, VA  22031-4648
   United States of America
   EMail: jde@uu.net

   David Carrel
   RedBack Networks, Inc.
   1389 Moffett Park Drive
   Sunnyvale, CA  94089-1134
   United States of America
   EMail: carrel@RedBack.net

   Dan Simone
   RedBack Networks, Inc.
   1389 Moffett Park Drive
   Sunnyvale, CA  94089-1134
   United States of America
   EMail:dan@RedBack.net

   Ross Wheeler
   RouterWare, Inc.
   3961 MacArthur Blvd., Suite 212
   Newport Beach, CA  92660
   United States of America
   EMail: ross@routerware.com
完整的版权通告
   Copyright (C) The Internet Society (1999).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

RFC2516  A Method for Transmitting PPP Over Ethernet (PPPoE)

huasheng 发表于:2004.11.22 14:18 ::分类: ( 协议分析 ) ::阅读:(3028次) :: 评论 (1)
===========================================================
终于有自己的blog了
===========================================================

在itpub潜水也有2年多了,由于不是专职负责oracle技术支持所以水平较次,每当遇到数据库“咯屁”的时候幸好都能在itpub上找到解决方法(万幸啊)。

这几天在水区灌了些,终于有了自己的blog,可以随意涂鸦了,嘿嘿嘿。


huasheng 发表于:2004.11.22 09:57 ::分类: ( 初始分类 ) ::阅读:(517次) :: 评论 (0)
===========================================================
恭喜!您的Blog已经建立。
===========================================================
您已经成功注册ITPUB Blog帐号。请进入http://blog.itpub.net/admin.php管理您的Blog站点。建议先修改Blog的名称并建立文档分类,系统已经默认建立了【初始分类】。如果您的登陆ID包含中文字符,请记录您现在的地址。如果您的登陆ID里未包含任何中文字符,还可以使用“http://blog.itpub.net/您的ID”这种链接形式访问。登陆密码与itpub论坛帐号的密码相同。如有问题请在斑竹区发贴。谢谢。
huasheng 发表于:2004.11.22 09:49 ::分类: ( 初始分类 ) ::阅读:(358次) :: 评论 (0)
自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
博客统计...
网站链接...