0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux下配置永久路由的几种方式

马哥Linux运维 来源:博客园varlemon 2024-10-23 13:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux下路由配置命令

1. 添加主机路由

route add -host 192.168.1.11 dev eth0
route add -host 192.168.1.12 gw 192.168.1.1

2. 添加网络路由

route add -net 192.168.1.11 netmask 255.255.255.0 eth0
route add -net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1
route add -net 192.168.1.0/24 eth0
route add -net 192.168.1.0/24 gw 192.168.1.1

3. 添加默认网关

route add default gw 192.168.1.1

4. 删除路由

route del -host 192.168.1.11 dev eth0

5. 删除默认路由

route del default gw 192.168.1.1

Linux下配置永久路由的几种方式

1. 在/etc/rc.local里添加路由信息

route add -net 192.168.1.0/24 dev eth0
# 或者
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

2. 在/etc/sysconfig/network里追加

GATEWAY=[网关IP或者网关网卡名称]

3./etc/sysconfig/static-routes

any net 192.168.1.0/24 gw 192.168.1.1
# 或者
any net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

4. 开启IP转发

1.临时开启

echo "1" > /proc/sys/net/ipv4/ip_forward

2.永久开启

vim /etc/sysctl.conf

修改net.ipv4.ip_forward=1

实验:配置双网卡主机同时使用内网和外网

本实验的背景是笔者在实践中遇到过的一个问题,本实验尽量还原当时的网络环境。仅当做一份笔记,同时分享给遇到此问题的同学。
奈何我现在没有硬件呀(T_T)...只能拿VMware WorkstationeNSP模拟实验环境了。

问题背景

如下图拓扑所示,如果去掉client节点,内网外网就是相互隔离的网络。

但是实际情况是,client节点既需要访问外网资源,又需要访问内网资源,而client只能配置一条默认路由。如果将默认路由配置在外网网卡,client可以访问172.16.2.0/24网络的资源和外网的资源,但是其余内网资源将无法访问;如果将默认路由配置在内网网卡,client虽然可以完全访问内网资源,但是却不能访问外网资源。
怎么解决呢?

实验环境

VMware Workstation Pro

4台最小化安装的CentOS 7.3虚拟机

华为eNSP模拟器

实验拓扑

9b01fe4c-90fa-11ef-a511-92fbcf53809c.png

去掉client节点,内网和外网是隔离的网络。
外网网络为10.0.0.0/16,代表运营商的接入网;
内网网络为172.16.0.0/16,代表内网部分(该部分为了安全,不允许对互联网的直接访问)。
其中

client为双网卡的主机,两网卡网段分别为10.0.0.0/16、172.16.2.0/24;

server2为172.16.2.0/24网段的服务器;

server3为172.16.3.0/24网段的服务器;

server4为172.16.4.0/24网段的服务器。

网络规划

IP分配

节点名称 IP地址 子网掩码 备注
client 10.0.0.101 255.255.0.0 client的外网网卡
172.16.2.101 255.255.255.0 client的内网网卡
Server2 172.16.2.11 255.255.255.0 172.16.2.0/24网段的某台服务器
Server3 172.16.3.11 255.255.255.0 172.16.3.0/24网段的某台服务器
Server4 172.16.4.11 255.255.255.0 172.16.4.0/24网段的某台服务器
内网路由器 172.16.2.254 255.255.255.0 172.16.2.0/24的网关
172.16.3.254 255.255.255.0 172.16.3.0/24的网关
172.16.4.254 255.255.255.0 172.16.4.0/24的网关

虚机网卡类型

网络名称 VMware网卡类型 网络范围
运营商网络 桥接 10.0.0.0/16
VMnet2 仅主机 172.16.2.0/24
VMnet3 仅主机 172.16.3.0/24
VMnet4 仅主机 172.16.4.0/24

内网路由器如何实现呢?
VMnet2、VMnet3、VMnet4均为仅主机模式,那么常规情况下,只有其网络内的各计算机之间才可以通信,要怎样才能实现三个网络间的通信呢?
答案是使用华为eNSP模拟器中的Cloud。使用Cloud设备可以将eNSP中的路由器和VMware虚拟机的网卡连接起来。

9b216778-90fa-11ef-a511-92fbcf53809c.png

