브리지 인터페이스를 위한 IPv6 SLAAC 구성

브리지 인터페이스를 위한 IPv6 SLAAC 구성

집에 있는 듀얼 스택 네트워크는 ISP에서 (대부분 고정된) 위임된 /56 접두사를 사용하여 라우터 광고를 사용하여 IPv6용으로 구성되었습니다. 따라서 내 모든 컴퓨터에는 라우터 광고를 통해 얻은 예측 가능한 글로벌 IPv6 주소가 있으며, 그 중 일부는 접두사가 변경될 때 DNS에 게시됩니다. 모든 것이 정상입니다.

최근에 나는 내 컴퓨터 중 하나의 구성을 변경하고 기본 eth0 인터페이스를 브리지하여 이 브리지에서 LXD 컨테이너를 시작할 수 있었고 해당 네트워킹은 동일한 방식으로 구성되었습니다(글로벌 IPv6 주소도 가져옴).

이 구성을 사용하면 더 이상 SLAAC용으로 구성된 eth0 인터페이스가 아니라 br0 브리지가 됩니다. 컨테이너가 시작되면 브릿지에 추가된 veth 인터페이스의 설정이 바뀌고, IPv6 주소 할당에 사용된 MAC 주소가 항상 내 eth0의 MAC 주소가 아니어서 호스트의 예측 가능한 글로벌 IPv6가 사라지는 경우가 있는데...

컨테이너 인터페이스의 MAC 주소를 강제로 적용할 수 있지만(모자 컨테이너가 예측 가능한 공용 IPv6을 사용하도록 허용) 브리지에 추가된 주소는 쌍의 반대편이고 해당 MAC 주소는 내가 이해하는 경우 커널에 의해 무작위로 생성됩니다. 옳은. 또한 브리지가 "가장 낮은" MAC을 선택하는 것처럼 보이기 때문에 eth0의 MAC 주소를 "낮은 숫자"로 강제하는 것도 고려했지만 그것이 작동할지는 잘 모르겠고 선택한 MAC 주소는 항상 eth0에 의해 생성된 주소보다 낮습니다. 커널.... ....

해당 컴퓨터에서 글로벌 IPv6 주소를 어떻게 예약할 수 있나요?

머신은 Alpine Linux를 실행하고 있으므로 시스템 네트워크 솔루션은 도움이 되지 않습니다.

답변1

대부분의 다른 가상 이더넷 유사 인터페이스와 마찬가지로 브리지의 MAC 주소를 수동으로 강제할 수 있습니다. 수동으로 설정하면 MAC 주소는 더 이상 변경되지 않습니다. 브리지 포트로 설정된 인터페이스에 따른 동적 변경은 더 이상 발생하지 않습니다.

내부적으로는 생성 시 이 작업을 수행할 수 있습니다.

ip link add name br0 address 12:34:56:78:9a:bc type bridge

또는 그 이후:

ip link set dev br0 address 12:34:56:78:9a:bc

이전 커널에서는 MAC 주소를 변경하기 전에 인터페이스를 종료해야 할 수도 있습니다.

호환 가능한 설정을 유지하려면 물리적 인터페이스의 MAC 주소를 재사용할 수 있지만 이 경우 다음을 수행해야 합니다.

  • 앞으로환경이더넷 0브리지 포트로

    또는 MAC 주소가 (동적으로) 상속된 주소와 동일하기 때문에 명령이 실제로 MAC 주소를 변경하지 않기 때문에 이는 MAC 주소를 수동으로 설정한 것으로 간주되지 않으며 동적 모드로 유지됩니다. 자세한 내용은 내 SU Q/A 답변을 참조하세요.Linux는 브리지 장치의 기본 MAC 주소를 어떻게 결정합니까?.

    고쳐 쓰다: OP가 발견한 대로위 아래라면bridge-hw이러한 목적으로 사용되는 키워드 (정확한 변형에 따라 다름)를 허용하고 bridge_hw브리지가 동적/상속 모드에 남아 있지 않도록 작업 순서를 올바르게 처리해야 합니다.

    해당 전용 옵션이 없을 경우 pre-up사용할 수 있으나, 해당 단계에서 해당 가상 인터페이스가 존재하지 않는 pre-up경우 pre-up먼저 브리지를 생성하는 명령이 필요할 수 있습니다. 물리적 인터페이스를 브리지 포트로 설정하기 전에 브리지에 MAC 주소를 설정하려면 순서를 확인해야 합니다. 효과를 멱등성으로 만들려면 || true해당 항목의 끝에 일부를 추가하는 것이 좋습니다.pre-up

  • IPv6를 강제로 비활성화이더넷 0인터페이스 - 현재브리지포트더 이상 독립적인 인터페이스가 아닙니다.

    systemctl -w net.ipv6.conf.eth0.disable_ipv6=1
    

    시스템의 어떤 부분도 난독화되지 않았는지 확인하세요.

추가 참고 사항: 최근 실행 중인 시스템에서는 인터페이스 MAC 주소에 따른 동적 동작이 발생하지 않습니다.체계왜냐하면체계가상 인터페이스 생성이 감지될 때마다(생성한 명령에 관계없이) 브리지를 포함한 모든 가상 인터페이스에 "임의의 안정적인" MAC 주소가 동적으로 할당되어 브리지 동작을 수동 모드로 전환합니다. 자세한 내용은 내 답변에 설명되어 있습니다.Linux가 서로 다른 PC의 서로 다른 브리지 장치에 대해 서로 다른 MAC 주소를 생성하도록 하는 방법은 무엇입니까?. Alpine이 OpenRC를 실행하는 경우 인터페이스에 따라 달라지는 기본 동적 동작이 계속 발생해야 합니다(따라서 수동 할당을 통해 재정의해야 함).앞으로환경이더넷 0브리지 포트 역할을 합니다(자체 MAC 주소가 재사용되는 경우).

관련 정보