서버 정보 :
OS : CentOS 4.4 ServerCD i386 _ 2.6.9-42.0.8.EL
Samba : samba-3.0.10-1.4E.9
IP : 192.168.0.254
Subnet : 255.255.255.0
G/W : 192.168.0.1
아래와 같은 커널 에러메시지 :
kernel: 192.168.0.203 sent an invalid ICMP type 3, code 3 error to a broadcast: 192.168.0.255 on eth0
TCP 덤프 결과 :
[root@Sample-local ~]# tcpdump -i eth0 -n icmp
11:21:16.390614 IP 192.168.0.203 > 192.168.0.254: icmp 36: 192.168.0.255 udp port netbios-ns unreachable
* tcpdump 에서 위 한줄이 검출될때마다 커널 에러메시지 한줄씩이 로깅된다.
해결 방법 :
/etc/sysctl.conf 에 아래 한줄 추가 후 재부팅.
net.ipv4.icmp_ignore_bogus_error_responses=1
또는
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
--> 바로 적용되며
부팅 시 실행되게 하려면 /etc/rc.local에 한 줄 추가.
원인 :
정확한 원인은 192.168.0.203 IP의 서버(유닉스)를 조사해 보아야 나오겠지만, Samba nmbd데몬과 해당 PC와의 netbios 통신 관련 문제인듯 싶다. 아마도 해당 시스템의 netbios 이름을 못 가져와서 그런거 같으며, 해당 시스템이 samba를 운영하지만 netbios 네임 세팅이 제대로 안된거 같다.
- 192.168.0.203 서버(유닉스)는 값이 산출이 안된다.
[root@Sample-local ~]# nmblookup -A 192.168.0.203
Looking up status of 192.168.0.203
No reply from 192.168.0.203
- 정상적인 Windows PC들의 경우 아래와 같이 netbios 이름과 MAC 어드레스가 보인다.
[root@Sample-local ~]# nmblookup -A 192.168.0.205
Looking up status of 192.168.0.205
HELIOS <00> - H
HELIOS <03> - H
HELIOS <20> - H
WORKGROUP <00> - <GROUP> H
WORKGROUP <1e> - <GROUP> H
..__MSBROWSE__. <01> - <GROUP> H
WORKGROUP <1d> - H
MAC Address = 00-13-F7-8A-79-9B
ICMP Type 3 에러 원인을 설명한 사이트 :
http://dariotigani.wordpress.com/2011/12/26/last-hop-second-packet-the-mystery/