配置内网环境

配置eNSP的路由器

接口 IP地址 子网掩码
G0/0/0 172.16.2.254 255.255.255.0
G0/0/1 172.16.3.254 255.255.255.0
G0/0/2 172.16.4.254 255.255.255.0

system-view
[huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 172.16.2.254 255.255.255.0
[Huawei-GigabitEthernet0/0/0]quit
[huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 172.16.3.254 255.255.255.0
[Huawei-GigabitEthernet0/0/1]quit
[huawei]int g0/0/2
[Huawei-GigabitEthernet0/0/2]ip address 172.16.4.254 255.255.255.0
[Huawei-GigabitEthernet0/0/2]quit
[huawei]

修改虚机的IP地址

client

网卡名称 IP地址 子网掩码 默认网关 备注
ens33 10.0.0.101 255.255.0.0 10.0.0.1 外网网卡
ens37 172.16.2.101 255.255.255.0 内网网卡

server2

网卡名称 IP地址 子网掩码 默认网关 备注
ens33 172.16.2.11 255.255.255.0 172.16.2.254

server3

网卡名称 IP地址 子网掩码 默认网关 备注
ens33 172.16.3.11 255.255.255.0 172.16.3.254

server4

网卡名称 IP地址 子网掩码 默认网关 备注
ens33 172.16.4.11 255.255.255.0 172.16.4.254

在server上搭建HTTP服务

以server2为例:
使用Python创建一个简单的HTTP服务

cd ~
echo "server2" > index.html
python -m SimpleHTTPServer 8080

9b37ed9a-90fa-11ef-a511-92fbcf53809c.png

对照试验

在client上访问外网

ping www.baidu.com -c 4

9b4f6ce0-90fa-11ef-a511-92fbcf53809c.png

在client上访问server2

ping 172.16.2.11 -c 4

9b5ef110-90fa-11ef-a511-92fbcf53809c.png

在client上访问server3

ping 172.16.3.11 -c 4

9b793692-90fa-11ef-a511-92fbcf53809c.png

在client上访问server4

ping 172.16.4.11 -c 4

9b84ea64-90fa-11ef-a511-92fbcf53809c.png

在对照试验中可以看到,在client将默认网关配置在外网网卡的情况下,双网卡的client可以正常访问外网和内网的172.16.2.0/24部分,而172.16.3.0/24和172.16.4.0/24是不能访问到的。

为什么client能访问172.16.2.0/24网络,而不能访问172.16.0.0/16的其余网络呢?
因为client位于172.16.2.0/24网络内,在网络内进行通信,数据包不用发送至其他网络,当然默认网关也就不起作用了。
而当client与172.16.0.0/16的其余网络通信时,client的路由表没有记载发往目的地址的路径,所以client只能傻傻的把数据包发送给默认网关,从此数据包和真正的目的地址就“南辕北辙”了。当然ping的结果就是网络不可达。

路由配置

在client上查看路由表

route

9b9d1652-90fa-11ef-a511-92fbcf53809c.png

在client上添加路由

route add -net 172.16.0.0/16 gw 172.16.2.254

永久配置,则在/etc/rc.local里添加路由信息

route add -net 172.16.0.0/16 gw 172.16.2.254

查看路由表

route

9baaef2a-90fa-11ef-a511-92fbcf53809c.png

实验结果

检测连通性

ping www.baidu.com -c 4

9bc7f106-90fa-11ef-a511-92fbcf53809c.png

ping 172.16.2.11 -c 4

9bd90572-90fa-11ef-a511-92fbcf53809c.png

ping 172.16.3.11 -c 4

9be6ace0-90fa-11ef-a511-92fbcf53809c.png

ping 172.16.4.11 -c 4

9bf40c5a-90fa-11ef-a511-92fbcf53809c.png

访问内外网资源

curl http://www.baidu.com/

9c09c428-90fa-11ef-a511-92fbcf53809c.png

curl http://172.16.2.11:8080/index.html
curl http://172.16.3.11:8080/index.html
curl http://172.16.4.11:8080/index.html

9c1442cc-90fa-11ef-a511-92fbcf53809c.png

解决的办法很简单,就是1条命令而已。
但是蕴藏在这条命令背后的原理、概念、理论,则需要我们进行深究!

链接:https://www.cnblogs.com/connect/p/linux-static-route.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11627

    浏览量

    217888
  • 命令
    +关注

    关注

    5

    文章

    746

    浏览量

    23441
  • 路由配置
    +关注

    关注

    0

    文章

    4

    浏览量

    926

原文标题:Linux系统多网卡环境下的路由配置

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux系统进程的几种状态介绍

    文章对 Linux 系统进程的几种状态进行介绍,并对系统出现大量僵尸进程和不可中断进程的场景进行分析,使用常用的几种工具进行问题分析定位。
    发表于 11-24 16:15 1.4w次阅读
    <b class='flag-5'>Linux</b>系统<b class='flag-5'>下</b>进程的<b class='flag-5'>几种</b>状态介绍

    Linux下文件共享的几种方式

    网络的不同主机、主机与公网中的主机、主机与云服务器等等之间拷贝文件。那么在这样的环境如何实现文件拷贝呢,我们来说说下面的几种方式,看看你是否常用
    发表于 04-26 17:23 9082次阅读

    路由器负载均衡怎么配置

    路由器负载均衡是一种重要的网络技术,它能够将多个网络连接的流量分配到多个路由器上,以提高网络的性能和稳定性。本文将详细介绍路由器负载均衡的配置方法,包括负载均衡的实现
    的头像 发表于 12-13 11:17 4997次阅读

    路由器的配置

    要注意选择对应的串口(com1或com2)并配置串口参数。华为路由器均采用命令行的方式进行配置,为了实验顺利进行,先来介绍一Quidway
    发表于 12-07 14:09

    嵌入式Linux NFS方式应用程序的实现

    嵌入式Linux NFS方式应用程序的实现:本文在以ARM9 内核芯片,处理器为S3C2410 构造的开发板系统上,详细讨论了如何配置嵌入式Lin
    发表于 08-02 14:48 39次下载

    Linux环境USB的原理、驱动和配置

    本文对 Linux 环境USB 的原理、驱动和配置进行详细介绍。随着生活水平的提高,人们对 USB 设备的使用也越来越多,鉴于Linux 在硬件
    发表于 01-16 16:57 33次下载

    如何配置路由

    如何配置路由器 【实训目的】(1)熟悉路由器。(2)了解路由器的配置方式。(3)掌握
    发表于 12-07 14:09 3855次阅读
    如何<b class='flag-5'>配置</b><b class='flag-5'>路由</b>器

    配置静态路由

    配置静态路由 用户可以在全局配置模式通过命令 ip route
    发表于 06-09 23:51 1027次阅读
    <b class='flag-5'>配置</b>静态<b class='flag-5'>路由</b>

    路由配置基础手册

    路由配置基础手册 一、基本设置方式
    发表于 04-01 13:37 765次阅读

    linuxsamba服务器搭建配置

    linuxsamba服务器搭建配置是使用linux开发系统时经常要配置的一步,只有这频配置好,
    发表于 03-19 18:59 13次下载

    linux添加路由的方法

    linux添加路由的方法:
    发表于 05-26 09:44 4048次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>下</b>添加<b class='flag-5'>路由</b>的方法

    虚拟机:Linux查看路由信息的几种方法

    虚拟机:Linux查看路由信息的几种方法
    的头像 发表于 06-22 15:24 8931次阅读
    虚拟机:<b class='flag-5'>Linux</b>查看<b class='flag-5'>路由</b>信息的<b class='flag-5'>几种</b>方法

    LinuxApache服务器的安装和配置

    LinuxApache服务器的安装和配置(现代电源技术的发展概况)-LinuxApache服务器的安装和
    发表于 08-31 16:22 8次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>Apache服务器的安装和<b class='flag-5'>配置</b>

    静态路由是什么?静态路由如何配置

    静态路由是一种路由方式路由项由手动配置,而非动态决定。与动态路由不同,静态
    的头像 发表于 10-07 10:48 2.8w次阅读
    静态<b class='flag-5'>路由</b>是什么?静态<b class='flag-5'>路由</b>如何<b class='flag-5'>配置</b>?

    Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种。环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的
    的头像 发表于 10-23 13:39 1244次阅读