把不同网段的主机连起来(类似于送快递的快递员)。每个路由器负责把收到的数据报文传给下一个路由器,直到传送到最终的主机。
用来实现路径选择的。和网络通信的主机都有路由表,并不是路由器里面才有路由表。
目标网络:目标主机所在的网络id(网段)
子网掩码:确定主机所在的网络(和IP配套使用)
网关:下一个路由器的相邻接口
接口:数据从当前主机的那个接口发出去
默认路由:不知道的网络就通过默认路由来选择路径。
#注意: 网关:本机将数据包送到直连的路由器后,需要告诉它下一步走那一条路(下一个路由器相邻接口的地址) 直连网段的路由自动生成
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
-net: 一个网段 -host:一台具体主机 default:默认路由 target:目标网络 netmask:子网掩码 gw:网关 dev:数据报文从本机发出去的数据接口
#目标:192.168.1.3 网关:172.16.0.1 route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 #目标:192.168.0.0 网关:172.16.0.1 route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 route add -net 192.168.8.0/24 dev eth1 metric 200 #默认路由,网关:172.16.0.1 route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 route add -net 0.0.0.0/0 gw 172.16.0.1 route add default gw 172.16.0.1 #目标:192.168.1.3 网关:172.16.0.1 route del -host 192.168.1.3 #目标:192.168.0.0 网关:172.16.0.1 route del -net 192.168.0.0 netmask 255.255.255.0
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
#目标:192.168.1.3 网关:172.16.0.1 route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 #目标:192.168.0.0 网关:172.16.0.1 route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 route add -net 192.168.8.0/24 dev eth1 metric 200 #默认路由,网关:172.16.0.1 route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 route add -net 0.0.0.0/0 gw 172.16.0.1 route add default gw 172.16.0.1 #目标:192.168.1.3 网关:172.16.0.1 route del -host 192.168.1.3 #目标:192.168.0.0 网关:172.16.0.1 route del -net 192.168.0.0 netmask 255.255.255.0
语法: route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]
Command:指定想要进行的操作 add:添加路由 change:改变路由 delete:修改路由 print:显示路由 Destination:目标网段或者主机 mask Netmask:指定与网络目标地址相关联的子网掩码 Gateway:网关 metric Metric:为路由指定所需跃点数的整数值(范围是 1 ~ 9999),数值越小优先级越高 if Interface:指定目标可以到达的接口的接口。忽略 if 参数时,接口由网关地址确定
A主机配置: [root@Client ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=Ethernet BOOTPROTO=none NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.10 PREFIX=24 GATEWAY=10.0.0.200 [root@Client ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 #通过配置文件指定的默认路由,网关:10.0.0.200 目标地址:队医
R1配置: [root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.200 PREFIX=24 [root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet DEVICE=eth1 NAME=eth1 IPADDR=192.168.10.200 NETMASK=255.255.255.0 BOOTPROTO=none ONBOOT=yes
R2: [root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.10.201 PREFIX=24 [root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet NAME=eth1 DEVICE=eth1 IPADDR=192.168.2.5 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none
[root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet DEVICE=eth0 NAME=eth0 IPADDR=192.168.2.6 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none GATEWAY=192.168.2.5
A:已经通过配置ip地址的时候指定了默认的路由 C:同上 R1: [root@CentOS8 ~]# route add -net 192.168.2.0/24 gw 192.168.10.201 dev eth1 [root@CentOS8 ~]# route -n Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 102 0 0 eth0 192.168.2.0 192.168.10.201 255.255.255.0 UG 0 0 0 eth1 192.168.10.0 0.0.0.0 255.255.255.0 U 103 0 0 eth1 R2: [root@CentOS8 ~]# route add -net 192.168.2.0/24 gw 192.168.10.200 dev eth0 [root@CentOS8 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 192.168.10.200 255.255.255.0 UG 0 0 0 eth0 192.168.2.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
直连路由会自动生成的
路由很关键,如果路由错误,即使处于同一网段的设备也无法通信。因为数据包的转发是靠路由来决定的
通过命令配置的路由都是临时生效的。永久保存需要写入配置文件。
格式:ip [选项] 子命令 [子命令的一些选项]
#禁用网卡 ip link set eth1 down #网卡改名 ip link set eth1 name wangnet #启用网卡 ip link set wangnet up #网卡别名 label ip addr add 172.16.100.100/16 dev eth0 label eth0:0 ip addr del 172.16.100.100/16 dev eth0 label eth0:0 #清除网络地址 ip addr flush dev eth0
一个网卡多个ip地址的实现 ip addr add IP地址/mask dev 接口名 label 别名 例如: [root@centos8 ~]#ip address add 10.0.0.18/24 dev eth0 label eth0:1
#修改ip地址 #先加新IP,再删除旧的IP [root@centos8 ~]#ip address add 10.0.0.88/24 dev eth0 [root@centos8 ~]#ip address del 10.0.0.8/24 dev eth0
#添加路由: ip route add TARGET via GW dev IFACE src SOURCE_IP TARGET: 主机路由:IP 网络路由:NETWORK/MASK via:指定网关 dev:指定接口 src:源地址 #添加网关: ip route add default via GW dev IFACE #删除路由: ip route del TARGET #显示路由: ip route show|list #清空路由表: ip route flush [dev IFACE] [via PREFIX]
ip route add 192.168.0.0/24 via 172.16.0.1 ip route add 192.168.1.100 via 172.16.0.1 ip route add default via 172.16.0.1 ip route flush dev eth0
通过命令配置的路由是临时生效的,需要写入配置文件才能生效。
配置文件:/etc/sysconfig/network-scripts/route-接口名 #和ip地址的配置文件在同一个目录。 #格式: 目标网络的网络ID(CIDR表示法) via 网关 例如: 10.0.0.0/24 via 10.0.0.1