![DHCP6이 작동하려면 ip6tables 규칙이 필요한 이유는 무엇입니까? (반대로 IPv4는 아무것도 필요하지 않습니다)](https://linux55.com/image/175291/DHCP6%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EB%A0%A4%EB%A9%B4%20ip6tables%20%EA%B7%9C%EC%B9%99%EC%9D%B4%20%ED%95%84%EC%9A%94%ED%95%9C%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20(%EB%B0%98%EB%8C%80%EB%A1%9C%20IPv4%EB%8A%94%20%EC%95%84%EB%AC%B4%EA%B2%83%EB%8F%84%20%ED%95%84%EC%9A%94%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4).png)
DHCP6에 ip6tables 규칙이 필요한 이유는 무엇입니까? (반대로 IPv4에서는 필요하지 않습니다.)
이것은 제가 작성한 최소한의 IPv4 규칙입니다.특별한 DHCPv4(위키피디아) 규칙:
IPv4:iptables --list-rules INPUT
-P INPUT DROP
-A INPUT -i lo -m comment --comment loopback -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment traffic4 -j ACCEPT
이것은 제가 작성한 최소 IPv6 규칙입니다.특수 DHCPv6(위키피디아) 규칙:
IPv6:ip6tables --list-rules INPUT
-P INPUT DROP
-A INPUT -i lo -m comment --comment loopback -j ACCEPT
-A INPUT -p ipv6-icmp -m limit --limit 10/sec --limit-burst 30 -m comment --comment icmp6 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment traffic6 -j ACCEPT
-A INPUT -d fe80::/64 -p udp -m conntrack --ctstate NEW -m udp --dport 546 -m comment --comment dhcp6 -j ACCEPT
질문
ip6tables
Linux에서 작동하려면 IPv6에는 DHCPv6이 작동하기 위해 특수 규칙이 필요 하지만 IPv4( )에서는 작동하지 않는 이유를 알고 싶습니다 iptables
. 반면 DHCPv4에서는 작동하기 위해 어떤 규칙도 필요하지 않습니다.
답변1
DHCPv4에서는 초기 검색/제안/요청/승인 교환이 브로드캐스트 주소를 사용하여 발생하고 클라이언트에 의해 시작되므로 iptables
연결 추적이 클라이언트에서 이를 추적하는 데 문제가 없습니다. 모든 후속 갱신은 유니캐스트일 수 있지만 클라이언트에서 시작되므로 추적하는 데 문제가 없습니다. 그리고 DHCPv4 클라이언트는 일반적으로 허용되지 않는 소스 IP 주소 0.0.0.0을 사용해야 하므로 교환을 위해 대부분을 우회하는 원시 소켓을 사용해야 합니다 iptables
.
IPv6에는 브로드캐스트가 없으므로 클라이언트는 "범위 내의 모든 DHCPv6 서버 및 릴레이 에이전트" 주소로 멀티캐스트 패킷을 보냅니다. 그러나 서버는 멀티캐스트 요청에 유니캐스트 응답을 보낼 수 있으므로 클라이언트 요청과 서버 응답 간의 상관관계는 DHCPv4만큼 직접적이고 명확하지 않습니다.
또한 IPv6에서는 각 인터페이스에 기본적으로 링크-로컬 IPv6 주소가 있고 DHCPv6 멀티캐스트의 소스 주소로 사용될 수 있으므로 원시 소켓이 필요하지 않습니다. 이를 iptables
통해 기본적으로 일반 UDP + IPv6 기능만 사용하므로 DHCPv6 교환을 완전히 제어할 수 있습니다 .
또한 DHCPv6 서버는 클라이언트가 재구성 메시지를 계속 수신하도록 요구할 수 있습니다. 서버가 초기 DHCPv6 교환에서 이 옵션을 협상한 경우서버가 시작될 수 있습니다.DHCPv6 재구성. 재구성은 서버가 클라이언트에 패킷을 보내는 것으로 시작되므로 이 시점에서는 연결(conntrack 의미에서)이 설정되지 않으며 클라이언트는 인바운드 재구성 메시지를 수락하기 위해 명시적인 iptables 규칙이 필요합니다.