免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1065 | 回复: 0
打印 上一主题 下一主题

ip命令手册(四) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-07 08:49 |只看该作者 |倒序浏览
摘要 这一部分是关于多播路由和通道的内容,以及策略路由的一些相关内容。
By
[email=nixeon%20at%20263%20dot%20net]nixe0n[/email]
10.ip mroute -- 多播路由缓存管理
10.1.缩写
  mroute、mr
10.2.对象
  这个命令的操作对象是多播路由缓存条目,这个缓存是由一个用户空间的多播路由监控进程(例如pimd或者mrouted)建立的。
  目前,由于受和多播路由引擎接口的限制,还不能通过ip命令修改多播路由对象,因此我们只能查看。
10.3.命令
  show或者list
10.4.ip mroute show -- 列出多播路由缓存条目
  • 缩写:show、list、sh、ls、l
  • 参数 to PREFIX(default)选择到目的多播地址是PREFIXiif NAME接收多播数据包的网络接口from PREFIXPREFIX选择多播路由的IP源地址
  • 输出格式 kuznet@amber:~ $ ip mroute ls
    (193.232.127.6, 224.0.1.39)      Iif: unresolved
    (193.232.244.34, 224.0.1.40)     Iif: unresolved
    (193.233.7.65, 224.66.66.66)     Iif: eth0       Oifs: pimreg
    kuznet@amber:~ $
      多播路由缓存条目是(S,G)形式的,S是源地址,G是多播组。iif是接收多播数据包的网络接口,如果设备名是关键词unresolved,就表示路由监控进程不能解析这个条目;接下来的关键词是oif,它后面跟着一些输出网络接口,接口之间用空格分开。
  • 统计信息
      使用-statistics选项,我们可以得到更为详细的输出信息,包括:数据包的数量,通过这条路由转发的字节数以及到达错误接口的数据包数量(如果有)。
    kuznet@amber:~ $ ip -s mr ls 224.66/16
    (193.233.7.65, 224.66.66.66)     Iif: eth0       Oifs: pimreg
      9383 packets, 300256 bytes
    kuznet@amber:~ $
    11.ip tunnel -- 通道配置
    11.1.缩写
      tunnel、tunl
    11.2.对象
      ip tunnel命令的操作对象是网络通道(tunnel)。所谓通道(tunnel)是指把数据包封装到IPv4数据包中,使用IP协议发出。有关通道的更多信息,请参考iproute的文档Tunnels over IP in Linux-2.2
    11.3.命令
      add、delete、change、show或者list
    11.4.ip tunnel add -- 添加新的通道
    ip tunnel change -- 修改现有的通道
    ip tunnel delete -- 删除一个通道

  • 缩写:add、a;change、chg;delete、del、d
  • 参数 name NAME(default)选择通道设备名mode MODE设置通道模式。有效的模式包括:ipip、sit和gre。remote ADDRESS设置通道远端地址local ADDRESS设置进入通道数据包的固定本地地址,必须是在本机另外一个接口上的地址。ttl N设置进入通道数据包的TTL为N。N是一个1—255之间的数字。0是一个特殊的值,表示这个数据包的TTL值是继承(inherit)的。ttl参数的缺省值是:inherit。tos T或者dsfield T设置进入通道数据包的TOS域,缺省是inherit。dev NAME把通道绑定到设备NAME,以便进入通道的数据包只能通过NAME设备路由,并且当对端发生变化时,不能够在另外的设备解开封装。nopmtudisc在这个通道上禁止路径最大传输单元发现( Path MTU Discovery)。默认情况下,这个功能是打开的。注意:这个选项和固定的ttl是不兼容的,如果使用了固定的ttl参数,系统会打开路径最大传输单元发现( Path MTU Discovery)功能。key k,ikey k,okey k只适用于GRE通道,设置keyed GRE通道的key。K或者是一个数字或者是IP地址形式的数字序列。参数key在通道的双向使用,ikey和okey为输入和输出设置不同的key。csum,icsum,ocsum只用于GRE通道,计算进入通道数据包的校验和。ocsum表示只计算出去的数据包的校验和;icsum表示只计算进入的数据包的校验和;而csum等于icsum ocsum。seq,iseq,oseq只适用于GRE通道,顺序发送/接收数据包。oseq使向外的数据包顺序发送;iseq要求所有进入的数据包都是按照顺序的;而seq等于iseq oseq
  • 示例
  • 建立一个点对点通道,最大TTL是32
      netadm@amber:~ # ip tunnel add Cisco mode sit remote 192.31.7.104
                                                    local 192.203.80.1 ttl 32

    11.4.ip tunnel show -- 列出现有的通道
  • 缩写:show、list、sh、ls、l
  • 参数
      无
  • 输出格式 kuznet@amber:~ $ ip tunnel ls Cisco
    Cisco: ipv6/ip  remote 192.31.7.104  local 192.203.80.142  ttl 32
    kuznet@amber:~ $
      输出的第一部分是通道的设备名,接着是通道模式。下面就是设置通道时的各个参数。
  • 统计信息 kuznet@amber:~ $ ip -s tunl ls Cisco
    Cisco: ipv6/ip  remote 192.31.7.104  local 192.203.80.142  ttl 32
    RX: Packets    Bytes        Errors CsumErrs OutOfSeq Mcasts
        12566      1707516      0      0        0        0      
    TX: Packets    Bytes        Errors DeadLoop NoRoute  NoBufs
        13445      1879677      0      0        0        0     
    kuznet@amber:~ $
      以上输出结果里面的数字和使用ip -s link show的输出是一样的,但是每个标志都是特定于通道的。
    CsumErrs对于打开校验和检验的GRE通道,这个数字是由于校验和错误而丢弃的数据包数量。OutOfSeg在打开顺序功能的GRE通道内,由于顺序错误而丢弃的数据包数量。Mcasts在GRE通道上接收到的多播数据包的数量。DeadLoop由于通道是回环到自己而没有传输的数据包数目。NoRoute由于到对端没有路由而没有被传输的数据包数目。NoBufs由于内核不能分配缓冲区而没有被传输的数据包数目。
    12.ip monitor和rtmon -- 状态监视
      ip命令可以用于连续地监视设备、地址和路由的状态。这个命令选项的格式有点不同,命令选项的名字叫做monitor,接着是操作对象:
    ip monitor [ file FILE ] [ all | OBJECT-LIST ]
      OBJECT-LIST是一些被监控的对象,它可以包括link、address和route。如果没有给出file参数,ip命令就打开RTNETLINK,在上面监听,并把状态的变化输出到标准输出设备。
      如果使用了file参数,ip命令就不是在RTNETLINK上监听,而是打开由file参数指定的包含RTNETLINK信息的二进制文件,把解析的结果显示出来。这种历史文件可以有工具产生。这个工具具有和ip monitor命令的语法类似的命令行。理想的情况是,在网络配置命令起动之前运行rtmon命令(当然,你可以在任意的时间起动rtmon,它会记录从起动开始的状态变化)。你可以在起动脚本中插入以下命令行:
    rtmon file /var/log/rtmon.log
      如果我们执行如下命令:
    [root@nixe0n root]ip route add dev eth0 to 61.133.4.7 via 211.99.114.65
    [root@nixe0n root]ip route del dev eth0 to 61.133.4.7
      然后,我们使用ip monitor命令分析/var/log/rtmon.log会得到如下输出结果:
    [root@nixe0n root]ip monitor file /var/log/rtmon.log r
    Timestamp: Wed Nov  6 20:25:54 2002 733331 us
    1: lo:  mtu 16436 qdisc noqueue
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0:  mtu 1500 qdisc pfifo_fast
        link/ether 00:01:4f:00:15:f1 brd ff:ff:ff:ff:ff:ff
    Timestamp: Wed Nov  6 20:25:58 2002 33700 us
    61.133.4.7 via 211.99.114.65 dev eth0
    Timestamp: Wed Nov  6 20:25:59 2002 924124 us
    Deleted 61.133.4.7 via 211.99.114.65 dev eth0
    [root@nixe0n root]
    13.rtacct -- 路由范围和策略传播
      在使用OSPF或者BGP协议的路由器上,其路由表可能会很大。如果我们需要对其进行归类或者计算通过每条路由的数据包,就需要保留很多信息。更糟糕的是,如果我们需要区别的不止是数据包的目的地址,还要包括它们的源地址,这个任务就更为复杂了,几乎无法解决。
      对于这个问题,
    Cisco IOS Release 12.0 Quality of Service Solutions Configuration Guide: Configuring QoS Policy Propagation via Border Gateway Protocol
    提出了一个解决方案,就是把策略从路由协议迁移到转发引擎。基本上,通过BGP的Cisco策略迁移(Cisco Policy Propagation via BGP)就是基于此种方式,它使路由器保留所有和转发引擎关系紧密的RIB(Routing Information Base,路由信息库),以便策略路由规则能够监查所有的路由属性,包括ASPATH的信息和团体(community)字符串。
      而Linux把这分为由用户空间监控维护的路由信息库(Routing Infomation Base,RIB),和内核层的转发信息库(Forwarding Infomation Base,FIB)。
      这是我们的幸运,因为还有另外的解决方案,而这个方案允许更为灵活的策略和更为丰富的语义。
      换句话说,可以在用户空间根据路由的属性把它们归类,例如:BGP路由的ASPATH、团体(community);OSPF路由的标记和它们的范围。而管理员手工添加路由时,也知道它们的属性。按照这个标准划分的集合(我们把它们叫做realm)数量就很少了,因此按照路由的源地址和目的地址进行完全的分类就可以管理了。
      因此,每个路由都可以被分配到一个范围(realm)中。一般这是有路由监控进程作的,不过对于静态路由,也可以使用ip route命令手工处理。
      在某些情况下(例如路由监控进程不理解realm)为了方便,漏掉的realm可以由路由策略规则补齐。
      内核使用如下算法计算每个数据包的源范围(realm)和目的范围(realm):
    [color="#000000"]
  • If route has a realm, destination realm of the packet is set to it.
  • If rule has a source realm, source realm of the packet is set to it. If destination realm was not get from route and rule has destination realm, it is also set.
  • If at least one of realms is still unknown, kernel finds reversed route to the source of the packet.
  • If source realm is still unknown, get it from reversed route.
  • If one of realms is still unknown, swap realms of reversed routes and apply step 2 again.
      这个过程完成后,我们就知道了数据包的源范围和目的范围。如果某些还是未知,它就会被设置为0(realm unknown)
      
      范围(realm)主要还是由TC(Traffic Control)的路由类别(route classifier)使用,我们可以使用路由类别把数据包分配到给不同的流量类(trafffic class),为数据包计数,以及为它们制定调度策略。
      相对于TC,使用realm为进入的数据包计数就简单多了,但这是一个非常有用的应用。内核可以根据realm收集总结数据包统计信息。在用户空间,我们可以使用工具rtacct查看这些信息。例如:
    kuznet@amber:~ $ rtacct russia
    Realm      BytesTo    PktsTo     BytesFrom  PktsFrom   
    russia     20576778   169176     47080168   153805     
    kuznet@amber:~ $
      结果表示,这个路由器收到153805个来自russia地区的数据包,并且向russia转发了169176个数据包。russia范围由ASPATH(路径自治系统)在俄罗斯的路由组成。
    15.参考
    [color="#000000"]
  • T. Narten, E. Nordmark, W. Simpson. ``Neighbor Discovery for IP Version 6 (IPv6)'', RFC-2461.
  • S. Thomson, T. Narten. ``IPv6 Stateless Address Autoconfiguration'', RFC-2462.
  • F. Baker. ``Requirements for IP Version 4 Routers'', RFC-1812.
  • R. T. Braden. ``Requirements for Internet hosts -- communication layers'', RFC-1122.
  • ``Cisco IOS Release 12.0 Network Protocols Command Reference, Part 1'' and ``Cisco IOS Release 12.0 Quality of Service Solutions Configuration Guide: Configuring Policy-Based Routing'',http://www.cisco.com/univercd/cc/td/doc/product/software/ios120.
  • A. N. Kuznetsov. ``Tunnels over IP in Linux-2.2'',在:ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz.
  • A. N. Kuznetsov. ``TC Command Reference'',在:ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz.
  • ``Cisco IOS Release 12.0 Quality of Service Solutions Configuration Guide: Configuring QoS Policy Propagation via Border Gateway Protocol'',http://www.cisco.com/univercd/cc/td/doc/product/software/ios120.
  • R. Droms. ``Dynamic Host Configuration Protocol.'', RFC-2131
    [/url]


    本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u/4543/showart_24724.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP