소개
이 랩에서는 Linux 시스템에서 IPv6 가 활성화되고 구성되었는지 확인하는 방법을 배우게 됩니다. IPv6 상태 및 설정을 확인하기 위한 다양한 방법을 탐구할 것입니다.
구체적으로, 구성된 IPv6 주소를 검사하기 위해 ip addr 명령을 사용하고, 커널의 IPv6 상태를 확인하기 위해 /proc/sys/net/ipv6 디렉토리를 검사하며, 자세한 IPv6 네트워크 매개변수를 보기 위해 sysctl 명령을 활용할 것입니다. 이러한 단계는 시스템의 IPv6 구성에 대한 포괄적인 이해를 제공할 것입니다.
ip addr 로 IPv6 주소 확인
이 단계에서는 ip addr 명령을 사용하여 시스템에 구성된 IPv6 주소를 확인하는 방법을 배우게 됩니다. IPv6 는 IPv4 를 대체하도록 설계된 최신 버전의 인터넷 프로토콜입니다. 다른 개선 사항과 함께 훨씬 더 큰 주소 공간을 제공합니다.
ip 명령은 Linux 에서 네트워크 인터페이스, 라우팅 및 터널을 관리하기 위한 강력한 도구입니다. addr 하위 명령은 네트워크 주소를 보고 조작하는 데 사용됩니다.
아직 터미널을 열지 않았다면 엽니다. 데스크탑 왼쪽의 Xfce 터미널 (Xfce Terminal) 아이콘을 클릭하여 열 수 있습니다.
이제 다음 명령을 입력하고 Enter 키를 누르십시오.
ip addr
이 명령은 IPv4 및 IPv6 주소를 포함하여 시스템의 모든 네트워크 인터페이스에 대한 자세한 정보를 표시합니다.
숫자로 시작하고 콜론과 인터페이스 이름 (예: 1: lo: 또는 2: eth0:) 이 뒤따르는 섹션을 찾으십시오. 각 섹션 내에서 inet6으로 시작하는 줄을 찾으십시오. 이 줄은 해당 인터페이스에 할당된 IPv6 주소를 보여줍니다.
예를 들어, 다음과 유사한 출력을 볼 수 있습니다 (출력은 시스템 구성에 따라 다를 수 있습니다).
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link
valid_lft forever preferred_lft forever
이 예에서:
lo는 루프백 인터페이스이며, 일반적으로 동일한 머신 내에서 통신하는 데 사용됩니다. IPv6 주소::1/128을 가지고 있습니다.eth0은 표준 이더넷 인터페이스입니다. IPv6 주소fe80::42:acff:fe11:2/64를 가지고 있습니다.
/128 및 /64 부분은 IPv4 의 서브넷 마스크와 유사한 네트워크 접두사 길이 (network prefix length) 를 나타냅니다.
ip addr을 사용하면 어떤 인터페이스에 IPv6 주소가 구성되어 있는지, 그리고 해당 주소가 무엇인지 빠르게 확인할 수 있습니다.
다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.
/proc/sys/net/ipv6 에서 IPv6 상태 확인
이 단계에서는 /proc 파일 시스템을 탐색하여 시스템의 IPv6 상태를 확인합니다. /proc 파일 시스템은 프로세스 및 기타 시스템 정보에 대한 정보를 제공하는 가상 파일 시스템입니다. 실행 중인 Linux 커널에 대한 세부 정보를 찾는 데 유용합니다.
구체적으로, /proc/sys/net/ipv6/ 디렉토리 내의 파일을 살펴보겠습니다. 이 파일에는 IPv6 프로토콜 스택의 동작을 제어하는 매개변수가 포함되어 있습니다.
/proc/sys/net/ipv6/ 디렉토리의 내용을 보려면 ls 명령을 사용할 수 있습니다.
ls /proc/sys/net/ipv6/
파일 및 디렉토리 목록이 표시됩니다. 각 파일은 특정 IPv6 커널 매개변수를 나타냅니다.
anycast_src_interval bindv6only conf flowlabel_reflect flowlabel_state icmp ip6frag_high_thresh ip6frag_low_thresh ip6frag_secret_interval ip6frag_time neigh route tcp_metrics_hash_size tcp_metrics_info tcp_metrics_purge_interval tcp_metrics_reg_interval tcp_metrics_req_interval tcp_metrics_slack tcp_metrics_sync_interval tcp_metrics_timeout udp_metrics_hash_size udp_metrics_info udp_metrics_purge_interval udp_metrics_reg_interval udp_metrics_req_interval udp_metrics_slack udp_metrics_sync_interval udp_metrics_timeout
중요한 파일 중 하나는 disable입니다. 이 파일은 IPv6 가 시스템 전체에서 비활성화되었는지 (1) 또는 활성화되었는지 (0) 를 나타냅니다.
disable 파일의 내용을 보려면 cat 명령을 사용할 수 있습니다.
cat /proc/sys/net/ipv6/disable
출력은 0 또는 1입니다.
0
- 출력이
0이면 IPv6 가 활성화된 것입니다. - 출력이
1이면 IPv6 가 비활성화된 것입니다.
또 다른 유용한 파일은 conf입니다. 이는 각 네트워크 인터페이스에 대한 구성 파일과 기본 설정을 위한 default 디렉토리를 포함하는 디렉토리입니다.
conf 디렉토리의 내용을 살펴보겠습니다.
ls /proc/sys/net/ipv6/conf/
각 인터페이스에 대한 디렉토리 (예: all, default, eth0, lo) 가 표시됩니다.
all default eth0 lo
그런 다음 해당 디렉토리 내의 disable_ipv6 파일을 확인하여 eth0과 같은 특정 인터페이스의 IPv6 상태를 확인할 수 있습니다.
cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6
이 파일에도 해당 특정 인터페이스에 대해 0 (활성화) 또는 1 (비활성화) 이 포함되어 있습니다.
0
/proc/sys/net/ipv6/의 파일을 탐색하면 시스템의 IPv6 구성에 대한 낮은 수준의 보기를 제공합니다.
다음 단계로 이동하려면 **계속 (Continue)**을 클릭하십시오.
sysctl net.ipv6 로 IPv6 설정 검토
이 단계에서는 sysctl 명령을 사용하여 IPv6 커널 매개변수를 검사합니다. sysctl 명령은 런타임에 커널 매개변수를 수정하는 데 사용됩니다. 이전 단계에서 탐색한 /proc/sys/ 파일 시스템에서 찾은 동일한 매개변수를 보고 변경하는 보다 사용자 친화적인 방법을 제공합니다.
모든 IPv6 관련 커널 매개변수를 보려면 net.ipv6 접두사를 사용하여 sysctl을 사용할 수 있습니다.
터미널에 다음 명령을 입력하고 Enter 키를 누르십시오.
sysctl net.ipv6
이 명령은 매개변수와 현재 값의 긴 목록을 출력합니다. 이러한 매개변수는 주소 구성, 라우팅 및 보안과 같은 IPv6 네트워킹 동작의 다양한 측면을 제어합니다.
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_tmo = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry_delay = 1
net.ipv6.conf.all.regen_retry_delay = 1
net.ipv6.conf.all.router_solicit_delay = 1
net.ipv6.conf.all.router_solicit_interval = 600
net.ipv6.conf.all.router_solicit_max_interval = 1200
net.ipv6.conf.all.router_solicits = -1
net.ipv6.conf.all.rtr_probe_interval = 600
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefer_mpatemp = 1
net.ipv6.conf.all.temp_valid_lifetime = 86400
net.ipv6.conf.all.temp_preferred_lifetime = 14400
net.ipv6.conf.all.use_deprecated = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.all.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.force_tmo = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry_delay = 1
net.ipv6.conf.default.regen_retry_delay = 1
net.ipv6.conf.default.router_solicit_delay = 1
net.ipv6.conf.default.router_solicit_interval = 600
net.ipv6.conf.default.router_solicit_max_interval = 1200
net.ipv6.conf.default.router_solicits = -1
net.ipv6.conf.default.rtr_probe_interval = 600
net.ipv6.conf.default.suppress_frag_ndisc = 1
net.ipv6.conf.default.temp_prefer_mpatemp = 1
net.ipv6.conf.default.temp_valid_lifetime = 86400
net.ipv6.conf.default.temp_preferred_lifetime = 14400
net.ipv6.conf.default.use_deprecated = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.accept_ra_mtu = 1
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.default.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_tmo = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mtu = 1280
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry_delay = 1
net.ipv6.conf.eth0.regen_retry_delay = 1
net.ipv6.conf.eth0.router_solicit_delay = 1
net.ipv6.conf.eth0.router_solicit_interval = 600
net.ipv6.conf.eth0.router_solicit_max_interval = 1200
net.ipv6.conf.eth0.router_solicits = -1
net.ipv6.conf.eth0.rtr_probe_interval = 600
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefer_mpatemp = 1
net.ipv6.conf.eth0.temp_valid_lifetime = 86400
net.ipv6.conf.eth0.temp_preferred_lifetime = 14400
net.ipv6.conf.eth0.use_deprecated = 0
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.eth0.optimistic_dad = 0
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.eth0.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.lo.accept_dad = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.force_tmo = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry_delay = 1
net.ipv6.conf.lo.regen_retry_delay = 1
net.ipv6.conf.lo.router_solicit_delay = 1
net.ipv6.conf.lo.router_solicit_interval = 600
net.ipv6.conf.lo.router_solicit_max_interval = 1200
net.ipv6.conf.lo.router_solicits = -1
net.ipv6.conf.lo.rtr_probe_interval = 600
net.ipv6.conf.lo.suppress_frag_ndisc = 1
net.ipv6.conf.lo.temp_prefer_mpatemp = 1
net.ipv6.conf.lo.temp_valid_lifetime = 86400
net.ipv6.conf.lo.temp_preferred_lifetime = 14400
net.ipv6.conf.lo.use_deprecated = 0
net.ipv6.conf.lo.use_tempaddr = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.lo.accept_ra_mtu = 1
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.lo.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.flowlabel_reflect = 0
net.ipv6.flowlabel_state = 0
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60
net.ipv6.tcp_metrics_hash_size = 512
net.ipv6.tcp_metrics_info = 1
net.ipv6.tcp_metrics_purge_interval = 600
net.ipv6.tcp_metrics_reg_interval = 1800
net.ipv6.tcp_metrics_req_interval = 300
net.ipv6.tcp_metrics_slack = 10
net.ipv6.tcp_metrics_sync_interval = 300
net.ipv6.tcp_metrics_timeout = 1800
net.ipv6.udp_metrics_hash_size = 512
net.ipv6.udp_metrics_info = 1
net.ipv6.udp_metrics_purge_interval = 600
net.ipv6.udp_metrics_reg_interval = 1800
net.ipv6.udp_metrics_req_interval = 300
net.ipv6.udp_metrics_slack = 10
net.ipv6.udp_metrics_sync_interval = 300
net.ipv6.udp_metrics_timeout = 1800
특정 매개변수도 검사할 수 있습니다. 예를 들어, sysctl을 사용하여 시스템 전체 IPv6 비활성화 상태를 확인하려면 다음을 사용할 수 있습니다.
sysctl net.ipv6.conf.all.disable_ipv6
출력은 매개변수 이름과 해당 값을 표시합니다.
net.ipv6.conf.all.disable_ipv6 = 0
이는 /proc 파일 시스템에서 확인한 내용과 일치하는, 시스템 전체에서 IPv6 가 활성화되었음을 확인합니다.
sysctl 명령은 /proc/sys/의 파일과 직접 상호 작용하지 않고 커널 매개변수를 보고 수정하는 편리한 방법입니다.
이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.
요약
이 랩에서는 네트워크 구성을 검사하여 Linux 시스템에서 IPv6 가 활성화되었는지 확인하는 방법을 배웠습니다. 먼저 ip addr 명령을 사용하여 네트워크 인터페이스 세부 정보를 표시하고 할당된 IPv6 주소를 식별했습니다. 이 명령은 시스템의 네트워크 인터페이스에 구성된 IPv4 및 IPv6 주소에 대한 포괄적인 보기를 제공합니다.
그 후, 이 가상 파일 시스템 내의 특정 파일을 검사하여 커널의 IPv6 상태를 확인하기 위해 /proc/sys/net/ipv6 디렉토리를 탐색했습니다. 마지막으로, sysctl net.ipv6 명령을 사용하여 IPv6 와 관련된 다양한 커널 매개변수를 검사하여 시스템의 IPv6 설정 및 구성에 대한 더 깊은 통찰력을 제공했습니다.



