linux模拟路由器实验

实验目标:

将3台主机设置成路由器

实现两台终端能够相互通信

网络结构如下:

准备工作:

1、批量复制虚拟机文件,创建多个系统,提前把mac地址修改

2、关闭防火墙

service iptables   stop  //centos6版本

systemctl  stop firewalld.service   //centos7版本

3、关闭selinux

setenforce 0  //关闭

getenforce  //查看

4、在三台“路由器”上启用路由转发功能

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

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

操作过程:

第1步:配置网卡地址,测试直连

配置ip地址

ifconfig 接口 ip地址/掩码

或者

ip addr add ip地址/掩码  dev 接口

检查ip配置

ip add

或者

ifconfig

PC-A:
ifconfig eth2 10.10.1.1/24
R_x:
ifconfig eth1 10.10.1.254/24   //PC-A的网关
ifconfig eth2 10.10.12.1/24    //与R_y直连
R_y:
ifconfig eth0 10.10.12.2/24    //与R_x直连
ifconfig eth2 10.10.23.1/24    //与R_z直连
R_z:
ifconfig eth0 10.10.23.2/24    //与R_y直连
ifconfig eth1 10.10.2.254/24   //PC-B的网关
PC-B:
ifconfig eth1 10.10.1.1/24

测试直连地址使用工具:ping

如果直连不通,后续就无法操作,一定要保证ip配置正确

网卡的配置文件存放在下述目录中:

/etc/sysconfig/network-scripts/

如果想要永久生效可以修改目录中对应的网卡文件

第2步:添加路由,测试

配置路由

ip route add 目的网段/掩码 via  下一跳ip地址

或者

route add -net 目的网段/掩码 dev 本机出接口

意思就是要想到达某一网络,就要从本机指定接口出去,或者指定的邻接路由器接口ip地址,而这就是下一跳

查看路由信息

route -n

或者

ip route

PC-A:
ip route default via 10.10.1.254    //主机A不管去哪里的网络,都会把数据包交给网关10.10.1.254也就是R_x
R_x:
ip route add 10.10.2.0/24 via 10.10.12.2    
ip route add 10.10.23.0/24 via 10.10.12.2    //要想到达目标网络,本段必须有去的路由,但是并不关心回的路由,因为那是由对端设备负责的
R_y:
ip route add 10.10.1.0/24 via 10.10.12.1
ip route add 10.10.2.0/24 via 10.10.23.2
R_z:
ip route add 10.10.1.0/24 via 10.10.23.1
ip route add 10.10.12.0/24 via 10.10.23.1
PC-B:
ip route default via 10.10.2.254
//每条路由是只负责去的路径,由对方负责回来的路径。对本段而言回的路由就是对端去的路由

查看各个设备的路由表

[[email protected]_A ~]#ip route 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.100  metric 1 
10.10.1.0/24 dev eth2  proto kernel  scope link  src 10.10.1.1 
default via 10.10.1.254 dev eth2        //主机A有一条默认路由,去往目标的数据包全部交给eth2接口
[[email protected]_x ~]#ip route 
10.10.23.0/24 via 10.10.12.2 dev eth2 
10.10.2.0/24 via 10.10.12.2 dev eth2         //路由器R_x到达目的网络的路径是10.10.12.2,也就是R_y
10.10.1.0/24 dev eth1  proto kernel  scope link  src 10.10.1.254 
10.10.12.0/24 dev eth2  proto kernel  scope link  src 10.10.12.1   //以上两条路由是直连网络
[[email protected]_y ~]#ip route 
10.10.23.0/24 dev eth2  proto kernel  scope link  src 10.10.23.1 
10.10.2.0/24 via 10.10.23.2 dev eth2 
10.10.1.0/24 via 10.10.12.1 dev eth0       //由于R_y是3台路由器的中间一台,所以需要配置到两端的路由,因此下一跳也不一样
10.10.12.0/24 dev eth0  proto kernel  scope link  src 10.10.12.2
[[email protected]_z ~]#ip route 
10.10.23.0/24 dev eth0  proto kernel  scope link  src 10.10.23.2 
10.10.2.0/24 dev eth1  proto kernel  scope link  src 10.10.2.254 
10.10.1.0/24 via 10.10.23.1 dev eth0 
10.10.12.0/24 via 10.10.23.1 dev eth0     //至此经过的路由器有三个了,到达目的网络网关
[[email protected] ~]#ip route
default via 10.10.2.254 dev eth1       //到达目的主机B
10.10.2.0/24 dev eth1  proto kernel  scope link  src 10.10.2.1 
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.100 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

出现的192.168.x.x网络可以忽略

测试:

配置没问题的话,到这一步PC-A就能够ping通PC-B

[[email protected]_A ~]#ping -c 5 10.10.2.1
PING 10.10.2.1 (10.10.2.1) 56(84) bytes of data.
64 bytes from 10.10.2.1: icmp_seq=1 ttl=61 time=0.752 ms    //ttl之所以是61,是经过3个路由器R_x、R_y、R_z,ttl值原是64,经过1个路由器减一
64 bytes from 10.10.2.1: icmp_seq=2 ttl=61 time=0.983 ms
64 bytes from 10.10.2.1: icmp_seq=3 ttl=61 time=1.74 ms
64 bytes from 10.10.2.1: icmp_seq=4 ttl=61 time=2.12 ms
64 bytes from 10.10.2.1: icmp_seq=5 ttl=61 time=1.34 ms
--- 10.10.2.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 0.752/1.389/2.123/0.498 ms
下面是在PC-A上traceroute到PC-B的路径
[[email protected]_A ~]#traceroute 10.10.2.1
traceroute to 10.10.2.1 (10.10.2.1), 30 hops max, 60 byte packets
 1  10.10.1.254 (10.10.1.254)  0.195 ms  0.066 ms  0.051 ms  //先到网关R_x
 2  10.10.12.2 (10.10.12.2)  0.816 ms  0.795 ms  0.764 ms  //再到R_y
 3  10.10.23.2 (10.10.23.2)  0.730 ms  0.701 ms  0.670 ms  //然后到达R_z
 4  10.10.2.1 (10.10.2.1)  0.920 ms  0.893 ms  0.862 ms  //最后到达PC-B
