栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

GNS3使用Docker

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GNS3使用Docker

背景:

上一篇文章:GNS3 mac环境安装并搭建vlan_ykdsg的博客-CSDN博客_gns3 mac  描述了这么快速使用GNS3,这个时候可以做一般的网络实验了。但是在网络的学习过程中会涉及很多linux环境,例如iptables、OpenvSwitch 等都需要在 linux中配置。在GNS3 中有几种方式可以实现:

1.通过VMware 或者VirtualBox等虚拟机来引入。这个比较简单,基本就是安装好虚拟机,在GNS3 的配置界面中新增对应的虚拟机就行了。

需要注意的是勾上 Use as linked base VM,这样在project里面新增一个的时候会以这个为模板新增一个,不然每次都要在虚拟机中手动新增比较麻烦。

但是遇到过我在对应的虚拟机里安装了 OpenvSwitch,结果在新生成的vm里没找到的奇怪现象。

2.通过Docker 容器来引入,比较轻量,而且容器的定制化很高。

准备工作

需要安装GNS3 VM,只有这样才能使用docker,实际上docker 是运行在这个VM 中的。

首先是下载对应虚拟机的vm,注意vm版本需要跟GNS3的版本一致。

因为已经使用了VirtualBox,我就下了这个版本。网上教程较多的使用VMware,而且实际运行过程中也发现VirtualBox 有时候不太灵光。

安装过程还是简单的,下载完用VirtualBox打开就行了。

接着在GNS3中进行配置:

 

保存之后,GNS3 就会启动这个vm,然后每次打开GNS3之后都会自动带起这个vm。 

vm启动后出现一个界面:

根据上面的ip地址,用户名密码就可以ssh上去了。

 

 

 

 刚开始的界面是这样的(是不是很神奇),选择shell,点击ok,就进入到熟悉的黑乎乎的界面了。

接下来执行 sudo passwd ,为 root 用户设置密码,就可以切换到 root 权限了。

制作Docker镜像

里面很贴心的安装好了docker。 

制作镜像有很多种方法了,这里简单说下通过DockerFile的方法:

1.建一个目录 project-docker/ubuntu_18

2.新建一个文件:Dockerfile,这个时候会发现居然没有vi,勉为其难用nano 顶一下吧。

FROM ubuntu:18.04

RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

RUN apt-get -y update && apt-get -y install vim tmux iputils-ping net-tools ipr>

WORKDIR /root

CMD /bin/bash

最后一行很重要,后面能够通过GNS3的界面直接进入console。

然后执行:docker build -t myubuntu ,结束之后可以看到当前的image。

GNS3中添加docker容器。

 点New

 

到网卡这个界面,可以多设置几个

 之后就一路Next。

 

使用Docker

这里简单演示下iptables。拓扑图比较简单

 

这里就不用什么2层、3层设备了,2台主机直接直连。 启动之后,双击设备可以进入控制台。

 

可以看到没有配置ip,先进行配置

ifconfig eth0 1.1.1.10/24

 第一台设置ip为:1.1.1.10;第二胎设置ip为1.1.1.11。这个时候从第一台ping 第二台,是联通的,反过来也是一样。

 

case1:不响应ping

现在设置PC2 不能ping PC1 :

iptables -t filter -A INPUT -s 1.1.1.11 -d 1.1.1.10 -p icmp --icmp-type 8 -j DROP

查看配置表:

iptables -L -n

大概意思是:在INPUT链增加一条规则,源ip(-s) 1.1.1.11 到目的ip(-d)1.1.1.10,通过icmp协议,那么就DROP(不拒接,不响应)。

这个时候再看下PC2 ping的情况: 

会发现没有任何反应。

可以通过抓包来看下具体协议,在连接的那条线上右键:

 

会打开WireShark。

 会看到只有request的请求,没有replay的回复。

case2:拒绝ping

看一下拒绝的情况,先清理之前设置的规则

iptables -F

 设置reject规则

iptables -t filter -A INPUT -s 1.1.1.11 -d 1.1.1.10 -p icmp --icmp-type 8 -j REJECT

这个时候再通过PC2 来ping PC1,会明确提示:Destination Port Unreachable

 通过wireshark 能看到,这次是有来有回的,PC1明确返回了unreachable。

 

 

结尾:

 GNS3支持docker 后可以很方便的模拟很多实验场景,而且docker 很轻量,定制性也很高。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号