Linux主机如何添加路由
2021/5/13 7:25:23
本文主要是介绍Linux主机如何添加路由,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
记录一些自己的心得以及方法,本着共同学习,互相进步为目的。本次总结了Linux主机路由的配置,欢迎大家评论留言,主机网络对接调测时,有时候需要进行主机路由配置,实现与某台主机或者某段网段互通(以下是主机路由配置,均在试验机上操作,并且在实际工程环境中有验证过,目前配置过的OS有Redhat6.8、Redhat6.9、centos7.7)。
一、主机环境:
1、系统版本:
root@mysql1:/root>cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.9 (Santiago)
2、主机IP配置情况:
root@mysql1:/root>hostname -I 192.168.100.11 192.168.100.110 10.10.10.110 root@mysql1:/root>
所以,本次操作主机配置了3个IP地地址,网口对应情况如下:
(1)eth0:192.168.100.11 (2)bond0:192.168.100.110 (3)bond1:10.10.10.110
3、查看路由表命令:netstat -rn 或者 route -n
4、route命令的语法:
关于route命令的语法这里就不多说了,有兴趣的朋友可以自行在命令行界面执行man route查看。
一、操作
一)默认路由:
1、添加临时默认路由:root@mysql1:/>route add default gw 192.168.100.1 dev bond0
查看结果如下:
root@mysql1:/root>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/root>
2、以上操作重启网络或者重启主机后就会失效,那么如何让主机重启或者网络重启后自动加载呢?这时候就需要写入配置让主机自动加载,操作如下:
root@mysql1:/root>cd /etc/sysconfig/network-scripts/ root@mysql1:/etc/sysconfig/network-scripts>cp ifcfg-bond0 ifcfg-bond0.bak root@mysql1:/etc/sysconfig/network-scripts>echo -e 'GATEWAY=192.168.100.1' >>ifcfg-bond0 root@mysql1:/etc/sysconfig/network-scripts>
3、删除默认路由,操作命令如下:root@mysql1:/>route del default gw 192.168.100.1 dev bond0
查看结果如下:
root@mysql1:/root>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 root@mysql1:/root>
4、重启网络验证如下(重启主机也正常):
root@mysql1:/root>service network restart Shutting down interface bond0: [ OK ] Shutting down interface bond1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: Determining if ip address 192.168.100.110 is already in use for device bond0... [ OK ] Bringing up interface bond1: Determining if ip address 10.10.10.110 is already in use for device bond1... [ OK ] Bringing up interface eth0: Determining if ip address 192.168.100.11 is already in use for device eth0... [ OK ] root@mysql1:/root>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/root>
主机默认路由一般只有一个,建议默认路由走内网,当然也可以不存在,其他路由我们可以通过配置详细路由,具体请往后看。
二)指定主机路由
1、临时添加一台主机的路由,比如:10.10.110.11,操作如下:root@mysql1:/root>route add -host 10.10.110.11 gw 10.10.10.1 dev bond1
查看结果如下:
root@mysql1:/root>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.10.110.11 10.10.10.1 255.255.255.255 UGH 0 0 0 bond1 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/root>
2、以上操作重启网络或者重启主机后就会失效,那么如何让主机重启或者网络重启后自动加载呢?这时候就需要写入配置让主机自动加载,操作如下:
root@mysql1:/etc/sysconfig/network-scripts>cat >> route-bond1 10.10.110.11/32 via 10.10.10.1 ^C root@mysql1:/etc/sysconfig/network-scripts>ls -ltr route-bond1 -rw-r--r-- 1 root root 31 May 12 22:22 route-bond1 root@mysql1:/etc/sysconfig/network-scripts>
或者:
root@mysql1:/etc/sysconfig/network-scripts>cat >>route-bond1 ADDRESS0=10.10.110.11 NETMASK0=255.255.255.255 GATEWAY0=10.10.10.1 ^C root@mysql1:/etc/sysconfig/network-scripts>
如果有多条路由走的是bond1,则继续添加即可,如:
ADDRESS1=xx.xx.xx.xx NETMASK1=xx.xx.xx.xx GATEWAY1=xx.xx.xx.xx
3、删除主机路由,操作命令如下:
root@mysql1:/etc/sysconfig/network-scripts>route del -host 10.10.110.11 gw 10.10.10.1 dev bond1 root@mysql1:/etc/sysconfig/network-scripts>
以上两种方法都可以进行操作,看个人喜欢。
查看结果如下:
root@mysql1:/etc/sysconfig/network-scripts>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/etc/sysconfig/network-scripts>
4、重启网络验证如下:
root@mysql1:/etc/sysconfig/network-scripts>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.10.110.11 10.10.10.1 255.255.255.255 UGH 0 0 0 bond1 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/etc/sysconfig/network-scripts>service network restart Shutting down interface bond0: [ OK ] Shutting down interface bond1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: Determining if ip address 192.168.100.110 is already in use for device bond0... [ OK ] Bringing up interface bond1: Determining if ip address 10.10.10.110 is already in use for device bond1... [ OK ] Bringing up interface eth0: Determining if ip address 192.168.100.11 is already in use for device eth0... [ OK ] root@mysql1:/etc/sysconfig/network-scripts>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.10.110.11 10.10.10.1 255.255.255.255 UGH 0 0 0 bond1 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/etc/sysconfig/network-scripts>
添加一个网段的路由与添加主机路由操作是相同的,网段路由的添加请继续往下看。
三)指定网段路由
1、临时添加一个网段的路由,比如:172.16.0.0/16,操作如下:
root@mysql1:/root>route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.100.1 dev bond0 root@mysql1:/root>
查看结果如下:
root@mysql1:/root>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.10.110.11 10.10.10.1 255.255.255.255 UGH 0 0 0 bond1 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.16.0.0 192.168.100.1 255.255.0.0 UG 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/root>
2、以上操作重启网络或者重启主机后就会失效,那么如何让主机重启或者网络重启后自动加载呢?这时候就需要写入配置让主机自动加载,操作如下:
root@mysql1:/etc/sysconfig/network-scripts>cat >> route-bond0 172.16.0.0/16 via 192.168.100.1 ^C root@mysql1:/etc/sysconfig/network-scripts>ls -ltr route-bond0 -rw-r--r-- 1 root root 32 May 12 22:54 route-bond0 root@mysql1:/etc/sysconfig/network-scripts>
或者:
root@mysql1:/etc/sysconfig/network-scripts>>route-bond0 root@mysql1:/etc/sysconfig/network-scripts>cat >>route-bond0 ADDRESS0=172.16.0.0 NETMASK0=255.255.255.255 GATEWAY0=192.168.100.1 ^C root@mysql1:/etc/sysconfig/network-scripts>
如果有多条路由走的是bond1,则继续添加即可,如:
ADDRESS1=xx.xx.xx.xx NETMASK1=xx.xx.xx.xx GATEWAY1=xx.xx.xx.xx
3、删除网段路由,操作命令如下:
root@mysql1:/etc/sysconfig/network-scripts>route del -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.100.1 dev bond0 root@mysql1:/etc/sysconfig/network-scripts>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.10.110.11 10.10.10.1 255.255.255.255 UGH 0 0 0 bond1 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/etc/sysconfig/network-scripts>
4、重启网卡验证如下:
root@mysql1:/etc/sysconfig/network-scripts>service network restart Shutting down interface bond0: [ OK ] Shutting down interface bond1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: Determining if ip address 192.168.100.110 is already in use for device bond0... [ OK ] Bringing up interface bond1: Determining if ip address 10.10.10.110 is already in use for device bond1... [ OK ] Bringing up interface eth0: Determining if ip address 192.168.100.11 is already in use for device eth0... [ OK ] root@mysql1:/etc/sysconfig/network-scripts>netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.10.110.11 10.10.10.1 255.255.255.255 UGH 0 0 0 bond1 172.16.0.0 192.168.100.1 255.255.255.255 UGH 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 bond1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 bond0 root@mysql1:/etc/sysconfig/network-scripts>
二、建议:
在网络的配置目录下,如果没有添加route-bondX路由,重启网络路由会缺失,在现网环境中,这会造成业务中断,影响正常业务;通常有人习惯把路由写进入rc.local,其实也可以,但是不建议这么操作,虽然主机重启的情况下,可以通过rc.local加载路由;如果添加route-bondX路由,无论主机或者网络重启都要去加载相关文件,可以减少路由缺失造成的麻烦。因此,建议将路由写入route-bondX文件。
这篇关于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操作系统入门:新手必学指南