zoukankan      html  css  js  c++  java
  • Dell PowerEdge 系列服务器的远程控制命令

    Dell PowerEdge 服务器远程控制参考手册

    本手册介绍 Dell PowerEdge 系列服务器的远程控制命令。

     

    远程控制功能

    本文所涉及的远程控制是指基于主板 Baseboard Management Controller (BMC) 或远程控制卡 Remote Access Controller (RAC)的操作办法,主要是指在主机加电、网络连通的前提下,远程开关机,切换启动媒介,查看主机硬件状态,远程查看控制台并安装操作系统。其中终端和 刷系统的功能需要安装企业版远程控制卡;开关机和查看硬件状态有 BMC 即可。

    Dell PowerEdge 系列服务器都配有 BMC,也就是说中文网所有服务器都支持通过 IPMI LAN 接口远程开关机和查看硬件状态;所有 R610 机器都标配 iDRAC6 Express 卡,大部分 R610 机器配有 iDRAC6 Enterprise 卡。仅 Enterprise 卡有独立网口,且支持远程终端和刷系统。Enterprise 卡依赖于 Express 卡。

    根据 Dell 参考资料,主机上若有 DRAC 卡,则 BMC 被屏蔽,DRAC 卡的 IPMI LAN 接口是默认关闭的,需要通过 DRAC 命令客户端 racadm 开启,或者直接用 racadm 代替通用 IPMI 命令客户端(如 ipmitool, freeipmi)实现其所有操作。

    Edit

    远程控制故障诊断

    部分 PowerEdge 服务器如 R410、R510、R710 标配不含 Express 卡,若采购配置为 Enterprise 卡,那么渠道商方面可能擅自调换配件,在原标配基础上加个 Enterprise 卡,但这样的配置下,开机时会提示是 BMC(Baseboard Management Controller)而非 Enterprise 卡,这是因为没有 Express 卡则 Enterprise 卡无法工作。此时必须向戴尔销售或服务热线反馈,补发相应机型的 Express 卡配件(价格已包含在 Enterprise 卡中)。Express 卡的安装参考相应机型的 Hardware Owner's Manual,或者由戴尔工程师代为安装。

    Express 卡只支持共享网口,而Enterprise 卡可以配为使用独立网口或者共享网口,有些 Enterprise 卡机器可能会发生配为独立网口但是无法连通的情况,此时可以到现场或者登陆主机系统恢复 DRAC 卡出厂设置,再启用独立网口。

    iDRAC 卡支持简单的防火墙功能,但只能限定一个网段的访问,如果该功能启用但限定网段设置有误,那么无法使用远程控制通道。除了到现场重启机器进行配置外,可以 登陆主机系统,使用相应版本的本地 racadm 命令解除限定,或者在特定网络环境下欺骗一个该限定网段的地址,从而获得访问控制。注意该限定功能只影响 ssh 、远程 racadm 和 web 访问等功能,而 IPMI lan 是不受影响的,IPMI 目前也都不支持解除限定或恢复出厂设置等 DRAC 扩展功能。

    Edit

    远程控制命令客户端

    远程控制命令行客户端有两种,一种是标准 IPMI 客户端,只支持远程开关机、切换启动媒介、查看主机硬件状态等有限的功能,另一种是戴尔 DRAC 客户端,支持更多功能。两种客户端都有本地(主机系统)和远程两种模式。

    iDRAC 也支持 Web 访问,可以用 https://idrac_ip 访问。只有图形界面才支持介质映射。图形界面需要用 Internet Explorer 或 Firefox 访问,如果需要访问虚拟控制台功能,那么 Internet Explorer 需要安装 ActiveX 空间, Firefox 需要 Java Web Start 支持。详见“端口影射部分”。

    Edit

    标准 IPMI 客户端 ipmitool 的安装

    # yum install OpenIPMI OpenIPMI-tools  # CentOS 5
    # yum intall ipmitool                  # CentOS 6
    

    注意,仅为标准发行版内核且使用 open 接口时才需要安装 OpenIPMI 包(便于加载内核模块);系统部编译的静态内核有 IPMI 支持,而系统部裁剪的系统预装了 Dell srvadmin 不识别静态内核,其 instsvcdrv 服务会在开机时删掉 /dev/ipmi0 ,造成 IPMI open 接口无法访问,创建该设备文件便可以恢复使用。

    # mknod /dev/ipmi0 c `awk '/ipmidev/{print $1}' /proc/devices` 0
    
    Edit

    戴尔 DRAC 客户端的安装

    戴尔 DRAC 客户端 DTK 由于厂商工具包演变,依赖关系很混乱,dns1:/export/PXE/dtk_3.0_519_Linux/tools/dell-toolkit.rpm 是一个比较干净的版本。

    # # also installs compat-libstdc++-33 on CentOS 6
    # yum --nogpgcheck localinstall dell-toolkit.rpm
    

    命令文件是 /opt/dell/toolkit/bin/racadm{,3,4,5,6},不同型号的板卡使用不同的版本的工具,而且 racadm6 似乎只支持 Enterprise 卡,没有本地客户端支持 Express 卡。

    此外,DRAC 客户端支持 ssh 访问,可以 ssh 登陆 DRAC 地址,然后在 SM-CLP 命令行下使用 racadm (注意 help 不显示该命令)。

    Edit

    命令参考

    注,
    racadm 子命令的支持与具体版本有关;
    racadmX 统一使用 racadm 表示,不再区分具体客户端,不区分本地和远程,远程命令加上 -r DRAC_IP -u root [-p PASSWORD];
    ipmitool 命令统一使用 open 接口表示,使用 lan 接口需加上 -I lan -H DRAC_IP -U root [-f PASSWORD_FILE] 等选项;
    IPMI lan 地址和密码参见各地管理机 /etc/sel.passwd 文件,注意该文件权限为 0600

    Edit

    帮助

    # man ipmitool
    # racadm help
    # racadm getconfig -h
    
    Edit

    主机信息

    # ipmitool delloem sysinfo
    # racadm getsvctag
    # racadm getsysinfo
    # syscfg --biosver
    
    Edit

    启用 DRAC 的 IPMI lan 功能

    # racadm config -g cfgIpmiLan -o cfgIpmiLanEnable 1
    
    Edit

    主机电源状态/关机开机/冷重启/热重启/关机/开机

    # ipmitool chassis power  status/cycle/reset/soft/off/on
    # racadm serveraction powerstatus/powercycle/hardreset/?/powerdown/powerup
    
    Edit

    重启 DRAC 卡

    # ipmitool mc reset cold/warm
    # racadm reset
    
    Edit

    恢复 DRAC 卡出厂设置

    # racadm racresetcfg
    
    Edit

    解除 IP 段限制

    # racadm config -g cfgRacTuning -o cfgRacTuneIpRangeEnable 0
    
    Edit

    设置 lan 接口参数

    root 用户编号是 2 ,默认密码是 calvin

    # ipmitool user list 1
    ID  Name         Callin  Link Auth    IPMI Msg   Channel Priv Limit
    2   root             true    true       true       ADMINISTRATOR
    
    >  racadm getconfig -u root
    # cfgUserAdminIndex=2
    cfgUserAdminUserName=root
    # cfgUserAdminPassword=******** (Write-Only)
    cfgUserAdminEnable=1
    cfgUserAdminPrivilege=0x000001ff
    cfgUserAdminIpmiLanPrivilege=4
    cfgUserAdminIpmiSerialPrivilege=4
    cfgUserAdminSolEnable=1
    
    # ipmitool user set password 2 xxx
    # ipmitool delloem lan set dedicated
    # ipmitool lan set 1 ipaddr 172.24.0.x
    # ipmitool lan set 1 netmask 255.255.255.0
    # ipmitool lan set 1 defgw ipaddr 172.24.0.230
    # ipmitool lan print
    
    # racadm config -u root -g cfgUserAdmin -o cfgUserAdminPassword xxx
    # racadm config -g cfgLanNetworking -o cfgNicEnable 1
    # racadm config -g cfgLanNetworking -o cfgNicIPv4Enable 1
    # racadm config -g cfgLanNetworking -o cfgNicSelection 2
    # racadm config -g cfgLanNetworking -o cfgNicIpAddress x.x.x.x
    # racadm config -g cfgLanNetworking -o cfgNicNetmask 255.255.255.0
    # racadm config -g cfgLanNetworking -o cfgNicGateway x.x.x.x
    
    Edit

    设置下一次启动的引导媒介(似乎无法生效?)

    # ipmitool chassis bootdev pxe
    # racadm config -g cfgServerInfo -o cfgServerFirstBootDevice PXE
    
    Edit

    设置引导顺序和重试

    # syscfg --bootseq  # 查看引导顺序
    # syscfg --bootseq=hdd.emb.0,nic.emb.1
    # syscfg --bootseqretry=enable
    
    Edit

    LCD 显示屏控制

    # ipmitool delloem lcd status
    # ipmitool delloem lcd set mode userdefined xxx
    
    Edit

    导出/比对 IPMI 配置

    # yum install freeipmi
    # bmc-config --checkout > bmc.conf
    # bmc-config --diff --file bmc.conf
    # ipmi-chassis-config --checkout > chassis.conf
    # ipmi-chassis-config --diff --file chassis.conf
    

    注,freeipmi 只支持 IPMI 规范,不支持厂商扩展特性,ipmitool 则有一些支持。

    Edit

    iDRAC 端口映射配置

    悲剧的是,IPMI 没有防火墙功能,iDRAC https 只支持限制单网段的访问,虽然还支持密码试探的频率限制。我们的硬件检测走的是 IPMI(管理机走的是 open 接口)。出于安全考虑,中文网的 iDRAC 除了管理机 mgr1 和 mrg2 放在了内网。无论从公司出口还是其他可信公网出口,都无法直接访问 iDRAC 网络,也就是说,无法使用其虚拟控制台功能,除非做端口映射。

    iDRAC 功能端口说明
    iDRAC web tcp/443 https://idrac_ip
    iDRAC virtual screen tcp/5900 在 iDRAC web 里点“虚拟控制台”时,Firefox 版会下载一个 jnlp 文件(包含会话信息,使用一次就会失效),java web start 根据该文件下载客户端,该客户端会连接 5900 端口打开虚拟控制台
    iDRAC ssh tcp/22 ssh idrac_ip 登陆后可以使用 racadm 命令
    IPMI udp/623 ipmitool -I lan -H idrac_ip
    Edit

    在 ssh 客户端上转发端口

    ssh 客户端如 SecureCRT, Putty 和 X-Shell 都支持本地端口转发,即登陆到中转机时本机上建立 SOCKS5 代理端口,访问本机的该端口时相当于在中转机上访问目标资源(如内网的 iDRAC )。一个 ssh 连接可以同时启用多个 SOCKS5 代理。本地端口转发的的配置因客户端而异,以 ssh(1) 为例,是

    ssh some_host -D 127.0.0.1:443 -D 127.0.0.1:5900
    

    需要注意的是,SOCKS5 代理应该侦听 127.0.0.x 以避免安全问题。这样可以支持同时访问多个内网 iDRAC

    ssh some_host -D 127.0.0.1:443 -D 127.0.0.1:5900 -D 127.0.0.2:443 -D 127.0.0.2:5900
    
    Edit

    在中转机上映射端口

    如果 iDRAC 使用了内网,可能映射这些端口 ipmi udp/623 和 idrac tcp/{22,443,5900},以 gw50 为例:

    # ip addr add 172.24.0.230 dev eth1          # 所有内网 iDRAC 的网关
    # ip addr add 0.0.0.0 dev eth3        # 公网映射入口
    # arping -I eth3 -c 3 -U 0.0.0.0      # 通知路由器
    ## net.ipv4.ip_forward=1                     # 启用网关功能
    
    # iptables -t nat -L -nv   # 查看现有规则
    # iptables -t filter -L -nv
    
    # iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p tcp --dport 443  -j DNAT --to 172.24.0.50   # 公网进来的 https 流量
    # iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p tcp --dport 5900 -j DNAT --to 172.24.0.50   # 公网进来的虚拟控制台流量
    # iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p udp --dport 623  -j DNAT --to 172.24.0.50   # 公网进来的 IPMI 流量(可选)
    # iptables -t nat -I OUTPUT -d 0.0.0.0 -p tcp -m multiport --dports 22,443,5900 -j DNAT --to 172.24.0.50 # 网关产生的流量(可选)
    # iptables -t nat -I OUTPUT -d 0.0.0.0 -p udp --dport 623 -j DNAT --to 172.24.0.50                # 网关产生的流量(可选)
    # iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p icmp --icmp-type 3 -j DNAT --to 172.24.0.50 # Path MTU
    # iptables -t nat -I POSTROUTING -o eth3 -s 172.24.0.0/24 -j SNAT --to 0.0.0.0                    # 内网出去的流量
    # iptables -t filter -I FORWARD -d 172.24.0.0/24 -j ACCEPT    # 转发流量过滤,可以加上具体的公网源 IP 限定
    

    注,上述 0.0.0.0 同一时间只能映射到一个内网地址。从网关向公网入口IP发起请求需特别注意,确认 nat/OUTPUT 已设射规则,不然实际访问的就是网关主机而非iDRAC系统。

    Edit

    iDRAC web 的问题

    注意:iDRAC 使用缺省证书可能导致证书冲突 sec_error_reused_issuer_and_serial ,此时需要删除所有 Dell iDRAC 相关的证书,包含 iDRAC 服务器证书和证书机构中的 Dell inc. iDRAC 根证书(iDrac 使用 self-signed 证书,故归入此类)

    另外,较低版本的 iDRAC 会遇到两个问题:1)使用 IE 浏览器关闭 iDRAC 界面而不注销,可能造成无法再次登录;2)Fireforx 浏览器打不开虚拟控制台,表现为无法保存 jnlp 文件。

        
    

    问题 1)暂无解决办法。

    问题 2)可以绕过。这个问题可能是由于产生的 jnlp 文件里面有个中文编码,造成 firefox 无法保存该启动文件。

    >>> decodeURIComponent("=idrac-FWKL33X%2C+PowerEdge+R610%2C+%u7528%u6237%uFF1Aroot")
    
    URIError: malformed URI sequence
       decodeURIComponent("=idrac-FWKL33X%2C+PowerEdge+R610%2C+%u7528%u6237%uFF1Aroot" 
    

    实际上是 "title=idrac-FWKL33X,+PowerEdge+R610,+用户:root"

    >>> decodeURIComponent("title=idrac-FWKL33X%2C+PowerEdge+R610%2C+User%3Aroot")
    
    "title=idrac-FWKL33X,+PowerEdge+R610,+User:root" 
    

    通过 firebug 记录原始请求,再用 openssl 获取完整的 jnlp 内容,将其中的 %u7528%u6237%uFF1A 改为 User%3A 即可,然后双击 jnlp 文件激活 java webstart 来下载并启动虚拟控制台。注意,该 jnlp 包含的 token 使用一次就失效,使用失效的 jnlp 会提示“登录失败,可能是网络太慢,请重试”,必须在 https 界面点“启动”产生新的 jnlp 内容。

    # openssl s_client -connect 0.0.0.0:443
    ...
    
    GET /viewer.jnlp(0.0.0.0@0@idrac-FWKL33X%2C+PowerEdge+R610%2C+%u7528%u6237%uFF1Aroot@1359354221250) HTTP/1.1
    Host: 0.0.0.0
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: https://0.0.0.0/sysSummaryData.html?cat=C00&tab=T00&id=P00
    Cookie: _appwebSessionId_=8f5ec0e255d7552abb915fde55cc25f5; batteriesIcon=status_normal; fansIcon=status_normal; intrusionIcon=status_normal; powerSuppliesIcon=status_normal; removableFlashMediaIcon=status_normal; temperaturesIcon=status_normal; voltagesIcon=status_normal
    Connection: keep-alive
    
    HTTP/1.1 200 OK
    Date: Mon, 28 Jan 2013 08:55:35 GMT
    Server: Mbedthis-Appweb/2.4.2
    Content-type: application/x-java-jnlp-file
    Content-length: 3242
    Connection: keep-alive
    Keep-Alive: timeout=60, max=2000
    Cache-control: max-age=604800
    Last-Modified: Mon Jan 28 08:55:35 2013
    
    <?xml version="1.0" encoding="UTF-8"?>
    ...
    
    Edit

    参考资料

    http://support.dell.com/support/edocs/software/smdrac3/idrac/
    http://support.dell.com/support/edocs/systems/
    http://stuff.mit.edu/afs/athena/dept/cron/documentation/dell-server-admin/en/DRAC_5/racugc1j.htm

    After updating Java version, my application stops working.
    http://java.com/en/download/help/clearcache_upgrade.xml

    Java Network Launch Protocol (JNLP) Support
    http://www.oracle.com/technetwork/java/javase/index-142562.html

    http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#TRAVERSINGOFTABLES

  • 相关阅读:
    面试再问ThreadLocal,别说你不会
    利用 Docker Compose 搭建 SpringBoot 运行环境(超详细步骤和分析)
    高并发场景下缓存处理的一些思路!
    利用Dockerfile部署SpringBoot项目
    [RH254] 1-运行级别
    [RH134] 12-系统启动
    [安全] HTTPS的理解
    [工具] Wireshark与相关的网络安全
    [Python自学] 爬虫(5)selenium
    [Python自学] 爬虫(4)xpath
  • 原文地址:https://www.cnblogs.com/ldh-linux/p/5183015.html
Copyright © 2011-2022 走看看