初识lldp协议

初识lldp协议1、背景:问题:CDN的场景下,同组cache机器规划不规范,额外产生级联带宽,造成级联带宽跑满,导致丢包和速度变慢;愿景:1、平台支持扫描cache机在网络中的物理位置信息,作为cache机规划的依据,避免产生级联带宽;2、支持出口带宽和级联带宽的报警,当出现出口带宽大于级联带宽时,能报警提醒。当前,交换机使用两层交换机堆叠,外网核心下接外网

大家好,又见面了,我是你们的朋友全栈君。

1、背景:

问题:CDN的场景下,同组cache机器规划不规范,额外产生级联带宽,造成级联带宽跑满,导致丢包和速度变慢;

愿景:

1、平台支持扫描cache机在网络中的物理位置信息,作为cache机规划的依据,避免产生级联带宽;

2、支持出口带宽和级联带宽的报警,当出现出口带宽大于级联带宽时,能报警提醒。


当前,交换机使用两层交换机堆叠,外网核心下接 外网接入;

外网核心下边一般不接服务器,或者只接入少量的如LVS,NAT,交换机等功能的服务器,外网接入下接cache服务器集群

机房交换机和机器的连接示意图如下:

部分老节点,外网核心实际上是复用的,既接服务器,又接交换机,连接示意图如下:

级联带宽(外网核心和外网接入之间的带宽)跑满,会出现节点丢包的情况;

目前,级联带宽一般为40G~60G之间(打算扩为80G)。

2、问题

同组机器接在不同交换机下,组内会产生跨级联交换机的内网带宽,跨级联带宽跑满会导致丢包;

3、分析

现状:

在做cache组规划时,没有机器在网络链路中的位置作为参考,很可能出现接在不同外网接入交换机下的机器规划在同cache组内,产生了跨级联带宽。

以下分别针对同组cahce机器:接在同一个外网接入交换机下、不同外网接入交换机下、一台cache机接在外网接入交换机下,另一台cache机接在外网核心交换机下的三种场景,分析交换机、cache机之间的内容传输大小;

假设:

用户请求到host1,host1上没有缓存文件,host2上有缓存文件。

场景1:host1与host2在同一台交换机下。

过程1、2、3:用户的请求分别经过外网核心、外网接入,到达host1;

过程4、5:host1没有命中相关缓存文件,通过外网接入1,向host2请求缓存文件;

过程6、7:host2响应host1并发送缓存文件(数据经过外网接入1)

过程8、9、10:host1响应客户端,并通过外网接入1、、外网核心将数据响应给客户端。

内网传输:

级联2 入带宽 = 1 * 请求带宽 
级联2 出带宽 = 1 * 响应带宽

场景2:host1与host2在不同的外网接入交换机下。

过程1、2、3:用户的请求分别经过外网核心、外网接入,到达host1;

过程4、5、6、7:host1没有命中相关缓存文件,通过外网接入1,外网核心,外网接入2 向host2请求缓存文件;

过程8、9、10、11:host2响应host1并发送缓存文件(数据经过外网接入2、外网核心、外网接入1)

过程12、13、14:host1响应客户端,并通过外网接入1、、外网核心将数据响应给客户端。

内网传输:

级联1 入带宽 = 1 * 请求带宽
级联1 出带宽 = 1 * 响应带宽
级联2 入带宽 = 1 * 请求带宽 + 1 * 响应带宽
级联2 出带宽 = 1 * 请求带宽 + 1 * 响应带宽

场景3:host1与host2在不同的台交换机下。

过程1、2、3:用户的请求分别经过外网核心、外网接入,到达host1;

过程4、5、6、7:host1没有命中相关缓存文件,通过外网接入1,外网核心,外网接入2 向host2请求缓存文件;

过程8、9、10、11:host2响应host1并发送缓存文件(数据经过外网接入2、外网核心、外网接入1)

过程12、13、14:host1响应客户端,并通过外网接入1、、外网核心将数据响应给客户端。

内网传输:

级联2 出带宽 = 1 * 请求带宽 + 1 * 响应带宽
级联2 入带宽 = 1 * 请求带宽 + 1 * 响应带宽
级联4 出带宽 = 1 * 响应带宽
级联4 入带宽 = 1 * 请求带宽

1、平台支持lldp协议扫描,并作为cache组规划的依据;

2、规划cache组时,根据lldp扫描结果,将同交换机下的cache机规划在同组内;

5、lldp协议

提到lldp协议,我就炒鸡蛋疼。。。。摆渡来摆渡去摆渡出来的几乎是和交换机相关的lldp相关的,和Linux上的lldp协议相关的真的很少(当然不是没有,不然你现在就不会在这里看我的博客了。。当然,也可能是小编我的摆渡技能点的不够-_-~~~)

