第一节笔者搭建了服务器,设置了有线网卡并实现了远程管理,也就是说笔者可以在园区网远程访问这台服务器。很多时候,有一些网络会考虑到安全性等,不用接入园区网,只需要一些设备互相访问即可,不用访问公网资源,学习中就称这些小网络为专用网络,学习中笔者简称专网,比如公司的财务网、监控网等。这样笔者就有了新的要求,即我的这台linux服务器也需要接入到专用网络,实现对专网的管理、数据采集等。
当然,最简单的方法可以在专网里单独再搭一台服务器,但是考虑使用效率和经费,笔者采用一个更普遍的方法,采用多网口的方式实现。
想法上:笔者的设备有两个网卡,网卡一接园区网,网卡二接专网。当笔者想要访问园区资源或者园区外资源时,数据包就从网卡一上进行转发;当笔者访问专网时,数据包就从网卡二上转发;这样就只需增加网卡来实现不同网络间数据的收发了。
从上而言,这是一个数据包选路的概念,即到了十字路口以后是向左还是向右。标准的实现方法:路由。
结合实际情况,笔者的专网地址是以172.17和10.150开头的地址,网卡的管理地址为10.150.101.249。其余地址均可以通过园区网络访问资源。想法上没有问题了,下一步就来开始调试。
1. ip route show 查看一下本地路由:
笔者为了图方便,直接在园区网络使用了公网地址,这里就把公网地址隐掉了,如果按照第一节的内容应该是default via 192.168.101.1(默认网关);
192.168.101.0/24 dev enp1s0f0 :这里是网络号和掩码;
link 192.168.101.2 metric 100:这里就是网卡的本地地址。
分段来看:
default via 192.168.101.1 dev enp1s0f0 proto static metric 100
192.168.101.0/24 dev enp1s0f0 proto kernel scope link src 192.168.101.2 metric 100
dev enp1s0f0:定义了默认路由的网卡。
metric 100:metric值,越小优先级越高,优先执行。
2. 首先设置第二块网卡,由于默认网关(default GW)只能有一条所以对于第二块网卡而言,笔者需要做的只是设置IP地址。配置方法与第一节类似,配置前后如下图:
前:
后:
除了IP地址外这次什么都不做配置。
重启网卡:service network restart
查看ip状态:ip addr
这时找一台专网内的设备来ping一下进行测试:
网络已经连通。
在笔者电脑上去ping一下网关(这个没有在网卡中配置,是专网中定义的概念):
发现也是通的!这时其实已经实现了这台设备同时接入专网。
网关查看arp信息:
对照一下笔者本机的mac地址和已经设置的IP地址。确认无误。
3. Tracert路由测试:
Windows环境下tracert测试本机路由笔者已经比较熟悉了,linux下可以之直接通过tracerroute来测试。由于该版本centos 7不带traceroute指令,笔者通过yum来进行安装。
Traceroute网关:traceroute 10.150.101.1
查看yum安装:yum list installed | grep route
发现centos 7确实没有安装traceroute工具。
安装traceroute:yum install traceroute
再次检查一下:yum list installed | grep route
Traceroute网关,发现正常:traceroute 10.150.101.1
Traceroute专网内不同地址段的IP:traceroute 10.150.120.2
果然,由于默认路由是走的园区网,而园区网络内没有该IP地址,路由不通。
4. 将如上的两部分做对比,笔者下一步要做的就是“优先转发”,即对于10.150.0.0/16的数据报文优先通过网卡eth1。
测试阶段:
查看一下本地路由:ip route show
可以看出这次比第一次的路由表多了一条10.150.101.0/24的路由,就是因为有了这条自动生成的路由,才能使得笔者ping 10.150.101.1可通。
由于对于linux设备而言,默认网关(default gateway)只能有一个,而采用双网卡来实现的时候就需要分别写不同地址的路由。因此第一步笔者先回到第一节笔者设置的网卡0上:
cd /etc/sysconfig/network-scripts/
vi ifcfg-enp1s0f0
删除第一节配置的GATEWAY=192.168.101.1
wq!
请注意,删除之后由于没有默认网关的缘故,出网关的数据报文便不再转发。这时候如果通过不同/24网络内远程管理的主机会连接中断。
直接登陆该服务器或者同网段远程管理该设备,执行service network restart。
修改过后继续ip route show:
这时仅剩两条子网内的路由,然后笔者开始新增路由:
新增10.150.0.0/16路由:#ip route add 10.150.0.0/16 via 10.150.101.1 dev enp1s0f1
新增除上述地址段外其余路由:#ip route add 0.0.0.0/0 via 192.168.101.1 dev enp1s0f0
再次查看一下路由:ip route show
发现想要的路由已配置好。笔者来测试一下:
ping www.baidu.com ; ping 10.150.102.3
当然也可以traceroute测试一下路由是怎么走的。
5. 如上笔者发现重启设备时路由就没了,因此也参考windows的做法,把上述路由设置为静态路由:cd /etc/sysconfig/network-scripts/
ls看一下文件:
在上述的基础上笔者新建两个文件,并把之前添加的两条路由加入其中,由于笔者专网中还有172.17.0.0/16的业务地址,所以一并加上去:
vi route-enp1s0f0
0.0.0.0/0 via 192.168.101.1 dev enp1s0f0
vi route-enp1s0f1
10.150.0.0/16 via 10.150.101.1 dev enp1s0f1
172.17.0.0/16 via 10.150.101.1 dev enp1s0f1
重启服务器:reboot。按照测试阶段的方法再进行尝试。
这时笔者发现比测试阶段多出了一条关于172.17.0.0/16的路由,多网卡设置成功~
思考:
1. 对比最初的单网卡配置和最终实现双网卡接入的图片:
为何要删掉第一条:default via 192.168.101.1 dev enp1s0f0 proto static metric 100并新增一条default via 192.168.101.1 dev enp1s0f0
2. 对于最终路由,有些没有metric值,有些metric值为100。对于同为100的路由(比如上图第二条和第三条),是如何执行优先级的?
3. 最终生成的路由表169.254.0.0/16 dev enp1s0f0 scope link metric 1002是什么意思?
网友评论