使用虚拟机搭建路由环境

简介:

 学习关于网络的内容,离不开路由,所以博主分享一下如何利用虚拟机搭建具有三个路由器和两个主机的路由环境。

  当然了需要开启五个centos系统,如果虚拟机里没有添加这么多系统,可以复制现有的来打开,具体实现如下:

     1、打开现有cengos所在文件夹,复制所有内容到新文件夹,然后在虚拟机中打开这个文件夹中的CentOS系统。

 

wKiom1mzShWhFqXMAABJVWwZLHs336.jpg

wKiom1mzShaByqXDAADCQjjHRWc027.jpg


     2、由于复制过来的系统与原来的一模一样,所以需要改一下网卡的mac地址再启动虚拟机。设置--》网络适配器--》高级--》生成--》确定

      说明: 如果你的计算机运行内存不是很大,最好把内存改的小一点再启动,要不然同时开五个,根本卡的跑不动


wKioL1mzSfPREKZgAAD5CkmiiYg063.jpg

wKioL1mzSfOg83mxAABifDgPsPE545.jpg


那么接下来就可以开始搭建环境了:

 

一、规划网络(需要四个网络)

    1、五个终端每个对应一个设备,改一下名字方便实验:设置-->选项 即可改名,分别改为A route1 route2 route3 B

wKiom1mzTyWgsNGXAAECsLwAC7E711.jpg  

    2、A和B都只需要一个网卡就行了(移除一个网卡,或者单击虚拟机右下角的小图标断开一个连接)。

    路由器需要两个网卡。

    3、自定义网络

     虚拟网络编辑器-->添加网络-->VMnet11/VMnet12/VMnet13/VMnet14

    将主机A另一个网卡改成自定义VMnet11

    将主机B另一个网卡改成自定义VMnet14

    route1  一个网卡自定义成VMnet11,另一个自定义成VMnet12

    route2  一个网卡自定义成VMnet12,另一个自定义成VMnet13

    route3  一个网卡自定义成VMnet13,另一个自定义成VMnet14

wKioL1mzTwKRFwD3AAEUgAhr_JE987.jpg

二、虚拟机网卡配置:都要关闭NetworkManager服务,避免干扰。

             service NetworkManager stop 临时关闭

             chkconfig NetworkManager off 永久关闭

  主机A:

     centos7:

     vim /etc/sysconfig/network-scripts/ifcfg-ens33  

          BOOTPROTO=none

      IPADDR=10.1.111.111

      PREFIX=16

      GATEWAY=10.1.111.112

      启动:

        systemctl network restart 有时候会出错不生效,可以使用nmcli connection down ens33;nmcli connection up ens33



     centos6:

     vim /etc/sysconfig/network-scripts/ifcfg-eth0

            BOOTPROTO=none

      IPADDR=10.1.111.111

      PREFIX=16

      GATEWAY=10.1.111.112

      启动:service restart network



  主机B:

      同A,只是文件内容的IPADDR、NETWORK、GATEWAY不一样

         

        vim /etc/sysconfig/network-scripts/ifcfg-eth0

            BOOTPROTO=none

      IPADDR=10.4.111.112

      PREFIX=16

      GATEWAY=10.4.111.111

      启动:service restart network

  R1:

       vim /etc/sysconfig/network-scripts/ifcfg-eth0

            BOOTPROTO=none

       IPADDR=10.1.111.112

       PREFIX=16

      路由器不需要配网关,因为之后需要手动添加路由,相当于网关的功能。


      vim /etc/sysconfig/network-scripts/ifcfg-eth1

          BOOTPROTO=none

     IPADDR=10.2.111.111

     PREFIX=16


      配置完之后重启服务service network restart


  R2:

       

       vim /etc/sysconfig/network-scripts/ifcfg-eth0

          BOOTPROTO=none

     IPADDR=10.2.111.112

     PREFIX=16

          


      vim /etc/sysconfig/network-scripts/ifcfg-eth1

          BOOTPROTO=none

     IPADDR=10.3.111.111

     PREFIX=16


      配置完之后重启服务service network restart


  R3:

       

       vim /etc/sysconfig/network-scripts/ifcfg-eth0

          BOOTPROTO=none

     IPADDR=10.3.111.112

     PREFIX=16

         


      vim /etc/sysconfig/network-scripts/ifcfg-eth1

          BOOTPROTO=none

     IPADDR=10.4.111.111

     PREFIX=16


      配置完之后重启服务service network restart


三、添加/删除 路由记录  配置完给防火墙关了: 

         centos6

                chkconfig iptables off  开机即关闭

                servcie iptables stop   当前关闭

         centos7

                systemctl disable firewalld

                systemctl stop firewalld

     

    缺少到达哪个网络的路由记录就添加哪个

    A、B :

          要有默认网关,一般是自动生成的

   R1:

      添加到达VMnet13和VMnet14的路由,语法如下: 

          

          route add -net 目标网络 netmask 子网掩码 gw 网关 dev 接口

              或者route add -net 目标网络/子网掩码 gw 网关 dev 接口

     

   R2 R3  用法同R1,只是添加的路由记录的内容不同,

            R1添加到达VMnet13和VMnet14网络的路由

            R2添加到达VMnet11和VMnet14网络的路由 

            R3添加到达VMnet11和VMnet12网络的路由

   但是对于边界路由器,可以在原本基础上直接只添加默认路由,所以

            R1:

               route add default gw 网关   

            R3:

               route add default gw 网关

   

说明:

    如果主机A只有到达4网络的路由记录,没有到达3的,那么仍然能ping通4,但是不能ping通3,因为它只关心有没有到达目标的路由,而不关心中间经过谁。     


四、开启路由器转发功能

  系统不是直接就能当路由器的,还需要开启一个转发功能。所以R1、R2、R3都需要开启。

      echo 1 > /proc/sys/net/ipv4/ip_forward  这个功能在重启服务后就失效,所以在所有网卡都配置完之后先重启服务,再设置这个功能。

                         j_0080.gif

     如果想要了解更多关于配置网卡及路由的信息,请参照博主的另外一篇文章:

    链接:http://13150617.blog.51cto.com/13140617/1963833
















本文转自lc0108131451CTO博客,原文链接:http://blog.51cto.com/13150617/1963878 ,如需转载请自行联系原作者


相关文章
|
3月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
80 2
|
5月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
5月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
5月前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
|
5月前
|
安全 Windows
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
|
5月前
|
安全 网络安全
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
|
5月前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
8月前
|
网络协议 Java 应用服务中间件
记录_centos7离线环境和虚拟机共享文件安装jdk和tomcat(配置环境变量)
记录_centos7离线环境和虚拟机共享文件安装jdk和tomcat(配置环境变量)
63 0
|
8月前
|
Ubuntu Linux 数据安全/隐私保护
如何在windows电脑上搭建Linux环境(手把手教安装虚拟机软件和使用云服务器)
如何在windows电脑上搭建Linux环境(手把手教安装虚拟机软件和使用云服务器)
|
8月前
|
Ubuntu Linux Windows
window10 虚拟机 linux ubuntu 环境下samba服务器配置
本文的目的是在windows 10 系统,使用samba服务实现 windows 10共享虚拟机ubuntu系统的文件。
153 0