나는 Hurricane Electric의 IPv6 터널링 프록시를 위해 내 컴퓨터(Debian Buster 실행)를 설정하고 있습니다. 여러 구성 방법에 대한 지침을 제공하지만 다음은 테스트 목적으로 사용한 iproute2에 대한 지침입니다.
ip tunnel add he-ipv6 mode sit remote 216.66.22.2 local <local-IP-addr> ttl 255
ip link set he-ipv6 up
ip addr add <IPv6-addr>/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr
이렇게 하면 sit0
신비한 인터페이스도 나타납니다. 분명히 이것은 6in4 터널링과 관련이 있지만 다음 외에는 이에 대한 더 많은 정보를 찾을 수 없습니다.이건 좀 특별해요그리고sit
모듈이 로드될 때마다 존재합니다.. 궁금해서 새 인터페이스를 만드는 대신 터널 프록시에 맞게 구성해 보았는데 그렇게는 안되는 것 같습니다.
이 장치는 무엇입니까?
답변1
제가 알아낸 정보를 바탕으로Red Hat의 블로그 게시물입니다., 목적을 이해한다고 생각합니다. (저는 Linux 네트워킹 전문가가 아니므로 지식이 있는 사람이 잘못된 점을 발견하면 댓글로 제 의견을 정정하거나 답변을 게시해 주시기 바랍니다.)
먼저, 배경지식은 다음과 같습니다.
어플라이언스는 sit
IPv6 트래픽을 가져와 IPv4 패킷으로 캡슐화/캡슐 해제하고 IPv4 인터넷을 통해 다른 호스트(예: IPv6 터널링 프록시)로 전송/수신하는 가상 네트워크 장치입니다. 외부 패킷에는 특수 프로토콜 번호인 41이 있습니다. (이것은 포트 번호와 유사하지만 TCP/UDP 계층이 아닌 IP 계층에 있습니다.)
전송은 매우 간단합니다.
sit
장치에는 연결된 로컬 및 원격 IPv4 주소가 있으며 이러한 주소는 외부 IPv4 헤더의 소스 및 대상 주소가 됩니다. (소스 주소는 "any" 또는 0.0.0.0일 수도 있습니다. 이 경우 Linux는 캡슐화된 패킷을 보낸 IPv4 인터페이스를 기반으로 소스 주소를 선택합니다.)수신은 약간 더 복잡합니다. 프로토콜 41 패킷이 도착하면 Linux는
sit
해당 패킷이 속한 장치를 확인해야 합니다. 이는 패킷의 외부 IPv4 소스 및 대상 주소를 확인하여 수행됩니다. 이 주소를 각 장치의 로컬 및 원격 주소와 비교하고sit
일치하는 장치가 패킷을 가져와 캡슐화를 해제하는 장치입니다.
sit0
작동 방식 :
sit
Linux가 어떤 장치와도 일치하지 않는 프로토콜 41 패킷 (예: 임의의 주소에서 오는 패킷) 을 받으면 어떻게 되는지 궁금할 것입니다 . 이 경우 로 전달됩니다 sit0
.
sit0
sit
이러한 패킷을 처리하기 위해 커널 모듈에 의해 설정된 특수 "백업" 장치입니다 . 로컬 및 원격 주소는 0.0.0.0(즉, "모든")으로 설정되고 특정 물리적 장치에 연결되지 않으므로 다른 장치에서 처리되지 않은 프로토콜 41 패킷을 허용합니다 sit
.
이것이 작동합니까? 특정한 경우일 수도 있지만 대부분의 경우 그러한 패킷을 삭제하고 싶을 것입니다. 그러한 포괄적인 장치를 만들어야 하는지 여부를 관리자가 결정하도록 하면 안되는 이유는 무엇인지 모르겠습니다. 아마도 몇 가지 역사적인 이유가 있을 것입니다.