随笔分类 -  linux

摘要:Tun/Tap接口指导 概述 对tun接口的了解需求主要来自于openshift的网络,在openshift3和openshift4的OVS网络中使用到了tun0接口,作为容器egresss访问路径上的接口之一。 工作机制 下面用到了tunctl和openvpn命令来创建tun/tap接口,但目前推 阅读全文
posted @ 2020-08-15 23:26 charlieroro 阅读(16806) 评论(2) 推荐(3) 编辑
摘要:全面介绍eBPF-概念 前面介绍了BCC可观测性和BCC网络,但对底层使用的eBPF的介绍相对较少,且官方欠缺对网络方面的介绍。下面对eBPF进行全面介绍。 BPF概述 下面内容来自Linux官方文档: eBPF的演进 最初的[Berkeley Packet Filter (BPF) PDF]是为捕 阅读全文
posted @ 2020-08-09 20:52 charlieroro 阅读(43222) 评论(0) 推荐(7) 编辑
摘要:Linux探测工具BCC(网络) 承接上文,本节以ICMP和TCP为例介绍与网络相关的部分内容。 Icmp的探测 首先看下促使我学习bcc的这篇文章中的程序traceicmpsoftirq.py,使用该程序的本意是找出对ping响应的进程位于哪个CPU core上,然后使用perf扫描该core,找 阅读全文
posted @ 2020-07-09 13:39 charlieroro 阅读(2362) 评论(0) 推荐(1) 编辑
摘要:BCC(可观测性) PS:学习BCC源自这篇文章 简介 BCC是一个用于跟踪内核和操作程序的工具集,其软件包中包含了一些有用的工具和例子,它扩展了BPF(Berkeley Packet Filters),通常被称为eBPF , 在Linux3.15中首次引入,但大多数BCC的功能需要Libux4.1 阅读全文
posted @ 2020-07-08 10:08 charlieroro 阅读(8925) 评论(1) 推荐(1) 编辑
摘要:《操作系统概念》是一本很好的书,主要介绍了操作系统的各个层面的概念,包含CPU调度,内存处理,文件系统等,目前已经出到第10版,是一本非常经典的书籍,从第1版至今被国内外众多高校选作教材,非常具有权威性。 作者简介 · · · · · · 亚伯拉罕·西尔伯沙茨(Abraham Silberschat 阅读全文
posted @ 2020-02-17 16:29 charlieroro 阅读(4401) 评论(3) 推荐(0) 编辑
摘要:/proc/sys/net/ipv4: ip_local_port_range:定义了TCP或UDP对目标发起连接所选择的本地端口范围(除ip_local_reserved_ports之外),其定义受内核版本影响。具体可以参见net.ipv4.ip_local_port_range 的值究竟影响了啥 阅读全文
posted @ 2020-02-11 11:53 charlieroro 阅读(3339) 评论(0) 推荐(0) 编辑
摘要:软中断和实时性 翻译自: "Software interrupts and realtime" Linux内核的软中断("softirq")机制有些奇怪,在早期的Linux和处理机制下比较晦涩,且仅有极少的内核开发人员会直接接触软中断。然而它是内核的大多数重要处理的核心。在某些场景下,软中断会以一种 阅读全文
posted @ 2020-01-08 23:34 charlieroro 阅读(1422) 评论(0) 推荐(0) 编辑
摘要:## linux线程调度策略 *这是一篇非常好的关于线程调度的资料,翻译自[shed](http://man7.org/linux/man-pages/man7/sched.7.html)* [TOC] 从Linux 2.6.23开始,默认的调度器为CFS,即"完全公平调度器"(Completely 阅读全文
posted @ 2020-01-02 15:13 charlieroro 阅读(16779) 评论(0) 推荐(4) 编辑
摘要:环境:centos7.4 内核版本3.10 最近看内核参数tcp_tw_recycle(该参数在内核 4.12 之后被移除),它用于快速回收处理TIME_WAIT状态的socket。搜索该参数相关的资料,发现同时启用该参数和tcp_timestamps后有可能在NAT环境下导致客户端始连接失败,抓包 阅读全文
posted @ 2019-09-26 23:39 charlieroro 阅读(6428) 评论(6) 推荐(1) 编辑
摘要:环境:centos7.4 内核版本3.10 内核参数net.ipv4.tcp_max_syn_backlog定义了处于SYN_RECV的TCP最大连接数,当处于SYN_RECV状态的TCP连接数超过tcp_max_syn_backlog后,会丢弃后续的SYN报文。 为了测试上述结论,首先将tcp_s 阅读全文
posted @ 2019-09-25 18:08 charlieroro 阅读(11725) 评论(0) 推荐(0) 编辑
摘要:注:使用源码安装的原因主要是使用yum安装glusterfs服务端时出现一些依赖库问题 准备3台glusterfs服务器(官方也建议至少3台,防止发生脑裂),并在各个服务器的/etc/hosts下面添加如下内容(如使用DNS服务器,则在DNS中添加域名解析) 参照官方文档Build and Inst 阅读全文
posted @ 2019-07-17 22:49 charlieroro 阅读(1906) 评论(0) 推荐(0) 编辑
摘要:验证环境:centos7 x86/64 内核版本4.19.9 在linux 2.2版本之前,当内核对进程进行权限验证的时候,可以将进程划分为两类:privileged(UID=0)和unprivilege(UID!=0)。其中privileged的进程拥有所有内核权限,而unprivileged则根 阅读全文
posted @ 2018-12-14 11:42 charlieroro 阅读(5202) 评论(0) 推荐(1) 编辑
摘要:iptables技术推荐参考这位仁兄的博客:http://www.zsythink.net/archives/category/%E8%BF%90%E7%BB%B4%E7%9B%B8%E5%85%B3/%E9%98%B2%E7%81%AB%E5%A2%99/page/2/ iptables指南参见: 阅读全文
posted @ 2018-07-26 22:11 charlieroro 阅读(1206) 评论(0) 推荐(0) 编辑
摘要:chroot命令用来在指定的根目录下运行指令。chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以/,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为/位置。 在经过 c 阅读全文
posted @ 2018-07-03 17:23 charlieroro 阅读(68392) 评论(0) 推荐(6) 编辑
摘要:业界的软件标准安装有三步:configure,make,make install,下面是它们的定义: ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后 阅读全文
posted @ 2018-03-01 11:55 charlieroro 阅读(351) 评论(0) 推荐(0) 编辑
摘要:在第七章《链接》中的静态链接有对符号进行重定位PC相对引用的处理,书上对应的还有"公式",但不是很好理解。现做实验对"公式"进行理解("公式"内容如有兴趣可以参考原文) 我们的目的是根据.text节起点和目标函数地址(如下面的0x8048420),重新计算引用偏移量 现创建2个文件 //main.c 阅读全文
posted @ 2018-02-28 11:16 charlieroro 阅读(1480) 评论(3) 推荐(0) 编辑
摘要:以下代码摘自网上,设置一个server和client,client代码如下: package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://localhost:808 阅读全文
posted @ 2018-02-28 11:00 charlieroro 阅读(1113) 评论(0) 推荐(0) 编辑