* 几个显示本机路由表的相关命令,主机路由表的复杂性取决于所连接网络的拓扑结构。
route,输出为
root@mjxian-ubuntu ~
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.255.255.224 U 0 0 0 eth0
default 219.221.206.62 0.0.0.0 UG 0 0 0 eth0
netstat -r,输出为
root@mjxian-ubuntu ~
# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
localnet * 255.255.255.224 U 0 0 0 eth0
default 219.221.206.62 0.0.0.0 UG 0 0 0 eth0
netstat -rn,输出为
root@mjxian-ubuntu ~
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
219.221.206.32 0.0.0.0 255.255.255.224 U 0 0 0 eth0
0.0.0.0 219.221.206.62 0.0.0.0 UG 0 0 0 eth0
* IP选路策略:
先搜索匹配主机,再搜索匹配网络,最后搜索默认路由(default)
* 路由表中Flags的含义:
U 可用路由
G 该路由作为网关
H 该路由为主机地址(而不是网络地址)
D 该路由通过ICMP重定向得到
* Metric字段,表示路由每一跳的度量。
* 若IP无法到达目的地,出错的路由器将向源主机发送ICMP主机不可达或者网络不可达差错报文。
* ICMP重定向:
在主机有多个路由出口时,收到IP数据报的默认路由器识别到从主机开始,另有最佳路由,将向源主机发送ICMP重定向报文,修改更新源主机上的路由表。
* ICMP路由发现请求/应答报文:
主机对TCP/IP网络进行初始化时向路由器发送ICMP请求,路由器进行应答,发送ICMP路由器通告报文。同时路由器也不定期向网络上的广播或多播地址发送路由通告,主机进行监听。这些工作通过Unix的守护进程实现。
* 动态选路:
路由器的动态选路策略通过守护进程实现。quagga是一个提供RIP/OSPF/BGP选路管理的实用程序。守护进程在前往同一信宿有多个路由时可以以某种策略选择最佳路由并更新路由表,同时也可以在链路断开时删除该路由或者新增一条。
用于动态选路的选路协议包括IGP和EGP,内部网关或者外部网关协议。
================================================================================
* RIP动态选路信息协议:
RIP的正式规范见RFC 1058。
RIP是一种IGP,是基于距离向量的选路协议。距离向量意味着RIP的报文包含了IP的跳数(距离向量)。
RIP使用了UDP,封装在UDP数据报内传送。接收端(server)的UDP端口为520
RIP的首部格式(4 bytes):
cmd(8 bits,value:1~6)--version(8 bits)--left 0 (16 bits)
每个路由信息的数据格式(20 bytes):
address family(16 bits)--left 0(16 bits)--IP address(32 bits)--
left 0(32 bits)--left 0(32 bits)--metric(32 bits, value<16)
一共可以使用25个路由。使总数 4 + 25 x 20 = 504 < 512 (bytes)
* 使用RIP的守护进程的主要任务:
初始化,请求发送完整路由表求。RIP作为发送完整路由表请求时,cmd值为1,地址族置0,metric置16,总长度为24字节。
响应时按照格式填入报文,发送给请求端。metric为跳数,以请求主机为起点,如果没有目的主机,metric设置为16。收到响应可能会更新路由表使响应生效。
正常工作时,路由器通过广播或者点对点链路定时向其它路由器发送完整的路由表。
如果有一条路由的metric发生变化,发送该路由的RIP报文给其它主机进行更新。收到报文的路由按照metric最小的策略选择更新自己的路由表。metric的最大值为15,为16时表明该IP无法到达。
* RIP的缺点:
1.不支持子网;
2.路由器或链路发生故障后,网络在稳定前可能会发生路由环路错误。
3.metric<16限制了使用RIP的网络规模。
* RIP-2
RIP的扩充版本,定义了原RIP包中一些置零的字段。如下:
首部格式(4 bytes):
cmd(8 bits,value:1~6)--version(8 bits)--routing domain (16 bits)
每个路由信息的数据格式(20 bytes):
address family(16 bits)--routing tags(16 bits)--IP address(32 bits)--
netmask(32 bits)--next IP address(32 bits)--metric(32 bits, value<16)
routing domain:一般定义为选路守护进程的pid;
routing tag: 对EGP支持的扩充;
RIP-2扩充了对多播的支持,以减少不监听RIP-2报文的主机的负载。
================================================================================
* OSPF协议
也是一种IGP协议,其正式规范见RFC 1247,它是基于链路状态的选路协议。
使用OSPF的路由器主动测试与邻站的连接状态,并把状态信息发到其它邻站,通过这样的一种交互更新各自的路由表。
OSPF的特点:
使用IP而不是TCP/UDP;
每个IP服务类型都可以有一套自己的路由集,即使目的地址一样;
管理各IP服务类型的费用和流量平衡;
支持子网;
采用多播而不是广播,以减少不参与OSPF的系统负载。
================================================================================
* BGP边际网关协议
一种EGP协议,基于距离向量。略。
阅读(1176) | 评论(0) | 转发(0) |