구체적인 내용이 다를 수도 있으나, 기술해주신 문제 내용과 이전에 유사 사
례를 바탕으로 판단해보면 동일 이슈로 판단됩니다.
이러한 동작은 RFC 1812의 46-49, 55, 90 페이지에 기술되어있는 표준 반응
이며, 커널 파라미터인 rp_filter(Reverse Path Filtering)를 disable 하시
면 문제없이 데이터를 받으실 수 있습니다.
rp_filter는 Source IP를 검증(validation)하는 기능으로, Multicast 패킷
의 Source IP 주소가 있는 Subnet과 이에 대해 응답하는 인터페이스의 Subnet
이 다를 경우, 해당 패키지를 Drop하는 역할(필터)를 수행합니다.
특히 Red Hat Enterprise Linux 6에서는 이 필터의 룰이 보다 엄격해졌고,
파라미터 값도 조금씩 차이가 있습니다. 다음과 같이 적용하신 후에 네트워크
를 재시작하여 테스트 해보시기 바랍니다.
# vi /etc/sysctl.conf
net.ipv4.conf.default.rp_filter = 2
# sysctl -p
# service network restart
앞장에서 FCP 영역에 대한 SCSI 디스크들을 모두 Remove 했다면.. 그와 관련된 FCP 디바이스들에 대한
Sysfs들 모두를 Remove 해줄 필요도 있다...굳이 재부팅 하지 않아도 된다는...^^
===================================================================
#!/bin/sh
#
# ------------------------------------------------------------------
# | REMOVES ALL ZFCP-RELATED SYSFS ENTRIES |
# | |
# | Author: Marc Beyerle (marc.beyerle@de.ibm.com), 12/12/2008 |
# | Copyright IBM Corp. 2008 |
# ------------------------------------------------------------------
SYSFS_DIRECTORY="/sys/bus/ccw/drivers/zfcp"
if [ -e "${SYSFS_DIRECTORY}" ]; then
# change to the sysfs directory containing all zfcp adapters
cd "${SYSFS_DIRECTORY}"
# find all zfcp adapters
ADAPTERS=$(find . -maxdepth 1 -name "0.0.*" | cut -c 3-)
else
# the sysfs directory for the zfcp adapters does not exist
ADAPTERS=""
fi
if [ -z "${ADAPTERS}" ]; then
# print information
echo -e "\nNo zfcp adapters found."
fi
# iterate over all zfcp adapters found
for ADAPTER in ${ADAPTERS}; do
# change to this zfcp adapter's directory
cd "${SYSFS_DIRECTORY}/${ADAPTER}"
# print information
echo -e "\nNow removing all sysfs entries of zfcp adapter ${ADAPTER}."
# find all wwpns of this zfcp adapter
WWPNS=$(find . -maxdepth 1 -name "0x*" | cut -c 3-)
if [ -z "${WWPNS}" ]; then
# print information
echo "No WWPNs found for zfcp adapter ${ADAPTER}."
fi
# iterate over all wwpns found
for WWPN in ${WWPNS}; do
# change to this wwpn's directory
cd "${SYSFS_DIRECTORY}/${ADAPTER}/${WWPN}"
# find all luns of this wwpn
LUNS=$(find . -maxdepth 1 -name "0x*" | cut -c 3-)
if [ -z "${LUNS}" ]; then
# print information
echo "No LUNs found for WWPN ${WWPN}."
fi
# iterate over all luns found
for LUN in ${LUNS}; do
# print information
echo -n "Removing LUN ${LUN}... "
# remove this lun
echo ${LUN} > unit_remove
if [ "${?}" -eq "0" ]; then
# print success message (otherwise the error is printed above)
echo "OK"
fi
done
# change (again) to this zfcp adapter's directory
cd "${SYSFS_DIRECTORY}/${ADAPTER}"
# print information
echo -n "Removing WWPN ${WWPN}... "
# remove this wwpn
echo ${WWPN} > port_remove
if [ "${?}" -eq "0" ]; then
# print success message (otherwise the error is printed above)
echo "OK"
fi
done
done
# print an empty line
echo
==================================================================
그냥 가져다 써도..잘 작동하네..