Next Previous Contents

11. 核心设定 in /proc-filesystem

11.1 怎样进入 /proc-filesystem

使用 "cat"和 "echo"

使用 "cat"和 "echo" 是进入 /proc-filesystem的最简单方法. 但必须具备下面几个条件:

通常/proc/sys/* 都是可写的, 其它的都是只读或只提供相关信息.

得到一个值

可以使用 "cat" 得到一个值.


# cat /proc/sys/net/ipv6/conf/all/forwarding
0

设定一个值

可以使用 "echo" 设定一个值.


# echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

使用 "sysctl"

使用 "sysctl" 设定核心是当前流行的方法, 您也能用. 如果/proc-filesystem 没有挂进来, 那么您只可以访问/proc/sys/*

"sysctl"程序在"procps"安装包中.(Red Hat Linux systems)

sysctl-interface 需要在核心中进行激活, 在编译的时候可以通过以下选项完成:


CONFIG_SYSCTL=y

设定一个值

A new value can be set (if entry is writable):


# sysctl -w net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding = 1

在 "=" 两边不能出现spaces符号,也不能像下面那样一次设定多个值:


# sysctl -w net.ipv4.ip_local_port_range="32768 61000"
net.ipv4.ip_local_port_range = 32768 61000

另外

sysctl使用 "/" 代替 "." 详细信息请看sysctl的manpage

提示:快速查找设定的信息,可以联合使用带"-a"的grep.

11.2 /proc-filesystems 里的数值类型.

11.3 Entries in /proc/sys/net/ipv6/

conf/default/*

Change the interface-specific default settings

conf/all/*

改变所有 interface-specific 设定.

除了: "conf/all/forwarding" 它有不同的含义.

conf/all/forwarding

在两个界面之间进行global IPv6 forwarding (数据包转寄.)

IPv6 当中您不能单独控制一个设备的 forwarding (数据包转寄). forwarding 的控制由IPv6-netfilter 完成. 当值为"0"时 数据包转寄的能力被关闭,数据包不会离开各自的界面(包括物理/虚拟)比如 tunnel. 当值为"1"时 数据包转寄的能力被开启.

conf/interface/*

改变单个界面的设定. 依据local forwarding 是 enabled 或 not.

accept_ra

接受IPv6路由广告.并且根据得到的信息自动设定.

accept_redirectsc

接受IPv6路由器的重定向.

autoconf

设定本地连结地址使用L2硬件地址. 它依据界面的L2-MAC address自动产生一个地址如:"fe80::201:23ff:fe45:6789"

dad_transmits

发送重复地址嗅探的总数.

forwarding

设定主机/路由的interface-specific动作.

注意:推荐所有interface(界面)使用相同的设定.混合路由器/主机的想法真是难得.

hop_limit

缺省hop限制.

mtu

缺省最大传输单元.

router_solicitation_delay

在发送路由请求之前界面的等待时间(秒).

router_solicitation_interval

在每个路由请求之间的等待时间(秒).

router_solicitations

假定没有路由的情况下发送的请求个数.

neigh/default/*

Change default settings for neighbor detection and some special global interval and threshold values:

gc_thresh1

More to be filled.

gc_thresh2

More to be filled.

gc_thresh3

芳邻列印表大小的调节项.

如果您有许多界面,或路由表现反常 试著增大数值. Or if a running Zebra (routing daemon) reports:


ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), seq=426, pid=0

gc_interval

More to be filled.

neigh/interface/*

Change special settings per interface for neighbor detection.

anycast_delay

More to be filled.

gc_stale_time

More to be filled.

proxy_qlen

More to be filled.

unres_qlen

More to be filled.

app_solicit

More to be filled.

locktime

More to be filled.

retrans_time

More to be filled.

base_reachable_time

More to be filled.

mcast_solicit

More to be filled.

ucast_solicit

More to be filled.

delay_first_probe_time

More to be filled.

proxy_delay

More to be filled.

route/*

设定global(全局)路由

flush

Removed in newer kernel releases - more to be filled.

gc_interval

More to be filled.

gc_thresh

More to be filled.

mtu_expires

More to be filled.

gc_elasticity

More to be filled.

gc_min_interval

More to be filled.

gc_timeout

More to be filled.

min_adv_mss

More to be filled.

max_size

More to be filled.

11.4 IPv6-related entries in /proc/sys/net/ipv4/

目前(直到IPv4全部成为核心模块),一些开关也可以为IPv6所使用.

ip_*

ip_local_port_range

也可以为IPv6使用.

tcp_*

也可以为IPv6使用.

ICMP_*

不能为IPv6使用. 激活 ICMPv6 比率限制 rate limting (极力推荐,因为它有抵御 ICMPv6 网路风暴的能力) netfilter-v6 rules must be used.

其它

不知道, 不能为IPv6使用吧.

11.5 IPv6-related entries in /proc/net/

这个地方是只读的, 您不能通过 "sysctl" 得到信息,可以使用 "cat"

if_inet6

每一行地址包含多个值.

这里IPv6地址是用特殊的格式列印的,例子只列印环绕interface(界面)含义在下面


# cat /proc/net/if_inet6
00000000000000000000000000000001 01 80 10 80 lo
+------------------------------+ ++ ++ ++ ++ ++
|                                |  |  |  |  |
1                                2  3  4  5  6

1. 地址用32个不包含":"的十六进制列印.

2. 连结的设备数值(interface index)使用十六进制列印.

3. 前缀的长度使用十六进制列印.

4. Scope value (see kernel source " include/net/ipv6.h" and "net/ipv6/addrconf.c" for more)

5. Interface flags (see "include/linux/rtnetlink.h" and "net/ipv6/addrconf.c" for more)

6. 设备名.

ipv6_route

每一行地址包含多个值.

这里IPv6地址是用特殊的格式列印的,例子只列印环绕interface(界面)含义在下面


# cat /proc/net/ipv6_route
00000000000000000000000000000000 00 00000000000000000000000000000000 00
+------------------------------+ ++ +------------------------------+ ++
|                                |  |                                |
1                                2  3                                4
? 00000000000000000000000000000000 ffffffff 00000001 00000001 00200200 lo
? +------------------------------+ +------+ +------+ +------+ +------+ ++
? |                                |        |        |        |        |
? 5                                6        7        8        9        10

1. IPv6目标网路用32个不包含":"的十六进制列印.

2. IPv6prefix(前缀)的长度使用十六进制列印.

3. IPv6来源网路用32个不包含":"的十六进制列印.

4. IPv6来源prefix(前缀)的长度使用十六进制列印.

5. IPv6下一个hop(跃点)用32个不包含":"的十六进制列印.

6. Metric in hexadecimal

7. Reference counter

8. Use counter

9. Flags(标致)

10.Device name

sockstat6

每一行地址包含多个值.

IPv6 sockets统计:


# cat /proc/net/sockstat6
TCP6: inuse 7 
UDP6: inuse 2 
RAW6: inuse 1 
FRAG6: inuse 0 memory 0


 tcp6
To be filled.

 udp6
To be filled.

 igmp6
To be filled.

 raw6
To be filled.

 ip6_flowlabel
To be filled.

 rt6_stats
To be filled.

 snmp6

Type: One line per SNMP description and value

SNMP statistics, can be retrieved via SNMP server and related MIB table by network management software.

 ip6_tables_names
Available netfilter6 tables


Next Previous Contents