首先,我们需要了解一些基本概念。路由是将数据包从一个网络传输到另一个网络的路径。在Linux系统中,我们可以使用`route`命令来添加、删除和查看路由规则。
路由命令的基本格式如下: ``` route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] ``` 其中,`add`用于添加路由规则,`del`用于删除路由规则;`-net`表示目标地址是一个网络,`-host`表示目标地址是一个主机;`target`是目的网络或主机,`netmask`是网络掩码,`gw`是网关地址,`dev`是指定网络接口。
### 添加主机路由
假设我们有一台主机192.168.2.10,想要与其通信的主机位于192.168.0.8。这两个主机不在同一网段,因此需要通过路由器2进行通信。在这种情况下,我们需要在192.168.2.10的主机上添加一条指向192.168.0.8的路由。命令如下: ``` route add -host 192.168.0.8 gw 192.168.2.1 dev eth0 ``` 这条命令指示系统,所有发往192.168.0.8的数据包都应通过192.168.2.1网关,并使用eth0网络接口进行转发。
### 添加网络路由
如果我们需要访问整个192.168.0.0网段,而不是单个主机,添加主机路由会非常繁琐。这时,我们可以使用网络路由。以下命令将在192.168.2.10主机上添加一条到192.168.0.0网段的路由: ``` route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth0 ``` 这条命令设置了子网掩码,表示目标是一个网络,而不是单个主机。
### 添加默认路由
如果2网段的主机需要访问其他所有网段,我们可以添加一条默认路由。默认路由是一个特殊的路由规则,它告诉系统所有不符合其他路由规则的数据包应该通过哪个网关转发。以下命令将添加默认路由: ``` route add default gw 192.168.2.1 dev eth0 ``` 这意味着所有非2网段的数据包都将通过192.168.2.1网关转发。
### 删除路由
如果我们不再需要某条路由,可以使用`del`选项来删除它。例如,删除之前添加的主机路由: ``` route del 192.168.0.8 ``` 删除网络路由: ``` route del -net 192.168.0.0/24 gw 192.168.2.1 ``` 删除默认路由: ``` route del default ```
通过理解和使用这些路由命令,我们可以有效地管理Linux系统中的网络通信,确保数据包能够正确地从一个网络传输到另一个网络。
如下图所示有两个网络,分别是0网段和2网段,路由器1组成0网段,路由器2从路由器一种分出一个2网段
如果要在不同网段直接通讯,需要添加路由,linux添加路由命令如下:
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
1、添加主机路由
如果想192.168.2.10主机 ping通192.168.0.8主机,则需要经过路由器2,就要在192.168.2.10的主机上添加一条到192.168.0.8的路由,添加命令如下:
route add -host 192.168.0.8 gw 192.168.2.1 dev eth0
这条命令的意思是访问192.168.0.8的主机消息都从192.168.2.1端口转发。用route命令查看一下添加的路由
DestiNATion | 目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关(这里是10.139.128.1) |
Gateway | 网关地址,0.0.0.0表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关(同一个局域网内2台主机通信不需要经过网关) |
Genmask | Destination 字段的网络掩码,Destination 是主机时需要设置为255.255.255.255,是默认路由时会设置为0.0.0.0 |
Flags | 标志 U - Up表示有效 G - Gateway表示连接路由,若无这个字段表示直连目的地址 H - Host表示目标是具体主机,而不是网段 R 恢复动态路由产生的表项 D 由路由的后台程序动态地安装 M 由路由的后台程序修改 ! 拒绝路由 |
Metric | 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用。) |
Ref | 路由项引用次数 (不在Linux内核中使用。) |
Use | 此路由项被路由软件查找的次数 |
Iface | 网卡名字,例如eth0;要去往这个网段需要使用哪一个网络接口。也就是eth0这张网卡 |
第一条路由信息的意思就是访问主机192.168.0.8的信息都从192.168.2.1网关转发。
若要删除这条路由只需执行:route del 192.168.0.8
2、添加网络路由
第一种添加主机路由的方式只能访问到一台目录主机,如果192.168.2.10要访问0网段的所有主机的话把0网段主机都添加一遍显然很麻烦,通过添加网络路由的方式,只要在192.168.0.10主机上添加一条0网段的网络路由即可,添加命令如下:
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth0
这个目标是网络,所以需要设置子网掩码,用route命令查看一下添加的网络路由
这条路由表示访问0网段的消息都从192.168.2.1网关转发
删除网络路由:route del -net 192.168.0.0/24 gw 192.168.2.1
3、添加默认路由
如果2网段主机想访问其他所以网段的网络,只需要添加默认路由即可:route add default gw 192.168.2.1 dev eth0
默认路由的意思是所有访问非2网段的信息都从192.168.2.1转发
删除默认路由:route del default
链接:https://www.cnblogs.com/YYFaGe/p/16599675.html