用户空间配置工具:
路由的配置可以使用net-tools软件包(route命令)和IPROUTE2(ip rouute 和ip rule)软件包。net-tools不能配置任何高级路由功能,如多路径和策略路由。
统计数据:
路由代码对其不同的方面都进行统计,例如,路由查找和垃圾回收。统计数据是针对每个cpu的,每个cpu各自维护自己的统计数据。这些统计数据可以通过/proc/net/stat/rt_cache读取,但是输出信息没有格式化,不易阅读,可以通过IPROUTE2包中的工具Instat工具来阅读。
通过/proc文件系统调整:
/proc/sys/net/ipv4 和 /proc/sys/net/ipv4/route 以及 /proc/sys/net/ipv4/conf这三个目录下的文件输出内部数据结构用于调整路由,这些文件是可写的。
/proc/net/和/proc/net/stat这两个目录下的文件是只读的
/proc/sys/net/ipv4目录:
ip_forward:包含了一个用于全局开启和关闭ip转发的布尔类型标识,但是可以被每个设备上的ip转发标识值覆盖。
icmp_echo_ignore_broadcast:一个icmp调整参数,被路由代码用于确定如何处理定向广播,广播过滤只能在这里开启和关闭,全局生效(不针对某个设备)。
/proc/sys/net/ipv4/route目录:
error_burst
error_cost:这两个用于实现对ICMP_UNREACHABLE消息的限速,参见第三十五章“路由失败一节”。
max_size
gc_thresh
gc_min_interval
gc_timeout
gc_elasticity
gc_interval:这几个用于路由缓存垃圾收集算法,参见第三十三章。
flush
min_delay
max_delay:这几个用于控制路由缓存的刷新。参见三十三章“刷新路由缓存”一节。
min_adv_mss:这个值和tcp最大报文段长度(MSS)相关。
min_pmtu
mtu_expires:当与一个路由缓存表项相关的PMTU变化时,路由缓存的调度在mtu_expires秒之后到期。参见三十章“使用路由缓存项过期的事件范例”一节。
redirect_load
redirect_number
redirect_silence:用于实现对ICMP_REDIRECT限速,参见三十三章“出口ICMP REDIRECT限速”一节。
secret_interval:路由缓存每隔1/secret_interval秒被定期冲洗。参见三十三章“刷新路由缓存”一节。
/proc/sys/net/ipv4/conf目录:
在该目录下每个注册的网络设备都有各自的子目录,这使用户可以对每个设备配置各种协议的路由参数。除了每个设备对应的子目录外,还有两个特殊的子目录:
default:用户没有明确配置的所有参数都是用这个目录下的默认值来初始化。
all:用户在这里配置的值应用于所有设备。
将每个设备上的配置值和全局配置值进行组合时,以及将all目录下的变量改变传播给所有设备时,不同的功能呈现不同的行为:
对某些字段,将设备上的值和全局配置值做AND操作,此时,只有全局配置和设备配置都开启时,该功能才开启。
对某些字段,将设备上的值和全局配置值做OR操作。
对某些字段,不考虑全局值。
accept_redirects:开启或关闭icmp重定向处理
send_redirects:当值为真,且检测到非最优路由的必要条件时,允许系统产生ICMP重定向消息。
accept_source_route:开启或关闭IP源路由选项。
forwarding:开启或关闭单播的转发
mc_forwarding:开启或关闭多播的转发
rp_filter:当这个标识为真时,如果某个入口封包的源IP地址通过非对称路由可达,丢弃该封包。参见三十一章“反向路径过滤”一节。
secure_redirects
shared_media:当secure_redirects被设置时,只有当消息中建立的网关在本地是一个已知网关是,ICMP_REDIRECT消息才被接收。但是,若shared_media为真时,即使ICMP_REDIRECT中建议的下一跳网关不在同一个网段内,也接收。
log_maritans:当设置该标识时,内核接收到封包中含有非法的IP地址时产生日志消息。参见三十一章“Verbose”一节。
/proc/net和/proc/net/stat目录:
route
rt_cache:可以读取这两个文件,分别转出路由表(ip_fib_main_table)和路由缓存。它们不显示用户定义的路由表内容,这些路由表时当内核支持策略路由时才创建的。
stat/rt_cache:一组统计数据
rt_acct:由在第三十一章介绍的基于路由表的分类器所收集的计费信息。可以使用IPROUTE2包中的rtacct命令得到更好的输出格式。
ip_mr_cache
ip_mr_vif:由多播路由使用,本书没有讨论。
开启和关闭转发:
/proc/sys/net/ipv4/conf/device_name/forwarding:对device_name设备开启和关闭转发。
/proc/sys/net/ipv4/conf/all/forwarding:对这个文件的改变将应用到所有网络设备,包括不是为UP的设备,但不影响以后注册的设备。
/proc/sys/net/ipv4/conf/default/forwarding:对没有明确配置的设备,这是其默认转发状态。该值只影响以后注册的设备。
/proc/sys/net/ipv4/ip_forward:改变这个和改变/proc/sys/net/ipv4/conf/all/forwarding具有同样的效果。可以把前者看作是后者的别名。
后面是路由部分常见的数据结构各字段的详细说明:略。