- 博客(132)
- 资源 (11)
- 收藏
- 关注

原创 FRR编译安装及配置
0. 编译安装问题排查1. 下载编译FRR方法2. 创建FRR 配置文件3. 安装 daemon 配置文件4. 编辑 /etc/frr/daemons 本文基于官方文档进行编译安装,其中部分爬坑过程在此记录一下,本文最新状态可点击查看源站文章链接。frr源码打包如果需要给frr打包rpm,可以参看官方文档Packaging Red Hat。frr二进制包直接安装如果读者需要直接采用rpm包安装,可以参看frr Release地址,直接下载rpm包,或者通过添加源来安装。# .
2020-06-30 11:33:42
7117

原创 DPDK编译及使用
软件(虚拟)交换机性能低下的主要原因是它们未经优化或设计用于处理和交换过高速率的数据包,而DPDK(Data Plane Development Kit, 数据平面开发工具包)则专门解决这个问题。在解释DPDK如何改善这种情况之前,需要回顾常规虚拟交换机存在的局限性。犹豫虚拟交换机对高速数据包的处理缺乏优化,因而导致数据包处理的过程中的很多步骤都要用到CPU,由于CPU需要处理多任务,因而其可用性(特别是超载的情况下)会出现性能瓶颈的问题。此外,虚拟交换机也无法高效实用系统内存,它们首先将数据包复制到.
2020-06-21 00:55:27
9852

原创 编译安装VPP及运行
1. VPP构建安装1.1 下载VPP及编译1.2 问题排查2. 配置运行vpp2.1 关闭待接管网卡接口2.2 安装NIC网卡驱动模块2.3 设置大页存储(可选步骤,可后期配置)2.4 接口绑定驱动(建议执行步骤,可不选)2.5 配置vpp(建议执行步骤,可不选)2.6 启动vpp2.7 创建网卡接口及IP地址本文基于VMware虚拟机环境,详细请参考本文源站地址。操作系统:CentOS7.6 Linux version 3.10.0-957.27.2.e.
2020-06-21 00:51:09
4546
17

原创 Linux创建操作网桥的两种命令及持久化
1.基础介绍1.1 简述1.2 网桥配置命令及安装(CentOS系统)2. brctl和bridge命令建桥2.1 brctl命令说明及范式2.2 brctl场景使用2.3 bridge命令及范式3.ip命令建桥3.1 ip命令建桥说明4.桥的持久化1.基础介绍1.1 简述什么是网桥 网桥是一种在链路层实现中继,对帧进行转发的技术,根据MAC分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来的网络设备。它是Linux上用来做TCP/IP二层协议交.
2020-05-30 12:42:28
11749

