16.04에서 안정적인 IPv6 주소를 얻으려면 어떻게 해야 합니까?

16.04에서 안정적인 IPv6 주소를 얻으려면 어떻게 해야 합니까?

내 홈 서버를 가리키는 도메인 이름이 있습니다. Wily를 통한 모든 Ubuntu 릴리스에서는 기본적으로 AAAA 레코드에 사용할 수 있는 안정적인 EIU-64 주소가 있었습니다. 그런데 Xenial을 설치한 후 기본적으로 안정적인 주소를 얻지 못하는 것 같습니다.

joejoe@myserver:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:24:1d:d2:e3:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.101/24 brd 192.168.0.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 2601:280:3068:2945:74ed:b303:6474:6e29/64 scope global temporary dynamic
       valid_lft 6965sec preferred_lft 3363sec
    inet6 2601:280:3068:2945:ac34:ea15:4340:29a4/64 scope global temporary deprecated dynamic
       valid_lft 6965sec preferred_lft 0sec
    inet6 2601:280:3068:2945:bdfd:6253:b07e:1308/64 scope global mngtmpaddr noprefixroute dynamic
       valid_lft 6965sec preferred_lft 6965sec
    inet6 fe80::dc3e:6127:bd4e:18b/64 scope link
       valid_lft forever preferred_lft forever

보시다시피 모든 inet6주소 의 scope global수명은 제한되어 있습니다. EIU-64 주소를 다시 얻을 수 있는 방법이 있습니까? 아니면 도메인 이름 기록에 사용할 수 있는 안정적인 주소를 얻을 수 있는 다른 방법이 있습니까?

답변1

방금 이걸 알아냈어요. 의 각 연결에 대해 /etc/NetworkManager/system-connections/다음 속성을 설정해야 합니다.

[ipv6]
addr-gen-mode=eui64

stable-privacy16.04의 NetworkManager는 설정 에 대한 기본값을 설정하는 것으로 나타납니다 addr-gen-mode.

답변2

여기에 있는 다른 답변은 약간 불완전합니다. 그렇지 않으면 NetworkManager 구성을 변경해도 도움이 되지 않습니다.가지다하나(실제로는 문제입니다. 아래 참조)와 IPv6 개인 정보 보호 확장을 비활성화하는 것은 실제로 다소 관련이 없습니다(다시 말하지만, 부팅할 때마다 안정적인 IPv6 주소가 변경되는 경우 추가 개인 정보 주소를 제거해도 도움이 되지 않습니다).

자세히 설명된 대로이 스레드, 기본적으로 16.04를 새로 설치하면 유선 연결을 사용하는 경우 약간의 감독이 발생합니다. NetworkManager는 훌륭하게 작동하지만 일시적인 "임시" 구성을 자동으로 생성합니다. 즉, 일관적인 IPv6 주소로 해시하는 데 사용된 GUID가 저장되지 않으므로 부팅할 때마다 새 GUID를 얻게 됩니다. NetworkManager로 이동하여 유선 연결에서 "편집"을 누르고 변경 사항 없이 저장하면 저장된 GUID와 함께 실제 NM 구성이 생성되므로 부팅할 때마다 동일한 IPv6 주소를 얻게 됩니다.

이 주소는 RFC7217 주소(GUID, 접두사 등의 암호화 해시)이므로 부팅할 때마다 안정적이지만 MAC 주소를 주소에 직접 포함하는 종류는 아닙니다. 해당 EUI64 주소 중 하나를 원할 경우,이 질문에 대한 다른 답변변경하는 방법을 자세히 설명합니다.

답변3

Ubuntu 16.04 및 이전 릴리스에서는 항상 EIU-64가 기본값으로 설정되어 있으므로 서버의 경우 이를 비활성화해야 합니다. 데스크탑에서 개인정보 보호 주소를 사용하게 되어 기쁩니다.

따라서 다음과 같은 것이 필요합니다.

    sysctl -w net.ipv6.conf.all.use_tempaddr=0
    sysctl -w net.ipv6.conf.default.use_tempaddr=0
    sysctl -w net.ipv6.conf.default.use_tempaddr=0
    sysctl -w net.ipv6.conf.<devname>.use_tempaddr=0

그런 다음 ifdown/ifup. 결과적으로 MAC/IPv6 관계에 주목해 보세요.

$ ifconfig enp3s0 | egrep 'HWaddr|Global'
enp3s0    Link encap:Ethernet  HWaddr 74:d0:2b:90:8b:90  
          inet6 addr: 2501:300:d008:61c8:76d0:2bff:fe90:8b90/64 Scope:Global

다른 인터페이스가 아닌 일부 인터페이스에서 활성화해야 하는 경우 특정 인터페이스의 이름을 지정할 수 있습니다. 다음을 사용하여 목록을 볼 수 있습니다.

$ sysctl -a | grep tempaddr

프로덕션 서비스에는 네트워크 관리자를 권장하지 않습니다. 예를 들어 /etc/sysctl.conf와 같은 다른 것들은 잘 재생되지 않습니다. 그렇게 하려면 /etc/networking/interfaces에 고정 주소나 자동으로 구성된 주소에 대한 항목이 필요합니다. 나는 단지 다음을 사용하고 있습니다 :

auto enp3s0 
iface enp3s0 inet dhcp
iface enp3s0 inet6 auto
pre-up modprobe ipv6

물론 입맛에 맞게 조절하세요.

관련 정보