[RedHat] IPv6 비활성화

IPv6주소는 요즘 많이 사용되고 있는 기능 중 하나이지만 일반 서버 구성에서는 잘 사용되지 않습니다. 이번 글에서는 IPv6를 어떻게 비활성화하는지 살펴봅니다.

환경

Redhat Enterpries Linux 7 ~ 9

레드햇 리눅스는 기본적으로 ipv6가 활성화되어 있습니다. ipv4 셋팅만 했는데 자연스럽게 ipv6가 함께 올라오는 모습을 볼 수 있습니다.

# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.155.88  netmask 255.255.255.0  broadcast 192.168.155.255
        inet6 fe80::b661:fa4d:be49:2f15  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:7e:33:4f  txqueuelen 1000  (Ethernet)
        RX packets 546994  bytes 335415486 (319.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 159504  bytes 11873920 (11.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...

위 출력 결과에서 inet로 시작하는 라인이 ipv4 주소이고, inet6로 시작하는 부분이 ipv6 주소입니다.

IPv6를 비활성화 하는 방법은 다음과 같이 3가지 방법이 있습니다.

  1. NetworkManager를 통한 방법 (단일 인터페이스에 개별적으로 적용)
  2. sysctl 을 통한 방법 (파라미터를 이용 전체 인터페이스에 한 번에 적용 가능)
  3. 부팅 커널 파라미터를 통한 방법 (권장 안 함)

가장 간단하게 할 수 있는 방법은 첫 번째 방법인 NetworkManger를 통한 방법입니다. 또한 RHEL8 버전부터는 NetworkManager를 끌 수 없어 모두 사용 중 일 것이므로 첫 번째 방법으로 진행하면 간편합니다. 전체 인터페이스를 비활성화하고 싶다면 커널 파라미터를 이용하는 방법이 편리합니다. 아래서 NetworkManger 방법과 sysctl을 통한 두 가지 방법을 살펴보겠습니다.

1) NetworkManager 를 이용한 IPv6 비활성화

NetworkManager를 이용한 방법이므로 RHE7 환경에 NetworkManager를 사용하지 않는 서버의 경우는 아래 2번 방법을 적용합니다.

  • 대상 확인

아래의 bond0 장치에 inet6(ipv6)가 올라와 있는데 해당 장치를 비활성화할 예정입니다.

# ifconfig bond0
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.155.88  netmask 255.255.255.0  broadcast 192.168.155.255
        inet6 fe80::b661:fa4d:be49:2f15  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:7e:33:4f  txqueuelen 1000  (Ethernet)
        RX packets 546994  bytes 335415486 (319.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 159504  bytes 11873920 (11.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 비활성화

비활성화 방법은 OS 버전에 따라 명령어가 조금 다릅니다. 버전에 맞는 명령어를 선택해서 사용하면 됩니다.

<RHEL7 ~ RHEL8.0>

# nmcli connection modify bond0 ipv6.method "ignore"
# nmcli connection up bond0

<RHEL8.1 ~ RHEL9>

# nmcli connection modify bond0 ipv6.method "disabled"
# nmcli connection up bond0
  • 확인
# ifconfig bond0
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.155.88  netmask 255.255.255.0  broadcast 192.168.155.255
        ether 52:54:00:7e:33:4f  txqueuelen 1000  (Ethernet)
        RX packets 548256  bytes 335489716 (319.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 159748  bytes 11899990 (11.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

출력 결과에서 inet6 라인이 사라진 부분을 확인할 수 있으며, 이 방법은 재부팅 해도 유지됩니다.

2) sysctl 파라미터를 이용한 IPv6 비활성화 (전체 인터페이스)

  • 설정

    /etc/sysctl.conf 파일에 파라미터를 적용합니다. localhost의 ipv6 비활성화는 권장되지 않기 때문에 2가지 파라미터를 같이 설정합니다.

    • 첫 번째 줄은 전체 ipv6를 비활성화하는 옵션
    • 두 번째 줄은 localhost 인터페이스는 ipv6를 활성화하는 옵션
# vim /etc/sysctl.conf
...
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 0

1: 비활성화

0: 활성화

  • 적용
# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 0
  • 확인
# ifconfig bond0; ifconfig lo
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.155.88  netmask 255.255.255.0  broadcast 192.168.155.255
        ether 52:54:00:7e:33:4f  txqueuelen 1000  (Ethernet)
        RX packets 2205  bytes 170966 (166.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 909  bytes 141988 (138.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

참조

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/using-networkmanager-to-disable-ipv6-for-a-specific-connection_configuring-and-managing-networking

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top