Archive

‘网络技术’ 分类存档

“在100Gbps网络中TCP单流能跑到多少?”引起的讨论

这两天看到一篇华为的《智能无损网络技术白皮书》,里面有这么一句,如下:

由于不知道得出这些数据是在什么场景下,所以先不管这些数据是否精准。主要比较好奇TCP单流为什么上不去?瓶颈在哪里?是否可以通过优化来提升性能?根据这些问题进行了一系列的学习和讨论,这篇文章主要记录现阶段的一些结论汇总,并梳理了之前常用技术的前世今生,打通了整个脉络。在此也感谢服务器大佬的指点。本文只讨论Linux服务器的性能,不包含网络产生的瓶颈,内容随时更正并补充。

完整阅读

Soft-RoCE初体验

之前建了两台VM,测试了下Soft-RoCE,但当时忘记抓包了,想打开再发些流量,发现详细步骤已经忘记了。。。所以这次还是把步骤记录下来,后面不断完善,防止下次忘记。

Topology

注:为了避免麻烦,我使用的是比较新的ubuntu 22.04.2,这里面自带iproute2和perftest,以及相应的Soft-RoCE的包;

                     192.168.123.130
┌────────────┐             ┌────────────┐
│ ubuntu1    ├─────────────┤ ubuntu2    │
│ rdma1      │             │ rdma2      │
└────────────┘             └────────────┘
    192.168.123.129

部署Soft-RoCE

完整阅读

SRv6 Fabric by Sonic Switch

最近看到老东家发布了一篇很有意思的文章:Building an SRv6 uSID Data Center Fabric with SONiC,使用Sonic 构建基于SRv6 Fabric的DC架构。SRv6一般常用于骨干网和DCI,并且需要依托于BGP -> IGP迭代。其实之前在考虑城域网架构时,就思考过是否可以利用SRv6的高级特性,根据业务需求分割两个平面进行独立承载,但设备厂商提供的解决方案都是依托于IGP,而非Only BGP环境。最近阿里云在一些场合发布他们新的Peering架构ePF时提到过SRv6 only BGP,再结合这篇文章,没想到提前在Sonic Switch上先实现了,真的让人惊讶与开源社区的迭代速度。

这篇文章主要尝试下Sonic Switch,记录遇到的问题及解决方法。并测试SRv6实现到了什么程度,是否可以直接替代现有BGP Only的DC架构。PS:全部实验均是通过PNET搭建并验证,Sonic版本是从上面 那篇文章中下载的,基于202305版本,相关配置命令可以看那篇文章提到的github,以及FRR和Sonic的官方文档,为了方便,我列到了下面:

拓扑环境

      Ethernet0┌─────────┐Ethernet1
     ┌─────────┤   L2    ├──────────┐
     │         └─────────┘          │
     │Ethernet2                     │Ethernet2
┌────┴────┐                    ┌────┴────┐
│ POD1-L1 │                    │ POD2-L1 │
└────┬────┘                    └────┬────┘
     │Ethernet1                     │Ethernet1
     │                              │
     │Ethernet1                     │Ethernet1
┌────┴────┐                    ┌────┴────┐
│ POD1-L0 │                    │ POD2-L0 │
└────┬────┘                    └────┬────┘
     │Ethernet2                     │Ethernet2
     │                              │
     │eth2                          │eth0
 ┌───┴───┐                       ┌──┴────┐
 │  S1   │                       │  S2   │
 │ Server│                       │ Server│
 └───────┘                       └───────┘

注意:

完整阅读

EVPN ELAN over SRTE

在此篇文章里,简单总结下通过SRTE调度EVPN ELAN的流量,然后通过show信息,来查看引流及相关内容,并熟悉EVPN,EVPN基础部分,可以参考之前的文章,里面包含Route Type的信息:EVPN Summary

另外对于ELAN的引流,有很多种选择,常见的是通过对RT1打Color,调用单播流量;对RT3打Color,调用多播流量;对于RT1我们可以看成L3VPN中的“VRF”,也就是基于“VRF”颗粒度进行引流,这么理解可能更好理解

物理拓扑

完整阅读

Telemetry Receiver by UDP+KV-GPB

In the article, only show as follow (because easy to show how to work):

Protocol: UDP; Port: 5234

Encoding: KV-GPB

For more detailed information, you can reference my colleague’s GitHub, which includes more examples, e.g GRPC.

AlexFengCisco / Telemetry_Receiver

GRPC Update Info:

If use GRPC not TCP/UDP, that will have standard function, you will not need to write “DECODE_FN_MAP…”, function will auto generate, direct to use. Simple list steps:

  1. Get GRPC protobuf (e.g “mdt_grpc_dialout”) from cisco / bigmuddy-network-telemetry-proto
  2. Install/use compile tools, suggest install python virtual env, you can reference 在MacOS中部署Python虚拟开发环境
(telemetry-protocol) [root@telemetry telemetry-protocol]# python -V
Python 3.6.8
(telemetry-protocol) [root@telemetry telemetry-protocol]# easy_install pip
(telemetry-protocol) [root@telemetry telemetry-protocol]# pip install grpcio
(telemetry-protocol) [root@telemetry telemetry-protocol]# pip install protobuf
(telemetry-protocol) [root@telemetry telemetry-protocol]# pip install grpcio_tools
(telemetry-protocol) [root@telemetry telemetry-protocol]# python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. cisco_grpc_dialout.proto
(telemetry-protocol) [root@telemetry telemetry-protocol]# ls -l|grep cisco
-rw-r--r--.  1 root    root       2695 Aug 10 16:16 cisco_grpc_dialout_pb2_grpc.py   #generated
-rw-r--r--.  1 root    root       3805 Aug 10 16:16 cisco_grpc_dialout_pb2.py   #generated
-rw-r--r--.  1 root    root        485 Aug 10 16:15 cisco_grpc_dialout.proto   #proto file  
Follow all file if you need grpc protocol:
[root@telemetry grpc-dailout]# ls -l
total 36
-rw-r--r--. 1 root root  2695 Aug 10 16:16 cisco_grpc_dialout_pb2_grpc.py #Contains the server Stub class and the client Stub class, as well as the service RPC interface to be implemented.
-rw-r--r--. 1 root root  3805 Aug 10 16:16 cisco_grpc_dialout_pb2.py #message serialization classes
-rw-r--r--. 1 root root   484 Aug 10 15:36 mdt_grpc_dialout.proto 
-rw-r--r--. 1 root root  3722 Aug 10 16:11 service_grpc_dialout_no_tls.py #service python
-rw-r--r--. 1 root root 19220 Aug 10 15:58 telemetry_pb2.py  #decode gpb-kv messages, generate as below
grpc-dailout.zip

Install Protobuf of python version

完整阅读

blonde teen swallows load.xxx videos