IPMI带外管理教程
IPMI介绍
需求
有的时候,ssh无法连接到服务器,如
- 死机,需要重启
- 服务器的临时路由表配错,造成ssh无法访问服务器,需要重启
类似情况,为了能不亲自去机房就管理服务器,需要使用远程控制装置,也即带外管理,IPMI即是其中一种。
带外管理
- 经过服务器所在的工作网络 来连接服务器(如通过ssh),此通道名曰数据通道。由数据通道理服务器,称带内管理。当服务器或工作网络出现物理故障时,就无法带内管理。
- 使用独立的管理通道连接服务器,不论开机与否,也不论工作网络是否正常,均可进行连接与控制。由管理通道管理服务器,称带外管理。
IPMI的原理
IPMI 独立于 CPU BIOS 和 操作系统,故不论开机否,皆可监视控制服务器。ipmi 是一种规范的标准,其中最重要的物理部件就是 BMC (Baseboard Management Controller),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。
配置IPMI
有两种方法配置IPMI:进入BIOS或使用impitool软件。进入BIOS配置IMPI,详见IPMI远程管理功能使用介绍.docx。而impitool方法介绍如下,以下操作均在服务器上,用ssh连接之即可完成
安装ipmitool
sudo apt install ipmitool
ipmi的网络配置
显示ipmi的网络配置
sudo ipmitool lan print 1
返回
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5 PASSWORD
: User : MD2 MD5 PASSWORD
: Operator : MD2 MD5 PASSWORD
: Admin : MD2 MD5 PASSWORD
: OEM : MD2 MD5 PASSWORD
IP Address Source : Static Address
IP Address : 192.168.245.33
Subnet Mask : 255.255.255.0
MAC Address : ac:1f:6b:a7:0b:39
SNMP Community String : public
IP Header : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP : 192.168.245.97
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
802.1q VLAN ID : Disabled
802.1q VLAN Priority : 0
RMCP+ Cipher Suites : 1,2,3,6,7,8,11,12
Cipher Suite Priv Max : XaaaXXaaaXXaaXX
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
Bad Password Threshold : 0
Invalid password disable: no
Attempt Count Reset Int.: 0
User Lockout Interval : 0
IPMI的网络有两模式:
-
自动获取(dhcp),设置方法如下:
sudo ipmitool lan set 1 ipsrc dhcp
它会自动获取到ipmi的ip、掩码、网关
-
静态(static),设置方法如下
sudo ipmitool lan set 1 ipsrc static
需要自己配ipmi的ip、掩码、网关
-
设置ipmi的ip
sudo ipmitool lan set 1 ipaddr <ipmi的ip>
- 设置ipmi的掩码
sudo ipmitool lan set 1 netmask <ipmi的掩码>
- 设置ipmi的网关
sudo ipmitool lan set 1 defgw ipaddr <ipmi的网关>
配置imp账号
-
查看通道
sudo ipmitool channel info [<通道号>==0,1,2,3...,12, 无13, 14,15; 缺省=15]
一般 15号通道返回, 表示支持网页图形界面控制, 此通道的用户需要开
ipmi=on
权限, 才能用网页远程控制Channel 0xf info: Channel Medium Type : System Interface Channel Protocol Type : KCS Session Support : session-less Active Session Count : 0 Protocol Vendor ID : 7154
1号通道返回如下, 表示支持 ipmi 协议, 此通道的用户需要开
ipmi=on
权限, 才能用ipmi命令搞远程控制Channel 0x1 info: Channel Medium Type : 802.3 LAN Channel Protocol Type : IPMB-1.0 Session Support : multi-session Active Session Count : 0 Protocol Vendor ID : 7154 Volatile(active) Settings Alerting : enabled Per-message Auth : enabled User Level Auth : enabled Access Mode : always available Non-Volatile Settings Alerting : enabled Per-message Auth : enabled User Level Auth : enabled Access Mode : always available
-
查看用户
sudo ipmitool user list [<通道号>==0,1,2,3...,12, 无13, 14,15; 缺省=15]
ID Name Callin Link Auth IPMI Msg Channel Priv Limit 1 true false false Unknown (0x00) 2 ADMIN true false false Unknown (0x00) 3 true false false Unknown (0x00) 4 true false false Unknown (0x00) 5 true false false Unknown (0x00) 6 true false false Unknown (0x00) 7 true false false Unknown (0x00) 8 true false false Unknown (0x00) 9 true false false Unknown (0x00) 10 true false false Unknown (0x00)
一般服务器出厂自带的用户名
ADMIN
,其出厂权限如下:- 15号通道, 即缺省通道
sudo ipmitool user list # 缺省channel号 是 15
ID Name Callin Link Auth IPMI Msg Channel Priv Limit 2 ADMIN true false false Unknown (0x00) 【下面的命令用此id=2】【需callin=true,浏览器才能登录】
- 1号通道
sudo ipmitool user list 1 # 1 是channel 号, 一般不改
返回
ID Name Callin Link Auth IPMI Msg Channel Priv Limit 2 ADMIN false false true ADMINISTRATOR (0x00) 【IPMI=true才能使用ipmi的命令行登录】
-
若返回如上, 则不需要改用户权限
-
若权限不对, 则执行以下命令
sudo ipmitool channel setaccess 15 2 callin=on link=off ipmi=on privilege=0x0 # 缺省channel号 是 0 # 和 sudo ipmitool channel setaccess 1 2 callin=off link=off ipmi=on privilege=0x4 # 1 是 channel 号 # 2是用户号, 根据`sudo ipmitool user list [1]`返回的用户号来写 # Privilege-level=Administrator
Privilege levels
privilege
的取值-
0x0
- Unknown [初始化为这个, 可以不改] -
0x1
- Callbac -
0x2
- User -
0x3
- Operator -
0x4
- Administrator [如果要改, 一般就设成这个] -
0x5
- OEM Proprietary -
0xF
- No Access
得到上述所需权限
-
-
交互地修改密码: 对所有通道的第2号用户重设密码
sudo ipmitool user set password 2
然后输入两边密码
junipmi
或直接非交互地执行
sudo ipmitool user set password 2 <密码> && sudo sed -i '$d' /root/.zsh_history
删去最后1行 避免暴露密码
数据线路与管理线路
线路连接
ipmi的网口接线有两种方法:
- 独立线路:
- 管理线路:一根单独的网线,一段插在服务器上,另一端插在一个交换机上,然后通到外网。此线路仅供ipmi使用。
- 数据线路:另一单独的网线,一段插在服务器上,另一端插在另一交换机上,然后通到外网。此线路供ssh、http(s)等使用,ipmi不用。
- 共用线路:上述两线路合并成一个。优点是可以节约一个服务器的网络插口,以及交换机;缺点是,当数据线路坏了,就得去机房修,ipmi用不了。参考
ip设置
不论哪种接线,服务器有以下两个IP(通常是局域网IP):
/etc/network/interfaces
之eth0
(或enp97s0f0
等) 的address(即ip)- 上文设置的ipmi的ip
此二IP必须不同。若是同一个IP,企图用端口区分——ipmi用特定的端口,而ssh、http(s)等用其他特定端口,则从无法连接到ipmi,例如,用浏览器访问此IP,则会显示的是服务器的http(s)的页面,而非ipmi管理页面。
NAT
为了能在外网用浏览器连接ipmi管理服务器,需要在ipmi的网关上,设置NAT,使得<ipmi的网关的外网ip>:<ipmi的NAT端口>
转发到 >ipmi的ip>:443
。其中443是ipmi的https端口。
ipmi各种连接端口
以 Supermicro IPMI (firmware SMT_X9_218) 为例
端口 | 对应协议 | 协议版本 |
---|---|---|
22/tcp | ssh | Dropbear sshd 2012.55 (protocol 2.0) |
80/tcp | http | lighttpd |
443/tcp | https | lighttpd |
623/tcp | ipmi-rmcp | SuperMicro IPMI RMCP |
623/udp | IPMI | ? |
1900/udp | UPnP SSDP | ? |
5900/tcp | vnc, ikvm (远程桌面重定向) | VNC (protocol 3.8) |
5985/tcp | wsman | ? |
49152/tcp | upnp | ntel UPnP reference SDK 1.3.1 (Linux 2.6.17.WB_WPCM450.1.3; UPnP 1.0) |
详见:
从外部连接ipmi
有多种方法从其他机器连接ipmi来管理服务器:浏览器、命令行工具SMCIPMITool、专用GUI工具IPMIView,详见简介。一般用浏览器就好了。
浏览器
机房的局域网内,浏览器访问https://<ipmi的ip>
;机房外的网络,浏览器访问https://<ipmi的网关的外网ip>:<ipmi的NAT端口>
然后在如下界面中输入ipmi账号和密码
更多用法,详见IPMI远程管理功能使用介绍.docx。
桌面远程操控
ipmi 支持基于 iKVM 技术, 将服务器的桌面图像发送到远端, 进行桌面远程控制. 有两种方法来实现, 分别是 浏览器中的iKVM/HTML5
和 本地程序Java iKVM Viewer
. 此二方法等效.
浏览器中iKVM/HTML5
本法可直接在浏览器中进行远程桌面控制, 本地程序Java iKVM Viewer
比方便. 但老旧版本的服务器的ipmi不支持iKVM/HTML5
功能, 在下图中找不到iKVM/HTML5
按钮.
在浏览器中连上ipmi的控制页面 (如上文), 如下点击如下
于是浏览器弹出另一个标签页, 内容如下, 在此可进行服务器桌面的远程操控.
使用Java iKVM Viewer
本法依赖于本地的Java, 用以运行 jnlp
文件来加载 Java iKVM Viewer, 以进行远程桌面控制.
获得jnlp文件
在浏览器中连上ipmi的控制页面 (如上文), 然后如下点
或者点击如下
浏览器会下载一个文件 launch.jnlp
. 这个文件需要本地安装有Java才能运行.
端口修改
若你采用了 ssh的端口映射 来连接远程服务器, 则需要把 launch.jnlp
中的端口改成ssh映射到的本地端口.
例如, 若连接服务器采用命令为
ssh <用户名>@<跳板机> -L <ipmi-https-本地端口>:localhost:443 \
<ipmi-ipmi命令行工具-本地端口>:localhost:623 \
<ipmi-ikvm-本地端口>:localhost:5900
其中 443
是ipmi的https默认端口, 623
是ipmi的命令行工具默认端口, 5900
是ipmi的ikvm默认端口.
则需要把 launch.jnlp
文件第一行的 443
改为 <ipmi-https-本地端口>
,
<jnlp spec="1.0+" codebase="https://localhost:443/">
文件结尾的 5900
改为 <ipmi-ipmi命令行工具-本地端口>
, 5900
改为 <ipmi-ikvm-本地端口>
.
<application-desc main-class="tw.com.aten.ikvm.KVMMain">
<argument>localhost</argument>
<argument>+0eyiVR7u06ENfW</argument>
<argument>2875U+A==</argument>
<argument>null</argument>
<argument>63630</argument>
<argument>5900</argument>
<argument>623</argument>
<argument>0</argument>
<argument>0</argument>
</application-desc>
</jnlp>
启动远程连接
双击 launch.jnlp
文件, 然后会依次弹出窗口如下,
- 点
继续
- 等完成
验证
, 啥也别点
- 点
运行
- 然后弹出
Java iKVM Viewer
窗口, 在其中可以进行远程桌面控制.
报错Authentication failed
如果从一个服务器下载了 launch.jnlp
,重启服务器或过了一段时间服务器端的ikvm登陆令牌就会变化,导致之前下载的 launch.jnlp
文件结尾那段里写的令牌 +0eyiVR7u06ENfW
和 2875U+A==
失效,
<application-desc main-class="tw.com.aten.ikvm.KVMMain">
<argument>localhost</argument>
<argument>+0eyiVR7u06ENfW</argument>
<argument>2875U+A==</argument>
<argument>null</argument>
<argument>63630</argument>
<argument>5900</argument>
<argument>623</argument>
<argument>0</argument>
<argument>0</argument>
</application-desc>
</jnlp>
此时运行 launch.jnlp
会报错“Authentication failed”(如下图),无法连接远程桌面。
解决办法:重新从ipmi控制网页下载launch.jnlp
(其中的令牌更新了),然后运行launch.jnlp
,才能连上远程桌面。
终端
命令格式
ipmitool除了可以直接在服务器上配置ipmi(见上文),还可以从另一台电脑的终端 远程地控制服务器的ipmi。格式:
ipmitool -H <远程ipmi的ip> -p <远程ipmi的端口> -I lanplus -U <远程ipmi的用户名> [-P <远程ipmi的密码>] <ipmi的命令>
-
-p <远程ipmi的端口>
: 缺省为623
,即iipmi-rmcp协议的默认端口。当使用NAT,将服务器集群的ipmi的公网ip:ipmi的公网端口
NAT 成某服务器的ipmi的内网ip:ipmi的内网端口
,则此参数写为-H <服务器集群的ipmi的公网ip> -p <ipmi的公网端口>
-
-P <远程ipmi的密码>
: 此参数若不加,则为交互式输入ipmi的密码,推荐之;否则加此参数,要输入密码明文(不建议) -
<ipmi的命令>
: 相当于在服务器上执行了命令sudo ipmitool <ipmi的命令>
,例如<ipmi的命令>
=lan print 1
,以显示远程服务器上显示ipmi的网络配置
常用的<ipmi的命令>
chassis power status
:查看远程服务器电源状态chassis power reset
:重启远程服务器, 相当于按重启机箱上的按键, 掉电后立即上电chassis power reset
: 重启远程服务器, 从掉电到上电有1秒钟的间隔chassis power off
:关闭远程服务器电源chassis power on
:然后再开启远程服务器. 这样也相当于按重启机箱上的按键
服务器死机处置办法
以下操作均等效于按机箱上的电源键. 不推荐用power reset
, 而是先power off
再power on
, 因为直接 power reset
掉电后立即上电, 不知道是否关机成功, 而先 power off
再power on
则可根据返回判断是否关机成功.
用浏览器重启
首先考虑用浏览器连接ipmi:
- 点
Power Down
, 看见Power On
按钮从灰变亮, 则说明关电源成功. - 此时再点
Power On
, 看见Power On
按钮从亮变灰, 且点Refresh Console Preview
后显示开机界面, 则说明开机成功.
用命令重启
若用浏览器连ipmi重启服务器不成功, 则尝试用命令行重启服务器
- 关机
sudo ipmitool -H <远程ipmi的ip> -p <远程ipmi的端口> -I lanplus -U <远程ipmi的用户名> [-P <远程ipmi的密码>] chassis power off
返回如下则关机成功
Chassis Power Control: Down/Off
- 开机
sudo ipmitool -H <远程ipmi的ip> -p <远程ipmi的端口> -I lanplus -U <远程ipmi的用户名> [-P <远程ipmi的密码>] chassis power on
返回如下则开机成功
Chassis Power Control: Up/On
返回如下则是<远程ipmi的密码>输入错误
Error: Unable to establish IPMI v2 / RMCP+ session
- 浏览器上查看
然后在浏览器上ipmi页面, 点 Refresh Console Preview
后显示开机界面, 则说明开机成功.
远程控制开机界面
若上面虽然重启成功, 但ssh仍然连不上去, 则说明操作系统启动失败. 此时需要用桌面远程操控来进入recovery模式, 进行修复. 操作方法详见 linux开机界面.
看门狗安装
看门狗原理
BMC 上运行了一个计时器,称看门狗。操作性上运行了喂狗的守护进程,每隔几秒(如10秒)去重置 BMC 上的计时器,让它恢复起始计时(如300秒)。若因内内核死机(panic)、内存冻结等,没法及时喂狗,则计时器会持续倒计时。数到0秒时,“狗饿死咬人”,即 BMC 会执行预定操作,如让服务器重启、断电。注意,不是看门狗让系统死机,是若死机则看门狗让系统重启。
安装配置方法 手动执行
- 安装喂狗进程
sudo apt install ipmitool # 安装ipmi的命令行工具
sudo apt install watchdog # 安装喂狗进程
- 配置喂狗进程:
sudo vim /etc/watchdog.conf
, 确认有以下几行,若被注释则解注释,若value不同则改之,若无此行则加此行
watchdog-device = /dev/watchdog # 狗的驱动 在文件系统下显示为一个特殊文件 /dev/watchdog,喂狗即每几秒往当中写东西,若此文件不更新,则狗“饿死”(倒计时耗尽)“咬人”(执行action)
watchdog-timeout = 300 # 狗的倒计时秒数
interval = 10 # 喂狗的间隔秒数
realtime = yes #
priority = 1
- 设置喂狗进程开机自启
sudo vim /etc/modules
, 行尾添加
ipmi_watchdog
- 设置action:以下是失败的探索
设置计时到0后的操作默认为’reset’,即重启服务器,如需修改,则可尝试如下办法,来源,但此方法【我实验过无效】:
sudo vim /etc/default/openipmi
, 确认有以下几行,若被注释则解注释,若value不同则改之,若无此行则加此行
IPMI_Watchdog=yes
IPMI_WATCHDOG_OPTIONS="timeout=240 action=reset" # action的其他选项 'none', 'power_cycle', 'power_off'
-
重启服务器,以使上述配置生效。重启之后测试:
- 开机自启
lsmod | grep ipmi
返回
ipmi_devintf ipmi_si ipmi_watchdog # 必需要有这个 ipmi_msghandler
- 喂狗进程状态
service watchdog status
返回中必需有如下字样,表面喂狗进程持续运行
active (running)
- 查看看门狗状态:连续执行多次
sudo ipmitool mc watchdog get
返回
Watchdog Timer Use: SMS/OS (0x44) Watchdog Timer Is: Started/Running # 需要是Started/Running Watchdog Timer Actions: Hard Reset (0x01) # 需要是Hard Reset Pre-timeout interval: 0 seconds Timer Expiration Flags: 0x10 Initial Countdown: 300 sec Present Countdown: 292 sec # 多执行几次 这个数不小于 300 - 10 (喂狗间隔)
-
死机测试:当上述测试正常,且目前无要运行的用户任务,则可在服务器上,用下法人为制造死机(来源),看看300秒后能否自动重启。若可以,说明看门狗能正常工作。
sudo su echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger
安装与测试脚本
安装脚本
sudo apt install ipmitool -y
sudo apt install watchdog -y
sudo mv /etc/watchdog.conf /etc/watchdog.conf_backup
sudo cat <<- EOM | sudo tee /etc/watchdog.conf > /dev/null
# ping = 172.31.14.1
# ping = 172.26.1.255
# interface = eth0
# file = /var/log/messages
# change = 1407
# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
# max-load-1 = 24
# max-load-5 = 18
# max-load-15 = 12
# Note that this is the number of pages!
# To get the real size, check how large the pagesize is on your machine.
# min-memory = 1
# allocatable-memory = 1
# repair-binary = /usr/sbin/repair
# repair-timeout = 60
# test-binary =
# test-timeout = 60
# The retry-timeout and repair limit are used to handle errors in a more robust
# manner. Errors must persist for longer than retry-timeout to action a repair
# or reboot, and if repair-maximum attempts are made without the test passing a
# reboot is initiated anyway.
# retry-timeout = 60
# repair-maximum = 1
watchdog-device = /dev/watchdog
watchdog-timeout = 300
# Defaults compiled into the binary
# temperature-sensor =
# max-temperature = 90
# Defaults compiled into the binary
# admin = root
interval = 10
# logtick = 1
# log-dir = /var/log/watchdog
# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime = yes
priority = 1
# Check if rsyslogd is still running by enabling the following line
# pidfile = /var/run/rsyslogd.pid
EOM
sudo echo ipmi_watchdog | sudo tee -a /etc/modules > /dev/null
# 确认安装成功
echo '---------------------------------------------------'
sudo ipmitool mc watchdog get
echo '---------------------------------------------------'
cat /etc/watchdog.conf
echo '---------------------------------------------------'
cat /etc/modules
重启
sudo reboot
测试脚本
lsmod | grep ipmi_watchdog; echo;
service watchdog status; echo;
for i in {1..5}; do sudo ipmitool mc watchdog get; echo; if [ $i -ne 5 ]; then sleep 3; fi; done
死机测试
echo 1 | sudo tee /proc/sys/kernel/sysrq
echo c | sudo tee /proc/sysrq-trigger
取消看门狗
若要让之后每次开机, 看门狗都关着, 需要如下设置:
-
从
sudo vim /etc/modules
, 删去ipmi_watchdog
-
重启系统
sudo reboot
-
再次开机后, 看门狗还是开着的, 会持续倒计时, 一直数到 0, 然后自动重启系统. 自动重启前, 看门狗的状态为:
$ sudo ipmitool mc watchdog get Watchdog Timer Use: SMS/OS (0x44) Watchdog Timer Is: Started/Running # 看门狗是开着的 Watchdog Timer Actions: Hard Reset (0x01) # 到 0 重启系统 Pre-timeout interval: 0 seconds Timer Expiration Flags: 0x10 Initial Countdown: 600 sec Present Countdown: 230 sec # 持续减少, 到 0 重启系统
-
自动重启后, 看门狗变成了 stopped, 此后每次重启系统都是这样的:
$ sudo ipmitool mc watchdog get Watchdog Timer Use: SMS/OS (0x04) Watchdog Timer Is: Stopped # 变成stop了 Watchdog Timer Actions: Hard Reset (0x01) Pre-timeout interval: 0 seconds Timer Expiration Flags: 0x10 Initial Countdown: 600 sec Present Countdown: 0 sec
没有reset持续倒计时 - 抢救方法
若 ipmi_watchdog
模块之前一直在用,之后首次开机没有加载 ipmi_watchdog
模块(可能情况如:上文取消看门狗初次重启后,或 ipmi_watchdog
模块开机加载失败 ,等等原因),就会出现如下情况:
看见 sudo ipmitool mc watchdog get
返回
Watchdog Timer Use: SMS/OS (0x44)
Watchdog Timer Is: Started/Running
Watchdog Timer Actions: Hard Reset (0x01) # 只要不是none
Pre-timeout interval: 0 seconds
Timer Expiration Flags: 0x10
Initial Countdown: 300 sec
Present Countdown: 292 sec # 在不断减小,不reset
这表明电脑将很快执行重启、断点等action。故请立即执行
sudo ipmitool mc watchdog off
如此,倒计时关了,不再用担心被关机。
而后执行如下命令,以设置action=none。此设置立即生效,且只要开机不加载 ipmi_watchdog
模块,此设置在之后开机后依然有效,参考。若开机加载 ipmi_watchdog
模块,则实际执行的是 /etc/watchdog.conf
设置,而非如下设置。
sudo ipmitool raw 0x06 0x24 0x04 0x00 0x00 0x10 0xb8 0x0b
如此,会得到action=none, timeout=0xb8 0x0b
= 300 s
$ sudo ipmitool mc watchdog get
Watchdog Timer Use: SMS/OS (0x44)
Watchdog Timer Is: Started/Running
Watchdog Timer Actions: No action (0x00)
Pre-timeout interval: 0 seconds
Timer Expiration Flags: 0x00
Initial Countdown: 300 sec
Present Countdown: 288 sec
看门狗的开关
- 查看看门狗配置
sudo ipmitool mc watchdog get
- 关看门狗,不再倒计时
sudo ipmitool mc watchdog off
- 依照最新的看门狗行为设置 启动看门狗
sudo ipmitool mc watchdog reset
看门狗行为设置
sudo ipmitool raw 0x06 0x24 0x04 0x<XX> 0x00 0x10 0x<YY> 0x<ZZ>
# sudo ipmitool raw | 0x06 0x24 | 0x04 0x<XX> 0x00 0x10 0x<YY> 0x<ZZ>
# |所设是看门狗 | 设置参数
0x06 0x24
:所设置是看门狗
- 第一段 netfn:
0x06
= "App Application Requests” - 第二段 cmd:
0x24
= "Set Watchdog Timer”
0x04 0x<XX> 0x00 0x10 0x<YY> 0x<ZZ>
:看门狗的设置参数,详见。以下只讲解action和实践,来源 :
- action:
0x<XX>
- 倒计时时长:范围 0.1(0X0001) ~6553.5(0XFFFF) seconds
例如
0xc8 0x00
= 0x00c8
x 100ms = 20,000 ms =20 s
0x00 0x0c
= 0x0c00
x 100ms = 307 s
0xb8 0x0b
= 0x0bb8
x 100ms = 300 s
https不安全-SSL证书过期
服务器端添加自签名证书
创私钥 ipmi.pem
openssl genrsa -out ipmi.pem 2048
用私钥 ipmi.pem
制备证书 ipmi.cert
openssl req -new -key ipmi.pem -out ipmi.cert
交互输入如下
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:THU
Organizational Unit Name (eg, section) []:XXX-Lab
# 也可不填
Common Name (e.g. server FQDN or YOUR name) []:localhost
# 其他的项目可以乱填,但这个必须写【localhost】,才能用ssh -L端口映射ipmi到localhost后,能安全地连接ipmi
Email Address []:aaaa@xxx.yyyy.cn
# 邮箱随便填
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
# 可不填, 直接回车
An optional company name []:
# 可不填, 直接回车
用私钥 ipmi.pem
签证书 ipmi.cert
, 有效820天 (tls服务器证书有效期必需<=825天 出处)
openssl x509 -req -days 820 -in ipmi.cert -signkey ipmi.pem -out ipmi.cert
然后将 ipmi.cert
上传到 New SSL Certificate
, ipmi.pem
上传到 New Private Key
, 再点 Update
.
若显示提交成功, 则会重启ipmi设备 (不是操作系统重启), 一分钟后重新登录此页面, 则有了一个自签名的SSL证书.
浏览器端设置
把刚才的证书添加到本地的钥匙串
- mac:
# 若仅为当前用户添加, catalina系统还允许如此操作
security import ipmi.pem -k ~/Library/Keychains/login.keychain
# 若需为所有用户添加, 但catalina系统不允许如此操作了
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ipmi.pem
设置浏览器允许访问不安全的localhost
- chrome 浏览器 访问如下url
chrome://flags/#allow-insecure-localhost
此项改成enable, 即可访问 https://127.0.0.1:<端口>
- firefox: 无需设置即可访问
https://127.0.0.1:<端口>
- safari: 可直接访问
https://localhost:<端口>
; 若无法访问之, 可访问https://127.0.0.1:<端口>
; 欲修复https://localhost:<端口>
的访问, 需