美文网首页
从零开始linux学习--服务器多路由设置(二)

从零开始linux学习--服务器多路由设置(二)

作者: 嵩山奶熊 | 来源:发表于2018-01-05 10:35 被阅读0次

            第一节笔者搭建了服务器,设置了有线网卡并实现了远程管理,也就是说笔者可以在园区网远程访问这台服务器。很多时候,有一些网络会考虑到安全性等,不用接入园区网,只需要一些设备互相访问即可,不用访问公网资源,学习中就称这些小网络为专用网络,学习中笔者简称专网,比如公司的财务网、监控网等。这样笔者就有了新的要求,即我的这台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是什么意思?

    相关文章

      网友评论

          本文标题:从零开始linux学习--服务器多路由设置(二)

          本文链接:https://www.haomeiwen.com/subject/rljjnxtx.html