뒤에 있는 LAN에 있는 시스템에 IPv6 연결을 제공해야 하는 간단한 라우터를 구성했습니다. 라우터에는 2개의 네트워크 인터페이스(eth0, eth1)가 있고 머신에는 1개(eth0)가 있습니다.
라우터의 eth0에서는 로컬 네트워크에만 액세스할 수 있고 eth1에서는 인터넷에 액세스할 수 있습니다. 모든 커널 매개변수를 구성했는데 정상적으로 작동합니다.
라우터의 IP는 fd00::1
라우터에 dhcpd를 설치하고 범위를 구성했습니다 fd00::100 - fd00::fffe
.
이 네트워크에서 일부 시스템을 시작하면 dhcpd에서 IP가 할당되지만 fd00::fffa
명백한 이유로 인터넷에 액세스할 수 없습니다. 경로가 누락되었습니다.
직접 경로를 추가하면 sudo route -6 add 2000::/3 gw fd00::1
재부팅할 때까지 머신이 인터넷에 액세스하기 시작합니다.
이 경로를 모든 머신의 init 스크립트에 직접 추가할 수 있지만, 이 네트워크에서 머신을 시작할 때 다른 어떤 것도 필요 없이 IPv6 인터넷에 액세스할 수 있도록 자동 구성하도록 하는 것이 좋습니다.
몇 가지 제안에 따라 라우터에 radvd도 설치하고 다음 옵션을 삽입했습니다.
route 2000::/3 {};
틀렸을 가능성이 높지만 문서나 예제를 찾을 수 없습니다. 작동하지 않습니다. IPv6 주소 할당을 위해 dhcpd 대신 radvd를 사용하면 전혀 작동하지 않습니다. dhcpd 시스템을 비활성화하면 일부 임의의 IPv6 주소가 자동 구성되고 서로 표시되지 않고 라우터를 ping할 수도 없습니다.
LAN에 있는 모든 시스템에 대해 IPv6을 자동 구성하도록 LAN을 어떻게 설정합니까?
참고: 각 컴퓨터에 공용 IPv6이 필요하지도 않고 NAT도 괜찮습니다.
답변1
나는 즉시 귀하의 구성에서 두 가지 문제를 발견했습니다. RFC 4193 주소는 전역적으로 라우팅할 수 없습니다. 이는 해당 주소가 외부 세계와 통신할 수 없음을 의미합니다.
물론 NAT를 사용할 수도 있지만 NAT는 수많은 문제를 일으키는 것으로 알려져 있습니다. NAT는 IP 주소 부족을 일시적으로 해결하기 위한 해결 방법입니다. IPv6은 이 문제를 해결합니다. 사람들이 NAT를 사용하여 해결하려고 시도한 다른 모든 문제에는 NAT를 포함하지 않는 더 나은 솔루션이 있습니다.
또한 RFC 4193의 사양에 따라 접두사가 생성되지 않았습니다. 관련 인용문:
로컬로 할당된 글로벌 ID는 의사 무작위 알고리즘을 사용하여 생성되어야 합니다.
네트워크 구성의 이러한 두 가지 문제로 인해 클라이언트가 외부와 통신할 수 없는지 여부는 테스트를 통해서만 알 수 있습니다. 최적이 아닌 IPv6 구성을 감지하고 감지된 경우 IPv6 사용을 완전히 피하는 소프트웨어가 있습니다. 일부 클라이언트 소프트웨어가 설정에서 IPv6 연결 사용을 거부할 가능성이 높습니다.
즉, 클라이언트가 RFC 4193 주소를 사용하여 외부와 통신하도록 하는 것이 불가능하지는 않습니다. radvd.conf
제가 예전에 잠깐 사용했던 파일 입니다 . 이 구성을 사용하면 일부 클라이언트는 할당된 RFC 4193 주소를 사용하여 외부 통신을 시도했습니다.
interface wlan0 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix fdbd:5df9:dca3::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
그러나 이 구성은 모든 클라이언트에서 작동하지 않습니다. Android를 실행하는 클라이언트로 다시 테스트했습니다. 전화기에 IPv6 주소가 구성되어 있지만 외부 통신에 IPv6을 사용하려고 시도하지 않았습니다.
그런 다음 접두사를 로 변경했습니다 2001:db8:dca3::/64
. 이 시점에서 전화기는 IPv6 패킷을 게이트웨이로 보내기 시작했습니다. 따라서 Android는 이러한 방식으로 RFC 4193 주소 사용을 거부하는 플랫폼의 한 예입니다.