앞으로 티스토리 대신 blog.stackframe.dev에서 블로깅을 합니다. 이 블로그는 남겨 둘 예정입니다.
이전 글로 터널브로커로 IPv6 터널링을 하는 방법을 설명했습니다.
저 글에서는 명령으로만 터널링을 설정한 관계로 리부팅하면 초기화된다는 단점이 있었습니다. 이번 글에서는 systemd-networkd를 통해 리부팅을 하여도 인터페이스가 유지되도록 설정하는 방법을 설명하겠습니다.
먼저 준비되어야 할 것은 systemd-networkd로 컴퓨터의 네트워크가 관리되고 있어야 한다는 점입니다.
systemd-networkd는 /etc/systemd/network/ 디렉토리에 사용자가 .netdev .network 설정 파일을 만들어서 네트워크 인터페이스를 추가, 관리할 수 있습니다.
SIT 터널링 인터페이스를 만들기 위해서 먼저 ipv6-tunnel.netdev 라는 파일을 추가합시다.
[NetDev]
Name=ipv6-tunnel
Kind=sit
MTUBytes=1480
[Tunnel]
Local=any
Remote=<서버 IPv4 주소>
TTL=255
원래는 Local에 자신의 IPv4 주소를 적어야 하지만 systemd-networkd에서 any 라는 값을 특수한 값도 지정할 수 있게 되어있습니다. any를 설정하면 컴퓨터의 IPv4 주소가 바뀌어도 설정 파일을 수정하지 않아도 됩니다.
다음은 위에서 만들었던 ipv6-tunnel 인터페이스 설정과 라우팅 추가를 위해 ipv6-tunnel.network 파일을 만듭니다.
[Match]
Name=ipv6-tunnel
[Network]
Address=<Client IPv6 Address>
[Route]
Destination=::/0
마지막으로 기존의 네트워크 인터페이스(이더넷이나 와이파이 등)의 .network 파일의 [Network] 섹션 밑에 Tunnel=ipv6-tunnel 을 추가하면 됩니다.
예)
[Match]
Name=eth*
[Network]
DHCP=yes
Tunnel=ipv6-tunnel
[DHCP]
Anonymize=yes
UseDNS=no
UseNTP=no
주의할 점은 이 .network 파일이 여러 개의 인터페이스에 사용된다면 터널링에 어떤 인터페이스가 사용될 지 예측할 수 없습니다. 위의 예는 eth 로 시작하는 모든 인터페이스에 대한 설정인데 제 컴퓨터는 eth0 만 존재하기 때문에 문제없지만 eth1,eth2 까지 있다면 어떤 인터페이스로 터널링 인터페이스가 만들어질지 모릅니다.
이제 리부팅을 하더라도 자동으로 터널이 만들어져서 IPv6를 계속 이용할 수 있게 됩니다.
'Linux > systemd' 카테고리의 다른 글
systemd-resolved로 LLMNR 사용하기 (0) | 2020.05.04 |
---|---|
[Linux] coredumpctl로 크래시 디버깅하기 (0) | 2020.05.01 |
systemd-boot를 부트로더로 사용하기 (0) | 2020.04.28 |
systemd로 시스템 자원 제한하기 (6) | 2019.01.09 |
systemd 사용자 유닛 만들기 (0) | 2019.01.09 |