zoukankan      html  css  js  c++  java
  • [Docker网络]模拟一台交换机的拓扑

    [Docker网络]模拟一台交换机的拓扑

    本例主要对Docker网络进行实际运用。

    背景介绍

    一台虚拟机如何模拟成一台多端口交换机分别连接多台虚拟机?

    bridge网桥技术

    实验准备

    • docker

      docker安装教程

    • busybox镜像

      $ docker pull busybox

    • bridge-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、如何模拟路由器?
  • 相关阅读:
    scrapy的自动限速(AutoThrottle)扩展
    js可以控制文件上传的速度吗?
    用DataReader 分页与几种传统的分页方法的比较
    jdbc分页查询
    几种分页方式分析.
    mybatis下的分页,支持所有的数据库
    java 物理分页和逻辑分页
    IBatis的分页研究
    JDBC分页
    用Java实现异构数据库的高效通用分页查询功能
  • 原文地址:https://www.cnblogs.com/spjy/p/7987533.html
Copyright © 2011-2022 走看看