[Docker网络]模拟一台交换机的拓扑
[Docker网络]模拟一台交换机的拓扑
本例主要对Docker网络进行实际运用。
背景介绍
一台虚拟机如何模拟成一台多端口交换机分别连接多台虚拟机?
bridge网桥技术
实验准备
docker
busybox镜像
$ docker pull busyboxbridge-utils
$ apt-get install bridge-utils
实验拓扑
两台主机:h1,h2,一台交换机:s1。
h1 <---> S1 <---> h2
实验步骤
<1> 创建docker网桥
$ docker network create --driver bridge --subnet 10.0.0.0/24 --gateway 10.0.0.1 mybr
说明:
--driver bridge:通过bridge驱动类创建bridge网络。
--subnet 10.0.0.0/24:指定子网段。
--gateway 10.0.0.1:指定网关。
mybr:网桥名称。
<2> 启动h1和h2
#终端1
$ docker run -it --rm --network mybr --ip 10.0.0.2 busybox
$ ip a

#终端2
$ docker run -it --rm --network mybr --ip 10.0.0.3 busybox
$ ip a

<3> 启动s1
#终端3
$ docker run -it --rm --network host busybox
$ ip a


测试
#终端1
$ ping 10.0.0.3

#终端2
$ ping 10.0.0.2

#终端3
$ ping 10.0.0.2
$ ping 10.0.0.3

原理解释
在bridge网桥技术中,veth pair 是一种成对出现的特殊网络设备,可以把它们想象成由一根虚拟网线连接起来的一对网卡,比如h1中网卡的一头(eth0@if90)在容器中,另一头(veth0b95f4f@if89)挂在网桥mybr上,其效果就是将 eth0@if90也挂在了mybr上。
交换机S1 是利用容器中的host网络,因此S1和host宿主机的网络配置相同,即可视为通过veth0b95f4f@if89网卡和veth4850d3c@if91网卡分别与h1(eth0@if90)和h2(eth0@if92)相连。
实际拓扑如下:

扩展思考
1、如何模拟多台交换机?
2、如何模拟路由器?
[Docker网络]模拟一台交换机的拓扑的更多相关文章
- Docker网络解决方案 - Calico部署记录
简单来说,实现docker跨主机容器间通信,常用的第三方网络方案是Flannel,Weave,Calico:Flannel会为每个host分配一个subnet,容器从这个subnet中分配ip,这些i ...
- Docker网络解决方案 - Weave部署记录
前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...
- Docker 网络原理
引言 学习docker网络,可以带着下面两个问题来探讨 容器之间可以相互访问的原理 容器暴露端口后,通过宿主机访问到容器内应用,并且对于访问端而言不用感知容器存在的原理 Docker 本身的技术依赖L ...
- 【转】Docker网络详解及pipework源码解读与实践
好文必转 原文地址: http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-prac ...
- Docker 网络之理解 bridge 驱动
笔者在前文<Docker 网络之进阶篇>中介绍了 CNM(Container Network Model),并演示了 bridge 驱动下的 CNM 使用方式.为了深入理解 CNM 及最常 ...
- Docker网络和容器的通信
Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair). 基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界 ...
- Docker网络及命令
Docker常用命令 docker version #查看版本 docker search centos #搜索可用docker镜像 docker images 查看当前docker所有镜像 dock ...
- docker网络之macvlan
macvlan接口类型简单说类似于子接口,但相比子接口来说,macvlan接口拥有自己独立的mac地址,因此使用macvlan接口可以允许更多的二层操作.macvlan有四种模式:VEPA,bridg ...
- Docker网络 Weave
当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的是自己的私有IP地址,不同主机的容器之间进行通讯需要将主机的端口映射到容器的端口上,而且IP地址需要使用主 ...
随机推荐
- WSGI框架及Paste+Pastedeploy+route+webob开发
一.前言 WSGI服务器 一个Web服务器网关接口 (WSGI)服务器实现了WSGI接口的Web服务器端运行的Python的Web应用程序. 为什么需要WSGI? 传统的Web服务器不理解或有任何方式 ...
- Java基础-流程控制(04)
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...
- LeetCode 531. Longly Pixel I (孤独的像素之一) $
Given a picture consisting of black and white pixels, find the number of black lonely pixels. The pi ...
- 开发手机APP的神器 --- ionic
前 言 在如今的生活中,手机已经与我们的生活紧紧的联系在了一起.而手机APP更是其中,重要的一环.今天,影子就为大家介绍一种开发手机APP的超级神器---ionic. ioni ...
- jquery的2.0.3版本源码系列(7):3043行-3183行,deferred延迟对象,对异步的统一管理
目录 part1 deferred延迟对象 part2 when辅助方法 网盘源代码 链接: https://pan.baidu.com/s/1skAj8Jj 密码: izta part1 defe ...
- 解决IDEA Struts2 web.xml问题
用IDEA整合SSH时,在web.xml中配置Struts2核心过滤器--"<filter-class>org.apache.struts2.dispatcher.ng.filt ...
- iOS 之 protocol的相关问题
定义一个协议, 一个协议可以扩展子另一个协议 如果需要扩展多个协议中间使用逗号分隔 //定义一个协议 @protocol AnimalDelegate <NSObject, ***> @r ...
- Bluetooth Obex
OPP 1.2 which uses OBEX over L2CAP. OPP 1.1 connection and transfer happens over RFCOMM->L2CAP.
- Lua 5.3 协程简单示例
Lua 5.3 协程简单示例 来源 http://blog.csdn.net/vermilliontear/article/details/50547852 生产者->过滤器->消费者 模 ...
- Pick apples(大范围贪心,小范围完全背包)
Pick apples Time Limit: 1000MS Memory Limit: 165536KB Submit Statistic Discuss Problem Description O ...