玩转OurBMC第九期:OpenBMC 之网络配置
栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。
网络作为BMC系统中的核心要素之一,其通畅性直接关系到服务器管理人员能否高效地进行远程管理和维护工作。在本期内容中,我们将全面介绍OpenBMC的网络配置。首先,我们将概述OpenBMC网络配置的不同方式,随后详细阐述具体的配置方法,旨在为读者提供清晰的指导,帮助他们更好地掌握并应用这些技巧,以提升服务器远程管理的效率。
OpenBMC 网络配置
BMC系统的网络配置涵盖了多个关键要素,包括:IP地址设置、网关与路由配置、静态DNS服务器配置、主机名定义以及NTP(Network Time Protocol,网络时间协议)设置等。
网络配置方式根据生效时效可以分为以下两种:
1. 暂时的网络配置:利用ifconfig等命令直接对系统的网络参数进行配置,配置后立即生效。当系统或网络服务被重启后,这些配置将失效,系统恢复到之前的网络配置状态。
2. 永久的网络配置:修改BMC系统内的网络配置文件,不会立即生效,需要重启网络服务或系统后才生效,并且会永久生效。
在BMC网络配置过程中,永久生效的网络配置方法主要涉及三个重要的模块:phosphor-ipmi-host,phosphor-network-manage以及systemd-networkd。下面将分别对这三个模块进行介绍。
-
phosphor-ipmi-host
phosphor-ipmi-host是BMC固件中的软件包。在BMC中,phosphor-ipmi-host.service在BMC上电后会自动启动,如图 1 所示:
图 1 phosphor-ipmi-host.service
当BMC系统运行后,phosphor-ipmi-host在系统内启动ipmid守护进程,负责响应网络配置相关的IPMI命令。例如:通过transporthandler.cpp 中的getlan() 和setlan()获取和配置网络信息。
LPC(Low Pin Count)是一种用于连接外围设备的接口标准,主要用于服务器BMC与服务器之间进行通信。使用LPC接口,管理人员可在BIOS/OS中通过带内IPMI的方式配置BMC的网络。
通过带外IPMI方式配置BMC网络还涉及phosphor-ipmi-net\@.service,该服务依赖于phosphor-ipmi-host.service。在BMC系统中,phosphor-ipmi-net\@.services启动netipmid守护进程后,通过IPMITOOL lanplus接口发送的IPMI命令,在BMC端交由netipmid和ipmid处理。需要注意的是每个以太网网络设备都对应各自的服务和套接字,例如,eth0对应的服务名称为phosphor-ipmi-net\@eth0.service,对应的套接字为phosphor-ipmi-net\@eth0.socket。
-
phosphor-network-manager
phosphor-network-manager是处理BMC网络管理操作的守护进程,当进程启动时,其在系统上创建实现物理链路/虚拟接口的对象。在BMC系统中,该进程由xyz.openbmc_project.Network.service启动,后者在BMC上电后会自动启动,如图 2 所示:
图 2 xyz.openbmc_project.Network.service
在使用IPMI命令或在BMC WEB界面上对BMC网络进行配置后,phosphor-network-manager通过ethernet_interface.cpp中的writeConfigurationFile()将对应的配置参数写入网络配置文件,最后自动重启systemd-networkd.service重置网络。因此,这两种方式对BMC的网络进行配置后,配置会立即生效,而且在BMC网络重启或者系统重启后仍然生效。
-
systemd-networkd
systemd-networkd.service对应的守护进程名为systemd-networkd,守护进程的绝对路径为/lib/systemd/systemd-networkd。配置静态IP,发送DHCP请求等功能均由该进程完成。在BMC中,systemd-networkd.service在BMC上电后会自动启动,如图 3 所示:
图 3 systemd-networkd.service
在BMC系统中,网络设备的配置文件须以 .network 为后缀名,否则将被忽略。以BMC的带外管理网口eth0为例,其配置文件路径为:/etc/systemd/network/00-bmc-eth0.network,具体内容如图 4 所示:
图 4 00-bmc-eth0.network
当人为直接修改网络设备的配置文件后,新的网络配置并不会立即自动生效。为了应用这些更改,需要通过重启systemd-networkd.service服务来重置网络配置,这样修改后的配置文件才会被加载并生效。
IPMI 命令配置 BMC 网络
在服务器中,利用IPMI命令配置BMC网络,主要有在BIOS下和在HOST OS下使用IPMI命令进行BMC网络配置两种方式。具体流程如下图 5 所示:
图 5 IPMI命令配置BMC网络
-
BIOS下配置BMC网络
该方法需要LPC可用且BIOS固件支持带内IPMI配置网络。
在无法使用BMC串口且无法获取BMC固件中的默认IP时,如果BMC卡在位且已上电完成,可通过服务器的BIOS setup界面查看并配置BMC网络。该方法原理是BIOS与BMC通过IPMI进行通信,需要服务器外接显示器及键鼠进行操作。
以搭载飞腾腾云S5000C的服务器为例,上电后按F2后,选择 “Enter Setup”,再依次选择 “Advanced Config”,“BMC information”,“BMC Network” 即可配置BMC 网络(eth1普通管理网口)。如图 6 所示:
图 6 BIOS下配置BMC网络
-
HOST OS下配置BMC网络
该方法需要LPC可用且HOST OS安装好IPMITOOL。
在BIOS下配置BMC网络的方式不需要服务器进入OS,如果可进入服务器OS,则可以在服务器OS下使用IPMITOOL,通过带内的方式配置BMC网络,省去启动服务器进入BIOS SETUP界面寻找网络配置界面的步骤。
常见的带内IPMI配置网络命令如下:
-
显示BMC的IP地址信息(可使用其它通道号查看设备可使用通道的信息,此处配置通道1,以下命令中的1都是代表配置通道1):
# ipmitool lan print 1
-
设置BMC的IP地址:
# ipmitool lan set 1 ipaddr 192.168.0.198
-
设置BMC的子网掩码:
# ipmitool lan set 1 netmask 255.255.255.0
-
设置 IPMI的网关:
# ipmitool lan set 1 defgw ipaddr 192.168.0.254
按照上述步骤依次执行,最终结果如图 7 所示:
图 7 ipmitool lan print 1
如BMC网络已连通且已知bmc_ip,则可通过带外方式配置网络,在上述命令后加上 “-I lanplus -H bmc_ip -U username -P password -C 17” 即可。带外配置BMC网络的方式不局限于在服务器中使用,其它连通BMC网络且能发送IPMI命令的设备均可使用。
D-BUS 配置 BMC 网络
-
BMCWEB配置网络
BMCWEB配置网络依赖于phosphor-network-manager和systemd-networkd两个守护进程,本质上使用了D-BUS来配置网络。关于D-BUS机制,玩转OurBMC第七期有更详细的介绍。
在BMC网络连通的情况下,管理人员可使用BMCWEB对网络进行配置。在浏览器输入:https://bmc_ip/#/settings/network,添加静态IPv4地址,如图 8 所示:
图 8 BMCWEB添加IPv4地址
在图 8 中点击 “添加” 后,BMC后端会执行如下命令:
busctl call xyz.openbmc_project.Network /xyz/openbmc_project/network/eth0 xyz.openbmc_project.Network.IP.Create IP ssys "xyz.openbmc_project.Network.IP.Protocol.IPv4" "192.168.20.100" 24 "192.168.20.1"
Ifconfig 配置 BMC 网络
-
适用场景
该方法适用于临时配置网络,在BMC重启网络服务或复位后,通过ifconfig配置的网络失效。适用于能够使用BMC的串口的场景。
-
常见用法
-
ifconfig 查看active的网卡信息
-
ifconfig -a 查看所有网卡信息
-
ifconfig eth_name 查看指定网卡的信息
-
ifconfig eth_name [up|down] 启用或禁用某个网卡
-
ifconfig eth_name ip_addr 配置静态IP
OpenBMC的网络配置对实现高效的服务器远程管理至关重要。通过以上内容,我们可以了解网络配置的基本方式和详细方法,希望可以帮助服务器管理人员建立稳定、可靠的BMC网络,为服务器的远程管理提供有力保障。
欢迎大家关注OurBMC社区,了解更多BMC技术干货。
OurBMC社区官方网站:
https://www.ourbmc.cn/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一文详解 JuiceFS 读性能:预读、预取、缓存、FUSE 和对象存储
在高性能计算场景中,往往采用全闪存架构和内核态并行文件系统,以满足性能要求。随着数据规模的增加和分布式系统集群规模的增加,全闪存的高成本和内核客户端的运维复杂性成为主要挑战。 JuiceFS,是一款全用户态的云原生分布式文件系统,通过分布式缓存大幅提升 I/O 吞吐量,并使用成本较低的对象存储来完成数据存储,适用于大规模 AI 业务。 JuiceFS 数据读取流程从客户端的读请求开始,然后再经过 FUSE 发送给 JuiceFS 客户端,通过预读缓冲层,接着进入缓存层,最终访问对象存储。为了提高读取效率,JuiceFS 在其架构设计中采用了包括数据预读、预取和缓存在内的多种策略。 本文将详细解析这些策略的工作原理,并分享我们在特定场景下的测试结果,以便读者深入理解 JuiceFS 的性能优势及一些相关的限制,从而更有效地应用于各种使用场景。 鉴于文章内容的深度和技术性,需要读者有一定操作系统知识,建议收藏以便在需要时进行仔细阅读。 01 JuiceFS 架构简介 JuiceFS 社区版架构分为客户端、数据存储和元数据三部分。 数据访问支持多种接口,包括 POSIX 、HDFS API、...
- 下一篇
【GaussDB关键技术原理|高可用】DCF&双集群容灾
GaussDB关键技术原理:高性能篇,从GaussDB数据库性能优化系统概述、查询处理综述、高性能关键技术等方面为大家进行了解读,并对高斯数据库性能优化做了总结。本篇将分享GaussDB高可用方面的相关知识,详细介绍GaussDB的DCF与双集群容灾技术。 1DCF DCF是Distributed Consensus Framework的简称,它是自研分布式一致性共识框架,基于Paxos协议开发,实现多数派节点自选主自仲裁、日志复制、一致性控制等高可用功能。 1.1 DCF(Distributed Consensus Framework)分布式一致性共识框架 DCF部署于gaussdb进程,以动态库形式提供给DN调用,实现DN节点间自选主自仲裁、XLOG日志复制、回放控制等。DCF主要设计特点如下: 独立API数据复制与内核逻辑隔离; 基于Paxos一致性协议实现日志多副本复制,实现跨AZ极致高可用; 支持多种节点角色:leader、follower、candidate、passive、logger; 支持多日志流通道,支持DN粒度和分区粒度日志分组复制能力; DCF内部实现通过...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G