每天一个Linux命令(47)route命令

时间:2022-09-16 03:34:15

    Linux系统的route命令用于显示和操作内核IP路由表(show / manipulate the IP routing table)。

    (1)用法:

    用法:  route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

    (2)功能:

功能:  创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。当使用"add"或者"del"参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。

要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

    (3)选项参数:

1) -n:        不执行DNS反向查找,直接显示数字形式的IP地址
      2) add:         添加一条新路由。

3) del:      删除一条路由。

4) -net:      目标地址是一个网络。

5) -host:          目标地址是一个主机。

6) netmask:      当添加一个网络路由时,需要使用网络掩码。

7) gw:       路由数据包通过网关。注意,你指定的网关必须能够达到。

8) metric:    设置路由跳数。

    (4)实例:

1)[root@localhost sunjimeng]# route       //显示当前路由,执行DNS反向查找。

[root@localhost sunjimeng]# route    //未连接以太网时
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[root@localhost sunjimeng]# route //连接以太网时
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736

主机网络的ip地址是192.168.117.0,若数据传送目标是在本局域网内通信,则可直接通过网卡转发数据包。

若数据传送目的是访问Internet,则由网关接口,将数据包发送到网关192.168.117.2。

参数说明:

  1)Flags标志说明:

     U Up表示此路由当前为启动状态;

     H Host,表示此网关为一主机;

     G Gateway,表示此网关为一路由器;

R Reinstate Route,使用动态路由重新初始化的路由

    D Dynamically,此路由是动态性地写入

    M Modified,此路由是由路由守护程序或导向器动态修改

    ! 表示此路由当前为关闭状态

2)[root@localhost sunjimeng]# route -n     //显示当前路由,不执行DNS反向查找

[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736

注意:虽然route -n与route的执行结果是一样的,但是前者执行时要有一个执行DNS反向查找的过程。在显示数字形式的ip地址之前有一个等待过程。route -n (-n 表示不解析名字,列出速度会比route 快)。

3)[root@localhost sunjimeng]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eno16777736    增加一条到达244.0.0.0的路由

[root@localhost sunjimeng]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eno16777736
[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736
224.0.0.0 0.0.0.0 240.0.0.0 U eno16777736

4)[root@localhost sunjimeng]# route add -net 224.0.0.0 netmask 240.0.0.0 reject          增加一条用来屏蔽当前已存在路由的路由

[root@localhost sunjimeng]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736
224.0.0.0 - 240.0.0.0 ! - - //用来屏蔽下一行的路由
224.0.0.0 0.0.0.0 240.0.0.0 U eno16777736

5)[root@localhost sunjimeng]# route del -net 224.0.0.0 netmask 240.0.0.0 reject dev eno16777736  删除一条指定的路由

[root@localhost sunjimeng]# route del -net 224.0.0.0 netmask 240.0.0.0 reject dev eno16777736
[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736
224.0.0.0 0.0.0.0 240.0.0.0 U eno16777736
[root@localhost sunjimeng]# route del -net 224.0.0.0 netmask 240.0.0.0 dev eno16777736
[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736

6)[root@localhost sunjimeng]# route del default gw 192.168.117.2  删除或设置默认网关

[root@localhost sunjimeng]# route -del default gw 192.168.117.2      //这里不要用-参数
route:无效选项 -- d
route:无效选项 -- l
Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables
route [-v] [-FC] {add|del|flush} ... Modify routing table for AF. route {-h|--help} [<AF>] Detailed usage syntax for specified AF.
route {-V|--version} Display version/author and exit. -v, --verbose be verbose
-n, --numeric don't resolve names
-e, --extend display other/more information
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB <AF>=Use -, -, '-A <af>' or '--<af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.)
[root@localhost sunjimeng]# route del default gw 192.168.117.2      //删除默认网关
[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736
[root@localhost sunjimeng]# route add default gw 192.168.117.2     //设置默认网关
[root@localhost sunjimeng]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.117.2 0.0.0.0 UG eno16777736
192.168.117.0 0.0.0.0 255.255.255.0 U eno16777736

(5)其他:

网关,路由器,交换机,网桥的区别:

1)交换机:

  (switch)意为开关,是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路,工作于OSI参考模型的第二层,即数据链路层。

工作原理:交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。

2)路由器:

