천사와 악마의 감미로운 공존


리눅스 에서 Xen을 사용하여 가상화 서비스를 하던중 갑자기 모든 Xen서버가 통신이 안되었다..ㅡㅡ;; 4대가 동시에. ㅠ

에러 메시지를 보니 "received packet with own address as source address" 만 주구장창 떠있더라..
### 위 메시지와 함께 네트워크를 재시작시 나오는 메시지가 또 있다. "bevice eth0 has different Mac address.."

이건 자기한테 패킷을 보내고 있다는 내용의 에러 메시지인데 이것저젓 살펴보니 eth0의 맥어드레스가 가상화(Custom)서버의 맥어드레스인 FE:FF:FF:FF:FF:FF 으로 잡혀있었다.

이럴땐 아무리 랜선을 빼고 서버를 리부팅하고 해도 방법이 없다. Xen의 버그인거다..ㅠㅠ

그래서 찾아낸게 맥어드레스를 강제로 할당하는것!!! +_+
방법은 아래와 같다. (에러가 나는 eth0의 맥어드레스가 00:30:67:73:00:00 라 가정)
-- 설정 Start -----------------------------
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:30:67:73:00:00
# ifconfig eth0 up
# /etc/init.d/network restart
-- 설정 End -----------------------------

 위 내용을 /etc/rc.d/rc.local 에 등록해도 괜찮지만 실 사용중에 갑자기 또 이러한 에러가 발생하면 접속도 안되고.. 난감해질 경우를 생각해서 걍 스크립트를 하나 만들어서 cron에 등록해부렀다~ㅋ

-- eth_error.sh Start --------------------------------------------------------------
mac=`ifconfig | grep "eth0" | sed -n "1p" | awk '{print $5}'`
if [ "$mac" = "FE:FF:FF:FF:FF:FF" ]; then
ifconfig eth0 down
ifconfig eth0 hw ether 00:30:67:73:00:00
ifconfig eth0 up
/etc/init.d/network restart
date=`date`
echo "$date ... eth0 에러 발생으로 맥어드레스 강제 설정" >> /var/log/eth_error.log
fi
-- eth_error.sh End --------------------------------------------------------------


Comment +0