커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 도움말
검색 : 사이트 WHOIS 웹서버 종류

최적화 / 튜닝 / 성능개선 (6, 글 1, 자료 3)
디스크 쿼터(quota) (3, 글 1, 자료 3)
디스크 관리 / 파일시스템 / mount (34, 글 13, 자료 12)
백업(backup) / 시스템 복구 (14, 글 6, 자료 11)
서버운영 (8, 글 2, 자료 9)
프린터 관리 / 프린팅 (7)
패키지 관리 / 패치 / rpm (10, 글 5, 자료 1)
부팅, boot / LILO / GRUB (10, 글 5, 자료 9)
서버 모니터링 (10, 글 5, 자료 2)
로그인 / 로그아웃 (1)
로그(log) / syslog (5, 글 3, 자료 3)
메모리, 스왑(swap), 램디스크(ramdisk) (3, 글 2)
사용자 관리(계정 관리) (1, 자료 1)

  IPMI SOL(Serial Over LAN, console redirection) 셋팅 작성일 : 2014/12/23 18:36
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 8052
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : IPMI SOL(Serial Over LAN, console redirection) 셋팅
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2014.12.4(목)

    IPMI SOL(Serial Over LAN)을 이용하면 원격에서 서버 콘솔화면을 볼 수 있다. SOL을 이용하기 위해서는 3가지 셋팅이 필요하다.

    - IPMI IP셋팅  (IPMI IP 셋팅 방법은 'IPMI 셋팅과 이용'을 참고할 것)
    - BIOS에서 Serial 설정
    - 부트 로더 옵션 변경

    [ 원격에서 IPMI SOL을 통해 확인한 부팅 화면 ]



    1. BIOS 셋팅 변경

    Dell 서버 기준으로 설명한다. 다른 서버들도 Redirection할 COM포트를 지정하고, Baud Rate, 터미널 타입 등을 설정은 비슷한 방법으로 설정할 것이다.

    1) Dell R610과 R620서버 (R??0시리즈)

     
    Serial Communication     : On with Console Redirection via COM2
    External Port Address     : Serial Device1=COM1,Serial Device2=COM2
    External Serial Connector : Serial Device1
    Failsafe Baud Rate     : 115200
    Remote Terminal Type     : VT100/VT220
     




    2) Dell 1950서버

     
    Serial Communication      : On with Console Redirection via COM2
    External Serial Connector : COM1
    Failsafe Baud Rate        : 115200
    Remote Terminal Type      : VT100/VT220
     





    2. IPMI SOL 접속하기

    IPMI SOL 설정에서 Force Authentication이 false로 되어 있다면 true로 설정해준다.

     
    # ipmitool sol info 1
    Set in progress                 : set-complete
    Enabled                         : true
    Force Encryption                : true
    Force Authentication            : false
    ... 생략 ...

    # ipmitool sol set force-authentication true 1
    # ipmitool sol info 1
    Set in progress                 : set-complete
    Enabled                         : true
    Force Encryption                : true
    Force Authentication            : true
    ... 생략 ...
     


    - IPMI SOL이 설정된 10.10.20.118 서버를 A 서버라고 하고,
    - 이 A서버의 콘솔화면을 B서버에서 본다고 하면

    B서버에서 다음과 같이 IPMI명령을 실행한다.

     
    # ipmitool -I lanplus -H 10.10.20.118 -U root sol activate
    Password:
    [SOL Session operational.  Use ~? for help]
     


    SOL Session operational 메시지가 나오면 정상적으로 원격 접속이 된 것이다. 그러나 아무런 키도 먹지 않고, 화면 변화도 없을 것이다. 이제 A서버에서 리부팅을 해본다. 그러면 리부팅되는 콘솔화면을 B서버에서 그대로 볼 수 있고, 키입력도 가능하다. IPMI SOL 접속을 끊으려면 ~.를 입력하면 된다.

    만약 'Info: cannot activate SOL payload without encryption'같은 에러가 나온다면, -C 3 옵션을 추가한다. 이 옵션은 IPMI SOL 접속할 때 알고리즘을 변경한다. 알고리즘 변경 사항은 다음과 같다. (-vv옵션으로 알고리즘 확인 가능)

     
    authentication     알고리즘 : HMAC-SHA1 -> HMAC-SHA1 (변화없음)
    integrity(무결성)  알고리즘 : None -> HMAC-SHA1-96
    encryption(암호화) 알고리즘 : None -> AES-CBC-128
     


    [ IPMI SOL 접속용 초간단 스크립트 ipmisol.sh ]
     
    #!/bin/sh

    if [ "$1" = "" ]; then
       echo "$0 "
       exit
    fi
    ipmitool -I lanplus -H $1 -U root -P 비밀번호 sol activate
     



    3. 부트 로더 설정

    BIOS 설정으로는 OS 부트로더 화면까지만 원격에서 볼 수 있다. OS 부팅 화면과 /dev/console로 보내지는 각종 syslog메시지(syslog 설정에 따라 다름)까지 보려면, 부트 로더 설정이 필요하다.

    [ 원격에서 IPMI SOL을 통해 확인한 부팅 화면 ]


    1) Linux에서 (CentOS, GRUB 기준)

    /boot/grub/grub.conf 에 다음 설정을 추가한다. 그리고, kernel 라인 맨뒤에 console=ttyS1,115200n8 console=tty1을 추가한다. (예 : kernel /vmlinuz-...생략... console=ttyS1,115200n8 console=tty1)

     
    serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
    terminal --timeout=3 serial console
     


    serial설정에서 unit= 은 시리얼 포트 번호를 의미하며 0은 COM1, 1은 COM2을 의미한다. terminal설정에서 serial과 console을 동시에 표시되어 있는데, 2개 디바이스 모두에서 --timeout=에 지정한 시간동안(second 단위) 키 요청을 받는다. 키를 입력받는 동안에는 'Press any key to continue.' 메시지가 보이면서 입력을 대기한다. 키를 누르면 키를 누른 디바이스(serial 또는 console)에 부트 로더 메뉴가 나오게 되고, 다른 디바이스에는 아무 것도 나오지 않는다. 키를 누르지 않으면 terminal에 표시한 순서대로 앞에 있는 디바이스에 디스플레이된다. 위에서는 serial. IPMI SOL을 이용하는 것보다 console에서 직접 작업하는 경우가 많다면 console serial로 순서를 바꾸는게 유용할 것이다.

    Dell 서버의 경우 BIOS -> Serial Communication -> Redirection After Boot가 Enabled(기본이 Enabled임)로 되어 있다면, terminal설정에서 serial을 빼는것이 대기시간 없이 보다 빠르게 부팅할 수 있다. 개인적으로는 이렇게 사용중.

    terminal설정은 부트로더 메뉴를 어느 디바이스에 보여줄 것인지와 관련된 것이지, 커널 부팅 과정을 보여줄 디바이스와는 무관하다. 부팅과정은 kernel라인에 설정한 디바이스에 디스플레이된다.

    2) Linux Xen 커널에서 (Xen 3.x, CentOS, GRUB 기준)

     
    serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
    terminal --timeout=3 console

    title ...생략...
       kernel /xen.gz-...생략... com2=115200,8n1 console=com2,vga
       module /vmlinuz-...생략... console=xvc console=tty1 xencons=xvc
     


    console=xvc 대신 console=xvc0를 써도 무방.

    3) FreeBSD에서

    /boot/loader.conf 에 다음 설정을 추가한다. Serial COM2을 IPMI console용으로 사용하기 때문에 comconsole_port="0x2F8"으로 지정했다. 만약 COM1이라면 0x3F8로 지정한다. boot_multicons="YES" 설정은 로컬 콘솔과 시리얼 콘솔 모두에 화면을 디스플레이하도록 한다. loader.conf 옵션에 대해서는 /boot/defaults/loader.conf를 참고할 것.

     
    #
    boot_multicons="YES"
    console="comconsole vidconsole"
    comconsole_speed=115200
    comconsole_port="0x2F8"
     


    Dell 1950서버처럼 위 설정만으로는 안될 경우 COM1 disable하고, COM2는 enable되도록 다음 2줄도 추가한다. (※ FreeBSD 7.x버전은 hint.uart. 대신 hint
    .sio. 를 사용할 것. /boot/device.hints 에서 확인 가능)

     
    # COM1 disable, COM2 enable
    hint.uart.0.flags="0x00"
    hint.uart.1.flags="0x10"
     


    Dell R610에서 loader.conf 셋팅 후 /var/run/dmesg.boot

     
    uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
    uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
    uart1: console (115200,n,8,1)
     


    Dell 1950에서 loader.conf 셋팅 후 /var/run/dmesg.boot (hint.uart 설정으로 enable될 COM포트가 바뀌었다.)

     
    uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
    uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 flags 0x10 on acpi0
    uart1: console (115200,n,8,1)
     



    4. TTY설정

    IPMI SOL에서 login 프롬프트까지 보고 싶다면?

    1) Linux에서 (CentOS 5)

    /etc/inittab에 다음 설정을 추가한다. Xen 커널이라면 ttyS1 대신 xvc0(Xen 3.x) 또는 hvc0을 설정한다.

     
    sol:2345:respawn:/sbin/agetty -L 115200 ttyS1 vt100
     


    Serial console에서 root로 로긴하려면 로긴할 수 없을 것이다. /etc/securetty에 ttyS1를 추가해주면 된다. Xen 커널이라면 마찬가지로 ttyS1대신 해당 디바이스를 추가한다.

     
    Dec  5 18:15:41 cnx login: pam_securetty(login:auth): access denied: tty 'ttyS1' is not secure !
     


    2) Linux에서 (CentOS 6)

    /etc/init/ttyS1.conf를 만든다. agetty 옵션과 /etc/securetty 설정은 위 CentOS 5와 동일하다.

     
    # ttyS1 - getty
    #

    start on stopped rc runlevel [2345]
    stop on starting runlevel [S016]

    respawn
    exec /sbin/agetty -L 115200 ttyS1 vt100
     


    3) FreeBSD에서

    /etc/ttys에 기존의 ttyu1 설정(ttyu1 = COM2)을 주석처리하고 다음을 추가한다.

     
    ttyu1   "/usr/libexec/getty std.115200" vt100   on  secure
     



    5. 관련글

    * IPMI 셋팅과 이용 (글 좋은진호)
       http://coffeenix.net/board_view.php?bd_code=1765

    * IPMI over LAN(IPMI 네트웍 접속) 트러블슈팅 (글 좋은진호)
       http://coffeenix.net/board_view.php?bd_code=1766

    * Remote Serial Console HOWTO : 4.2. Configure the GRUB boot loader
      http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/configure-boot-loader-grub.html

    * GRUB Manual : 7 Using GRUB via a serial line
      https://www.gnu.org/software/grub/manual/legacy/Serial-terminal.html
      GRUB Manual : 13.2.14 terminal
      https://www.gnu.org/software/grub/manual/legacy/terminal.html

    * FreeBSD Handbook : 26.6. Setting Up the Serial Console
      https://www.freebsd.org/doc/handbook/serialconsole-setup.html
      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~