Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

ip命令手册(一)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  ip的所有操作都是原子操作。例如,如果ip执行失败,它不会系统的任何东西,ip link command例外,它会修改某些设备参数。

  我们无法列出所有的错误信息,尤其是语法错误。不过,错误信息的意思都非常明确。下面,我们列举一些经常出现的错误信息:

  • 内核不支持netlink(netlink用于在内核模块和用户之间传递信息),会出现以下错误信息:
      Cannot open netlink socket: Invalid value  
      
  • 内核不支持RTNETLINK,会出现以下错误信息:
      Cannot talk to rtnetlink: Connect refused
      Cannot send dump request: Connect refused  
      
  • 如果在编译内核时没有配置CONFIG_IP_MULTIPLE_TABLES选项。在使用ip规则时会出现和下面的信息类似的错误信息:
      kuznet@kaise $ ip rule list
      RTNETLINK error: Invalid argument
      dump terminated
      
  • 4.ip link--配置网络设备

    对象 link由网络设备,对应的命令显示以及设备的状态变化组成。
    命令 set和show(或者list)

    4.1.ip link set--改变设备的属性

  • 缩写:set、s

  • 参数

    dev NAME(default) 指定进行操作的网络设备
    up/down 起动/关闭设备。
    例如:ip link set dev eth0 up
    arp on/off 改变网络设备的NOARP选项。
    如果设备处于UP状态,不允许进行这个操作。不过,内核和ip都不会对在这种情况下的这个操作进行检查。在设备处于运行状态下改变这个选项会造成无法预料的后果。
    multicast on/off 改变网络设备的MULTICAST选项。
    dynamic on/off 改变网络设备的DYNAMIC选项。
    name NAME 把设备的名字改为NAME(例如:eth0)。如果设备处于运行状态或者已经配置了地址,建议不要进行这个操作。
    txqueuelen NUMBER或者txqlen NUMBER 改变设备传输队列的长度。
    例如:ip link set dev eth0 txqueuelen 100
    mtu NUMBER 改变网络设备MTU(最大传输单元)的值。
    例如:ip link set dev eth0 mtu 1500
    address LLADDRESS 修改网络设备的MAC地址。
    例如:ip link set dev eth0 address 00:01:4f:00:15:f1
    broadcat LLADDRESS或者brd LLADDRESS 修改数据链路层广播地址。
    注意:对于大多数的网络设备(例如:以太网),修改链路层广播地址会对网络造成破坏。因此,如果对此没有很深的理解,最好不要使用这个操作。
    peer LLADDRESS 当使用点对点连接时,使用这个操作可以修改对端的数据链路层地址。

      注意:ip不能修改PROMISC或者ALLMULTI选项。这两个选项已经比较陈旧,而且也不应该随便修改。

      注意:如果同时修改多个参数,任何一个修改失败,ip都会立即取消操作。这种情况可能使系统进入无法预料的状态。为了避免出现这种情况,尽量不要使用ip link set同时修改多个参数,例如:ip link set dev eth0 mtu 1500 txqueuelen 100。

    4.2.ip link show--显示设备属性

  • 缩写:show、list、lst、sh、ls、l

  • 参数

    dev NAME(default) NAME指定网络设备名称,例如:eth0。如果省略了这个参数,所有的设备属性就都会被列出。
    up 只显示处于活动状态网络接口的信息。

  • 输出格式

    kuznet@alisa:~ $ ip link ls eth0
    3: eth0:  mtu 1500 qdisc cbq qlen 100
        link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff:
    
    kuznet@alisa:~ $ ip link ls sit0
    5: sit0@NOME:  mtu 1480 qdisc noqueue
        link/sit 0.0.0.0 brd 0.0.0.0
    
    kuznet@alisa:~ $ ip link ls dummy
    2: dummy:  mtu 1500 qdisc noop
        link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    kuznet@alisa:~ $ 
    

      在显示的信息中,每个引号之前的数字是一个接口索引,用于识别网络接口。这个数字后面是网络接口的名字(例如:eth0、dummy等),它也和网络接口一一对应。不过,在某些情况下,例如:驱动模块被卸载,对应的接口名就会从列表中消失,而其它新创建的接口就会使用相同的名字。系统管理员可以ip link set name修改接口的名字。

      接口名可以是别的,或者是@NONE。这意味着这个设备被绑定到其它的设备,例如数据包被发送到这个设备,由这个设备封装,并从master设备发出。如果设备名字是NONE,就表示master设备是未知的。

      接着,我们看到的是mtu(Maximal Transfer Unit,最大传输单元)。它决定这个接口单个数据包能够传输多少数据。

      qdisc(queuing discipline)显示这个网络接口使用的排队算法。noqueue表示不对数据包进行排队;noop表示这个网络接口出于黑洞模式,也就是所有进入本网络设备的数据会直接被丢弃。qlen是网络接口传输队列的默认长度。

      网络接口可以有如下标志:

     如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



    上一篇:RedHat7.2下Apache与Tomcat4整合实例   下一篇:使用reiserfs格式安装RH8

    文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
  • 更多相关文章
    Power by linux-cn.com 粤ICP备05006655号