下面简单介绍一下我和lldp的第一次。。

1、服务器上面安装lldp协议:

# yum install -y lldpad

2、配置lldp协议:

for i in `ls /sys/class/net/ | egrep "em|eth|p|bond"` ;  
      do echo "enabling lldp for interface: $i" ;  
      lldptool set-lldp -i $i adminStatus=rxtx  ;  
      lldptool -T -i $i -V  sysName enableTx=yes;  
      lldptool -T -i $i -V  portDesc enableTx=yes ;  
      lldptool -T -i $i -V  sysDesc enableTx=yes;  
      lldptool -T -i $i -V sysCap enableTx=yes;  
      lldptool -T -i em1 -V mngAddr ipv4=`hostname -I`;  
      lldptool -T -i $i -V mngAddr enableTx=yes;  
done  


3、查看lldp:

 lldptool -t -n -i bond0 

注意:

1、 for i in `ls /sys/class/net/ | egrep “em|eth|p|bond”` ; ( 应该包含你的网卡);

2、需要在交换机上开启lldp协议;


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136985.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月2日 下午7:36
下一篇 2022年6月2日 下午7:36


相关推荐

  • java volatile 关键字详解「建议收藏」

    java volatile 关键字详解「建议收藏」javavolatile关键字详解一,什么是volatile关键字,作用是什么​volatile是java虚拟机提供的轻量级同步机制​作用是:1.保证可见性2.禁止指令重排3.不保证原子性本篇具体就讲解什么叫保证了可见性,什么叫禁止指令重排,什么是原子性而在这之前需要对JMM有所了解二,什么是JMM​JMM(java内存模型JavaMemoryModel简称JMM)本身是一个抽象的概念,并不在内存中真实存在的,它描述的

    2022年7月18日
    15
  • WriteProcessMemory_linux注入

    WriteProcessMemory_linux注入今天要完成一个项内容,运行另一个应用程序abc.exe,实现它的父进程是explorer.exe。最开始的思路是获得explorer.exe的句柄,用ShellExecute启动abc.exe。但是用explorer.exe的句柄创建的进程的父进程依然是调用和进程,而不是传入句柄的进程。看来直接的不行,只能用间接的了。把运行abc.exe的代码段写到explorer.exe的内存里面去。然

    2025年11月7日
    5
  • 【数据结构】红黑树与平衡二叉树的区别以及原理详解(附图解)

    【数据结构】红黑树与平衡二叉树的区别以及原理详解(附图解)文章目录前言一 什么是红黑树 1 1 平衡二叉树 1 2 红黑树二 红黑树的构建过程 2 1 红黑树保持平衡操作 1 变色 2 2 红黑树保持平衡操作 2 旋转三 红黑树插入之详解总结前言最近在学习 HashMap 相关内容时碰到了红黑树 在 hashMap 中 链表超过一定长度将会转化为红黑树 趁这个机会学习并记录一下红黑树的内容 提示 以下是本篇文章正文内容一 什么是红黑树红黑树是一种自平衡二叉排序树 它属于平衡树 但是却没有平衡二叉树那么 平衡 那么我们首先来看一下平衡二叉树 1 1 平衡二叉树二叉平

    2026年3月26日
    2
  • 青蛙过河谁先过_python knn算法实现

    青蛙过河谁先过_python knn算法实现一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。给你石子的位置列表 stones(用单元格序号 升序 表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一块石子上)。开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格 1 跳至单元格 2 )。如果青蛙上一步跳跃了 k 个单位,那么它接下来的跳跃距离只能选择为 k – 1、k 或 k + 1 个单位。 另请注意

    2022年8月9日
    6
  • java语言代码大全_java新手入门-java新手代码大全

    java语言代码大全_java新手入门-java新手代码大全​关于学习java知识的过程是漫长的,它的内容丰富又庞大。今天就为大家介绍如何区分java文件字节流和字符流,以及为大家展示读写操作的实例。下面要给大家介绍的就是和java字符缓冲区输入流BufferedReader类相关的知识,主要包含了BufferedReader类构造方法的重载形式以及使用。下面要给大家介绍的就是和java字符流字符缓冲区输出流BufferedWriter类相关的知识,…

    2022年6月21日
    39
  • Vue(8)列表渲染v-for[通俗易懂]

    Vue(8)列表渲染v-for[通俗易懂]循环在模板中可以用v-for指令来循环数组,对象等。循环数组我们可以用v-for指令基于一个数组来渲染一个列表。v-for指令需要使用iteminitems形式的特殊语法,其中it

    2022年7月31日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号