![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 90
楊木木8023
我是风,我是雨,我是神奇的小海螺
展开
-
Docker+Ovs构建SDN网络
一、背景知识关于Docker的基础知识和实验用到的Docker ryu镜像可以参考:Docker命令、基于Docker的SDN实验环境部署(1)_北风-CSDN博客Docker网络模式:本实验,主要利用两个Docker作为主机,OVS作为交换机,一个Docker作为控制器构建。构建的Topo如下所示。二、构建步骤(1)创建两个未配置网络的docker,命令如下。# 创建Docker01docker run -it --name host1 --network none .原创 2021-09-20 15:24:52 · 2173 阅读 · 1 评论 -
Docker命令、基于Docker的SDN实验环境部署(1)
背景Docker简介1、docker的作用2、docker常见命令介绍Docker镜像构建1、Dockerfile2、镜像代码发布镜像原创 2021-08-19 14:49:30 · 2116 阅读 · 0 评论 -
ryu实例---基于跳数的最短路径转发
参考网上的一些知识,本篇内容主要介绍如何利用networkx实现最短路径转发,同时介绍ryu如何获取链路拓扑。一、获取拓扑对于ryu控制器而言,获取链路拓扑的主要模块在ryu/topology目录下面,下面主要介绍接下来用到的api.py和switches.py。(1) api:api是ryu对开发者提供的获取链路信息的接口,api提供了get_switch(), get_link()方法,通过这两个接口,可以获取链路的交换机的信息和各个节点的链路信息,具体的代码如下。def get_原创 2021-05-18 19:10:10 · 5634 阅读 · 19 评论 -
ryu实例---ECMP的rr(轮询)算法实现
最近,做到一个实验,需要每隔一段时间,就改变数据的传输路径,如下图所示,主机之间的数据传输需要经过s1和s2两个交换机,交换机之间的链路有两条,实验是在这两条链路之间每隔10秒切换一次,也就是相当于ECMP的轮询算法(当然,若想以流为单位切换链路,比如说:上一个流经链路1下一条流经链路2,这种方式的轮询利用集线器的程序改变一下就可以实现)。轮询,即各个流在多条路径之间轮询传输。拓扑的端口对应关系:接下来,重点说明程序如何写,不再赘述一些关于拓扑构建和轮询的一些概念。一、程序SDN架原创 2021-05-15 10:47:36 · 3253 阅读 · 6 评论 -
ovs的生成树协议(STP)实验
一、相关概念(1) 概述为了提高网络可靠性,交换机网络中通常会使用冗余链路,冗余链路会给交换机带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又避免环路带来的各种问题。随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如果交换机之间仅使用一条链路互连,则可能会出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。 冗余链路虽然增强了网络的可靠性,原创 2021-05-08 22:08:19 · 2035 阅读 · 1 评论 -
LACP(网络聚合)与openflow group表Fast failover类型的对比试验
一、LACP:1、概念链路聚合控制协议LACP(Link Aggregation Control Protocol),是基于IEEE802.3ad标准的一种实现链路动态聚合与解聚合的协议,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据,LACP模式就是采用LACP的一种链路聚合模式。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整链路聚合。具体工作方式参考(https://support.huawei.com/enterprise/zh/doc/EDOC11原创 2021-05-04 11:37:24 · 1297 阅读 · 1 评论 -
vxlan---背景、原理、实验
一、知识背景详见:https://support.huawei.com/enterprise/zh/doc/EDOC1100087027#ZH-CN_TOPIC_0254803605http://www.h3c.com/cn/d_201811/1131076_30005_0.htm1、vxlan 简介VXLAN 全称是Virtual eXtensible Local Area Network,虚拟可扩展的局域网。它是一种 overlay 技术,通过三层的网络来搭建虚拟的二层网络。rf..原创 2021-02-25 19:21:20 · 3989 阅读 · 0 评论 -
linux 网络虚拟化: network namespace 简介
network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己就在独立的网络中。这篇文章介绍 network namespace 的基本概念和用法,network namespace 是 linux 内核提供的功能,这篇文章借助ip命令来完成各种操作。ip命令来自于iproute2安装包,一般系统会默认安装,如果没有的话,请读者自行安装。NOTE:ip命令因为需要修改系统的网络配置,默认需要 sud...转载 2021-02-23 21:21:42 · 483 阅读 · 0 评论 -
VLAN---背景、原理、实验2(vlan间通信)
一、知识背景1、子接口技术子接口(也称子端口)是通过协议和技术将一个物理接口(interface)虚拟出来的多个逻辑接口。相对子接口而言,这个物理接口称为主接口。每个子接口从功能、作用上来说,与每个物理接口是没有任何区别的,它的出现打破了每个设备存在物理接口数量有限的局限性。在路由器中,一个子接口的取值范围是0~4096个,当然受主接口物理性能限制,实际中并无法完全达到4096个,数量越多,各子接口性能越差。经典应用:在拥有多个VLAN的交换机和路由器上,通过配置子接口和802.1Q协议,实现V原创 2021-02-21 23:05:28 · 1356 阅读 · 0 评论 -
VLAN---背景、原理、实验1(划分vlan)
一、背景介绍Underlay、Overlay、大二层介绍:云计算的核心思想就是将所有资源,包括服务器、网络、存储等等,虚拟化为一片云,让用户不再需要关心实际物理资源是如何部署的。而这其中,传统网络也必须转型为新型的云网络才能满足需求。传统网络在转型为支持大规模计算虚拟化的云网络时会有什么样的问题呢?最典型的问题是,在服务器虚拟化的场景中,虚拟机迁移后如果位于不同的三层网络中,则需要修改服务器的IP地址,但很多应用并不允许随意修改IP地址。那么最直接的解决方案便是使虚拟机迁移之后仍然位于同一个二层网络原创 2021-02-20 16:57:26 · 2475 阅读 · 3 评论 -
Open vSwitch---流表控制主机数据转发实验(四)---meter表实践
一、meter表介绍meter表是openflow协议的内容,meter表是openflow1.3版本以后才支持,所以所有命令需要指定OpenFlow1.3版本以上。此外,在openvswitch-v2.8之前的版本中,还不支持meter,在v2.8版本之后已经实现,要正常使用的话,需要注意的是datapath类型要指定为netdev(即将datapath从内核态转化到用户态,datapath一般来说是运行在内核态),而且band type暂时只支持drop。meter表主要用来进行网络限速,网络限原创 2021-01-29 17:07:43 · 3546 阅读 · 1 评论 -
Open vSwitch---流表控制主机数据转发实验(三)---实现NAT地址转换(2)
上一篇博客中,我介绍了如何使用iptables实现ovs连接的主机的nat地址转换,在本节中,通过实验介绍如何使用流表来实现nat地址的转换。(上节详见:https://blog.csdn.net/weixin_40042248/article/details/112975072)实验目的:使用NAT转换使得ovs连接的主机可以和外界的互联网连接,实验中,使用114.114.114.114作为ping的对象,NAT转换可以参考前文(https://blog.csdn.net/weixin_4004224原创 2021-01-27 00:00:37 · 1883 阅读 · 0 评论 -
Open vSwitch---流表控制主机数据转发实验(三)---实现NAT地址转换(1)
实验目的:使用NAT转换使得ovs连接的主机可以和外界的互联网连接,实验中,使用114.114.114.114作为ping的对象,NAT转换可以参考前文(https://blog.csdn.net/weixin_40042248/article/details/112534477),本次实验中也是通过iptables来进行nat转换,从而实验和外界进行通信的。实验原理:具体的拓扑是在上一个实验(https://blog.csdn.net/weixin_40042248/article/details/1原创 2021-01-22 21:30:18 · 1736 阅读 · 2 评论 -
Open vSwitch---流表控制主机数据转发实验(一)
一、ovs的安装安装ovs有两种方法,一种是源码安装二、ovs命令ovs-vsctl介绍三、数据流转发试验原创 2021-01-20 16:45:13 · 3140 阅读 · 0 评论 -
iptables之state模块使用
为了防止恶意攻击主动连接到你的主机,我们需要通过iptables的扩展模块判断报文是为了回应我们之前发出的报文还是主动向我们发送的报文,state模块可以让iptables实现 连接追踪机制 ,报文状态可以分成NEWESTAVLISHEDRELATEDINVALIDUNTRACKED。具体的连接跟踪的原理详见(https://blog.csdn.net/weixin_40042248/article/details/112568071)。本次实验是为了验证iptables的state模块如何进...原创 2021-01-15 10:54:25 · 3232 阅读 · 0 评论 -
netfilter之connnection track(连接跟踪)简述
1、什么是连接跟踪?报文过滤和连接跟踪可以说是Netfilter提供的两大基本功能。连接跟踪可以让Netfilter知道某个特定连接的状态,运行连接跟踪的防火墙称作带有状态机制的防火墙,以下简称为状态防火墙。状态防火墙比非状态防火墙要安全,因为它允许我们编写更严密的规则。无状态防火墙通常会查看经过它的流量,并使用诸如它的地址、来源地址和其他预定义的统计信息。这是最简单、最容易使用的防火墙类型;大多数基于软件的防火墙都使用这种技术。它不像有状态防火墙那样安全,但它通常更快,因为它不必处理太多的信息。有原创 2021-01-13 16:37:47 · 1339 阅读 · 0 评论 -
iptables之nat表的学习和实验
本次实验接着上一篇博客《iptables之filter表的学习和实验》进行(https://blog.csdn.net/weixin_40042248/article/details/112477946),主要实现iptables的nat表的功能。实验目标:实现在ns1空间访问其他的外部网址、添加nat规则后对数据抓包分析ns1访问ns2或者ns3的过程、实现ns1访问www.baidu.com。理论知识补充:1、什么是NAT:nat:Network Address Translatin,网原创 2021-01-12 21:37:33 · 2175 阅读 · 0 评论 -
iptables之filter表的学习和实验
实验目标:本次实验主要完成以下内容:DROP掉外界主机的icmp协议的流量、DROP掉向外界主机发出的icmp协议的流量、DROP掉特定的源IP发送过来的流量,完成试验后删除所有规则。实验设备:Ubuntu20实验拓扑:3个namesapce代表三个主机,主机1作为流量接收设备,主机2、3作为流量发送设备。具体的拓扑构建见上一篇博客《两个network namesapce通过路由实现互通》(https://blog.csdn.net/weixin_40042248/article/details/.原创 2021-01-12 14:16:36 · 1691 阅读 · 0 评论 -
两个network namespace通过路由实现互通
本次实验主要是测试两个namespace之间的网络互通,即在一个物理机上新建两个namespace空间,然后新建几个虚拟网卡,通过设置网卡的ip和路由实现两个namespace之间相互ping通,具体入下图所示。首先,进入Linux终端,此时使用命令ip netns add nsx新建两个网络空间,如下图所示,新建完成后,使用命令ip netns查看是否新建成功。图中,新建了ns1,ns2两个网络空间。网络空间新建完成后,就需要新建虚拟网卡,使用命令ip link add veth1-.原创 2021-01-10 16:09:50 · 1664 阅读 · 2 评论 -
Linux下为主机创建虚拟端口并选择特定端口发送数据---以mininet下的SDN网络架构模拟为例
网络拓扑图如下:根据上图,如果h1 ping h2会有分别经过s1和s2的两条链路可选,那么初始状态下是否两条链路都可以发送数数据呢?显然,不可以。因为,初始状态下,h1和h2一般都只设置了一个端口h1-eth0和h2-eth0的ip地址,如图。在mininet的终端中输入命令links,如图可用看出,有h1-eth0----s1----h2-eth0和h1-eth1----s2----h2-eth1这两天链路,但是由于只有h1-eth0和h2-eth0配置了ip地址,所以此时只有经过s原创 2020-12-31 21:20:07 · 1228 阅读 · 1 评论 -
通过脚本程序依次执行在Linux终端输入的一系列命令(以开启ovs服务为例)
在使用基于Linux的一些应用的时候,通常需要在终端的命令行中,依次执行一系列的程序,但是当我们对这些命令的使用率较高时,且这些命令又是顺序执行的时候,如果一次一次的手动输入命令就会降低效率,因此就不妨写个脚本,包括想要执行的命令,一键执行。例如:在使用OVS时,每次重启系统,都需要一系列的命令重新开启ovs的功能,如下列步骤所示。[1]、启动ovs,首先输入命令:export PATH=$PATH:/usr/local/share/openvswitch/scripts导入环境变量,然后执行命令:原创 2020-12-28 23:14:59 · 1237 阅读 · 0 评论 -
Ubuntu下安装部署openvswitch和一些安装的异常处理(ovs安装)
最近为了安装ovs,可废了老大劲了,按照网上的教程安装基本都会出现各种各样的报错,最终安装失败。最后还是官方的文档比较好,按照ovs网址上的步骤操作下来,结果还真行了,下面是我的安装步骤,以及参考的链接,希望可以给你带来一些帮助。OVS安装过程官网安装指导(ahttps://docs.openvswitch.org/en/latest/intro/install/general/)参考博客(https://www.cnblogs.com/popsuper1982/p/3800431.html)原创 2020-11-20 19:42:17 · 6981 阅读 · 4 评论 -
解决virtual box安装虚拟机后屏幕分辨率(不能自适应宿主机)的问题
利用virtual box安装虚拟的系统(eg:Ubuntu)时,打开之后,都会出现屏幕太小,无法适应宿主机屏幕的问题,如下图所示,发现无论如何调整视图的模式(全屏模式、自动缩放模式…),都无法变成正常的分辨率。所以这里给出了一种解决方案。 首先,关闭虚拟机系统,此时在打开设置à显示à显卡控制器,在下拉菜单里选择VBoxSVGA,选择完成后再次打开虚拟机系统。 打开系统后,再次进入后,如图所示依然发现屏幕不能适应宿主机,但是此时,可以通过...原创 2020-11-18 22:58:26 · 11073 阅读 · 3 评论 -
利用mininet的可视化界面miniedit进行拓扑构建
Mininet 2.2.0之后的版本内置了一个构建网络拓扑的可视化工具miniedit,使用miniedit可视化界面方便了用户自定义网络拓扑的创建,为不熟悉python脚本的使用者创造了更简单的环境,界面直观,可操作性强。因此,这篇文章介绍一下miniedit的使用方法。miniedit的各项操作都是在root用户进行的,所有首先我们进入root用户下。那么miniedit的位置在哪呢?找到miniedit,我们需要进入mininet的目录下,miniedit的目录如下图的操作所示,可以看见一原创 2020-10-25 17:08:15 · 10411 阅读 · 7 评论 -
Mininet构造常见网络拓扑图+openDaylight显示拓扑结构
Mininet是一个网络仿真器,可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow、Open vSwith 等各种协议,它可以在单个 Linux 内核上模拟和运行一个完整的网络主机、链接和交换机,在同一台计算机上且有助于互动开发、测试和演示。本篇演示的实验环境是使用虚拟机虚拟Ubuntu系统,并在系统上搭建mininet、openDaylight等控制器实现的,具体配置操作和打开实验环境的准备工作见上一篇博客(https://blog.csdn.net/weixin_40原创 2020-09-26 20:54:25 · 7120 阅读 · 1 评论 -
RPM和通过光盘安装软件
1.RPM:命令:rpm -ivh package_name-i :install 的意思-v:查看详细的安装信息-h:显示安装进度 例如:安装rp-pppoe-3.5-32.1.i386.rpm:命令:rpm -ivh rp-pppoe-3.5-32.1.i386.rpm 一次安装两个软件a.i386.rpm和b.i386.rpm:命令:rpm -iv...原创 2018-08-10 08:56:40 · 431 阅读 · 0 评论 -
shell 脚本中特殊符号
shell 脚本中的特殊符号!echo $name 表示对name变量的引用$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个。$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)$? 执行上一个指令的返回值 (显示最后命令的...原创 2018-07-12 22:15:03 · 380 阅读 · 0 评论 -
Vim编辑器使用
vim的使用技巧:vim编辑器1,查看系统是否安装vi或vim;2.vim编辑器模式切换:三种模式Insert (插入) 进入vim命令模式:vim 文件名;命令模式切换到编辑模式: 命令行模式可以输入保存并退出(wq ,x。。。。)编辑模式字符操作:编辑模式行操作:快速定位到行首和行尾...原创 2018-04-11 14:57:35 · 206 阅读 · 0 评论 -
在磁盘阵列(RAID)上架构LVM系统
之前,在对Linux的学习过程中,我发现磁盘阵列和LVM各有优点,如果将其结合,将会产生类似杂交水稻的优点。所以我通过学习,将RAID与LVM结合实现在磁盘阵列(RAID)上架构LVM系统。下面是我的学习过程。磁盘阵列(RAID)具有高性能与备份的功能,但是文件系统的大小不可以更改;逻辑卷管理器(LVM)可以对文件系统扩充或缩小。因此,为了在服务器上建立一个可以扩充与缩小,而且具有高性能与...原创 2018-07-21 20:13:26 · 1892 阅读 · 1 评论