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

系统 Linux
本文在Linux系统多网卡环境下介绍一下路由配置 ,一起来看一下吧。

[[352843]]

Linux下路由配置命令

1.添加主机路由 

  1. route add -host 192.168.1.11 dev eth0  
  2. route add -host 192.168.1.12 gw 192.168.1.1 

2.添加网络路由 

  1. route add -net 192.168.1.11 netmask 255.255.255.0 eth0  
  2. route add -net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1  
  3. route add -net 192.168.1.0/24 eth0  
  4. route add -net 192.168.1.0/24 gw 192.168.1.1 

3.添加默认网关 

  1. route add default gw 192.168.1.1 

4.删除路由 

  1. route del -host 192.168.1.11 dev eth0 

5.删除默认路由 

  1. route del default gw 192.168.1.1 

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

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

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

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

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

3./etc/sysconfig/static-routes 

  1. any net 192.168.1.0/24 gw 192.168.1.1  
  2. # 或者  
  3. any net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 

4.开启IP转发

1.临时开启 

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

2.永久开启 

  1. vim /etc/sysctl.conf  
  2. 修改net.ipv4.ip_forward=1 

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

本实验的背景是笔者在实践中遇到过的一个问题,本实验尽量还原当时的网络环境。仅当做一份笔记,同时分享给遇到此问题的同学。

奈何我现在没有硬件呀(T_T)...只能拿VMware Workstation和eNSP来模拟实验环境了。

问题背景

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

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

实验环境

  •  VMware Workstation Pro
  •  4台最小化安装的CentOS 7.3虚拟机
  •  华为eNSP模拟器

实验拓扑

  •  去掉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网段的服务器。

网络规划

内网路由器如何实现呢?

VMnet2、VMnet3、VMnet4均为仅主机模式,那么常规情况下,只有其网络内的各计算机之间才可以通信,要怎样才能实现三个网络间的通信呢?

答案是使用华为eNSP模拟器中的Cloud。使用Cloud设备可以将eNSP中的路由器和VMware虚拟机的网卡连接起来。

配置内网环境

配置eNSP的路由器

 

  1. <huawei>system-view  
  2. [huawei]int g0/0/0  
  3. [Huawei-GigabitEthernet0/0/0]ip address 172.16.2.254 255.255.255.0  
  4. [Huawei-GigabitEthernet0/0/0]quit  
  5. [huawei]int g0/0/1  
  6. [Huawei-GigabitEthernet0/0/1]ip address 172.16.3.254 255.255.255.0  
  7. [Huawei-GigabitEthernet0/0/1]quit  
  8. [huawei]int g0/0/2 
  9. [Huawei-GigabitEthernet0/0/2]ip address 172.16.4.254 255.255.255.0  
  10. [Huawei-GigabitEthernet0/0/2]quit  
  11. [huawei] 

修改虚机的IP地址

在server上搭建HTTP服务

以server2为例:

使用Python创建一个简单的HTTP服务 

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

对照试验,在client上访问外网 

  1. ping www.baidu.com -c 4 

在client上访问server2 

  1. ping 172.16.2.11 -c 4 

在client上访问server3 

  1. ping 172.16.3.11 -c 4 

在client上访问server4 

  1. ping 172.16.4.11 -c 4 

在对照试验中可以看到,在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上查看路由表

在client上添加路由 

  1. route add -net 172.16.0.0/16 gw 172.16.2.254 

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

  1. route add -net 172.16.0.0/16 gw 172.16.2.254 

查看路由表

实验结果

检测连通性 

  1. ping www.baidu.com -c 4 

 

  1. ping 172.16.2.11 -c 4 

 

  1. ping 172.16.3.11 -c 4 

 

  1. ping 172.16.4.11 -c 4 

访问内外网资源 

  1. curl http://www.baidu.com/ 

 

  1. curl http://172.16.2.11:8080/index.html  
  2. curl http://172.16.3.11:8080/index.html  
  3. curl http://172.16.4.11:8080/index.html 

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

 

责任编辑:庞桂玉 来源: 民工哥技术之路
相关推荐

2009-11-24 09:24:37

Linux双网卡主机路由配置

2011-08-22 14:34:36

路由表

2010-04-12 15:29:07

网卡配置

2014-08-08 14:26:13

​i​f​c​o​n​linux

2009-12-16 13:18:28

Linux双网卡虚拟路

2010-09-14 13:08:11

配置无线连接

2011-04-25 15:14:38

LinuxQtOpenCV

2009-06-17 16:38:40

性能管理监控日立

2009-06-08 17:50:00

javalinuxjsp

2009-06-16 15:57:53

Java环境变量

2011-06-28 16:56:41

Linux Qt creator

2011-01-18 09:41:21

Linux网卡

2009-10-09 17:00:35

RHEL配置多网卡

2013-06-03 13:19:57

2009-12-17 16:01:40

无线路由配置网卡

2009-12-09 10:07:22

配置静态路由

2013-06-05 13:31:25

2009-07-17 14:26:40

在Linux下配置Jy

2010-06-02 16:07:54

IPv6路由广播

2015-04-09 10:18:21

网卡配置
点赞
收藏

51CTO技术栈公众号