CentOS 7 부팅 시 ifcfg-eth0 네트워크 스크립트에서 HWADDR이 자동으로 수정되도록 강제 설정

CentOS 7 부팅 시 ifcfg-eth0 네트워크 스크립트에서 HWADDR이 자동으로 수정되도록 강제 설정

질문:

VM 복제 또는 복사본이 발생할 때 변경되는 경우 ifcfg-eth0 스크립트의 HWADDR 줄이 부팅 시 자체적으로 확인/업데이트되도록 하는 방법을 찾고 싶습니다. 그렇게 할 수 있는 방법이 있나요? CentOS 6에서는 ifcfg-eth0 스크립트에서 HWADDR 줄을 제거하면 훨씬 더 동적으로 만들어졌지만 CentOS 7에서 HWADDR 줄 없이 ifcfg-eth0이 ifcfg-eno1677776으로 다시 변경되지 않도록 하는 방법을 아직 찾지 못했습니다. 감사합니다. 도움을 요청하세요!


배경:

VMware Workstation을 통해 CentOS 7.2.1511 가상 머신을 실행하고 있습니다. 기본적으로 CentOS 7은eth0네트워크 스크립트의 명명 규칙을 준수했으며 이제 다음과 같은 네트워크 스크립트를 사용하도록 구성되었습니다.ifcfg-eno1677776또는 비슷한 것. 나는 그런 소프트웨어를 가지고 있다무겁게에 의존eth0명명 체계. 그래서 저는 다시 구성했습니다.ifcfg-eno1677776스크립트 작성자:

  1. /etc/sysconfig/network-scripts/ifcfg-eno1677776다음으로 이름 바꾸기/etc/sysconfig/network-scripts/ifcfg-eth0
  2. 수정 중ifcfg-eth0(에서 HWADDR을 받음 /sys/class/net/eno1677776/address):

    BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no HWADDR=00:0c:29:d6:d2:65

  3. 추가됨net.ifnames=0끝까지GRUB_CMDLINE_LINUX파일 의 줄 /etc/sysconfig/grub.

  4. 재부팅하고 ifconfig를 실행하세요(그리고 축하하세요!):

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.176.15.148 netmask 255.255.252.0 broadcast 10.176.15.255 inet6 fe80::20c:29ff:fed6:d265 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d6:d2:65 txqueuelen 1000 (Ethernet) RX packets 2141073 bytes 749959853 (715.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 65237 bytes 35352127 (33.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

부팅할 때마다 이 eth0 인터페이스가 유지됩니다. 하지만 이 VM은 팀원들 사이에 배포되어 최종적으로 고객에게 전달될 예정입니다. 여기서 문제가 발생합니다. VMware는 배포를 위해 VM의 스냅샷을 복제할 수 있다는 점에서 훌륭하지만 이로 인해 VM의 MAC 주소가 변경됩니다.


편집하다:

grub2-mkconfig -o /boot/grub2/grub.cfg작동하려면 아래 권장 @larsks를 변경한 후 실행해야 합니다 . 나를 위해 일했습니다!

답변1

가장 쉬운 해결책은 아마도 커널 명령줄에서 다음 옵션을 설정하여 "예측 가능한 장치 이름 지정" 동작을 비활성화하는 것입니다:

biosdevname=0 net.ifnames=0

이를 적용하면 시스템의 첫 번째 이더넷 인터페이스 이름이 eth0, 두 번째 이더넷 인터페이스 eth1이름이 가 됩니다. 이는 문서화되어 있습니다.여기.

이 위치에서 HWADDR구성 파일에서 해당 행을 제거하면 모든 것이 예상대로 작동합니다.

관련 정보