Linux ,c/c++, web,前端,php,js
分类:
2011-12-05 18:12:11
tunnel、tunl
ip tunnel命令的操作对象是网络通道(tunnel)。所谓通道(tunnel)是指把数据包封装到IPv4数据包中,使用IP协议发出。有关通道的更多信息,请参考iproute的文档Tunnels over IP in Linux-2.2。
add、delete、change、show或者list
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。 |
|
无
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 | 由于内核不能分配缓冲区而没有被传输的数据包数目。 |