1. 程式人生 > >使用macVLAN網路模式的容器連通性和延遲的測試

使用macVLAN網路模式的容器連通性和延遲的測試

建立docker及其macVLAN網路環境

準備

  • 使用VMWARE建立兩臺虛擬機器,master : 192.168.91.133.,node : 192.168.91.134
  • 在兩臺虛擬機器中安裝docker,配置docker加速倉庫

    國內可使用阿里雲加速倉庫:https://dev.aliyun.com/search.html
    登陸後,在加速器中可以看到自己的加速地址
    然後配置兩個虛擬機器的docker檔案

    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https:// [ YOUR OWN CODE ].mirror.aliyuncs.com"
    ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
  • 下載docker映象

[[email protected] docker]# docker pull docker.io/busybox
Using default tag: latest
Trying to pull repository docker.io/library/busybox ... 
latest: Pulling from docker.io/library/busybox
1cae461a1479: Pull complete 
Digest: sha256:c79345819a6882c31b41bc771d9a94fc52872fa651b36771fbe0c8461d7ee558
[
[email protected]
docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/busybox latest c75bebcdd211 2 weeks ago 1.106 MB

建立macVLAN網路

  • 設定master和node的網路型別為混雜模式
[[email protected] ~]# ip link set ens33 promisc on
[[email protected] ~]# ifconfig ens33 ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 inet 192.168.91.133 netmask 255.255.255.0 broadcast 192.168.91.255 inet6 fe80::1e97:b457:c2a8:10b2 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:b7:61:15 txqueuelen 1000 (Ethernet) RX packets 180518 bytes 211043955 (201.2 MiB) RX errors 0 dropped 2 overruns 0 frame 0 TX packets 22461 bytes 2168198 (2.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[[email protected] ~]# ip link set ens33 promisc on
[[email protected] ~]# ifconfig ens33
ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 192.168.91.134  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::1e97:b457:c2a8:10b2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b7:61:15  txqueuelen 1000  (Ethernet)
        RX packets 180518  bytes 211043955 (201.2 MiB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 22461  bytes 2168198 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 分別建立docker網路,macvlan模式採用bridge
[root@node ~]# docker network create -d macvlan --subnet 192.168.91.0/24 --gateway 192.168.91.2 -o parent=ens33 -o macvlan_mode=bridge macnet
acbe125bd16f97d3922294ed5c2bc9b76b1036ee2c0274d7b1af90b988574525
[root@node ~]# docker network list
NETWORK ID          NAME                DRIVER              SCOPE
2ca267d05a8d        bridge              bridge              local               
19abb1689b41        host                host                local               
acbe125bd16f        macnet              macvlan             local               
4bcffff15284        none                null                local      
[[email protected] docker]# docker network create -d macvlan --subnet 192.168.91.0/24 --gateway 192.168.91.2 -o parent=ens33 -o macvlan_mode=bridge macnet
35551f92a13aeb061b3fb78a23c079651c3de1753c9fe486f39037f50c0968aa
[[email protected] ~]# docker network list
NETWORK ID          NAME                DRIVER              SCOPE
fa248c027d7f        bridge              bridge              local               
e3cd0c7dd8c2        host                host                local               
35551f92a13a        macnet              macvlan             local               
313e639a0dde        none                null                local               

建立容器

在master上建立c1 : 192.168.91.100 , c2 : 192.168.91.101

在node上建立c3 : 192.168.91.102 , c4 : 192.168.91.103

[root@master docker]# docker run -id --net macnet --ip 192.168.91.101 --name c2 docker.io/busybox sh
6c147982a1b2c90bef61758db9de3f4caaa718ab1df8e2648ae06706704c0a08
[root@master docker]# docker run -id --net macnet --ip 192.168.91.100 --name c1 docker.io/busybox sh
b94eef6f4ae9ec64b9de9ed6396e4c1be17dac1503671e22ffdfee4b80511f04
[root@master docker]# docker exec c1 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
7: eth0@if2: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 02:42:c0:a8:5b:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.91.100/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:c0ff:fea8:5b64/64 scope link 
       valid_lft forever preferred_lft forever

測試是否work

[[email protected] ~]# docker exec c1 ping c1
PING c1 (192.168.91.100): 56 data bytes
64 bytes from 192.168.91.100: seq=0 ttl=64 time=0.091 ms
64 bytes from 192.168.91.100: seq=1 ttl=64 time=0.134 ms
64 bytes from 192.168.91.100: seq=2 ttl=64 time=0.143 ms

說明容器可以聯通自己的IP地址,工作正常

聯通性測試

背景

為了弄明白採用macVLAN網路模式的容器對外、對自己聯通性如何,在c1上分別ping其他IP, 然後在master上也進行相同測試

結果

192.2(閘道器) c1(容器名稱) 192.100(c1的IP) 192.133(master) 192.134(node) c2 192.101(c2的IP) c3(不同宿主機容器名) 192.102(c3的IP)
c1 × ×
192.2(閘道器) 192.100(c1的IP) 192.134(node) 192.102(c3的IP,跨主機容器)
master ×

延遲

背景

為了大致驗證容器使用macVLAN後,從容器出發的資料包相比裸機直接通訊具有多少延遲,做此測試。

先測試從master到node的平均延遲:

node
master 0.426ms

結果

c1 c2(同宿主機) node c3(不同宿主機)
c1 0.174ms 0.185ms 0.731ms 0.771ms

結論

  • 使用macVLAN模式的容器,==無法ping通宿主機==,==宿主機也無法ping通該容器==。對其他伺服器和所有的容器都可以聯通。
  • 相比宿主機的通訊延遲,從c1到c3的延遲有所增加(==本測試增加了0.35ms==)

相關推薦

使用macVLAN網路模式容器通性延遲測試

建立docker及其macVLAN網路環境 準備 使用VMWARE建立兩臺虛擬機器,master : 192.168.91.133.,node : 192.168.91.134 在兩臺虛擬機器中安裝docker,配置docker加速倉庫

android 下測試網路的丟包率延遲

昨天做網路延遲和丟包率,以前沒弄過,網上尋找也沒找到什麼有效的,弄了一下午搞定了,程式碼如下,希望對大家有幫助,寫的不好,還請大家批評指正 String lost = new String(); String delay = new String(); P

圖的通性連通分量

1、無向圖的連通性 運用深度優先搜尋或廣度優先搜尋遍歷無向圖可以分析圖的連通性。可通過額外設定計數器count(初始值0)統計出圖的連通分量,每呼叫一次,計數器count增1。當遍歷完無向圖時,若count=1,則圖連通,若count>1,圖非連通,count的值就是

配置計算機名工作組,TCP/IP地址配置,網路通性

1.配置計算機名及工作組 本例要求為修改計算機名並加入工作組: 1)設定計算機名:姓名拼音 2)設定工作組名:TARENA-NETWORK 1.2 方案 修改Windows 2008伺服器的計算機名(可設為自己的姓名拼音),將所屬工作組名設為:Tarena-Ne

