IT
IPv6 Neighbor Discovery Protocol(NDP) 완전 정복
사아칸그넘
2025. 4. 14. 16:41
1. NDP란 무엇인가?
Neighbor Discovery Protocol (NDP)는 IPv6 네트워크에서 필수적인 프로토콜로,
IPv4에서 사용되던 ARP, ICMP Router Discovery, Redirect 기능을 대체합니다.
간단히 말하면,
NDP = 이웃 장비 찾기 + 라우터 찾기 + 주소 설정 + 경로 최적화를 모두 담당하는 프로토콜입니다.
RFC 4861에 정의되어 있으며, ICMPv6 메시지를 기반으로 동작합니다.
2. NDP의 주요 역할
- 이웃 탐색 (Neighbor Discovery): 같은 링크(네트워크)에 있는 다른 장비를 찾음
- 주소 자동 설정 (Stateless Address Autoconfiguration): 장비가 스스로 IP 주소를 설정하도록 지원
- 라우터 탐색 (Router Discovery): 네트워크의 라우터를 찾아 기본 게이트웨이로 설정
- 이웃 가용성 확인 (Neighbor Unreachability Detection): 통신 중 연결 상태를 지속적으로 확인
- 경로 최적화 (Redirect): 더 나은 경로를 알려줌
3. NDP에서 사용하는 메시지 타입
NDP는 5가지 ICMPv6 메시지를 사용합니다.
메시지 | 역할 | 설명 |
Router Solicitation (RS) | 라우터 요청 | 클라이언트가 네트워크에 라우터가 있는지 문의 |
Router Advertisement (RA) | 라우터 광고 | 라우터가 네트워크 정보를 광고 (Prefix, DNS 등) |
Neighbor Solicitation (NS) | 이웃 요청 | MAC 주소를 얻기 위해 전송 (IPv4의 ARP 요청 역할) |
Neighbor Advertisement (NA) | 이웃 광고 | NS에 응답하여 MAC 주소 제공 (IPv4의 ARP 응답 역할) |
Redirect | 경로 변경 알림 | 더 좋은 경로가 있음을 클라이언트에게 알려줌 |
4. NDP 동작 흐름
- 장비가 부팅되면 → Router Solicitation (RS) 전송
- 라우터가 응답 → Router Advertisement (RA) 수신
- 장비는 RA 기반으로 SLAAC 또는 DHCPv6 설정
- 이웃과 통신 시 → Neighbor Solicitation (NS) 전송하여 MAC 주소 확인
- 이웃 장비가 응답 → Neighbor Advertisement (NA) 수신
- 라우터가 필요 시 → Redirect 메시지로 최적 경로 안내
5. NDP의 보안 이슈
NDP는 초기 설계 시 보안 강화가 충분히 고려되지 않아, 다양한 공격이 발생할 수 있습니다.
주요 공격 유형
- Neighbor Spoofing: 가짜 Neighbor Advertisement로 트래픽을 가로챔
- Router Advertisement Flooding: 악성 RA 메시지로 네트워크 마비
- Redirect 공격: 트래픽을 악성 경로로 유도
대응 방법
- RA Guard 설정: 스위치나 방화벽에서 악성 RA 차단
- DHCPv6 Guard 적용: 합법적 DHCPv6 서버만 통신 허용
- SeND (Secure Neighbor Discovery) 사용: 암호화 기반 NDP 보안 강화 (다만 실제 도입률은 낮음)
6. 실전 예시: NDP 문제 트러블슈팅
문제: "IPv6 환경에서 특정 장비로 핑이 가지 않는다."
점검 순서
- 해당 장비의 링크-로컬 주소 확인
- ip -6 neighbor 또는 show ipv6 neighbors 명령어로 Neighbor Table 확인
- NS/NA 메시지 수신 여부 분석 (Wireshark 사용)
- 필요 시 수동으로 Neighbor Cache 초기화 후 재확인
7. 결론
NDP는 IPv6 네트워크의 숨은 주역입니다.
주소 설정, 라우터 탐색, 이웃 확인까지 자동으로 처리해 주지만, 보안 위협에 노출될 수 있으니 RA Guard, DHCPv6 Guard와 같은 보안 기능을 함께 적용하는 것이 중요합니다.
NDP를 이해하면 IPv6 네트워크 트러블슈팅 능력이 크게 향상됩니다.