Linux 网卡的路由和网关
作者:互联网
网关:用于实现跨网段的设备之间通信。
路由器:
把不同网段的主机连起来(类似于送快递的快递员)。每个路由器负责把收到的数据报文传给下一个路由器,直到传送到最终的主机。
路由表:
用来实现路径选择的。和网络通信的主机都有路由表,并不是路由器里面才有路由表。
路由表的组成(关键):
-
目标网络:目标主机所在的网络id(网段)
-
子网掩码:确定主机所在的网络(和IP配套使用)
-
网关:下一个路由器的相邻接口
-
接口:数据从当前主机的那个接口发出去
默认路由:不知道的网络就通过默认路由来选择路径。
#注意:
网关:本机将数据包送到直连的路由器后,需要告诉它下一步走那一条路(下一个路由器相邻接口的地址)
直连网段的路由自动生成
route工具
添加路由
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 [选项] 子命令 [子命令的一些选项]
#禁用网卡
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管理路由
#添加路由:
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
标签:网关,0.0,route,192.168,网卡,add,Linux,路由,eth0 来源: https://www.cnblogs.com/heyongshen/p/16626149.html