Archive

‘Linux’ 分类存档

How to confirm whether an attribute is standard Sonic Sai ?

问题是这样的,我们需要确认一个ECMP的attribute是否是标准的Sonic Sai。具体步骤如下:

root@Franks-MacBook-Pro Documents # git clone -b v1.11 https://github.com/opencomputeproject/SAI
root@Franks-MacBook-Pro Documents # cd SAI
root@Franks-MacBook-Pro SAI # cd inc 
root@Franks-MacBook-Pro inc # grep -rn 'SAI_SWITCH_ATTR_ECMP'
./saiswitch.h:185: * @brief Attribute data for #SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM
./saiswitch.h:697:    SAI_SWITCH_ATTR_ECMP_MEMBERS,
./saiswitch.h:1226:    SAI_SWITCH_ATTR_ECMP_HASH,
./saiswitch.h:1433:    SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM,
./saiswitch.h:1442:    SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED,
./saiswitch.h:1454:    SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET,
./saiswitch.h:1468:    SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH,
./saiswitch.h:1479:    SAI_SWITCH_ATTR_ECMP_HASH_IPV4,
./saiswitch.h:1490:    SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4,
./saiswitch.h:1501:    SAI_SWITCH_ATTR_ECMP_HASH_IPV6,
./saiswitch.h:2771:     * @brief Number of ECMP Members configured. SAI_SWITCH_ATTR_ECMP_MEMBER_COUNT takes precedence over SAI_KEY_NUM_ECMP_GROUPS string. Default value is same as SAI_SWITCH_ATTR_ECMP_MEMBERS.
./saiswitch.h:2777:    SAI_SWITCH_ATTR_ECMP_MEMBER_COUNT,

Building Sonic -VS

之前一直想自行编译下Sonic,但总是没时间。这次正好赶上准备Sonic培训,所以就尝试了下,虽然官方文档介绍的很简单,但编译过一遍才发现,还是有些麻烦的。本篇总结会从干净的Ubuntu系统入手,从头搭建编译环境,以及通过PNET加载编译好的Sonic-VS;下面是官方编译Guide:https://github.com/sonic-net/sonic-buildimage

文档内标注了不同版本的编译情况,这个可以点进去看编译状态,看时间应该是一直在更新以验证社区代码是Ok的:

完整阅读

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│
 └───────┘                       └───────┘

注意:

完整阅读

迁移到PNET以及相关问题解决

背景

EVE NG的订阅费又涨了,记得2021年还在犹豫要不要在黑五下单1年的pro版本(如果没记错,应该是600多),现在已经1000多了,我就很无语……1000多为啥不买思科的VIRL……,对于我们这种个人付费的用户来说,着实有些贵了。之前朋友一直安利PNET,这回正好尝试下。

区别

其实我到现在也没弄明白PNET和EVE NG的关系,对于使用感受来说,PNET ≈ EVE NG Pro + 一些新功能(比如支持不关闭仿真设备直接变更连线,类似VIRL2),但PNET又不具备一些EVE的高级功能,如集群部署。可是为什么EVE 可以允许PNET免费开放这么多pro的功能?暂时就没有追述原因了;

EVE NG Community的使用问题

  • 我的使用环境是隔离的Lab环境,无法连接外网,访问EVE NG Comunity的GUI,感觉会非常慢,开始我一直觉得是跳板机性能不行,但后来发现不是,就像有些进程一直在尝试联网但导致了超时,从而影响了体验;
  • 现在新增仿真设备时,图标总是启动状态,导致无法编辑,必须连续启动好几个,找没有启动的图标……这个真的很烦人,跟朋友讨论后,应该是一个EVE 的Bug……
  • EVE NG有很多好用的功能是不包含在Community中的,比如配置保存(有些仿真设备是不支持的)等,这些其实挺影响使用的;
完整阅读

排障:Linux不转发流量

Background

实验环境打算用trex打流,然后用下面环境测试cable,但物理server配置好路由后,发现只能收路由,不转发流量,我们确认已经开启了ipv4转发的指令,路由也是正常的,但就是不work,所以我在EVE NG的环境上搭了一个类似的环境,确认下是否是trex本身的问题;

# sysctl -a |grep net.ipv4.conf.all.forwarding
net.ipv4.conf.all.forwarding = 1

对于trex内容,请看我之前的相关文章:http://www.zhaocs.info/tag/trex

完整阅读
blonde teen swallows load.xxx videos