博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Linux高性能服务器编程》——2.6 重定向
阅读量:5906 次
发布时间:2019-06-19

本文共 1204 字,大约阅读时间需要 4 分钟。

2.6 重定向

图2-3显示了ICMP重定向报文也能用于更新路由表,因此本节我们简要讨论ICMP重定向。

2.6.1 ICMP重定向报文

ICMP重定向报文格式如图2-4所示。

image

我们在1.1节讨论过ICMP报文头部的3个固定字段:8位类型、8位代码和16位校验和。ICMP重定向报文的类型值是5,代码字段有4个可选值,用来区分不同的重定向类型。本书仅讨论主机重定向,其代码值为1。

ICMP重定向报文的数据部分含义很明确,它给接收方提供了如下两个信息:

image

接收主机根据这两个信息就可以断定引起重定向的IP数据报应该使用哪个路由器来转发,并且以此来更新路由表(通常是更新路由表缓冲,而不是直接更改路由表)。

/proc/sys/net/ipv4/conf/all/send_redirects内核参数指定是否允许发送ICMP重定向报文,而/proc/sys/net/ipv4/conf/all/accept_redirects内核参数则指定是否允许接收ICMP重定向报文。一般来说,主机只能接收ICMP重定向报文,而路由器只能发送ICMP重定向报文。

2.6.2 主机重定向实例

2.4.3节中,我们把机器ernest-laptop的网关设置成了机器Kongming20,2.5节中我们又使能了Kongming20的数据报转发功能,因此机器ernest-laptop将通过Kongming20来访问因特网,比如在ernest-laptop上执行如下ping命令:

$ ping www.baidu.comPING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.From Kongming20 (192.168.1.109): icmp_seq=1 Redirect Host(New nexthop: 192.168.1.1)64 bytes from 119.75.217.56: icmp_seq=1 ttl=54 time=6.78 ms--- www.a.shifen.com ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 6.789/6.789/6.789/0.000 ms

从ping命令的输出来看,Kongming20给ernest-laptop发送了一个ICMP重定向报文,告诉它请通过192.168.1.1来访问目标机器,因为这对ernest-laptop来说是更合理的路由方式。当主机ernest-laptop收到这样的ICMP重定向报文后,它将更新其路由表缓冲(使用命令route -Cn查看),并使用新的路由方式来发送后续数据报。上面讨论的重定向过程可用图2-5来总结。

image

转载地址:http://tljpx.baihongyu.com/

你可能感兴趣的文章
企业shell常见面试题及企业实战案例深入浅出讲解
查看>>
Load Test
查看>>
美文共赏
查看>>
RHEL6入门系列之十七,打包与压缩
查看>>
SQLite 3.7.13的加密解密(二)—— 开放宏定义
查看>>
禁止server 2008域端口的脚本
查看>>
数据结构图之二(最小生成树--普里姆算法)
查看>>
HTML输出 一 控制列背景颜色
查看>>
Redis for Windows(C#缓存)配置文件详解
查看>>
回忆2013年的点点滴滴(各个方面)
查看>>
ASP.NET MVC 4使用PagedList.Mvc分页
查看>>
HDOJ 2066 floyed优化算法
查看>>
window.onscroll
查看>>
开发常用动画收集
查看>>
nginx js、css多个请求合并为一个请求(concat模块)
查看>>
mybatis实战教程(mybatis in action)之五:与spring3集成
查看>>
解决浏览器Adobe Flash Player不是最新版本问题
查看>>
SQLite 约束
查看>>
Python爬虫学习——使用Cookie登录新浪微博
查看>>
linux配置网络
查看>>