본문 바로가기

Network

tunnelbroker.net으로 공인 IPv6 할당받기

앞으로 티스토리 대신 blog.stackframe.dev에서 블로깅을 합니다. 이 블로그는 남겨 둘 예정입니다.

한국에서는 아직 개인 인터넷에 IPv6를 할당하는 ISP가 없습니다. 하지만 NAS나 서버를 집에서 운영하거나 실험적인 목적으로 IPv6를 할당받고 싶은 사람도 있습니다. 그런 분들을 위해 IPv4를 통해 IPv6 패킷을 외국의 서버로 터널링하는 TunnelBroker라는 서비스가 있습니다. 이 서비스는 미국의 ISP인 Herricane Electric에서 무료로 제공하고 있습니다.

 

Hurricane Electric Free IPv6 Tunnel Broker

Hurricane Electric Free IPv6 Tunnel Broker IPv6 Tunnel Broker Check out our new usage stats! And then hit up our new Forums! Welcome to the Hurricane Electric IPv6 Tunnel Broker! Our free tunnel broker service enables you to reach the IPv6 Internet by tunn

www.tunnelbroker.net

IPv6를 할당받기 위해서는 먼저 회원가입을 해야합니다.

로그인 후 왼쪽 사이드바에 있는 Create Regular Tunnel 링크를 클릭하여 현재 컴퓨터의 IPv4 주소를 입력하고 연결될 서버의 위치를 정합니다.

중요한 점은 자신의 IPv4에 서버가 ping을 보내서 확인하기 때문에 ping을 주고받을 수 있어야 합니다. 만약 공유기를 사용하고 있다면 ping에 응답하지 않도록 설정되어 있어서 생성이 불가능할 수 있습니다.

생성되었다면 위와같은 페이지가 나옵니다. 참고로 터널브로커에서는 /64 프리픽스의 IPv6 블록을 기본적으로 할당해주지만 Assign /48을 누르면 /48 프리픽스의 블록을 추가로 할당해줍니다.

 

이제 컴퓨터에서 서버에 터널링을 하여 IPv6 패킷들을 이 터널을 통해 보내고 받도록 하면 IPv6를 사용할 수 있게됩니다. 터널브로커에서는 이 설정도 복붙으로 해결할 수 있게 명령 리스트를 제공해줍니다. 위의 탭에서 Example Configurations를 클릭하면 다양한 운영체제 별로 설정을 위한 명령들을 표시해줍니다.

여기서 리눅스는 Linux-route2를 사용하시면 됩니다. Linux-net-tools는 지금은 사용되지 않는 옛날의 ifconfig와 route 명령을 사용하는 설정방법입니다. 요즘은 iproute2 유틸에서 제공하는 ip 명령을 사용해야합니다.

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote <서버 IPv4 주소> local <컴퓨터 IPv4 주소> ttl 255
ip link set he-ipv6 up
ip addr add <Client IPv6 Address> dev he-ipv6
ip route add ::/0 dev he-ipv6

이 명령을 모두 root 권한으로 실행해야 합니다. 각 명령을 설명하자면 첫번째로 modprobe를 통해 ipv6 모듈을 로드합니다. 그런데 보통 ipv6는 커널에 바로 박히도록 컴파일되기 때문에 모듈로 존재하지 않으므로 대부분 저 명령을 실행하지 않아도 됩니다.

두번째는 he-ipv6라는 인터페이스 이름으로 sit 터널을 만들라는 명령입니다. 참고로 sit은 simple internet transition의 약자입니다. 개인적으로는 sit이라는 명칭을 듣고 IPv6 over IPv4 tunnel을 떠올릴 수가 없기 때문에 의미상으로는 적절하지만 명칭으로는 불만입니다.

세번째 명령은 he-ipv6 인터페이스를 활성화시킵니다

네번째는 he-ipv6 인터페이스에 IPv6 주소를 지정합니다. 이 IPv6 주소는 관리페이지에 있는 Client IPv6 Address입니다.

마지막은 모든 IPv6 주소에 대해서 he-ipv6 인터페이스로 전송하도록 라우팅 테이블을 추가합니다.

 

ip link 명령을 실행해보면 sit0 인터페이스가 추가적으로 생긴걸 볼 수 있는데 이는 fallback tunnel로 sit 모듈이 로드되면 자동으로 생기는 인터페이스이니 걱정하지 않으셔도 됩니다.

 

이 명령들을 실행했다면 he-ipv6 라는 인터페이스가 만들어지고 IPv6로 서비스되는 서버에도 접속할 수 있게 됩니다. 그 예로 ipv6.google.com에 접속할 수 있습니다.https://ipv6.google.com

구글 IPv6 주소로 ping 보내서 확인해볼 수도 있습니다.

여기까지 했다면 컴퓨터에서 IPv6를 사용할 수 있게 되었는데 더 중요한 점은 우리에게 IPv6 블록이 할당되었다는 점입니다. 이 블록에 속한 주소로 패킷을 보낸다면 허리케인 일렉트릭 서버를 거쳐서 터널을 통해 내 컴퓨터로 온다는 뜻입니다. 만약 자신의 홈 네트워크에 속한 장비에 이 블록에 속한 주소를 할당하고 컴퓨터가 게이트웨이로 동작하도록 라우팅 테이블을 만져준다면 외부에서도 IPv6를 통해 홈 네트워크 내부의 장비에 접근할 수 있게 됩니다.

 

참고로 자신의 IPv4 주소가 바뀌면 tunnelbroker.net 사이트와 명령에 들어있는 IPv4 주소를 수정해줘야 합니다. 사이트에 저장된 IPv4 주소는 Advanced 탭에 있는 Update URL로 CURL, wget 등을 사용하여 접속하는 것으로 쉽게 변경가능합니다.

 

다른 중요한 점은 저 명령은 영구적인게 아니라서 리부팅하게되면 초기화됩니다. 그러므로 부팅할 때마다 실행되도록 쉘코드를 짜거나 systemd-networkd를 이용해야 편리하게 IPv6를 사용할 수 있습니다. systemd-networkd를 사용하는 방법은 다른 글에서 설명하겠습니다.

 

systemd-networkd로 SIT 터널링 설정하기

이전 글로 터널브로커로 IPv6 터널링을 하는 방법을 설명했습니다. tunnelbroker.net으로 공인 IPv6 할당받기 한국에서는 아직 개인 인터넷에 IPv6를 할당하는 ISP가 없습니다. 하지만 NAS나 서버를 집에서 운영하..

stackframe.tistory.com