【网络工程师】手把手教你用华为ensp模拟器玩vxlan实验(静态方式)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【网络工程师】手把手教你用华为ensp模拟器玩vxlan实验(静态方式)相关的知识,希望对你有一定的参考价值。

参考技术A 一、背景

     随着云计算、虚拟化技术的发展,业务有时需要再不同地方同网段进行通信,即大二层网络。比如虚机迁移,从A数据中心迁移到异地数据中心。

      首先,我们都知道,路由器是用来隔离广播域的,同网段通信都在一个广播域,像这种不同地域,中间不知道隔了多少台路由器,就拿arp广播请求报文来说,怎么可能传过去呢?

其次,vlan的ID也是有限的,只有4096个。

这不,VXLAN就诞生了,所以一个技术的诞生绝对不是平白无故的产生,肯定是有特点的背景下,研发人员才去创造新的技术出来。

我个人简单理解vxlan就是 增加标签 和 建立隧道 ,把二层报文封装到UDP报文里面,通过隧道传递过去,构建大二层网络。当然还有很多细节的知识点,需要我们慢慢深入研究、学习。

二、拓扑图

三、思路

1、搭好实验环境,导入号CE6800镜像。

2、基础配置。(修改设备名、直连接口IP地址。)

3、配置路由协议。(保证CE1、CE2、CE3 loopback能通)

4、VXLAN相关配置。(建立VXLAN隧道、配置VNI号等)

5、验证。

四、配置过程

01、导入号CE6800镜像。

02、基础配置。

修改默认设备名:

CE1配置如下,其他设备参考如下,不再一一举例。

注意:CE系列设备,修改配置后,只要commit(提交),配置才生效。

<HUAWEI>sys

Enter system view, return user view with return command.

[~HUAWEI]sys CE1

[*HUAWEI]commi

[*HUAWEI]commit 

[~CE1]

[~CE1]

如果发现无法成功修改设备名,并提示如下报错:

 Error: The system is busy in building system configurations.

可以用display device查看:

解决办法:

1、关掉ensp;

2、启动vitual box,对CE镜像,修改系统内存,我调整到4G。

3、重新启动ensp。

我就是按上述操作,解决了。

CE1的直连接口IP地址设置,其他CE2、CE3参照拓扑图及如下命令:

[~CE1]int g1/0/0

[~CE1-GE1/0/0]undo portswitch 

[*CE1-GE1/0/0]ip add 12.1.1.1 24

[*CE1-GE1/0/0]undo shut

[*CE1-GE1/0/0]qu

[*CE1]int lo 0

[*CE1-LoopBack0]ip add 10.10.10.10 32

[*CE1-LoopBack0]qu

[*CE1]commit

[~CE1]

[Huawei]sysname SW1

[SW1]

[SW1]vlan 10

[SW1-vlan10]qu

[SW1]int g0/0/2

[SW1-GigabitEthernet0/0/2]port link-type trunk 

[SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan 10

[SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan all 

[SW1]int g0/00/1

[SW1-GigabitEthernet0/0/1]port link-type access 

[SW1-GigabitEthernet0/0/1]port default vlan 10

[SW1-GigabitEthernet0/0/1]qu

[Huawei]sysname SW2

[SW2]

[SW2]vlan 10

[SW2-vlan10]qu

[SW2]int g0/0/2

[SW2-GigabitEthernet0/0/2]port link-type trunk 

[SW2-GigabitEthernet0/0/2]port trunk allow-pass vlan 10

[SW2-GigabitEthernet0/0/2]port trunk allow-pass vlan all 

[SW2]int g0/00/1

[SW2-GigabitEthernet0/0/1]port link-type access 

[SW2-GigabitEthernet0/0/1]port default vlan 10

[SW2-GigabitEthernet0/0/1]qu

03、配置路由协议。

OSPF配置:

[~CE1]ospf

[*CE1-ospf-1]area 0

[*CE1-ospf-1-area-0.0.0.0]net 10.10.10.10 0.0.0.0

[*CE1-ospf-1-area-0.0.0.0]net 12.1.1.0 0.0.0.255

[*CE1-ospf-1-area-0.0.0.0]commit

[~CE1-ospf-1-area-0.0.0.0

[~CE2]ospf

[*CE2-ospf-1]area 0

[*CE2-ospf-1-area-0.0.0.0]net 12.1.1.0 0.0.0.255

[*CE2-ospf-1-area-0.0.0.0]net 23.1.1.0 0.0.0.255

[*CE2-ospf-1-area-0.0.0.0]net 20.20.20.20 0.0.0.0

[*CE2-ospf-1-area-0.0.0.0]commit

[~CE2-ospf-1-area-0.0.0.0

[~CE3]ospf

[*CE3-ospf-1]area 0

[*CE3-ospf-1-area-0.0.0.0]net 30.30.30.30 0.0.0.0

[*CE3-ospf-1-area-0.0.0.0]net 23.1.1.0 0.0.0.255

[*CE3-ospf-1-area-0.0.0.0]commit

[~CE3-ospf-1-area-0.0.0.0

查看一下OSPF邻居状态:

测试一下网络连通性,如ping一下 loopback接口。

04、VXLAN相关配置。

[~CE1]vlan 10

[*CE1-vlan10]quit

[*CE1]bridge-domain 10

[*CE1-bd10]quit

[*CE1]interface g1/0/1.1 mode l2 

[*CE1-GE1/0/1.1]encapsulation dot1q vid 10

[*CE1-GE1/0/1.1]bridge-domain 10

[*CE1-GE1/0/1.1]quit

[*CE1]commit

[~CE1]

[~CE3]vlan 10

[*CE3-vlan10]quit

[~CE3]bridge-domain 10

[*CE3-bd10]quit

[*CE3]int g1/0/1.1 mode l2

[*CE3-GE1/0/1.1]encapsulation dot1q vid 10

[*CE3-GE1/0/1.1]bridge-domain 10

[*CE3-GE1/0/1.1]quit

[*CE3]

[*CE3]commit

[~CE3

配置VXLAN隧道:

[~CE1]bridge-domain 10

[~CE1-bd10]vxlan vni 1

[*CE1-bd10]quit

[*CE1]interface Nve 1

[*CE1-Nve1]source 10.10.10.10

[*CE1-Nve1]vni 1 head-end peer-list 30.30.30.30

[*CE1-Nve1]quit

[*CE1]commit 

[~CE1]

[~CE3]bridge-domain 10

[~CE3-bd10]v

[~CE3-bd10]vxlan vni 1 //模拟器vni建议使用最小的。

[*CE3-bd10]quit

[*CE3]interface nve 1

[*CE3-Nve1]source 30.30.30.30

[*CE3-Nve1]vni1 head-end peer-list 10.10.10.10

[*CE3-Nve1]quit

[*CE3]commit

[~CE3

查看VXLAN状态:

五、验证

ok,现在我们就可以测试一下,PC1是否可以ping 通同网段的PC2:

然后,我们也可以抓包学习一下vxlan的真实报文又是如何的?

从抓包的报文来看,我们可以学习到,

vxlan是通过UDP报文来封装的,UDP源目端口使用的:4789。

手把手教你用Python模拟登录淘宝

作者 | 猪哥66

来源 | 裸睡的猪(ID:IT--Pig)

最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章!

技术图片

看了下网上有很多关于模拟登录淘宝,但是基本都是使用 scrapy、pyppeteer、selenium 等库来模拟登录,但是目前我们还没有讲到这些库,只讲了 requests 库,那我们今天就来使用 requests 库模拟登录淘宝!

讲模拟登录淘宝之前,我们来回顾一下之前用 requests 库模拟登录豆瓣新浪微博的过程:这一类模拟登录是比较简单的登录,只需要在请求登录时将用户名和密码上传验证通过就成功了,也就是说一步到位!

而淘宝登录就比较复杂,为什么说复杂呢?因为淘宝登录涉及参数多且请求不止一次!我们就先来讲讲淘宝登录的流程,先把流程原理搞懂,再去敲代码,这样大家就容易理解!

一、淘宝登录流程

为了便于大家理解,猪哥画了一个非标准的淘宝登录请求时序图

技术图片

淘宝ua参数:ua(User-Agent) 故名用户代理,淘宝的 ua 参数加入了浏览器、ip、电脑、时间等信息,然后加密生成,在很多地方使用,不仅仅是登录!

上图是比较详细的流程图,从代码层面考虑猪哥将模拟登录淘宝分为以下四个步骤:

  1. 输入用户名后,浏览器会向淘宝(taobao.com)发起一个 post 的请求,判断是否出现滑块验证!
  2. 用户输入密码后,浏览器向淘宝(taobao.com)又发起一个 post 请求,验证用户名密码是否正确,如果正确则返回一个 token。
  3. 浏览器拿着 token 去阿里巴巴(alibaba.com)交换st码!
  4. 浏览器获取 st 码之后,拿着 st 码获取 cookies,登录成功

这里也许有同学会提出疑问:为什么淘宝(taobao.com)验证通过之后还要拿着 token 去阿里巴巴(alibaba.com)交换 st 码呢? 这个我们放后面讲!

二、模拟登录实现

上面我们只讲了大概的登录流程,这里猪哥会先详细讲解下每一步的操作,然后再贴出实现代码!

1.判断是否需要验证码

目前我们在登录淘宝的时候,大多数情况下是不会出现滑块验证码,猪哥尝试了很多次的登录退出也只是在中间出现过一次,那究竟是什么在控制是否需要滑块验证码的呢?

技术图片

从上图可以看出,当猪哥输入用户名后,浏览器就会发起一个 post 请求,来验证是否需要出现滑块验证码,如果返回 true,滑块验证码则出现!否则不出现,一般是不会出现!

图中我们可以看到这次 post 请求上传了两个参数:username、ua!

前面猪哥说过 ua 为浏览器、ip、设备信息等多信息加密参数,所以猪哥猜想淘宝的验证码是否出现不仅仅从账号角度,还有 ip、设备等角度!

举个例子:某台设备可能出现登录过大量的账号,这时候淘宝就可以从ua参数中获取设备号,然后对该设备进行限制!

知道了流程和请求链接及参数之后,我们就可以用代码来请求了!

技术图片

 

2.验证用户名密码

这里一步也就是上面时序图图中的第 5 步:请求登录,这里会将用户名、ua 参数、加密密码等 30 十几个参数 post 到淘宝(taobao.com)去验证。

技术图片

我们来用代码实现一下,大家别被这么多参数吓到,都是从浏览器复制过来的!

技术图片

看看请求结果!

技术图片

可以看到申请st码链接后面带了一个 token,具体 token 是干什么用的后面我们再分析!

3.申请st码

上面我们已经申请到了淘宝(taobao.com)的 token,这一步就是用 token来换取 st 码。

到这里很多人可能会有疑问:为什么淘宝登录需要这么麻烦呢?直接在 taobao.com 登录不就可以吗?为什么要先在 taobao 验证用户名密码,通过之后再去 alibaba.com 换取 st 码登录呢?

任何公司的框架都是慢慢演变的结果,我猜想最开始的淘宝登录肯定没这么复杂。但是随着阿里巴巴的慢慢壮大,很多事业线都划分开来,但是这些事业线之间又有关联性,比如用户登录了淘宝账号之后天猫就不需要再登录(注意淘宝和天猫的顶级域名不同,所以不能共享 cookis)为了实现这个功能,单点登录就出现了。

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。   ——百度百科

很多大企业几乎都有做单点登录,那阿里的单点登录系统肯定是由母公司阿里巴巴(alibaba.com)来做啦,所有子公司去调用母公司接口!

我们再回来分析淘宝登录为何要如此复杂就很好理解了:用户数据在淘宝这里,所以需要现在淘宝(taobao.com)验证用户名和密码,验证通过生成一个 token,浏览器拿着 token 去和阿里巴巴(alibaba.com)申请单点登录码( st 码),阿里巴巴收到请求验证 token 通过则返回 st 码,所以用 token 换 st 码的原因就在于单点登录!

理解了设计原理之后,代码实现起来就很清晰了!

技术图片

 

 

4.使用 st 码登录

成功获取 st 码之后我们就可以来登录了,这一步是通过 st 码获取登录的 cookies。

技术图片

到这里我们就已经模拟登录淘宝成功了!

5.获取淘宝昵称

其实上面我们就已经登录淘宝成功并返回用户主页的链接,我们为了进一步验证登录成功,就请求一下淘宝用户主页,顺便把淘宝昵称提取出来吧!

技术图片

 

三、总结

整体讲完之后我们来稍微总结一下吧,主要从代码结构和存在的问题两个方面说下:

1.代码结构

来放出一张代码结构图,让大家直观了解

技术图片

这就是我们前面说过的模拟登录淘宝的四个步骤,不过这里我们是用代码实现了!

2.存在问题

在写这篇教程之前猪哥也是先在网上了解,然后自己用浏览器和抓包工具(Charles)一步一步实践,最重要的是你先要了解淘宝登录的大概流程,不然你实际操作起来会一头雾水,下面就要讲讲目前遇到的问题和存在的问题吧.

  1. 首先第一个问题便是淘宝的滑块解锁,目前 requests 还没有很好的破解办法,后面介绍了一些爬虫框架之后我们再来破解吧!
  2. 猪哥尝试了很多次(50 次以上)登录退出都没出现过滑块验证码。
  3. 网上有人使用代理 ip,这里猪哥也没用,只要你不是超级超级超级频繁且大量爬取数据,一般大厂都不太会去封 ip,因为有误伤率和影响用户面太广,也许一封就是整个小区。
  4. 在第二步验证用户名和密码时,上传了近 30 个参数,如果你把username、ua、加密密码复制进去验证还是不通过可尝试把那 30 个参数换成你浏览器中的!
  5. 在第三步和第四步偶尔会出现一次错误,重试一下就可以!
  6. 文章有些关于淘宝登录框架纯属猪哥猜想,如有错误还望指正!

看到这里是不是感觉淘宝模拟登录就清晰明了很多了,感兴趣的同学可以收藏转发,周末有空自己尝试一下(源码:https://github.com/pig6/login_taobao)。征服淘宝登录,其他登录也就相对简单了!

(*本文为 AI 科技大本营转载文章,转载请联系原作者)

原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2019-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

以上是关于【网络工程师】手把手教你用华为ensp模拟器玩vxlan实验(静态方式)的主要内容,如果未能解决你的问题,请参考以下文章

华为模拟器eNSP安装(最新)网络工程师必备!

华为ensp模拟校园网/企业网实例(精品拓扑图)

动手实践丨手把手教你用STM32做一个智能鱼缸

手把手教你用Python模拟登录淘宝

动手实践丨手把手教你用STM32做一个智能鱼缸

ENSP安装教程手把手教学