리눅스 IPv6 비활성화

WikiPo (토론 | 기여)님의 2015년 9월 4일 (금) 09:53 판 (IPv6 disable 서버에서 ssh 터널링 실패시 대처 방법)

1 개요

리눅스 IPv6 비활성화하기
  • 리눅스는 보통 IPv6가 활성화되어 있음(기본값)
  • 이것을 비활성화해보자.
sysctl -p net.ipv6.conf.all.disable_ipv6=1

2 실습

[root@zetawiki ~]# sysctl net.ipv6.conf.all.disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0
→ disable_ipv6 이 0이므로 활성화 상태임
[root@zetawiki ~]# ifconfig eth0 | grep inet
          inet addr:192.168.0.139  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fea2:8ea8/64 Scope:Link
→ eth0에 IPv6 주소가 있음
[root@zetawiki ~]# sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
→ disable_ipv6 이 1이므로 비활성화됨
[root@zetawiki ~]# ifconfig eth1 | grep inet
          inet addr:192.168.0.39  Bcast:192.168.0.255  Mask:255.255.255.0
→ eth0에 IPv6 주소가 없어짐

3 주의점

IPv6를 끈 서버의 특정 openssl 버전에서 ssh 터널링 사용 시, 아래와 같은 메시지가 발생하며 bind 실패가 발생할 수 있다.

bind: Cannot assign requested address

-v 옵션으로 상세 로그를 봤을 때 ipv6로 바인드를 시도한다면 아래의 해결 방법을 사용하면 된다.

해결방법은,

  • 터널링 명령 사용 할 때 ssh 옵션 중 '-4'를 줘 강제로 inet(IPv4)로 사용
  • 혹은 /etc/ssh/ssh_config에서 (sshd가 아님에 주의!!) AddressFamily를 inet으로 설정(해당 설정의 옵션은 'any', 'inet', 'inet6' 가 있으며 기본값은 'any')

4 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}