질문:
VM 복제 또는 복제가 발생할 때 변경되는 경우 ifcfg-eth0 스크립트의 HWADDR 행이 부팅 시 자체적으로 유효성을 검사/업데이트하도록 하는 방법을 찾고 싶습니다. 이를 수행할 수 있는 방법이 있습니까? CentOS 6에서는 ifcfg-eth0 스크립트에서 HWADDR 줄을 제거하면 더 동적으로 만들어지지만 CentOS 7에서 HWADDR 줄 없이 ifcfg-eth0이 ifcfg-eno1677776으로 다시 변경되는 것을 방지하는 방법을 찾지 못했습니다. 미리 도움을 요청하세요!
배경:
VMware Workstation을 통해 CentOS 7.2.1511 가상 머신을 실행하고 있습니다. 기본적으로 CentOS 7은 다음을 제거합니다.이더넷 0네트워크 스크립트의 명명 규칙은 이제 명명된 이름을 사용하도록 구성되었습니다.ifcfg-eno1677776또는 그런 것. 할 수 있는 소프트웨어가 있어요무겁게에 달려있다이더넷 0명명 체계. 그래서 나는 내 것을 재구성했다.ifcfg-eno1677776스크립트 작성자:
/etc/sysconfig/network-scripts/ifcfg-eno1677776
다음으로 이름 바꾸기/etc/sysconfig/network-scripts/ifcfg-eth0
개정하다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
다음에 추가네트워크.ifnames=0끝까지GRUB_CMDLINE_LINUX파일의 줄
/etc/sysconfig/grub
.재부팅하고 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 인터페이스는 시작될 때마다 유지됩니다. 그러나 가상 머신은 팀원들에게 배포되어 최종적으로 고객에게 전달됩니다. 여기서 문제가 발생합니다. VMware의 좋은 점은 배포를 위해 가상 머신의 스냅샷을 복제할 수 있다는 점입니다. 하지만 이렇게 하면 가상 머신의 MAC 주소가 변경됩니다.
편집하다:
grub2-mkconfig -o /boot/grub2/grub.cfg
이것이 작동하려면 아래 @larsks가 제안한 변경 사항을 적용한 후 실행 해야 합니다 . 나를 위해 일해주세요!
답변1
가장 간단한 해결책은 아마도 커널 명령줄에서 다음 옵션을 설정하여 "예측 가능한 장치 이름 지정" 동작을 비활성화하는 것입니다:
biosdevname=0 net.ifnames=0
이 작업이 완료되면 시스템의 첫 번째 이더넷 인터페이스 이름은 eth0
, 두 번째 이더넷 인터페이스 이름은 eth1
으로 지정됩니다. 이것은 문서화되어 있습니다.여기.
이 작업을 완료한 후 HWADDR
구성 파일에서 해당 행을 제거하면 모든 것이 예상대로 작동합니다.