RHEL 기반의 배포판은 /etc/sysconfig/network-scripts/ 아래에 설정파일을 두고 네트워크를 관리한다. (NetworkManager 사용을 하지 않을 경우) 이 때 설정파일 옵션 중에 ONBOOT 옵션이 있는데 해당 옵션이 제대로 적용이 되지 않는 증상을 보이는 경우가 있어서 이에 대해서 간단히 소개한다.

시스템 환경

  • OS: RHEL 6 64bit
  • NIC: Broadcom Corporation NetXtreme II BCM57810 10G
  • Driver: bnx2x 1.78.80
  • 설정파일

    DEVICE=eth1
    BOOTPROTO=static
    ONBOOT=no
    
  • 기타: NetworkManager를 사용하지 않음

증상

eth1에 ONBOOT=no로 설정하였음에도 불구하고 재부팅을 하면 eth1 인터페이스가 up 상태로 올라오는 증상이 보임.

해결방법

설정파일 옵션 중에 HOTPLUG라는 옵션이 있다. 레드햇 매뉴얼에 따르면

HOTPLUG=answer
  where answer is one of the following:
    yes — This device should be activated when it is hot-plugged (this is the default option).
    no — This device should not be activated when it is hot-plugged.

The HOTPLUG=no option can be used to prevent a channel bonding interface from being activated when a bonding kernel module is loaded.

hot-plug로 인식될 때 장비를 활성화 할지 여부를 지정하는 옵션이다. 여러 환경에서 재현 테스트를 해보면 좋겠지만 여의치 않아서 몇 가지 테스트만 해 본 결과 PCIe NIC 카드 때문으로 보인다.

즉, 시스템 환경의 BCM57810 NIC카드는 서버의 메인보드에 달린 NIC이 아니라 별도의 10G NIC을 장착하였기 때문에 부팅 때 bnx2x 드라이버 모듈이 로딩 되면서 해당 NIC을 hot-plug 장치로 처리하는 것으로 보인다.

결론

아무튼, 설정파일에 해당 네트워크 인터페이스가 부팅 때 활성화 되지 않기를 원한다면 ONBOOT와 HOTPLUG 옵션 모두 설정해 주는 것이 좋다.

DEVICE=eth1
BOOTPROTO=static
HOTPLUG=no
ONBOOT=no