TGTGInsighttelegram intelligenceLIVE / telegram public index
Back to channels
Welcome to the Black Parade avatar

TGINSIGHT CHAT

Welcome to the Black Parade

@TheB1ackParade

Music

Death has many faces, I look forward to seeing this one.

Subscribers787Current channel subscribers
Tracked posts907Indexed post count
Recent reach1,223Sum of recent post views
Recent posts

Recent posts

Page 68 of 76 · 907 posts

Posted Jun 9

https://github.com/jschwinger233/xdp-tutorial/tree/zc/bcc 我花了几天断断续续把 xdp-tutorial 里代码用 bcc 实现了一遍,除了 AF_XDP 和 fib_lookup 两道题,前者感觉繁琐难用不如 redirect 到设备,后者倒是可以用来连接两个二层网络,但我觉得干嘛不直接用 bpf map。 xdp-tutorial 这个项目是开源社区“燃烧自己照亮智障”的又一力作,是真正的共产主义,治病救人,天下为公,人民万岁。唯一的问题是通过填空的方式来教学失去了大量细节,比如 if (__builtin_memcmp() == 0) __builtin_memcpy() 在使用全局 static 变量时是编译不过的,这些很细的点只有自己亲自摸过一遍才能知道,所以我用 bcc 自己从头撸了一遍,少了 libbpf 的细节,但是 xdp 的核心还能保留,感觉是个不错的入门方式,推荐大家也试试看。

118 views

Posted Jun 8

Scapy 太好用了,不管是 raw bytes 解包还是 pcap dump,都是符合人类常识的 APIs。 搜 Python libpcap 搜出来 wrapper 也极其难用,殊不知最好用的 wrapper 在 Scapy。 这也是唯二我每月自动打钱的项目。 反观一下 libpcap,吐了。

109 views

Posted Jun 8

这样和波波在之前讨论的 Calico 黑洞问题就实操搞定了:用 XDP 在每台宿主机的 ingress 设备上反弹 ICMP,,用 BPF HASH 通过用户态 daemon 传递数据告知哪些 IP 是管辖的 CIDR 里但是进入了黑洞路由。不影响 BGP 也不改 iptables,非常完美。

107 views

Posted Jun 8

bpf-helpers(7) 里的 bpf_csum_diff 好像是有 bug 的?它的算法一言以蔽之就是 sum' = ~(~sum + ~from + to), 然而在原始 sum 是通过进位计算的情况下这样计算是不正确的。不是特别确定,毕竟是内核的函数,总不能让我发现内核的 bug 吧,不合理。再多做一点测试。

105 views

Posted Jun 8

新版动物书都是白皮了 感觉没有以前好看 vi这本居然已经出到第八版 2021年出版的

99 views

Posted Jun 8

高达一千页的 Fluent Python 第二版;第一次见到 SICP 实体

97 views

Posted Jun 8

bpf 的内存边界校验很严格,比如这段代码里 35L 的三个条件删去一个都会编译报错 perm deny,尽管上面的两个 if 已经保证了这样的边界信息。报错又看不懂,日常被 bpf verifier 调教做人++

94 views

Posted Jun 7

bpf-helpers(7) 里的 bpf_csum_diff 好像是有 bug 的?它的算法一言以蔽之就是 sum' = ~(~sum + ~from + to), 然而在原始 sum 是通过进位计算的情况下这样计算是不正确的。不是特别确定,毕竟是内核的函数,总不能让我发现内核的 bug 吧,不合理。再多做一点测试。

105 views

Posted Jun 6

我可真是一个大聪明,把 ssh 出口路由导向 vlan,行为艺术堪比用 iptables 把 22 端口全部 drop

104 views

Posted Jun 6

veth 太迷惑了,默认的 veth 都是打开 vlan offload 的,以至于 xdp on veth 根本看不到 vlan tag,而 tcpdump 明明看得一清二楚,简直见鬼了! 好好的 veth 又不是真的网卡你搞这些干嘛啊! 看起来要用 tc 子系统的 bpf 屁事更少,但是 tc 有 tc 的问题,看看这两周能不能解决。

99 views

Posted Jun 6

解包器对 vlan 的显示让人迷惑。按照 802.1Q,vlan header 是插入在 ether header 中间的,但是不管是 wireshark 还是 scapy 都显示得像是 append 在 ether header 之后。 仔细看才会发现,原来本应该是 [+13, +16] 的字节是 vlan header, 被解包器重新结构化为 [+15, +18]。 这样写程序解包的时候也不必拘泥于原生的结构定义,直接用 `struct vlan_hdr {__be16 TCI; __be16 proto;};`就行。

93 views

Posted Jun 5

bcc 对 pinned map 的支持不是特别好, 虽然能用, 但是僵硬, 要硬拷贝一部分代码, 不然就要指向完整的 bpf 代码, 重新编译一遍. 不过考虑到给 bcc 提供了 map 的类型之后, map.items() 这类 Python API 返回的数据结构不用 ctypes.cast 就可以直接取结构体字段, 我觉得还是可以接受的: 用额外的一段代码免去了手动映射类型的繁琐.

93 views
12•••5•••10•••15•••20•••25•••30•••35•••40•••45•••50•••55•••60•••656667686970•••7576