//能到PC-B说明已经通了,如果在PC-B上traceroute得到的结果正好与此相反

拓展:

在R_x和R_z两台路由器上,由于他们的下一跳ip地址都是指向邻接路由器,所以可以考虑把他们的两条合并成一条默认路由。从而减少路由条目

时间: 2024-10-24 11:34:38

linux模拟路由器实验的相关文章

用3台虚拟机模拟路由器通信

用3台虚拟机模拟路由器通信 五台虚拟机,2台用来模拟PC,3台模拟路由器 准备后我们先规划一个大致的结构,实现2台PC能互相通信 配置步骤 配置PC1 我们先来配置PC1,这个只要一张网卡就可以了 进入PC1的网卡编辑目录. 配置R1路由器 1.R1路由器只需要2张网卡 2.进入到网卡编辑目录编辑2网卡文件 3.编辑完成后重启网络服务 4.重启后一定要启动内核转发,因为linux默认是主机模式不会转发数据包. 配置R2路由器 R2路由器需要2张网卡2.同样的进入到网卡编辑目录下编辑文件 配置R3

Linux Centos7 综合实验(DNS+DHCP+WEB)

一.Linux Centos7 综合实验(DNS+DHCP+WEB) 1.实验需要的设备:两台客户机,一个二层交换机,一个三层交换机,一个Centos7作为dhcp和dns服务器,一个路由器,一个web服务器(sever2016) 2.实验目的 1.sw2为二层交换机,分别有vlan10,vlan20,vlan100 三个vlan,f1/1-3是接入链路,f1/0为中继链路.2.sw1为三层交换机,分别为三个vlan提供网关,vlan10:192.168.10.1/24.vlan20:192.1

我的第一个Linux 驱动模块编程实验

2014.04.28 module 首测 1)环境:Centos release 6.5 (Final) kernel: 2.6.32-358.23.2.e16.centos.plus.i686 2)源文件及Makefile 源文件:是一个入门的Hello.c文件,网上到处可以找得到. Makefile 第一版本内容如下: obj-m := hello.o 3)make 时的命令 make -C /lib/modules/$(uname -r)/build  SUBDIRS=$PWD modul

“Linux内核分析”实验一

"Linux内核分析"实验一 作者:何振豪 原创作品转载请注明出处 http://www.cnblogs.com/scoyer/p/6411414.html <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 计算机由硬件和软件组成,硬件主要是CPU和内存,软件是系统软件和应用软件.最开始的计算机是由冯诺依曼提出的存储程序的思路开始的,这就对应硬件的CPU和内存,CPU执行指令,指令和相关数据

“linux系统内核分析”实验报告1

"linux系统内核分析"实验报告1 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 章磊+ 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机的工作方式: 现代计算机的基本体系结构都是采用冯诺依曼结构,冯诺依曼的设计思想最重要之处是"存储程序"的这个概念.计算机的工作过程,就是执行程序的过程.首先编写需要执行的程序,然后通过

Linux 模拟 鼠标 键盘 事件

/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: * 以前看到有些软件能够控制鼠标移动,键盘操作等功能,总想知道这些到底 * 是怎么做到的,好像是2年前也尝试去做这件事,但那时候对知识的匮乏直接导致 * 无法进行,早上突然想到这件事,于是又搜索了一下,鉴于目前经常接触Linux * 驱动,对这些东西的理解也就很容易. * * 2016-2-27 深

&nbsp; &nbsp; &nbsp; 实现GNS的模拟路由器连接Internet

实现GNS的模拟路由器连接Internet 1.环境: XP 系统,GNS3.0.7.2 集成SecureCRT(也可以没有SecureCRT) 准备:在XP系统下添加Loopback adapter 虚拟网卡,一个ADSL拨号连接 2.网络连接配置: 7.选中R1然后按右键,单击"开始",接着在选中R1按右键,单击"Console"出现与GNS集成的SecureCRT配置控制台(如果没有集成SecureCRT的话会出现一个dos一样的控制台): 3.接着打开运行,

&nbsp; &nbsp; &nbsp; &nbsp; Vmware 虚拟机通过GNS的模拟路由器连接Internet

Vmware 虚拟机通过GNS的模拟路由器连接Internet 1.环境: XP 系统,Vmware 7.0.1,GNS3.0.7.2 集成SecureCRT(也可以没有SecureCRT) 准备:在XP系统下添加Loopback adapter 虚拟网卡 ,一个ADSL拨号连接,用Vmware 安装一台XP虚拟机 2.本地网络连接配置: 3.接着打开运行,输入services.msc出现如下界面: 然后找到下面服务,并确定这些服务已启动,否则设置他们为已启动. DHCP  Client 设为已

基于 Docker 快速构建 Linux 0.11 实验环境

by Falcon of TinyLab.org 2015/05/02 简介 五分钟内搭建 Linux 0.11 的实验环境介绍了如何快速构建一个 Linux 0.11 实验环境. 本文介绍如何快速构建一个独立于宿主机的 Linux 0.11 实验环境,该实验环境可以用于任何操作系统的宿主开发机,将非常方便各类学生学习 Linux 0.11,本文只介绍 Ubuntu.在 Windows 和 Mac 下可以用 VirtualBox + Boot2Docker 来启动. 下文要求已经安装 git 和