路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

3)网关:

网关(GateWay)又称协议转换器,连接两个或更多个管理上的相异的网络/子网的节点,是一种存储转发设备,主机所发送的数据报将被传送给其他主机。

网关就是为了保证大家同在一个网络的IP, 譬如C网的网关是255.255.255.0 那么在同一个局域网(C类网)的IP只是最后一位不同,任取一台机来说,它的IP与它的网关相与,就得出他的IP前面三位的数值,大家相同,表示在同一个局域网。网关是两个区域间的桥梁,有他来决定你要访问的机器到底在那个小区域里面,并且由它来负责不同协议的转换。大多数网关运行在OSI协议模型的顶层--应用层。

4)网桥:

网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。网桥(Bridge)又叫桥接器,它是一种在链路层实现局域网互连的存储转发设备。网桥从一个局域网接收MAC帧,拆封、校对、校验之后,按另一个局域网的格式重新组装,发往它的物理层。

桥提供了一种连接局域网 (LAN) 段的廉价而便捷的方法。LAN 网段是连接计算机的网络媒体的单个部分。

例如,假设您有三台计算机:计算机 A、计算机 B 和计算机 C。计算机 A 有两个以太网络适配器,而计算机 B 和 C 各有一个以太网络适配器。连接 A 和 B 的以太网电缆将创建一个 LAN 网段,连接 A 和 C 的另一个以太网电缆将创建另一个 LAN 网段。 传统做法是,如果您需要网络具有多个段,则您有两个选择:路由和桥接。IP 路由是连接网络段的常用解决方案。但是,如果要安装 IP 路由,则必须购买硬件路由器或在网段之间的交接处安装计算机以用作路由器。对于每个网络段上的每台计算机,IP 路由都要求对 IP 地址进行复杂配置,而且每个网络段都需要配置为独立的子网。IP 路由是适合于大型网络的解决方案,此时可缩放性很重要,而且需要经验丰富的人员配置和维护网络。网桥虽无需进行复杂配置,但是您必须额外购买硬件网桥。如果是家庭或小型办公网络,则这两个选择都不理想,您既不愿意购买昂贵的搭桥硬件,也不愿意请有经验的人员管理 IP 路由网络。

windows计算机上只能存在一个网桥,但可以使用它来桥接该计算机在物理上允许的所有网络连接。

5)路由器和交换机的区别:

交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。交换机最主要的功能就是数据交换,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备.路由器最主要的功能是选路,指明一个方向。路由器有IP分配、路由寻址、地址映射、访问控制这些功能,普通交换机没有这些功能,只有三层交换机可以有这些功能。

6)数据报:

  Internet中,所传送的信息被划分为基本的数据单元再进行传送,这些基本的数据单元称为数据报。

7)网关和路由器的区别:

路由可以连接两个网络,网关也可以连接两个网络,那么有什么区别呢?

网关现在通常用来表示一个概念。作为内网和外网的接入点,一般我们称为网关。路由器是实质性的物理介质,我们可以称这个路由器是网关,也可以称某个主机为服务器为网关,跟具体硬件在不同网络之间互联中扮演的角色有关。一般而言:网关是一个IP地址,是一个网络连接到另一个网络的“关口”。路由器是一个物理设备。一般局域网的网关就是路由器的IP地址。

8)网桥和路由器的区别:

网桥和路由的区别在于路由不仅连接两个网络,还在网络路径选择和路径算法中有极大贡献。由于网桥是链路层设备,因此不处理数据链路层以上层次协议所加的报头. 路由器比网桥更加复杂,也具有更大的灵活性。由于路由器具有更强的不同网间的互连能力,所以其连接对象包括局域网和广域网等多种类型网络。

  从上面可以看出,网桥和路由器的不同主要体现在三个方面。

1.网桥是第二层的设备,而路由器是第三层的设备;

2.网桥只能连接两个相同的网络,而路由器可以连接不同网络;

3.网桥不隔离广播,而路由器可以隔离广播。

9)DNS正向与反向查找:

正向查找就是 知道域名来查找相对应的IP;反向查询就是 知道IP来查找相对应的域名。