linux路由器

在tcp/ip网络中,路由是一个非常重要的概念,所谓路由,就是通过互联的网络把信息从原地址传输到目的地址。

路由器的原理

路由器的原理非常的复杂。一般情况下,网络中的主机,路由器和交换机都具有路由的功能。这些设备收到数据包之后,要根据IP数据包的目标地址,决定选择

那个网络接口把数据包传送出去。如果路由器的某个网络接口与IP数据包的目的主机位于同一个局域网,则可以直接通过该接口把数据包传送到目的主机;如果目的主机

与路由器不位于同一个局域网中,则路由器会根据目的地址来选择另一台合适的路由器,再从某个网络接口把数据包发送出去。

注意:由于路由是在网络层的功能,所以只有工作在网络层的交换机才具有路由功能。只能工作在数据链路层的交换机不具有路由功能!

路由表

路由表通常包含目标,网络掩码(Genmask),网关(GateWay),接口(Iface)以及跃点数等内容。其中目标可以是目标主机,子网地址,网络地址或者默认路由。通常情况下,默认路由的目标为

0.0.0.0。当所有的路由都不匹配时,数据包将被转发给默认路由。

网络掩码和目标主机配合使用。例如,主机路由的掩码为255.255.255.255,默认路由的掩码为0.0.0.0,子网或者网络地址的掩码位于这两者之间,其中,掩码255.255.255.255

表示只有精确匹配的目标才使用此路由;掩码0.0.0.0表示任何目标都可以使用此路由。

网关是数据包需要发送到下一个路由器的ip地址。接口表明用于接通下一个路由器的网络接口。跃点数(Metric)表明使用此路由到达目标的相对成本。如果有

多个相同目标位置的路由,则跃点数最低的路由为最佳路由。

系统管理员可以通过两种方法来配置路由表,分别为静态路由和动态路由。静态路由由系统管理员手工或者通过route命令对路由表进行配置,它不会随着网络结构

的改变而改变。动态路由是由主机上面的某一进程通过与其他主机或者路由器交换信息而后对路由表进行自动更新,他会根据网络系统的运行情况而动态进行调整。

配置网路接口地址

常用的方式有两种ifconfig命令和直接修改网络接口的配置文件。

route命令用来查看系统中路由表信息,以及添加,删除静态路由记录。直接执行route命令可以查看当前主机中的路由表信息。

route命令不仅可以用于查看路由表的信息,还可以添加,删除静态路由表条目,其中当然也包括设置默认网关地址。

man route部分示意图:

route [-CFvnee]

route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N]
[mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]

route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N]
[[dev] If]

route [-V] [--version] [-h] [--help]

其中-net选项来指定目标网段地址,host则用来指定目标主机的地址,target表示目标网络或者主机。netmask表示子网掩码,当target选项指定了

一个目标网络时,需要使用子网掩码来配合使用。gw表示网关地址,dev选项表示将该路由条目与某个网络接口绑定在一起。

在当前系统的路由表中添加一项静态路由信息。

在上面的命令中,首先使用add子命令增加一条目标为192.168.255.130的路由信息,与该主机通信需要通过网关192.168.255.2,然后使用route

命令输出系统路由表,从输出结果可以得知该路由信息添加成功。

如果想要删除路由条目,则可以使用del子命令

可以看出删除成功了!!!

默认网关记录是一条特殊的静态路由条目,如果目的地址不匹配所有的路由条目,则通过默认网关发送。

普通客户机的路由设置

如果某台linux主机并不充当路由器的功能,仅仅提供某些网络服务,则路由配置非常简单。在这种情况下,一般只需要两条路由即可,其中一条是到

本地子网的路由,另一条是默认路由。前者用于与同一子网的主机通信,后者则负责所有不发送到本地子网的数据包。这也是用户在使用route命令查看本地路由表经常见到的情况。

linux路由器配置实例

在本节中,以一个具体的例子来说明如何配置linux主机,实现网络之间的路由功能。

下图描述了3个子网之间的连接,其中linux主机拥有3个网路接口,其IP地址分别为192.168.1.2, 10.10.1.1和10.10.2.1,同时,这三个网络接口分别与子网192.168.1.0/24

,10.10.1.0/24,和10.10.2.0/24相连接。

尽管这三个子网在物理上是相同的,但是如果没有添加路由的话,任然无法实现他们之间的数据交换,为了实现数据的交换,系统管理员应该在linux主机中添加以下三个

路由条目。

#route add -net 192.168.1.0/24 eth0

#route add -net 10.10.1.0/24 eth1

#route add -net 10.10.2.0/24 eth3

有了上面的静态路由后,当有了目标网络为10.10.1.0/24的数据包时,linux主机就知道需要从网络接口eth1转发,同理目标网络为10.10.2.0/24的数据包需要从网络接口eth2

转发,而目标为网络192.168.1.0/24的数据包需要从网络接口eth0转发。

时间: 2024-10-14 04:53:25

linux路由器的相关文章

基于Ubuntu搭建Linux路由器

