[unix] IPv6 주소 지정, 동적 접두사 정적 로컬 부분

네트워크의 라우터가 ISP가 할당 한 IPv6 접두사를 전달합니다. 이 접두사는 동적이지만 “매우 끈적”합니다.

기계가 RA에 광고 된 접두사를 자동으로 선택하고 싶지만 임의로 또는 MAC 주소를 기반으로 생성하지 않고 사용자 지정 로컬 부분과 결합합니다. 그렇게 쉬운 방법이 있습니까?



답변

이를 수행하는 두 가지 방법이 있습니다. 하나는 쉬운 길이고 다른 하나는 어려운 길입니다.

쉬운 방법은 네트워크에서 DHCPv6 서버를 실행하고 각 장치에 호스트 주소를 할당하는 것입니다. 또는 서버가 호스트 부분을 선택하게하십시오. 내가 본 DHCPv6 서버는 접두사가 변경 되더라도 동일한 호스트 부분을 유지합니다.

어려운 방법은 ip token토큰 화 된 인터페이스 식별자를 설정하는 것입니다. 이것은 다음과 같이 설명됩니다 :

IPv6 토큰 화 된 인터페이스 식별자 지원은 라우터 알림에서 글로벌 네트워크 접두사를 계속 가져 오는 동안 잘 알려진 호스트 부분 주소를 노드에 할당하는 데 사용됩니다. 토큰 화 된 식별자의 기본 대상은 DHCPv6 또는 SLAAC를 사용하지 않고 일반적으로 주소를 수동으로 구성하는 서버 플랫폼입니다. 토큰 화 된 식별자를 사용하여 호스트는 여전히 SLAAC를 사용하여 네트워크 접두사를 확인할 수 있지만 네트워크 접두사가 변경되면 자동으로 번호가 다시 매겨집니다. 토큰 화 된 IPv6 식별자는 <draft-chown-6man-tokenised-ipv6-identifiers-02> 초안에 설명되어 있습니다.

이것이 어려운 방법 인 이유는 Linux 에이 기능이 포함되어 있지만 Linux 배포에는 수동 또는 DHCP 구성 주소와 마찬가지로 구성을 지속적으로 유지하고 부팅시 적용하는 지원이 포함되어 있지 않기 때문입니다. 따라서 일부 배포판이 그렇게 될 때까지는 아마 잘 작동하지 않을 것입니다. NetworkManager 및 systemd-networkd에서 IPv6 토큰을 구성 할 수 있습니다. 최신 답변에는 특정 구성 지침이 있습니다.


마지막으로 ISP가 때때로 접두사를 변경하는 경우 네트워크 내에서 고유 한 로컬 주소를 사용하는 것이 좋습니다. 이런 식으로 모든 장치에는 항상 절대로 주소가 지정되어 서로 대화 할 수 있습니다. 일부 IPv6 지원 홈 / SOHO 라우터 (예 : OpenWrt)에는 전체 홈 네트워크에서 ULA를 활성화하는 옵션이 있습니다. 가정에 여러 라우터가있는 경우 ISP에 연결하는 라우터에서 활성화해야합니다.


답변

Michael은 매우 훌륭한 요약을 수행했으며 plugwash의 최근 팁은 CentOS 7 / RHEL (시스템 및 네트워크 관리자) 솔루션을 위해 몇 시간 동안 사냥 한 후에 찾을 수있는 최선의 방법이었습니다. nmcli에 익숙해지면 (주로 여전히 ifcfg와 ip를 사용하고있었습니다)-성공적으로 적용 할 수있었습니다.

그러나 https://developer.gnome.org/NetworkManager/stable/settings-ipv6.html 에 따르면 더 깊이 파고 들어 NetworkManager는 IPv6 토큰 화 된 인터페이스 식별자를 속성으로 직접 지원합니다 (2016 년 8 월 1.4 일 릴리스 http://news.softpedia.com/ news / networkmanager-1-4-adds-support-for-setting-ipv6-tokenized-interface-identifiers-507601.shtml ).

따라서 네트워크 관리자 IPv6 설정을 무시하도록 설정할 필요는 없지만 설정을

nmcli connection modify eth0 ipv6.method "auto" # if not already
nmcli connection modify eth0 ipv6.addr-gen-mode "eui64" # use interface token
nmcli connection modify eth0 ipv6.token "::2"

쓰기되는 IPV6_TOKEN=::2재부팅 살아 남기 위해 / 등은 / sysconfig / network-scripts /에이 ifcfg-eth0를합니다. 이것을 즉시 적용하려면 인터페이스를 다시 시작하십시오.

nmcli connection up id eth0  # restart


답변

Linux가이 기능을 지원하고 하위 수준 명령을 가리키는 지 확인한 Michael에게 감사합니다. 이 답변은 데비안 스트레치 데스크탑 (시스템 및 네트워크 관리자)에서 실제로 작동하게하는 방법을 다룹니다.

먼저 네트워크 관리자에서 연결을 편집하고 IPv6 설정을 무시하도록 설정하십시오.

이제 /etc/NetworkManager/dispatcher.d/pre-up.d/iptoken 파일을 작성하십시오. 파일은 루트, 권한 755 및 다음 내용을 소유해야합니다.

#!/bin/sh
ip token set ::2 dev eth0

eth0을 원하는 장치로 바꾸고 :: 2를 원하는 접미사로 바꾸십시오.


답변

리눅스에서는을 사용할 수 있습니다 systemd-network.

.network아래 에 파일을 만드십시오 /etc/systemd/network/somename.network.

[Match]
Name=e*

[Network]
DHCP=yes
IPv6Token=::1

e*시작하는 모든 인터페이스를 일치시키는 대신 e전체 인터페이스 이름을 입력 할 수 있습니다. DHCP {v4, v6}를 활성화 ::1하고 접미사로 사용합니다. IPv6 주소를 선택할 수 있지만 처음 64 비트는 0으로 설정해야합니다.

이 후 활성화하고 시작하십시오 systemd-networkd.service.


답변