<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://gentoo-zh.org/extern.php?action=feed&amp;tid=870&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / Gentoo伯克利子系统之四:使用sockmap示例：bypass内核协议栈]]></title>
		<link>http://www.gentoo-zh.org/viewtopic.php?id=870</link>
		<description><![CDATA[Gentoo伯克利子系统之四:使用sockmap示例：bypass内核协议栈 最近发表的帖子。]]></description>
		<lastBuildDate>Sat, 13 Jul 2024 03:47:16 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Gentoo伯克利子系统之四:使用sockmap示例：bypass内核协议栈]]></title>
			<link>http://www.gentoo-zh.org/viewtopic.php?pid=990#p990</link>
			<description><![CDATA[<p>当我们使用127.0.0.1的localhost地址，在本地机器上进行发送和接受数据时，整个数据的发送还是要经过完整的内核协议栈。Cilimu的网络借用bfp的sockmap bypass提高整个网络的性能，参考《How to use eBPF for accelerating Cloud Native application》文章中的示例，在centos7.6平台上进行验证和测试。具体源码的github为：。</p><p>具体的原理解释性的内容就不从其他网页上搬迁过来了。主要有以下几点需要注意的问题，在这里记录以下：</p><p>1. 文章中使用的cgroup为cgroup v2版本的，在centos7上默认使用的是cgroup v1版本，可以通过修改内核的启动参数，添加对cgroup v2版本的支持，添加cgroup_no_v1=all 支持cgroup v2</p><p>2. 在添加cgroup v2支持后，使用mount命令看不到cgroup2的支持。使用下面的命令查看是否支持cgroup2，如果看到cgroup2 说明系统已经支持。</p><p><span class="postimg"><img src="https://www.batsom.net/usr/uploads/2024/05/1141627587.png" alt="FluxBB bbcode 测试" /></span></p><p>3. centos和ubuntu对cgroup v2的目录是不一样的，没有/sys/fs/cgroup/unified目录，需要自己创建，使用下面的命令创建cgroupv2的支持。</p><p>mkdir /root/cgroup2</p><p>mount -t cgroup2 nodev /root/cgroup2</p><p>4. 在attach的命令中，使用下面的cgroup2目录，bpftool cgroup attach &quot;/root/cgroup2/&quot; sock_ops pinned &quot;/sys/fs/bpf/bpf_sockop&quot;</p><p>测试结果：在一个窗口中开启：socat TCP4-LISTEN:1000,fork exec:cat作为服务器端，在另一个窗口中：nc localhost&#160; 1000。通过cat /sys/kernel/debug/tracing/trace_pipe文件可以看到端口号，通过在lo上面抓包也可以看到。</p><p><span class="postimg"><img src="https://www.batsom.net/usr/uploads/2024/05/1264818562.png" alt="FluxBB bbcode 测试" /></span></p><p>使用tcpmdump抓包</p><p>通过nc发送数据</p><p><span class="postimg"><img src="https://www.batsom.net/usr/uploads/2024/05/137316062.png" alt="FluxBB bbcode 测试" /></span></p><p><span class="postimg"><img src="https://www.batsom.net/usr/uploads/2024/05/313187464.png" alt="FluxBB bbcode 测试" /></span></p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Sat, 13 Jul 2024 03:47:16 +0000</pubDate>
			<guid>http://www.gentoo-zh.org/viewtopic.php?pid=990#p990</guid>
		</item>
	</channel>
</rss>
