SDN实现|mininet介绍与使用

资讯 2024-06-16 阅读:113 评论:0
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

1. 微型网介绍

Mininet 是一个网络模拟器, 更确切地说, 是一个网络模拟系统。 它在单个 Linux 内核上运行一系列终端主机、 开关、 路由器和链接。 它使用轻量级虚拟化来使单个系统看起来像一个完整的网络, 运行相同的内核、 系统和用户代码。 Mininet 主机就像一台真正的机器。 您可以测量它们的 SSH ( 如果您启动 sshd 并将网络连接到主机), 并运行任何程序( 包括在基 Linux 系统中安装的任何程序 ) 。 您可以运行一个程序, 通过发送固定速度和延迟的数据包接口, 来匹配两个( 低端) 网络的性能 。

2. 微型网的优点

快速启动一个简单的网络, 只需几秒钟。 可以创建一个自定义的顶端 : 单开关, 比互联网大一些 。 一个真正的程序可以运行 : 在 Linux 上运行的任何程序都可以从网络服务器运行到 TCP 窗口监视工具, 然后到 Wiresark 。 一个自定义的数据包可以转发 : 使用 OpenFlow 协议可以编程 Mininet 的开关。 一个在 Mininet 操作的自定义网络设计可以很容易地传输到硬件 OpenFlow 开关, 以实施线性数据包 。 一个膝上型、 服务器、 VM 可以运行 Mininet 。 其结果可以共享和复制 : 在包装后, 任何拥有计算机的人都可以操作 。 它可以很容易被使用 : 一个简单的 Python 脚本可以创建并运行 Mininet 实验 。

3. 微型网的缺陷

在单个系统上运行是容易的,但有资源限制,这些资源需要平衡,并在虚拟主机和开关之间共享。 Mininet 为所有虚拟主机使用单一的 Linux 内核; 这意味着不运行依赖 BSD、 Windows 或其他操作系统的软件。 Mininet 没有专用的 OpenFlow 控制器。 如果需要定制路径或交换行为, 则需要找到或开发具有所需功能的控件。 默认情况下, Mininet 网络会与局域网和互联网隔开; 默认情况下, 所有 Mininet 主机都会共享主机文件系统和 PID 空间 。 这意味着, 如果您正在运行一个需要配置在 / etc 中的保障程序, 可能必须小心不要错误地杀死错误的过程 。

4. 微型网使用实例

此处不描述详细的安装步骤。 appet- get 安装命令可以直接用于在 ubuntu 系统中安装 Mininet。 我使用的系统信息如下:

  

例1:创建以下网络结构并使网络连接起来:

  

1. 建立一个总机,3个主机,没有控制器 SDN 网络

  root@tintin-virtual-machine:~# mn --topo=single,3 --mac --switch=ovsk --controller=remote*** Creating network*** Adding controllerUnable to contact the remote controller at 127.0.0.1:6633*** Adding hosts:h1 h2 h3 *** Adding switches:s1 *** Adding links:(h1, s1) (h2, s1) (h3, s1) *** Configuring hostsh1 h2 h3 *** Starting controllerc0 *** Starting 1 switchess1 ...*** Starting CLI:mininet>

2. 查看网络节点及其触拍

  mininet> nodesavailable nodes are: c0 h1 h2 h3 s1mininet>mininet> neth1 h1-eth0:s1-eth1h2 h2-eth0:s1-eth2h3 h3-eth0:s1-eth3s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0 s1-eth3:h3-eth0c0mininet>

查看每个节点的网络配置信息

  mininet> dumpmininet>

3. 在三个主机(h1,h2,h3)上启动 Xterm 并查看当前低位信息

  mininet> xterm h1 h2 h3mininet>mininet> dpctl dump-flows*** s1 ------------------------------------------------------------------------NXST_FLOW reply (xid=0x4):mininet>

H1上的Ping h1和h2上的tcppodump 看结果

  

结果显示Ping失败,没有收到 H2. 的IMCMP 组件。 原因: Toto 没有 SDN 控制器, 我们没有使用 dptcl 在开源开关中添加任何低位条目, 因此开关不会做出前期决定, 只会丢弃 H1 到 H2 的 Ping 软件包 。

5. 在SDN开关中加上双向流条目,加上dpctl,因为Ping袋有一个新的和一个新的。

  mininet> dpctl add-flow in_port=1,action=output:2*** s1 ------------------------------------------------------------------------mininet> dpctl add-flow in_port=2,action=output:1*** s1 ------------------------------------------------------------------------mininet> dpctl dump-flows*** s1 ------------------------------------------------------------------------NXST_FLOW reply (xid=0x4): cookie=0x0, duration=28.434s, table=0, n_packets=0, n_bytes=0, idle_age=28, in_port=1 actions=output:2 cookie=0x0, duration=6.801s, table=0, n_packets=0, n_bytes=0, idle_age=6, in_port=2 actions=output:1mininet>

其中 其中其中

  dpctl add-flow in_port=1,action=output:2

这意味着在开关中添加了 dpctl, 以便允许从1- eth1 港收到的所有转口器从1- eth2 港发送到 1- eth2 港。

  dpctl add-flow in_port=2,action=output:1