开源,几乎代表了无所不能的意思,最近又因为它玩Hi了... 因业务发展,需要临时接入300MB的专线和千兆路由器,而公司现有的路由器却是百兆的,出于成本考虑,只能不想更换新的路由器,在网上查了一下可以做Linux路由器,因为是临时的,所以动手做吧... 安装系统这事就略过了,直接进入路由器相关配置部分: 一.选择机器 要求不高,双网卡即可,其它根据实际需求配置. 二.网卡设置 编辑文件:/etc/network/interfaces auto loiface lo inet loopback #

纯手工打造linux路由器

对由器比较了解的朋友都知道,很多专业级的路由器,也就是用linux系统来做的,那既然如此,如何使用linux主机打造一个路由器了.其实也不难,但我们得首先搞楚路由器的工作原理,说白了路由器也就是两个不同的网络之间转发数据之用的.如果没有路由器,只能在各自的网络内互相通信,跨网络就访问不了了.因为它们之间是相互隔离的,必须要有一个桥梁才能让它们之间正常来往.今天就给大家分享如何使用两台linux主机来打造一台路由器. 一.环境需求 1.两台双网卡主机 2.操作系统:安装Centos7.2 二.路由

CentOS 7运维管理笔记(3)----Linux路由器配置

当正在配置的Linux主机需要作为路由器使用时,通过以下步骤配置后,子网上的计算机就可以访问外网了: 1. 编辑 /etc/sysctl.conf 文件,添加 net.ipv4_ip_forward = 1 语句,这样就允许服务器使用Linux自身的内核转发功能.配置DHCP服务并使用防火墙的地址伪装作NAT功能:(By the way : net.ipv6.conf.all.disable_ipv6=1 和 net.ipv6.conf.default.disable_ipv6=1 两条语句禁用

ats Linux路由器上内联

路由设置假定客户端集在单个物理接口后面的不同网络上. 出于本例的目的,我们将假设: 客户端位于172.28.56.0/24网络上路由器连接网络172.28.56.0/24和192.168.1.0/24接口eth0在网络192.168.1.0/24上接口eth1在网络172.28.56.0/24上路由器已配置为为客户端正确路由流量. 在此示例中,我们将拦截遍历路由器的端口80(HTTP)流量. 第一步是使用iptables来适当地处理IP数据包. # reflow client web traff

Linux路由器及交换机工作原理

IP包头中TTL字段的含义是什么?它用来做什么? TTL(time to live):该字段用于表示IP数据包的生命周期, 作用:限制一个数据在网络中无限循环的转发下去. 简述arp缓存表的建立过程: Pc1发送数据给pc2,查看缓存表中没有pc2的Mac地址,便向所有的主机发送ARP请求.Pc2收到后回复ARP应答.Pc1知道pc2的Mac地址后将pc2的mac地址保存的缓存中,发送数据. arp缓存表中记录了什么字段信息: Internet地址   物理地址  类型     简述网络通信中数

使用linux构建一台路由器

声明:本文为原创作品,因为编写的时间比较久远所以不记得是否在别处发表过了.如有在其它地方发现有此文,也一定是本人发表,否则定是剽窃. 本文主要目的不是让大家使用linux来搭建路由器使用,而是为大家提供一个从linux环境下看网络的视角.通过系统中对数据包更加细致的操纵,从而能了解到一个数据包在系统内核情况下的状态.理论上经过linux系统的所有数据包都能进行操作,实现负载均衡,重定向,IP伪装等都是可能的.本文只是一个学习工具的方法,不承担读者使用文中提及的知识来犯罪的责任.请各位遵纪守法,正

如何迅速掌握并提高linux运维技能

之前曾经写过一篇如何学习Linux的文章,得到了很多反馈,大家都在分享自己的学习经验和体会,并且也提出了不少意见和建议.学习这个事情其实是说起来容易,做起来就很难,虽然给大家提高了很多学习linux的思路和方法,但是很多时候,学习的过程是个锻炼和总结的过程,需要自己去体会和领悟,而这个领悟跟钻研的深度有关,所以,对linux技术点钻研较深的朋友,可能收获的知识就多一些,提高也就快一些,而相反,不太喜欢钻研的朋友们,技能提高就稍微慢一点,因此,我们说虽然有了统一的学习方法,但是由于每个人的领悟力不

linux下TC+HTB流量控制

C规则涉及到 队列(QUEUE) 分类器(CLASS) 过滤器(FILTER),filter划分的标志位可用U32或iptables的set-mark来实现 ) 一般是"控发"不控收 linux下有两块网卡,一个eth1是外网,另一块eth0是内网.在eth0上做HTB.(注 意:filter划分标志位可用u32打标功能或iptables的set-mark功能,如果用iptables来打标记的话,下行速LV在eth0处 控制,但打标应在进入eth0之前进行,所以,"-i et

配置LINUX为路由

配置:关闭防火墙 linux1    地址1: 192.168.10.10/24 地址2:192.168.20.10/24(不指定网关,做为路由,自己就是网关) linux2    地址1: 192.168.20.20/24 地址2:192.168.80.10/24(不指定网关,做为路由,自己就是网关) win2003    地址:192.168.10.100/24  网关 192.168.10.10 winxp  地址1: 192.168.80.100/24  网关 192.168.80.10