Linux使用者管理、許可權管理、歸檔、壓縮以及建立連線測試網路網路通性

uid:使用者標識號 gid:組標識號 預設情況下,使用者uid和gid一樣 使用者的分類: 超級使用者(root):許可權特別大,uid=0,gid=0,生產環境建議不要使用 普通使用者:uid>=500,Ubuntu一般>=1000,一般許可權系統管理,

Docker之搭建2048遊戲,四種網路模式的學習,容器管理,資料卷的管理,用Dockerfile建立映象

1.映象管理 物理機上: 軟體包: docker-engine-17.03.1.ce-1.el7.centos.x86_64.rpm docker-engine-selinux-17.03.1.ce-1.el7.centos.noarch.rpm [

hihoCoder#1185 : 通性·三 tarjan求強聯通分量 縮點 dfs/拓撲排序求路徑最大值

連通 namespace 關系 ont name problems lan 能夠 blog 題目鏈接: http://hihocoder.com/problemset/problem/1185# 題意: n個點,每個點有一個權值,m條有向邊,從1出發,每走到一個點, 就吃掉

雙重檢查鎖定的單例模式延遲初始化

懶漢式單例模式 如果 ron 線程並發 初始 mage 同步 locate 對象創建   有時候需要推遲一些高開銷的對象初始化操作,並且只有在使用這些對象時才進行初始化。此時,常用的可能就是延遲初始化,例如:懶漢式單例模式,但是要正確的實現線程安全的延遲初始化需要一些技巧,

理解容器之間的通性 - 每天5分鐘玩轉 Docker 容器技術(34)

docker 教程 容器 通過前面小節的實踐,當前 docker host 的網絡拓撲結構如下圖所示,今天我們將討論這幾個容器之間的連通性。兩個 busybox 容器都掛在 my_net2 上,應該能夠互通,我們驗證一下:可見同一網絡中的容器、網關之間都是可以通信的。my_net2 與默認 bri

Calico 的默認通性 - 每天5分鐘玩轉 Docker 容器技術(69)

12px 方法 ner ipam -name wid -s ubunt creat 前面我們完成了 Calico 網絡的部署並運行了容器,今天將討論 Calico 的連通性。測試一下 bbox1 與 bbox2 的連通性: ping

centos7下安裝docker(12.3容器之間的通性

daemon 2.3 es2017 命令 selinux bridge 之前 -- 9.png 我們接著盜圖,如下: 在這張圖上,可以看到,如果兩個容器使用同一個bridge,那麽兩個容器之間是互相能通的 可以看到兩個容器在同一個bridge下是可以互相ping通的

cloudfoundry容器實例內部測試redis通性

span o-c sta red 執行權限 連接 log cert 執行 由於cloudfoundry容器內沒有安裝redis-cli 相關服務,所以想測試容器內部網絡是否可以訪問對應區域的redis服務,方法如下: 1、容器內下載redis-cli工具 wget htt

使用python批處理bat腳本ping檢測主機通性

python bat 今天因為工作需求,要在報盤機器上(windows系統)檢測與上手連接的網絡可用性,使用zabbix自身的功能並不能解決這個問題。所以一開始考慮使用python腳本調系統的ping命令來檢測然後再使用zabbix來監控就可完成任務。 網上查了下,發現使用subproc

控制容器的反轉依賴註入模式

測試 細節 同時 我們 round 文件中 mes 服務 ram 本文依舊是一篇譯文,寫於作者在開發.net core 半年後的進階學習時刻! 這篇文章很長,一口氣看完得花二十分鐘,大家要做好心理準備! 摘要:Java社群近來掀起了一陣輕量級容器的熱潮,這些容器能夠

VMware網絡模式—橋接、NAT以及僅主機模式的詳細介紹區別.ziw

splay post 80端口 linux style -c inf 物理 數量 2017年1月10日, 星期二 VMware網絡連接模式—橋接、NAT以及僅主機模式的詳細介紹和區別 在使用VMware Workstation(以下簡稱:VMware)創建虛擬機的過程中

圖->通性->無向圖的連通分量生成樹

文字描述   對無向圖進行遍歷時,對於連通圖,僅需從圖中任一頂點出發,進行深度優先搜尋或廣度優先搜尋,便可訪問到圖中所有頂點。但對非連通圖,則需從多個頂點出發搜尋,每一次從一個新的起始點出發進行搜尋過程得到的頂點訪問序列恰為其各個連通分量中的頂點集。   對於非連通圖,每個連通分量中的頂點集,和遍歷時走過

Linux伺服器記憶體、CPU、檔案系統、磁碟IO效能以及網路通性shell巡檢

shell自動巡檢伺服器基礎配置          每個專案都要部署在伺服器上,那麼伺服器的安全效能和一些基本情況是我們需要了解的,比如伺服器CPU、記憶體、檔案系統、磁碟IO、還有一些網路連通性

Python網路通性檢測-樣例

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Docker網路管理(容器的四種網路模式

下面,我們來學習Docker的網路管理。 Docker 在啟動時會建立一個虛擬網橋 docker0,預設地址為 172.17.0.1/16,容器啟動後都會被橋接到 docker0 上,並自動分配到一個 IP 地址 . docker0預設地址 網橋 容器橋接

ping---測試主機之間網路通性

ping命令用來測試主機之間網路的連通性。執行ping指令會使用ICMP傳輸協議,發出要求迴應的資訊,若遠端主機的網路功能沒有問題,就會迴應該資訊,因而得知該主機運作正常。   選項 -d:使用Socket的SO_DEBUG功能; -c<完成次數>:設定完成要求迴應的次數; -f: