Linux 网卡的路由和网关
2022/8/27 5:25:52
本文主要是介绍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
这篇关于Linux 网卡的路由和网关的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南