하드웨어 위치에 따라 네트워크 인터페이스에 임의의 이름을 할당하려면 어떻게 해야 합니까? (센트OS 7)

하드웨어 위치에 따라 네트워크 인터페이스에 임의의 이름을 할당하려면 어떻게 해야 합니까? (센트OS 7)

4개의 온보드 NIC가 있는 CentOS 7을 실행하는 동일한 어플라이언스가 여러 개 있습니다. RHEL6을 실행하는 이전 버전의 어플라이언스(예: ethX)와 비슷한 느낌을 유지하기 위해 RHEL6에서 사용하는 네트워크 명명 체계를 사용하고 싶습니다. 또한 각 어플라이언스에서 사용할 일반 시스템 디스크를 생성한 후 필요한 변경 횟수를 최소화하고 싶습니다.

CentOS 7의 명명 체계를 이해하면 명명 체계는 하드웨어 위치에 따라 일관되므로 하드웨어가 동일하면 어플라이언스의 각 인스턴스에 대해 동일한 네트워크 인터페이스 이름을 갖게 됩니다.

고객 요구로 인해 CentOS 7 및 RHEL6 버전에서 어플라이언스의 네트워크 인터페이스 이름을 동일하게 만들어야 합니다.

net.ifnames=0한 가지 접근 방식은 설명된 대로 커널 명령줄을 확장하는 것입니다 .여기그런 다음 내 자신의 ifcfg-ethX파일을 만듭니다. 그러나 내가 아는 바로는 그렇게 하려면 구성 파일을 수동으로 수정해야 합니다. 이는 레거시 순서가 고정되어 있지만 임의적이므로 더욱 복잡하므로 각 시스템에 대해 이러한 파일을 수정해야 합니다. :-/

제가 생각한 것 중 하나는 CentOS 7 명명 체계를 사용하고 하드웨어 위치에 따라 임의의 명명 체계를 적용할 수 있도록 각각에 별칭을 추가하는 것이었습니다. 이것이 가능합니까?

동일한 장치와 IP 주소에 대해 두 개의 이름을 얻는 방법에 대한 다른 아이디어가 있습니까?

참고: 동일한 장치에 여러 IP 주소를 추가하는 방법을 묻는 것이 아닙니다. 이는 매우 간단합니다.

편집하다: 이름을 바꿔야 하는데 프로그래밍 방식으로 바꾸고 싶습니다.

답변1

이름이 "임의"인 동시에 "하드웨어 위치 기반"일 수 있습니까? 이 말은 서로 모순됩니다.

  • 이름 eth#은 각 부팅의 감지 순서에 따라 커널 자체에서 할당됩니다. 즉, "선착순"이며 하드웨어 위치와는 아무 관련이 없습니다.

    파일을 자동으로 생성하는 데 사용되는 이전 udev 버전/etc/udev/rules.d이러한 할당을 카드의 MAC 주소에 바인딩합니다. 해당 파일을 새 시스템에 복사할 수 있습니다.

    NAME=주소나 PCI 위치를 기반으로 매개변수를 설정하기 위해 사용자 정의 udev 규칙을 작성할 수도 있습니다 . (미래에 udev는 인터페이스의 이름을 로 변경하는 것을 거부할 수 있습니다 eth*. 그리고 허용하더라도 이 이름 변경은 매우 취약하며 장치가 다른 순서로 검색되면 실패할 수 있습니다.)

  • 내가 아는 한 RHEL 6은바이오스개발자 이름물리적 기반 인터페이스 이름을 생성하기 위한 것입니다(커널 스위치 biosdevname=0). RHEL 7은 이러한 목적으로 systemd-udevd의 내장 net_id를 사용합니다(커널 스위치 net.ifnames=0).

    얻으려면p1p2스타일 이름을 지정한 yum install biosdevname다음 커널 명령줄( biosdevname=1 net.ifnames=0)을 통해 활성화할 수 있습니다. 참조레드햇 문서.

네트워크 인터페이스에는 별칭을 가질 수 없습니다.

관련 정보