原创 go get无法下载或下载慢解决
原有GOPROXY=https://proxy.golang.org,direct命令行中输入go env -w GOPROXY=https://goproxy.cn,direct
2019-10-12 11:31:56
1338
原创 gRPC的Golang编译及简单使用
1. 前置条件GoProtocol buffer编译器:protoc,安装可参考Protocol buffer编译安装Go 协议编译插件下载并安装编译插件,这里确保已配置代理可以下载。$ export GO111MODULE=on # Enable module mode$ go get google.golang.org/protobuf/cmd/protoc-gen-go \ google.golang.org/grpc/cmd/protoc-gen-go-grpc#在
2021-07-07 19:21:25
1118
原创 Golang数组和切片区别及切片扩容
1. 内部结构1.1. 数组 Array先说一下数组, 的确在 Go 语言中, 因为 slice 的存在, 使得 array 的出场率不高。但想要很好的理解 slice, 还是要先要了解 array.Go 语言的数组和其他语言一样, 没有什么特别的地方, 就是一段以元素类型(如int)为单位的连续内存空间。数组创建时, 被初始化为元素类型的零值.声明举例:var arr [10]int // 长度为 10 的数组, 默认所有元素是 0arr := [...]int{1, 2, 3} // 长度
2021-05-17 19:36:05
907
1
原创 BGP建立连接问题排查
BGP 建立连接ACTIVE或CONNECT状态修复,需要依次排查如下:物理线是否正常,IP基础配置是否正确;排查防火墙是否拦截,是否需要关闭service firewall stop, 或者修改指定条目放开179端口;排查路由是否准确,静态路由或默认路由;如果建立EBGP,排查ebgp是否需要添加多跳;查看双方BGP建联的配置是否准确,例如AS号,IP地址等;neighbor地址是否能互相ping通,如果是基于vrf的建联,需要能够通过vrf ping通;刷新缓存clear ip bgp
2021-01-26 14:04:36
1134
1
原创 VPP与FRR基于Linux网络协议栈通信(vrf方式)
VRF (Virtual Routing and Forwarding)使同一系统下拥有多种且独立的路由表。在LINUX的内核中,从4.3版本已开始支持VRF,若需要较好支持vrf功能,建议Linux操作系统内核版本4.8以上。操作环境:本文操作系统采用CentOS8,已经安装iproute2。如下将创建一个veth对,并将其分别绑定到两个不同VRF,然后互相ping通IP;1. VETH打通不同VRF的基础配置# 1.创建vrf表red和blue并分别启动ip link add blue
2021-01-04 11:30:16
4507
原创 SDN与NFV区别
SDN与NFV是两种完全独立的创新技术,只不过SDN的很多目标都与NFV一致,因而两者能够相互促进并协同应用。 对于供应商提供的传统网络设备来说,控制平面、数据平面和硬件平面都紧密集成在一起,无法独立扩展这些设备。从下图可看出,SDN和NFV在两个不同的维度发挥作用。1. 核心理念SDN重点是实现控制平面和转发平面的分离,并通过独立的控制平面来管理、控制和监控转发平面。NFV重点是将网络功能从供应商提供的硬件设备相分离,便于用硬件来运行网络功能的软件。2. 作用范围SDN跟NFV最
2020-12-11 13:56:57
6138
原创 CentOS8系统配置国内yum源
1. 首先进入/etc/yum.repos.d/目录下,新建一个repo_bak目录,用于保存系统中原来的repo文件[root@bogon ~]# cd /etc/yum.repos.d/[root@bogon yum.repos.d]# mkdir repo_bak[root@bogon yum.repos.d]# mv *.repo repo_bak/2. 在CentOS中配置使用网易和阿里的开源镜像到阿里开源镜像站点下载系统对应版本的repo文件.#CentOS8[root@bogo
2020-12-11 13:51:28
31901
7
转载 SRv6技术课堂:SRv6概述
作者简介:李振斌 华为首席协议专家/IETF互联网架构委员会(IAB)委员。负责华为的IP协议研究和标准推动工作。自2009年起积极参与IETF标准创新工作,主导和参与了大量IETF RFC/草案。在过去六年内持续推动了SDN演进的BGP/PCEP/Netconf/YANG的协议创新和标准化,当前研究的重点包括SRv6、网络智能、Telemetry、5G承载等。2019年当选IETF互联网架构委员...
2020-10-29 16:31:26
32230
2
原创 VPP中SRv6的多场景实验
1. 中间P节点不支持SRv61.1. 拓扑图及概述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWfQsNok-1603959515222)(https://turbock79.cn/wp-content/uploads/2020/10/vpp_srv6_p1-1024x350.png)]VPP中基础命令参考vpp# show sr localsids//显示SRv6的本地policyvpp# show sr policies//显示SRv6的本地ste
2020-10-29 16:19:19
1113
1
原创 VPP中SRv6实验环境搭建及连通性测试
1.概述前置条件设置本地loop循环,并设置IPv6同localsids在同网段,一台;设置骨干网直连出口的IPv6地址(vrf默认为0),然后设置出口的IPv6静态路由,方向为对端方向;创建vrf表,客户路由表;开启并设置端口,绑定VRF以及添加IP;这步属于客户端路由表;实现SRv6模块需要进行如下一、二、三个主要设置。步骤一设置localsid,用于接收方向,对到达本地的报文设置最终解析终点及相关配置,主要设定解析数据包的动作,可以设置多个localsid,通过loop口统
2020-10-29 16:17:07
4579
4
原创 gRPC的C++编译及简单使用
grpc的编译及简单使用1.grpc相关参考文档grpc 主页: https://grpc.io/grpc 文档: https://grpc.io/docs/grpc 简介: https://grpc.io/docs/what-is-grpc/introduction/grpc 编译包1: https://packages.grpc.io/grpc 编译包2: https://pkgs.org/download/grpcgrpc github地址: https://gi
2020-10-21 21:20:41
9885
原创 C调用C++示例代码及方法简述
1. C++代码及C主进程代码c++程序代码test.cc//test.cc#include "test.h"#include <iostream>using namespace std;void fun(){ std::cout<<"Execute C++ fun!"<<std::endl;}头文件test.h这个文件为C代码直接调用头文件,不要存在任何C++相关代码;添加宏定义#ifdef __cplusplus extern "C"
2020-10-14 15:07:37
444
原创 CentOS下Git升级
1. 问题描述 centos7系统默认的git安装版本是1.8,但是在项目构建中发现git版本过低,于是用源码编译的方式进行升级.同时该文章也适用于安装新的git,相信大家对git都有一定的了解了,在文章过程中有的步骤也就不细细讲了.操作环境:centos7.0及以上2. 升级安装流程2.1. 第一步卸载原有的gitrpm -e --nodeps git 仅删除该git包# yum remove git 采用yum删除git,同时也将删除其依赖包,例如go,建议不采用该命令2.2.
2020-09-28 15:42:42
1360
1
转载 git提交不同平台文件的换行格式处理(转载)
1.CRLF、LF、CR三种方式含义CRLF->Windows styleLF->Unix StyleCR->Mac StyleCRLF表示句尾使用回车换行两个字符(即我们常在Windows编程时使用"\r\n"换行)LF表示表示句尾,只使用换行.CR表示只使用回车.2.通过Git的全局配置进行修改# 表示自动更换crlf,windows下如果checkout是\n,则自动换为\r\n,在提交时在自动换回\ngit config --global core.autoc
2020-09-26 00:27:50
1900
转载 NFV网络功能虚拟化架构和基本概念(转载)
1. NFV网络功能虚拟化概述 网络虚拟化技术,即用软件来安装、控制、操作那些运行在通用硬件上的网络功能,融合了云和虚拟化技术,使得新一代网络业务拥有更好的伸缩性和自动化能力。这些新涌现的技术经常被不加区分地称为NFV(网络功能虚拟化,Network Functions Virtualiztion)和SDN(软件定义网络,Software Define Network),虽然二者有逐渐融合之势,但二者的初衷和架构并不相同:SDN起源于园区网,发展于数据中心,目的是将控制平面和转发平面分离,通过集中化
2020-09-25 17:42:16
6334
原创 虚拟网卡接口VETH(Virtual Ethernet )创建使用和绑定关系
1. veth创建与使用 VETH(Virtual Ethernet )是Linux提供的另外一种特殊的网络设备,中文称为虚拟网卡接口。它总是成对出现,要创建就创建一个pair。一个Pair中的veth就像一个网络线缆的两个端点,数据从一个端点进入,必然从另外一个端点流出。每个veth都可以被赋予IP地址,并参与三层网络路由过程,可以实现不同netns之间网络通信。# yum install -y iproute ##确保安装iproute工具$ ip netns add blue #创建命令空间
2020-09-23 23:19:49
1923
原创 Alpine容器添加netns功能支持
1. 启动alpine容器#以管理员权限创建容器docker run -itd --privileged --name="alpine" alpine#创建docker执行别名alias apline='docker exec -it alpine sh'#登录alpine容器alpine2. 修改源在文件/etc/apk/repositories中修改源:http://mirrors.aliyun.com/alpine/v3.8/main/http://mirrors.aliyun.
2020-09-23 23:17:50
168
原创 CMake升级安装版本3.17以上
检查cmake版本$ cmake --version本文最新状态可查看源站链接:CMake升级安装版本3.17以上1. 快捷安装在Linux下, 现有系统级别的cmake版本太低,可以通过一下脚本在本地目录安装更新的cmake版本。$ wget -q -O cmake-linux.sh https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-Linux-x86_64.sh$ sh cmake-linux.s
2020-09-23 23:14:24
2796
原创 BGP中跨VRF路由透传及RD和RT
BGP中跨VRF路由透传及RD和RTBGP中跨VRF路由透传及RD和RT1. VRF路由透传1.1. 需要参数1.2. 常用配置2. BGP中VRF路由透传实践2.1. PE(ProviderEdage)的BGP配置2.2. CE(ClientEdge)的BGP配置2.3. RR(RouteRelector)的BGP设置1. VRF路由透传 本节主要参考frr官方文档BGP VRF路由透传,对VRF透传概念进行翻译,加深对RD/RT概念理解,便于实现骨干网络间跨V
2020-09-23 23:08:02
5979
原创 Linux下批量转换windows格式“\r\n“转为“\n“
查找当前目录所有文件并将其中/r/n格式转换为/n, 使用前请先备份;find . -type f |xargs sed -it "s/\r\n/\n/g"本文源站链接:LinuxShell基础命令
2020-09-17 22:31:16
2295
1
原创 Alpine编译.apk安装包
最近公司需要将某docker项目从centos系统迁移到alpine中,因此需要重新编译项目;参考国外某些案例已写好Dockerfile和build.sh中,这里对其主要过程分解并记录一下;1. 构建发布压缩包 该步骤主要同项目构建过程相关,需要根据不同情况进行编译;# 1.make distribution tar.gz./bootstrap.sh./configure --with-pkg-extra-version=-r1make dist#会发现目录中生成XXX-MyVersio
2020-09-16 00:38:47
3524
1
原创 DNMP中通过SHELL实现docker-compose.yml创建指定容器
本文采用开源项目DNMP作为Docker+Nginx+MySQL+PHP容器创建依赖工具,通过修改.env重点环境变量以及docker-compose.yml,来实现某些扩展项目的添加以及某些容器的创建。docker-compose.yml默认开启容器nginx,php,mysql。因docker-compose.yml原有容器例如,phpmyadmin、elasticsearch、mongodb、supervisor等都通过‘#’字符已注释,因此可以指定添加的容器名称来实现指定容器的添加。#!/bi
2020-09-10 22:20:05
707
原创 虚拟网卡接口VETH(Virtual Ethernet )创建使用和绑定关系
1. veth创建与使用 VETH(Virtual Ethernet )是Linux提供的另外一种特殊的网络设备,中文称为虚拟网卡接口。它总是成对出现,要创建就创建一个pair。一个Pair中的veth就像一个网络线缆的两个端点,数据从一个端点进入,必然从另外一个端点流出。每个veth都可以被赋予IP地址,并参与三层网络路由过程,可以实现不同netns之间网络通信。# yum install -y iproute ##确保安装iproute工具$ ip netns add blue #创建命令空间
2020-09-10 22:17:12
5704
原创 虚拟机搭建Harbor安装和简单使用
Harbor是用于存储和分发docker镜像的企业级Registry服务器;1.准备前提条件软硬件前置条件:官方连接安装docker方法一#下载安装docker,需要版本Version 17.06.0-ce+或更高curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun方法二#删除掉旧的docker$ yum remove docker docker-*$ yum install -y yu.
2020-09-10 22:15:14
1180
1
原创 Wordpress更换站点索引路径以及批量更换图片路径
搭建个人博客网站时,如果修改wordpress文件夹路径,例如从html迁移到html/wordpress会导致一系列路径寻址问题,通过wordpress网站后台管理的设置,WordPress地址(URL)等只能解决部分问题,但原有大多文章的图片索引,以及ID索引可能都会失效。因为也需要对其进行修改,这里主要通过修改数据库的方式进行批量更换路径。 操作数据库前一定要备份!!!一定要备份!!!一定要备份!!!1.通过数据库修改路径 网站设置中的WordPress地址(URL)和站点地址(URL)
2020-09-03 23:55:50
1016
原创 VScode远程调试C代码程序
1.VScode配置远程启动项目 下载VScode远程插件,并安装对应的远程插件模块 Remote-SSH/Remote - SSH: Editing Configuration Files。随后开启并配置远程,连接至远端客户机,并安装C/C++插件在远端。2.配置VScode远程调试配置文件打开项目中.vscode文件夹的lauch.json文件,进行如下代码配置,可用于调试大项目C代码。{ "version": "0.2.0", "configurations": [
2020-09-01 14:04:44
830
1
原创 LinuxShell基础命令汇总
1.Linux基础命令1.1 查看文件1.2 文本处理1.3 传输文件1.4 文件类其他命令1.5 进程类1.6 系统类2.NTP2.1 NTP介绍2.2 NTP时间来源2.3 NTP配置3.软件管理3.1 yum源配置3.2 yum常用命令3.3 rpm软件管理4.DNS查询4.1 DNS查询4.2 DNS问题排查思路5.日志查看5.1 日志查看命令5.2 常用命令参考文档RUNOOB Linux 教程1.Linux基础命令1.
2020-08-28 15:11:29
503
原创 Linux网络控制命令汇总
1.ifconfig2.ip3.route4.ping5.telnet6.traceroute7.tcpdump8.netstat9.nc10.ss1.ifconfig1.1 查看已被激活的网卡的详细信息$ ifconfigeth0 Link encap:Ethernet HWaddr 00:30:67:F2:10:CFinet addr:10.0.0.253 Bcast:10.0.255.255 Mask:255.255.0.0inet6 addr: fe80::23.
2020-08-28 15:07:20
848
原创 路由控制工具RouteTools
路由控制工具RouteTools1.ACL控制流量匹配感兴趣流//该方式仅做添加 access-list 1 permit 192.168.1.1 0.0.0.0 抓路由 access-list 1 permit 192.168.1.2 access-list 1 permit 192.168.1.3 access-list 1 permit 192.168.1.0 0.0.0.255 抓流量 do show access-list 显示acl do show ip access
2020-08-28 15:03:55
2226
原创 解决 configure.ac: error: possibly undefined macro: AC_PROG_LIBTOOL
看了很多文章,这里记录一下:1.没有安装aclocal解决方法yum -y install libtool libsysfs2. aclocal与libtool没有安装在相同目录原因分析:aclocal是个扫描程序, 负责扫描configure.ac中所有的宏定义并展开,上面产生的原因就是找不到LIBTOOL宏的定义之处造成的.原因就是aclocal与libtool没有安装在一个相同目录下面 aclocal是去默认 安装目录 /usr/share/aclocal下面搜索所有的.m4
2020-07-31 18:19:56
12632
原创 Git submodule子模块的使用
常用命令在项目中的.gitmodules文件中查看当前submodule设置git clone <repository> --recursive #递归的方式克隆整个项目git submodule add <repository> <path> #添加子模块#示例:git submodule add git://xxxxx.git findernamegit submodule init #初始化子模块git submodule update --recurs
2020-07-31 12:41:32
2067
原创 github下载慢或报错“The-remote-end-hung-up-unexpectedly”解决办法
github下载慢或报错“The-remote-end-hung-up-unexpectedly”解决办法:该问题往往因为内部网络限制等因素导致。 因细节更新,欢迎访问本文源站链接:https://turbock79.cn/?p=173。1.方法一 解决gitbub下载慢问题,可尝试设置缓存大小设定git config --global http.postBuffer 1048576000git config --global http.lowSpeedLimit 0git config.
2020-07-16 10:27:13
1931
原创 git提交合并分支及回退总结
1.git clone 把远程库克隆到本地文件夹git clone -b dev https://gitee.com/XXX/EmpManage //直接克隆远程dev分支到本地dev分支//相当于如下操作git clone https://gitee.com/XXX/XXXManage //克隆远程仓库主分支cd XXXManagegit status  
2020-07-02 19:56:10
4344
原创 libjson-c编译及安装
json-c首页: https://github.com/json-c/json-c/wiki0. 依赖条件本文采用centos系统,但也需要所以采用yum命令。#编译器gcc, clang, or another C compiler#cmakecmake>=2.8, >=3.16 recommended#若要生成文档,还需要doxygenTo generate docs you'll also need:doxygen>=1.8.13If you are on a
2020-06-30 11:36:20
2883
原创 Golang对未知结构json的解析
Golang的json包解析可以让你在程序中方便的读取和写入JSON 数据。生成JSON场景相对简单一些,json.Marshal()会根据传入的结构体生成JSON数据。解析JSON会把数据解析到结构体中,由于JSON格式的可能根据其传递参数的值,来判断类型,这种自由组合的特点,就需要采用泛型的接口类型解决。本文重点描述对未知结构体数据的解析,主要分为如下1和2两个步骤。1. 将未知结构体解析为interface{}类型//请求消息类型,客户端收到该类型json并进行解析。用interfac
2020-06-29 11:42:32
4398
原创 VPP结合dnsmasq制作家庭路由器(CentOS+VPP+Dnsmasq)
1.前置条件准备2.配置vpp接管网口3.VPP中进行桥和nat配置4.主机配置默认路由5.配置DHCP服务6.配置DNS缓存服务1.前置条件准备 在此之前最好准备相关物理设备,或PC+物理网卡。选用dnsmasq作为轻量级dhcp服务,主要测试玩耍使用。相关文章,例如ubuntu系统可参考VPP官方相关文档。centos7.6系统可参考本文,源站链接。本文采用Centos系统,相关配置如下所述。#安装dnsmasq用于dhcp以及dns服务yum install -y dnsma.
2020-06-01 10:01:07
906
grpc-v1.32.x分支及所有子模块
2020-09-26
libxml2.rar
2019-10-30
libbson.rar
2019-10-30
openssl1.0.2q.rar
2019-10-30
boost1660_arm64-v8a_clang.rar
2019-10-30
xdman_java.jar
2019-10-22
XDMSetup.dmg
2019-10-22
XDM_chrome.crx
2019-10-22
xdm-2018-x86.tar.xz
2019-10-22
xdmsetup-2018.msi
2019-10-22
windbg10.0调试工具32位/64位版本下载
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人