Redian新闻
>
Linux系统多网卡环境下的路由配置

Linux系统多网卡环境下的路由配置

公众号新闻


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虽然可以完全访问内网资源,但是却不能访问外网资源。
怎么解决呢?

实验环境

  1. VMware Workstation Pro

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

  3. 华为eNSP模拟器

实验拓扑

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

  • client为双网卡的主机,两网卡网段分别为10.0.0.0/16172.16.2.0/24

  • server2172.16.2.0/24网段的服务器;

  • server3172.16.3.0/24网段的服务器;

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

网络规划

IP分配

节点名称IP地址子网掩码备注
client10.0.0.101255.255.0.0client的外网网卡
172.16.2.101255.255.255.0client的内网网卡
Server2172.16.2.11255.255.255.0172.16.2.0/24网段的某台服务器
Server3172.16.3.11255.255.255.0172.16.3.0/24网段的某台服务器
Server4172.16.4.11255.255.255.0172.16.4.0/24网段的某台服务器
内网路由器172.16.2.254255.255.255.0172.16.2.0/24的网关
172.16.3.254255.255.255.0172.16.3.0/24的网关
172.16.4.254255.255.255.0172.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虚拟机的网卡连接起来。

配置内网环境

配置eNSP的路由器

接口IP地址子网掩码
G0/0/0172.16.2.254255.255.255.0
G0/0/1172.16.3.254255.255.255.0
G0/0/2172.16.4.254255.255.255.0
<huawei>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地址子网掩码默认网关备注
ens3310.0.0.101255.255.0.010.0.0.1外网网卡
ens37172.16.2.101255.255.255.0
内网网卡

server2

网卡名称IP地址子网掩码默认网关备注
ens33172.16.2.11255.255.255.0172.16.2.254

server3

网卡名称IP地址子网掩码默认网关备注
ens33172.16.3.11255.255.255.0172.16.3.254

server4

网卡名称IP地址子网掩码默认网关备注
ens33172.16.4.11255.255.255.0172.16.4.254

在server上搭建HTTP服务

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

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

对照试验

client上访问外网

ping www.baidu.com -c 4

client上访问server2

ping 172.16.2.11 -c 4

client上访问server3

ping 172.16.3.11 -c 4

client上访问server4

ping 172.16.4.11 -c 4

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

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

路由配置

client上查看路由表

route

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

实验结果

检测连通性

ping www.baidu.com -c 4

ping 172.16.2.11 -c 4

ping 172.16.3.11 -c 4

ping 172.16.4.11 -c 4

访问内外网资源

curl http://www.baidu.com/

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

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

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

(版权归原作者所有,侵删)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
技术盛宴 | 多维度对比分析AIGC网络网卡双上联技术架构什么是系统调用机制?结合Linux0.12源码图解你必须知道的 Linux 系统安全配置男人们箭一般的目光Linux 路由网关——生产常见问题遍地春花开 且行且珍惜隴西豐木坡聲聞櫪Lindroid 开源应用:在安卓手机 / 平板上安装 GNU / Linux 发行版vivo X系列新品登场,支持激活也包退换!便利蜂没有理想国:系统改变人,环境改变系统NSR | 多糖基薄膜在湿态环境下的力学性能和稳定性研究获得新进展让你配置 Linux 路由,你该怎么配置Linux 有多重要?这么说吧,只要是干 IT 相关的,学 Linux 是绕不过去的 “ 坎儿 ”深入探讨:Linux防火墙配置详解及iptables与firewalld的使用这个环境下,如何体现数据分析的价值?真正适合小白入门的 Linux 系统书籍Linux上管理文件系统Linux环境变量配置方法Linux之父 Linus Torvalds 编译 arm64 Linux 内核又有 “ 新欢 ”:Ampere AArch64在Linux中,如何在Linux中使用Ansible进行自动化部署?让你配置linux 路由,你该怎么配置你必须知道的Linux系统安全配置linux 路由网关-生产常见问题德国大陆集团子公司 Elektrobit 开源基于 Ubuntu 的 Linux 车载操作系统解决方案掌握Linux磁盘管理技巧:从零开始配置磁盘阵列!犹太女总统,能在这种环境下杀出来的都是牛人受2038年时间戳“炸弹”影响,Linux6.9将弃用ext2文件系统驱动程序UC系统多个分校发布“专业收紧令”!限制留学生就读高需求专业!Linux之父 Linus Torvalds 在技术上可谓是从不私藏,也绝不闭门造车这份判决书,在当下的司法环境下,让人感动!周轶君/到生育的年齡就衝動而孕而生而養/Linux 6.10 将支持 RISC-V 架构下的 Rust 编程语言死磕nginx系列-nginx日志配置Linux 网卡带宽下一颗星 - 美国少年竞赛网球之旅 (上)
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。