APP下载

Linux系统的路由实践

2018-01-08耿雨岚

科技传播 2018年24期

耿雨岚

摘 要 路由器是网络中的核心设备,路由协议是网络的基础支撑。应用linux系统的网络协议栈,实现路由器的功能,对于学习和应用路由交换技术有很大的帮助。文章首先介绍linux操作系统、静态路由和动态路由技术,然后分析linux内核的路由转发,最后通过简单网络实例,说明路由配置实践过程。

关键詞 linux系统;路由选择;路由转发;路由配置

中图分类号 TN91 文献标识码 A 文章编号 1674-6708(2018)225-0090-02

1 概述

Linux与其他操作系统相比,具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux 成为开发路由交换设备的理想开发平台。

路由器工作在OSI参考模型中的网络层,主要工作就是数据报文转发和路由处理。数据报文转发用来在子网间传送数据报文,路由处理创建和维护路由表,实现路由选路。路由选路就是选择到达目的地的最佳路径,实现路由处理就需要利用路由协议和路由选择算法。路由转发负责在最佳路径上传递IP分组。不同的路由协议,用于不同的应用场合,路由选择方式分为静态路由和动态路由。

1.1 静态路由

由网络管理员采用手工配置路由数据的方式称为静态路由,路由器获取非直连网段的路由信息,不需要自己选路。静态路由减少控制的流量和开销,提高安全保密性,不易产生环路,工作比较稳定;配置简单,对路由器性能要求不高;利用静态路由可实现冗余备份和路由的精确控制。静态路由适用于规模小、拓扑结构固定的网络。当网络拓扑产生变化时,需要再次手工进行配置和调整路由信息,不能自动生成路由表。

1.2 动态路由

动态路由是指由路由器通过动态路由协议,路由器之间相互通信,自动传递和配置路由信息。当网络拓扑发生变化时,重新计算路由,并扩散新的路由信息。通过路由协议扩散后,其他路由器自动更新和维护路由信息。常用的动态路由协议包括路由信息协议(RIP)、开放最短路径优先协议(OSPF)和边界网关协议(BGP)等。

通过动态路由协议,引发各路由器更新各自的路由表,自动地反映网络拓扑变化,不需要网络管理员手工干预,适用于规模大、拓扑复杂的网络。同时带来一些缺点,因为计算量大占用了CPU资源,动态交互增加了网络负担。

1.3 试验路由选择分析

通过建立真实的试验网络的方式对网络行为进行研究,是比较全面准确的方法。但由于成本和空间的限制,采用模拟网络的方法也比较常用。模拟网络中的路由包括动态路由和静态路由,动态路由需要加载运行路由协议软件(比如RIP、OSPF等),对于现有的试验环境有困难。同时由于静态路由模拟效率高,对于学习提高对于路由的理解有很大的帮助。综合考虑,本试验采用linux系统计算机模拟真实路由设备的方法进行试验,主要集中在静态路由的应用。

2 linux系统内核的路由转发

Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由转发依赖作为路由器的主机中安装多块网卡,当某一块网卡接收到数据包后,系统内核会根据数据包的目的IP地址,查询路由表,然后根据查询结果将数据包发送到另外一块网卡,最后通过此网卡把数据包发送出去。此主机的处理过程就是路由器完成的核心功能。

通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys 目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查Linux内核是不是开启IP转发功能。如果结果为1,表明路由转发功能已经开启;如果结果为0,表明没有开启。出于安全考虑,Linux内核默认是禁止数据包路由转发的。在linux系统中,有临时和永久两种方法启用转发功能。

临时启用:此种方法只对当前会话起作用,系统重启后不再启用。临时开启的命令格式:sysctl–w net.ipv4.ip_forward=1。

永久启用:此种永久性的启用IP转发功能,通过更改配置文件/etc/sysctl.conf中的语句行“net.ipv4.ip_forward=0”,修改为“net.ipv4.ip_ forward=1”,保存配置文件后执行命令sysctl–p/etc/sysctl.conf,配置便立即启用。

3 路由配置应用

Linux系统主机必须同时安装两块以上的网卡才能实现路由器功能。网络由多个主机和路由器组成,主机之间通信通过多个路由器,经过的每个路由器需知道所有网络的信息。当接收到数据包时,查询路由表项将数据包转发给下一跳路由器,最后发送到目的主机。以静态路由方式配置如图1所示的网络为例,说明配置的过程。

Linux系统配置静态路由功能方法有两种:临时和永久起效。临时起效方法使用命令:route add[-net|-host] 目的地[netmask子网掩码][gw网关][metric N][[dev]接口]。如图1所示的网络连接中,在作为路由器的routerA的 Linux 主机中,添加网络3的路由表项,执行命令:route add –net 193.168.1.0/24 gw 192.168.0.1。在路由器重启时会重新初始化路由表,在Linux系统中用上述命令方式添加的路由数据丢失。临时生效的方法,一般适用于临时做个试验,验证一下添加的路由是否起作用。

永久生效的方法是修改静态路由配置文件。本文采用的试验以RHEL 6.0系统为例,描述修改配置文件过程。RHEL 6.0系统的静态路由配置,保存在文件/etc/sysconfig/ network-scripts/route-interface中(interface 指网络适配器)。配置参数的命令格式:IP地址/掩码长度 via 网关地址dev网络接口。

配置步骤如下:

1)分别在路由器A和路由器B的两个网络接口上设置如图所示的IP地址,不需要配置默认网关;

2)分别在路由器A和路由器B上使用systcl命令,启用linux内核的IP包转发功能;

3)在路由器A上网络1连接eth0接口,在配置文件/etc/sysconfig/network-scripts/ route-eth0 中添加内容:193.168.1.0/24via 10.10.10.254 deveth1;

4)在路由器B上网络3连接eth1接口,在配置文件/etc/sysconfig/network-scripts/routeeth1中添加内容:192.168.0.0/24via 10.10.10.1 deveth0;

5)执行命令:service network restart,使添加的静态路由起作用;

6)将网络1中的计算机 1的默认网关设置为连接路由器A接口的IP 地址192.168.0.1;将网络3中的计算机2的默认网关设置为连接路由器B接口的IP 地址193.168.1.1。

通过以上步骤完成配置网络。网络配置完成后,通过ping 命令测试网络的连通性和路由配置是否正确。

参考文献

[1]陈博.Linux实用教程[M].北京:人民邮电出版社,2008.

[2]布莱克.IP路由协议[M].北京:电子工业出版社,2000.

[3]盛勤.基于Linux的路由器操作系统及E1接口软件设计与实现[D].成都:电子科技大学,2015.