내 ISP(comcast)는 접두사를 위임하고, 내 라우터는 접두사 위임(pd)을 따라 LAN으로 전달합니다. 내 데비안 컴퓨터는 EUI-64 주소를 사용하여 접두사를 받고 추가합니다. 좋은데 별로 기억에 남지는 않네요. 나는 PD 접두사 내에 추가 "허영" 주소를 갖는 것을 선호합니다.
일부 특이성:
- PD는 (예: 2601:8:abcd:abcd/64)입니다.
- 내 Linux 상자는 eui-64: 2601:8:abcd:abcd:DEAD:BEff:feEF:CAFE(MAC DE:AD:BE:EF:CA:FE의 경우)를 자동 구성합니다.
내가 원하는 것은 2601:8:abcd:abcd::2 인터페이스를 정적 전역 주소로 수동으로 생성하는 것입니다. 그러나 Comcast 접두사 위임이 변경되면 인터페이스가 새로운 위임 접두사를 채택하고 정적 접미사를 사용하도록 하십시오.
답변1
내 생각에 당신이 찾고 있는 것은 다음과 같습니다.
ip token set ::dead:beef/64 dev eth0
내가 이해한 바로는 IP6 주소를 얻기 위해 일반적으로 실행하는 모든 작업을 실행하기 전에 이를 실행하고 0:0:dead:beef
일반 EUI-64 대신 사용됩니다.
이상하게도 이는 해당 링크 로컬 주소를 추가하지 않고 대신 접두사와 함께 일반 EUI-64를 추가하는 것 같습니다 fe80::/64
. 다음을 사용하여 이 문제를 수동으로 해결할 수 있습니다.
ip addr flush scope link dev eth0
ip addr add fe80::dead:beef/64 dev eth0
접미사, 접두사 크기 및 인터페이스( ::dead:beef
, /64
, eth0
)를 적절하게 바꿉니다.
답변2
그 동안 Network Manager는 거의 모든 GNU/Linux 배포판에서 기본적으로 사용됩니다(다음에 따라).http://news.softpedia.com/news/networkmanager-1-4-adds-support-for-setting-ipv6-tokenized-interface-identifiers-507601.shtml) 나는이 다른 토론을 다음에서 생각했습니다.https://unix.stackexchange.com/a/403541/259695도움이 될 수 있습니다. 토큰은 다음과 같이 설정할 수 있습니다.
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 "::dead:beef" # or "::2" - as you like
IPV6_TOKEN=::dead:beef
재부팅 후에도 유지되도록 /etc/sysconfig/network-scripts/ifcfg-eth0에 기록됩니다 . 이를 즉시 적용하려면 인터페이스를 다시 시작하십시오.
nmcli connection up id eth0 # restart
답변3
네트워크 접두사를 알리는 것 외에도 상태 저장 DHCPv6 서비스를 사용해야 합니다.
DHCPv4와 유사하게 상태 저장 모드의 DHCPv6 서버는 원하는 범위의 주소를 호스트에 할당하며 범위는 매우 작을 수 있습니다(예: 2601:8:abcd:abcd::10-2601:8:abcd:abcd::). 99. 나는 사용해왔다dnsmasq내 라우터에서.
일반적으로 DHCPv6에 의해 할당된 주소 외에도 호스트는 여전히 유니캐스트 IPv6 주소를 자동으로 생성합니다. 각 인터페이스에는 두 개(또는 그 이상)의 IPv6 주소가 있습니다. 라우터 구성을 수정하여 해당 동작을 끌 수 있습니다. 자율 주소 구성 플래그를 비활성화하면 문제가 해결됩니다. 그러나 대부분의 Android 장치가 IPv6 주소를 얻을 수 없게 됩니다. Android(적어도 KitKat 4.4.4 이상)는 여전히 DHCPv6을 제대로 지원하지 않습니다.
답변4
이 질문에 아직 답변이 없었다니 믿을 수가 없네요!
엄청난위르겐의 답변하지만 NetworkManager 대신 네트워크를 렌더링하기 위해 네트워크를 사용하는 서버에는 적용할 수 없습니다.
자체 조정, 반정적 IPv6이 필요한 서버의 경우 다음 행을 추가해야 합니다.
ipv6-address-token: "::ace:face"
netplan yaml의 인터페이스 설명에. 예를 들어
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
ipv6-address-token: "::ace:face"
addresses:
- <ipv4 static address>
nameservers: ...
/etc/sysctl.conf
그러나 IP 전달이 활성화된 경우 네트워크에 의한 기본값 비활성화를 재정의하려면 다음 줄을 추가해야 합니다 accept_ra
. 논리(라우터라면 다른 라우터의 ra를 허용하면 안 됨)는 의미가 있지만 어떤 경우에는 적용되지 않습니다.
net.ipv6.conf.eth0.accept_ra=2
sysctl conf의 행은 IP 전달 설정에도 불구하고 라우터 알림(ra)을 강제로 수락합니다. ra가 위임된 접두사를 알려주기 때문에 이는 필수적입니다.
netplan의 IPv6 주소 토큰 템플릿 라인은 라우터가 제공한 접두사와 지정된 주소를 사용하여 주소를 생성하는 IPv6 주소를 생성하기 위한 것입니다. 따라서 우리는 다음과 같은 형태의 주소로 끝납니다.
<delegated prefix>::ace:face/<bit length of netmask>
그래도 완전히 정적이지는 않지만 예측 가능하며 접두사가 변경될 때 모든 서버를 재구성할 필요가 없습니다.