원본 게시물
내 Debian 컨테이너(LXD에서 실행)에 고정 IPv6 주소를 구성하려고 하는데 시스템이 내 구성을 계속 무시합니다.
현재 나의 /etc/network/interfaces
모습은 이렇습니다.
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
auto eth1
iface eth1 inet static
address 10.1.0.10/16
gateway 10.1.0.1
iface eth1 inet6 static
address fd01::10/64
gateway fd01::1
autoconf 0
정적 IPv4 구성 및 IPv6(eth0의)에 대한 DHCP 옵션은 다음 ip addr
명령에 표시된 대로 제대로 작동합니다.
76: eth0@if77: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:53:50:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.0.0.10/16 brd 10.0.255.255 scope global dynamic eth0
valid_lft 84286sec preferred_lft 84286sec
inet6 fd00::10/128 scope global
valid_lft forever preferred_lft forever
78: eth1@if79: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:83:c3:49 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.1.0.10/16 brd 10.1.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fd01::658:fe25:52de:cc45/64 scope global dynamic mngtmpaddr
valid_lft 3372sec preferred_lft 3372sec
하지만 내 시스템은 항상 정적 IPv6 구성 부분을 무시하고 미리 구성된 주소를 사용하는 대신 항상 자체 동적 IPv6 주소를 생성합니다. 위 출력은 또한 이 인터페이스의 IP 주소가 동적으로 생성되었음을 보여줍니다.
그러나 명령을 사용하여 고정 IPv6 주소를 설정하면 ip addr add fd01::10/64 dev eth1
작동하지만 이 문제에 대한 적절하고 영구적인 해결책은 아닙니다.
편집하다
(1)시스템 네트워크 관리자
이 명령은 networkctl list
다음 출력을 반환합니다.
IDX LINK TYPE OPERATIONAL SETUP
WARNING: systemd-networkd is not running, output will be incomplete.
(...)
16 eth0 ether n/a unmanaged
18 eth1 ether n/a unmanaged
(...)
나는 이것이 시스템 네트워크 관리자가 비활성화되었음을 의미한다고 생각합니다.
(2)/etc/init.d/networking
/etc/init.d/networking
컨테이너를 다시 시작하고 서비스 로그를 가져오면 systemctl status networking.service
다음 메시지가 표시됩니다 .
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2020-02-08 00:22:06 UTC; 1min 31s ago
Docs: man:interfaces(5)
Process: 31 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 31 (code=exited, status=1/FAILURE)
Feb 08 00:22:06 Core dhclient[112]: message status code Success: "all addresses still on link"
Feb 08 00:22:06 Core ifup[137]: RTNETLINK answers: File exists
Feb 08 00:22:06 Core ifup[31]: ifup: failed to bring up eth1
Feb 08 00:22:06 Core systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Feb 08 00:22:06 Core systemd[1]: networking.service: Failed with result 'exit-code'.
Feb 08 00:22:06 Core systemd[1]: Failed to start Raise network interfaces.
정적 IPv6 주소를 사용하도록 eth0을 구성하면 eth0에서도 오류가 발생합니다. 나는 다음을 통해 이 오류 메시지를 발견했습니다.이것고정 IPv6 주소 구성을 위한 튜토리얼입니다.
(3)호스트 시스템
처음에 내가 생각하지 못한 한 가지는 문제가 내 호스트 운영 체제와 관련이 있을 수 있다는 것입니다. 그러므로 나는 내 호스트 시스템이 맞춤형 커널을 갖춘 젠투라고 쓰지 않았습니다.
나는 똑같은 구성을 사용하지 않습니다. 내 일반 호스트(Gentoo)는 Debian 10을 사용하고, 내 ArchLinux 테스트 컴퓨터는 Debian 11을 사용합니다. 내 Gentoo 호스트에서 Debian 11을 사용할 때 잘 작동합니다. 또한 Debian 10을 사용하여 새 컨테이너를 생성하면 IP 구성이 예상대로 작동합니다.
아직 문제를 해결하지 못했지만 다른 호스트(이번에는 ArchLinux)에서 동일한 설정으로 테스트하면 문제 없이 작동했습니다. 구성은 실제로 동일하지만 호스트 시스템이 다르기 때문에 내 문제는 호스트 시스템의 잘못된 구성과 관련이 있다고 생각합니다(예: 다른 커널 기능을 활성화해야 함).
답변1
마지막으로 파일의 항목 순서를 변경하여 문제를 해결했습니다 /etc/network/interfaces
. 이제 다음과 같이 보입니다.
auto eth1
iface eth1 inet static
address 10.1.0.10/16
gateway 10.1.0.1
iface eth1 inet6 static
address fd01::10/64
gateway fd01::1
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
정적 항목을 먼저 구성하면 모든 것이 잘 작동합니다.
답변2
완전한 답변을 드릴 수는 없을 것 같습니다. 조사해 볼 사항 몇 가지만 말씀드리겠습니다.
귀하의 구성이 무시되는 것처럼 보이지는 않지만 무언가에 의해 재정의되는 것처럼 보입니다. IPv6 주소는 FDxx::
로컬 주소 IP로 시작됩니다.. 일반적으로 구성되지 않은 인터페이스에는 링크 로컬 주소( 로 시작 FE80::
)와 기타 주소가 있습니다. 그러나 귀하의 시스템에는 이러한 내용이 표시되지 않습니다. FDxx::
주소가 무작위로 표시되지 않으므로무엇이는 이미 구성되어 있습니다.
이전에 여러 네트워크 관리자가 있는 Debian 기반 배포판에 문제가 있었습니다. 특히 데비안의 한 브랜치에서는 다음과 같이 제공됩니다.비글 뼈 블랙, 라는 패키지가 있습니다.흔한일반 데비안과 함께 제공되는 DHCP 클라이언트도 마찬가지입니다.
귀하의 시스템에 IPv6 네트워크 구성을 무시할 수 있는 다른 것이 있는지 확인하겠습니다.
답변3
iface enp0s31f6 inet6 static
(주소, 넷마스크 및 게이트웨이 사용)에서 동일한 문제가 구성되었지만 /etc/network/interfaces
시스템이 시작되면 ip addr
링크 로컬 IPv6 주소만 표시되었습니다.
나는 다음의 출력을 확인했습니다 sudo systemctl status networking.service
.
root@redacted ~ # systemctl status networking.service
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2020-09-02 14:44:47 CEST; 1min 45s ago
Docs: man:interfaces(5)
Process: 467 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 467 (code=exited, status=1/FAILURE)
Sep 02 14:44:47 lh-mhk01 systemd[1]: Starting Raise network interfaces...
Sep 02 14:44:47 lh-mhk01 ifup[509]: /bin/sh: 1: route: not found
Sep 02 14:44:47 lh-mhk01 ifup[467]: ifup: failed to bring up enp0s31f6
Sep 02 14:44:47 lh-mhk01 systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 14:44:47 lh-mhk01 systemd[1]: networking.service: Failed with result 'exit-code'.
Sep 02 14:44:47 lh-mhk01 systemd[1]: Failed to start Raise network interfaces.
이 줄을 주목하세요
Sep 02 14:44:47 lh-mhk01 ifup[509]: /bin/sh: 1: route: not found
route
해결책: 이 명령이 포함된 패키지를 설치하십시오.
sudo apt install net-tools
다시 시작하면 IPv6 주소가 올바르게 구성됩니다.