SONiC架构DOCKER组件交互分析

本文深入分析了SONiC架构下多个关键组件的交互,包括BGP、DHCP_RELAY、LLDP、PMON、SNMP、SWSS、Syncd、TEAMD等。在BGP组件中,描述了报文处理流程,如何影响路由决策;DHCP_RELAY组件解析配置,处理DHCP报文;LLDP组件和SNMP组件涉及端口状态的同步和更新;PMON组件管理硬件状态;redis-server与client交互确保数据同步;SWSS组件初始化端口配置;Syncd组件在端口状态变化时的角色;TEAMD组件则处理LAG配置。
摘要由CSDN通过智能技术生成

BGP组件交互分析

在这里插入图片描述

  1. 内核中的bgp socket收到BGP更新报文,然后被上送到bgpd进程
  2. bgpd处理该报文,并通知zebra进程新增前缀和关联下一跳
  3. zebra确定该目的可达后,生成一个路由网络链接信息,并将该信息信息注入到内核中
  4. zebra进程通过fpm的接口将该该路由网络链接信息传递给fpmsyncd进程
  5. fpmsyncd将此状态推送到APPL_DB中
  6. orchagent订阅了(5)当中的message
  7. orchagent处理收到的信息,并调用sairedis APIs将新状态注入到ASIC_DB中
  8. syncd订阅orchagent生成的消息,并生成新的状态
  9. syncd调用SAI API将此状态注入到ASIC驱动的对应的状态
  10. 新的路由被写入硬件中,并进行转发
  11. bgpcfgd阅CONFIG_DB变化,通过vtysh下发配置到zebra/bgp等

DHCP_RELAY组件交互分析

在这里插入图片描述

  1. 设备起机后,dhcp_relay进程通过直接解析config_db.json里面相关的dhcp_relay的配置,然后Dhcp-relay docker里相关的配置文件/etc/supervisor/conf.d/docker-dhcp-relay.supervisord.conf
  2. /usr/bin/dhcp_relay.sh wait通过监听数据库里的接口状态,并动态获取接口的IP地址
  3. 当硬件收到一个dhcp报文(当报文是单播且单播地址非本地IP地址,则直接硬件转发,如果报文是广播或者且单播地址为本地IP,则上送到CPU),根据协议上送到CPU,CPU在根据对应的过滤规则,发送到内核空间对应的socker套接字,dhcp_relay进程从内核空间的dhcp的套件字获取到dhcp的数据包,并解析该数据包,是否转发或者丢弃
  4. dhcp_relay进程处理完数据包后,发到内核空间,由内核转发给硬件进行转发

host系统组件交互分析

在这里插入图片描述

/usr/bin/sensorspoll 用于起机拉起sensorspoll.py
/usr/bin/sensorspoll.py 周期性读取电源、风扇、子卡的mib信息,并写入STATE DB
/usr/bin/hostcfgd AAA配置下发
sshd ssh远程登入和scp功能
/usr/bin/sensorspoll.py 周期性读取电源、风扇、子卡的mib信息,并写入STATE DB
/usr/bin/hostcfgd AAA配置下发
sshd ssh远程登入和scp功能。
/usr/sbin/rsyslogd 日志记录
cli 用户命令行交互, 并把对应的CLI写入到CONFIG DB
/usr/sbin/ntpd ntp主进程,用于和ntp server时间同步
/usr/local/bin/fancontrol.py 锐捷风扇控制进程,由 device_i2c 启动

LLDP组件交互分析

在这里插入图片描述

  1. lldpmgrd订阅数据库中STATE_DB获取端口的实时状态,并同步给lldpd
  2. lldpd进程从内核空间的lldp的套件字获取到lldp的数据包,并解析此状态,lldp_syncd通过执行lldp cli命令获取到该状态
  3. lldp_syncd将该新状态发布到database中的APPL_DB
  4. SNMP使用订阅方式获取到该message的变动并进行处理

PMON组件交互分析

在这里插入图片描述
PMON doncker软件组件主要用于管理平台硬件,包括风扇,热传感器,SFP,收发器,pmon等,其交互流程主要如下:

  1. syseepromd进程从内核空间的syseepromd的套件字获取到数据包,并解析此状态,xcvrd/sysmonitor/pmon_syslog通过syseepromd提供的接口进行信息获取
  2. xcvrd/sysmonitor/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值