MAC 변경 후 지연

MAC 변경 후 지연

로컬 네트워크의 이더넷 MAC 주소를 변경하는 스크립트를 작성 중입니다. 다음과 같이 작동합니다:

  1. 처음에는 eth0이 종료됩니다.
  2. MAC는 ifconfig 유틸리티를 사용하여 변경됩니다.
  3. eth0이 시작됩니다

#!/bin/sh
sleep 5
ifconfig eth0 down
sleep 10
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
sleep 1
ifconfig eth0 up

위 스크립트를 실행하면 MAC 변경이 성공하고 패널의 네트워크 아이콘에도 "Connecting" 상태가 표시됩니다.몇 초 후에eth0이 네트워크에 다시 연결됩니다. 그런 다음 코드의 기능을 높이기 위해 몇 줄을 추가했습니다.

/sbin/ifconfig eth0| grep 'inet addr:'
ifconfig eth0 | awk '/HWaddr/ {print $5}'
ping 192.168.1.107 -c 2

위 줄은 새 IP 주소, MAC 주소를 표시하고 네트워크가 제대로 작동하는지 확인하기 위해 ping 요청을 보냅니다. 그러나 내가 직면한 문제는 위의 줄을 추가한 후 핑이 실패하고 패널의 네트워크 아이콘에 "연결 중" 상태가 표시된다는 것입니다. 스크립트가 완전히 실행된 후,몇 초 후에, eth0이 완전히 연결되었습니다. (핑할 수 있음) 그래서 다음 줄 뒤에 sleep 30을 추가해 보았습니다.

ifconfig eth0 up

핑 문제가 해결되었다고 가정합니다. 그러나 스크립트에 언급된 ping은 여전히 ​​실패하고 스크립트를 실행한 후 네트워크가 전체 연결을 설정하는 데 시간이 걸립니다.
이 문제를 어떻게 해결해야 합니까?

답변1

어떤 배포판을 사용하고 있나요? 기본적으로 MAC 주소 변경은 NetworkManager를 시작하기 전에 이루어져야 합니다. 가능한 옵션은 다음과 같습니다:

  • eth0에 대한 사용자 정의 udev 규칙을 설치합니다.
  • 초기화 시스템(sysvinit, upstart, systemd 등)에서 작동하는 스크립트를 작성하세요.
  • 사용시스템 링크시스템화된 기능.

내가 찾은Archlinux 위키에 대한 유용한 정보. 당신은 또한 이것에 관심이 있을 수 있습니다마이 변경 그리드, 이는 다양한 배포판에서 공통적으로 발생합니다.

관련 정보