1.1.1 linux路由部署项目背景
在企业当中,网络环境可能是比较复杂的,会需要配置多个网段地址,并且多个网段之间要实现网络的互通。这时就需要引入linux网络路由配置的概念,来解决网络之间的互通。本方案就是以一个简单的企业场景案
例进行规划、分析、以及配置企业内部的不同网段之间互通。
1.1.2 linux路由部署项目拓扑
项目实战拓扑图
1.1.3 路由部署项目拓扑图分析
q 拓扑所需设备:
这个拓扑采用三台虚拟机设备即可,拓扑中所绘制交换机设备以及路由设备,为生产中场景设备,利用vm虚拟软件模拟时,可以忽略掉,因为虚拟化软件自身即可完成路由和交换相应功能。
q 拓扑实现需求:
需要在虚拟化软件中配置开启两块虚拟网卡,分别为vmnet8与vmnet1,默认虚拟软件会开启vmnet8网卡采用nat模式,只需再添加一块vmnet1虚拟网卡即可;由于vm虚拟软件不支持多块网卡开启nat模式,因此vmnet1虚拟网卡设置为主机模式即可,无需达到nat模式访问外网条件。
q 拓扑实现目标:
默认生产环境中,三台服务器均可满足访问外网需求;但最终目标是完成服务器01与服务器03之间的不同网段间通讯,即服务器01的10.0.0.10主机IP地址可以正常访问服务器03的10.0.1.10主机IP地址
1.1.4 vmware虚拟软件环境准备
1.1.5 虚拟软件环境准备-虚拟主机部署
利用老男孩运维基础部分知识,在虚拟软件中首先创建出三台虚拟主机;也可以采用虚拟软件克隆技术,克隆出三台主机。准备工作完成后,会在虚拟主机信息界面出现3台新的虚拟主机信息。如下图所示即可:
虚拟主机信息
提示信息:
具体创建步骤不在进行过多说明,基础运维部分已经进行过相关讲解
1.1.6 虚拟软件环境准备-虚拟主机网卡创建
需要在虚拟主机中创建出上文拓扑中所提到的两块虚拟网卡分别为vmnet8与vmnet1
具体创建步骤参照下图步骤所示:
点击虚拟软件菜单栏中【编辑】-【虚拟网络编辑器】
配置虚拟网卡步骤01
进入到虚拟网编辑器中首先配置vmnet8虚拟网(默认即有不用进行添加新增)
vmnet8虚拟网配置项:
q 选中【NAT模式与虚拟机共享主机的IP地址】
q 选中【将主机虚拟适配器连接到此网络】
q 子网IP【10.0.0.0】;子网掩码【255.255.255.0】
其余配置项不进行选择配置
配置虚拟网卡步骤02
进入到虚拟网编辑器中首先配置vmnet1虚拟网(默认即有,若不存在点击上图中的【添加网路】)
vmnet1虚拟网配置项:
q 选中【仅主机模式在专用网络内连接虚拟主机】
q 选中【将主机虚拟适配器连接到此网络】
q 子网IP【10.0.1.0】;子网掩码【255.255.255.0】
其余配置项不进行选择配置:
配置虚拟网卡步骤03
1.1.7 虚拟软件环境准备-虚拟主机添加虚拟网卡
选中相应虚拟主机【右键点击】-选择【设置】
虚拟主机添加虚拟网卡步骤01
进入到虚拟机配置界面选择【硬件】选项卡-选择【添加】
虚拟主机添加虚拟网卡步骤02
进入到添加硬件向导选中所要添加的硬件-点击【下一步】
网络连接配置添加的第一个网卡选择NAT,添加的第二个网卡选择仅主机模式
虚拟主机添加虚拟网卡步骤03
配置完毕后,会在虚拟机设置页面出现添加成功的相应网卡信息:
t 服务器01添加虚拟网卡信息如下:
服务器01虚拟网卡信息
t 服务器02添加虚拟网卡信息如下:
服务器02虚拟网卡信息
服务器02虚拟网卡信息2
t 服务器03添加虚拟网卡信息如下:
服务器03虚拟网卡信息
1.1.8 虚拟软件环境准备-虚拟主机网卡地址配置
此步不做过多说明,利用setup命令即可完成网卡地址信息配置,具体配置步骤参见老男孩基础运维-虚拟机网络环境部署课程!
1.1.9 虚拟软件环境准备-虚拟主机网络信息汇总表
虚拟服务器 |
网卡配置信息 |
虚拟网卡名称 |
虚拟网卡模式 |
服务器01 |
eth0:10.0.0.10/24 |
vmnet8 |
nat模式 |
服务器02 |
eth0:10.0.0.11/24 |
vmnet8 |
nat模式 |
eth1:10.0.1.11/24 |
vmnet1 |
仅主机模式 |
|
服务器03 |
eth0:10.0.1.10/24 |
vmnet1 |
仅主机模式 |
虚拟主机网络信息汇总表
1.1.10 linux路由部署实践部分
1.1.11 查看确认三台主机默认路由配置条目信息
服务器01主机路由表条目信息:
1
2
3
4
5
6
|
[root@oldboy ~]
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.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 1002 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
|
服务器02主机路由表条目信息:
1
2
3
4
5
6
7
|
[root@oldboy ~]
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref UseIface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
|
服务器03主机路由表条目信息:
1
2
3
4
5
6
|
[root@oldboy ~]
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref UseIface
10.0.1.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 1002 0 0 eth0
0.0.0.0 10.0.1.254 0.0.0.0 UG 0 0 0 eth0
|
1.1.12 服务器主机配置网路路由条目信息
服务器01上配置网路路由条目:
1
2
3
4
5
6
7
8
|
[root@oldboy ~]
# route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.0.11
[root@oldboy ~]
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.1.0 10.0.0.11 255.255.255.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
|
说明:利用添加网络路由条目命令,已经在服务器01上正确添加上一条去往10.0.1.0网段路由条目
服务器03上配置网络路由条目:
1
2
3
4
5
6
7
8
|
[root@oldboy ~]
# route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.1.11
[root@oldboy ~]
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref UseIface
10.0.0.0 10.0.1.11 255.255.255.0 UG 0 0 0 eth0
10.0.1.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 1002 0 0 eth0
0.0.0.0 10.0.1.254 0.0.0.0 UG 0 0 0 eth0
|
说明:利用添加网络路由条目命令,已经在服务器03上正确添加上一条去往10.0.0.0网段路由条目
1.1.13 配置开启主机路由转发功能
服务器02主机在拓扑中负责进行路由转发,需要开启相应配置参数
1
2
3
4
|
[root@oldboy ~]
# vim /etc/sysctl.conf
net.ipv4.ip_forward= 1
[root@oldboy ~]
# sysctl -p
net.ipv4.ip_forward= 1
|
...其余显示部分省略...
说明:默认数值为0,将数值改为1,路由转发功能即表示开启
1.1.14 虚拟主机路由访问验证
服务器01主机上进行验证:
1
2
3
4
|
[root@oldboy ~]
# traceroute 10.0.1.10
traceroute
to 10.0.1.10 (10.0.1.10), 30 hops max, 60 byte packets
1 10.0.0.11 (10.0.0.11) 0.247 ms 2.281 ms 2.245 ms
2 10.0.1.10 (10.0.1.10) 3.077 ms !X 3.055 ms !X 3.018 ms !X
|
说明:通过traceroute路由路径追踪命令,已确认路由走向符合配置需求,即路由配置正确无误。
!X表示已经完成路由追踪过程。
服务器03主机上进行验证:
1
2
3
4
|
[root@oldboy ~]
# traceroute 10.0.0.10
traceroute
to 10.0.0.10 (10.0.0.10), 30 hops max, 60 byte packets
1 10.0.1.11 (10.0.1.11) 0.295 ms 1.221 ms 1.175 ms
2 10.0.0.10 (10.0.0.10) 1.797 ms !X 1.761 ms !X 1.727 ms !X
|
说明:通过traceroute路由路径追踪命令,已确认路由走向符合配置需求,即路由配置正确无误。
!X表示已经完成路由追踪过程。
1.1.15 linux路由部署项目结论
整体配置部署步骤已符合原有项目需求,生产环境中,已经可以满足3台服务器主机在正常访问外网的同时,可以利用服务器路由转发功能与服务器网路路由配置,实现内网环境跨网段进行通讯需求。
1.1.16 linux路由部署异常分析
01. 防火墙异常问题:
服务器主机02起到路由转发功能,类似于路由器的角色,因此服务器上防火墙功能需要关闭,否则防火墙相应条目会阻止掉路由转发流量;具体iptables防火墙安全策略配置后续章节会进行讲解,敬请期待!
02. 虚拟网卡异常问题:
服务器主机网卡信息配置中,尽量选择nat模式或者仅主机模式网卡进行配置,不要选择LAN区段网卡配置方式,否则根据虚拟软件网络工作原理,LAN区段网卡配置模式无法进行路由的转发,会影响最终配置效果。
网友答案:
方圆<xxxxm> 10:51:18
测试平台:CentOSLinux release 7.3.1611 (Core)
添加临时路由
1.为某网络添加路由
1
|
route add -net 220.181.8.0
/24
gw192.168.72.2
|
2.添加到某主机的路由
1
|
route add -host 220.123.123.123 gw192.168.72.2
|
3.添加默认路由
1
|
route add default gw 192.168.72.2
|
添加永久路由
方法1: 在/etc/rc.local里添加执行命令文本内容
1
|
route add -host 220.123.123.123 gw192.168.72.2
|
该方法注意点:需要/etc/rc.local具有开机执行权限,该方法的缺陷是在/etc/init.d/network服务重启后添加的路由会消失
方法2:增加文件,并写入如下需要添加的路由信息:vim/etc/sysconfig/static-routes
1
2
|
any net 220.181.9.0
/24
gw 192.168.72.2
any host 220.181.9.2 gw 192.168.72.2
|
该方法的原理为:/etc/init.d/network在启动时,会调用执行/etc/sysconfig/static-routes文件内容,详细调用方式请查看/etc/init.d/network文件内容
此方法的优点是:即使/etc/init.d/network服务重启,路由表信息也不会丢失。@悠久之翼
本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1912531