在开关中添加含有 dpctl 的流量, 以便从 s1- eth2 端口收到的所有转口都能从 s1- eth1 端口发送到 s1- eth1 端口。

  

实例2: 配置开开关流程表

让我们来了解开关的底部。

  

然后使用 dpctl 将 truffic IPv4 型号的两个低端添加到开关中, 命令如下:

  

第一个命令意味着开关添加到带有 dpctl 的开关中,这样开关从所有EtherType 的 s1-eth2 端口发送到 0x0800 (IPv4),目标 IP 到 10.0.0.2 。 第二个命令意味着开关添加到带有 dpctl 的开关中,这样开关从所有 EthType 的 s1-eth1 端口发送到 0x0800 (IPv4), 并运行 IP 到 10.0.0.1 。

此时此刻,尝试 h1 ping h2 。

  

众所周知,在同一节下,东道方之间的通信是L2转发,依靠ARP破译MAC地址,而我们以前仅有匹配 0x0800 (IPv4) 的MAC地址,而该地址与 0x08006 (ARP 4)不匹配,因此当开关收到ARP h1 的包件时,无法相应地告知它如何转发ARP 软件包,而开关只能扔掉,导致 H1 ping h2 失败。

在总机上添加一个ARP dpctl命令,以NORMAL(即广播)的形式,从各港口广播所有ARP包件。

  

再试一次 h1 ping h1,结果如下:

  

实例3:OVS交换器VLAN网络测试

1. 使用 mn 命令创建两个 h1,h2 主机和一个 s1 开关,每个开关都连接到开关上。

  

  

这两个主机与总机的两个港口(S1-eth2,S1-eth2,S1-eth2)相连,所有港口假定都有标签、标签、零,因为卵子中没有流量计,因此网络目前没有连接。

  

2. OVS开关中继器流动表的配置使开关成为正常的传统开关。

  

请注意, 卵子开关有两种操作模式, 即 SDN 模式和传统模式。 传统的 卵子开关是通过 Mac 家庭学习进行的框架交换, 而 SDN 模式则是开关和相应的中继动作中流匹配的数据流。 这是允许开关执行 Mac 地址自学功能 。

  

如您所看到的, h1 和 h2 主机目前已经连接,您可以看到用于 s1 开关的 mac 地址研究表。您现在可以看到开关的端口信息。您可以在两个端口都看到 VLAN 。

3. 将 OVS 端口的标签S1-eth1标签配置为 1, S1-eth2 标签配置为 2。

  

对主机间连接的测试和对开关地址表信息的查看表明,不同标签的配置导致主机之间的网络隔离。

  

参考参考资料

  1. Introduction to Mininet

  https://github.com/mininet/mininet/wiki/Introduction-to-Mininet

2. SDN(软件定义网络)的初步经验 -- -- MIT:

  https://zhuanlan.zhihu.com/p/30935141

3. OpenStack网络由Vovs Little Tag实施:

  https://www.sdnlab.com/24098.html

  

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 从 IPFS社区Meetup谈谈2020年的IPFS的发展历程

    从 IPFS社区Meetup谈谈2020年的IPFS的发展历程
    8月3日, IPFS社区Meetup 如期举办,这一次的社区Meetup由交流与演讲和闪电演示两部分组成,其实该会议主要带领我们回顾了IPFS在2020年的发展历程(包括项目进展、IPFS生态发展等),展示了IPFS及其生态。2020年对于IPFS而言是不平凡的一年,其唯一激励层Filecoin的主网即将上线,这让IPFS和Filecoin在全球范围内得到了前所未有的关注,也推动了IPFS的高速发展。接下来,我们一起走进IPFS在20...
  • 超10万人爆仓,比特币跳水,发生了什么

    超10万人爆仓,比特币跳水,发生了什么
    现货比特币ETF上市第二日,数字货币再迎来抛售。比特币一度跌破42000美元/枚,截止1月13日内跌幅超7%,报42562.1美元/枚。The current Bitcoin ETF is on the second day of the market and the digital currency is sold again. Bitcoin fell by over 7% to $4562.1 on 13 January.现货比特币ETF普遍跌6%左右。其中,DEFI跌...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • 0.00015693个比特币等于多少人民币/美金

    0.00015693个比特币等于多少人民币/美金
    0.000 15693比特币等于多少人民币?根据比特币对人民币的最新汇率,0.000 15693比特币等于10.6 1678529美元/76.86554996人民币。比特币(BTC)【比特币价格翻倍】美元(USDT)人民币(CNY)0.000/克洛克-0/5693【数字货币矿机】10.6 167852976.8655254996比特币对人民币的最新汇率为:489,807.72 CNY(1比特币= 489,807.72人民币)(1美元=7.24人民币)(0.00015693 U...
  • 0.00006694个比特币等于多少人民币/美金

    0.00006694个比特币等于多少人民币/美金
    0.00006694比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00006694比特币等于4.53424784美元/32.5436 16人民币。比特币(BTC)美元(USDT)人民币(CNY)0.000066944.53424784【比特币密码】32.82795436 16比特币对人民币的最新汇率为:490408.64 CNY(1比特币=490408.64人民币)(1美元=7.24人民币)(0.00006694USDT=0.0004846456 CNY)汇率更新时...
标签列表