加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

linux的内核路由表跟直连路由

(2013-10-19 10:37:01)
标签:

it

分类: linux网络实验
路由表和静态路由
内容提要


查看 Linux 内核路由表
使用 route 命令设置静态路由
设置包转发
Linux 内核路由表
查看 Linux 内核路由表
使用下面的 route 命令可以查看 Linux 内核路由表。 

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
localnet        *               255.255.255.0   U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0route 命令的输出项说明

Destination 
目标网段或者主机 
Gateway 
网关地址,”*” 表示目标是本主机所属的网络,不需要路由 
Genmask 
网络掩码 
Flags 
标记。一些可能的标记如下: 
U — 路由是活动的 
H — 目标是一个主机 
G — 路由指向网关 
R — 恢复动态路由产生的表项 
D — 由路由的后台程序动态地安装 
M — 由路由的后台程序修改 
! — 拒绝路由 
Metric 
路由距离,到达指定网络所需的中转数(linux 内核中没有使用) 
Ref 
路由项引用次数(linux 内核中没有使用) 
Use 
此路由项被路由软件查找的次数 
Iface 
该路由表项对应的输出接口
 

3 种路由类型
主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。 

Destination    Gateway       Genmask          Flags     Metric    Ref    Use    Iface
-----------    -------     -------                  -----     ------    ---    ---    -----
10.0.0.10     192.168.1.1    255.255.255.255     UH       0    0      0    eth0网络路由
网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。 

Destination    Gateway       Genmask      Flags    Metric    Ref     Use    Iface
-----------    -------     -------         -----    -----   ---    ---    -----
192.19.12     192.168.1.1    255.255.255.0      UN      0       0     0    eth0默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。 

Destination    Gateway       Genmask    Flags     Metric    Ref    Use    Iface
-----------    -------     ------- -----      ------    ---    ---    -----
default       192.168.1.1     0.0.0.0    UG       0        0     0    eth0配置静态路由
route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是: 

route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]route 命令的参数说明

add 
添加一条路由规则 
del 
删除一条路由规则 
-net 
目的地址是一个网络 
-host 
目的地址是一个主机 
target 
目的网络或主机 
netmask 
目的地址的网络掩码 
gw 
路由数据包通过的网关 
dev 
为路由指定的网络接口
 

route 命令使用举例
添加到主机的路由 

sudo route add -host 192.168.1.2 dev eth0:0
sudo route add -host 10.20.30.148 gw 10.20.30.40添加到网络的路由 

sudo route add -net 10.20.30.40 netmask 255.255.255.248 eth0
sudo route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
sudo route add -net 192.168.1.0/24 eth1添加默认路由 

sudo route add default gw 192.168.1.1删除路由 

sudo route del -host 192.168.1.2 dev eth0:0
sudo route del -host 10.20.30.148 gw 10.20.30.40
sudo route del -net 10.20.30.40 netmask 255.255.255.248 eth0
sudo route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
sudo route del -net 192.168.1.0/24 eth1
sudo route del default gw 192.168.1.1设置包转发
在 Ubuntu 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。 

sudo sysctl -w net.ipv4.ip_forward=1这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。 

net.ipv4.ip_forward = 1用户还可以使用如下的命令查看当前系统是否支持包转发。 

sysctl  net.ipv4.ip_forward

直连路由

根据路由器学习路由信息、生成并维护路由表的方法包括直连路由(Direct)、静态路由(Static)和动态路由(Dynamic)。直连路由:路由器接口所连接的子网的路由方式称为直连路由;非直连路由:通过路由协议从别的路由器学到的路由称为非直连路由;分为静态路由和动态路由; 直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,该路径信息不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态(Active),路由器就会把通向该网段的路由信息填写到路由表中去,直连路由无法使路由器获取与其不直接相连的路由信息。
静态路由是由网络规划者根据网络拓扑,使用命令在路由器上配置的路由信息,这些静态路由信息指导报文发送,静态路由方式也不需要路由器进行计算,但是它完全依赖于网络规划者,当网络规模较大或网络拓扑经常发生改变时,网络管理员需要做的工作将会非常复杂并且容易产生错误。
动态路由的方式使路由器能够按照特定的算法自动计算新的路由信息,适应网络拓扑结构的变化。如我们经常用于自治系统(AS:Autonomous System)内部网关协议开放式最短路径优先(OSPF:Open Shortest Path First)协议和寻路信息协议(RIP:Routing Information Protocol)。
直连经常用在一个三层交换机连接几个VLAN时,通过设置直连VLAN间就能够直接通信而不需要设置其他路由方式了。如:一个三层交换机划分两个VLAN,VLAN1中有以PC1,地址为192.168.1.2/24,VLAN2有PC2,地址为192.168.2.2/24;假如它们两个不同VLAN间想通信,因为VLAN1,VLAN2都是与三层交换机直连,所以它们之间可以直接通信,而不需要设置其他路由协议

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有