IPv6 전달을 활성화하면 호스트에서 보낸 이웃 검색 패킷에 "IsRouter" 플래그가 설정된다는 것을 문서에서 확인했습니다. 실제로 전달이 활성화되면 "라우터 동작이 가정됩니다"라고 명시되어 있습니다.
이는 좋은 논리처럼 보일 수 있지만 IPv6 NAT의 극단적인 경우를 배제합니다.(예, 드물어요). 예를 들어 ULA 서브넷에서 NAT 가상 네트워크를 실행하는 컨테이너 호스트(Docker)입니다 fc00::/64
. 내부 네트워크는 모두 컨테이너 소프트웨어(Docker)로 구성되며 ND를 사용하지 않습니다. 그러나 외부 LAN에서 호스트는 단지 호스트일 뿐이며 다른 곳으로의 라우터는 아닙니다.
호스트가 자신을 라우터로 광고하는 것은 거의 의미가 없습니다.
호스트가 에 대한 경로가 있는 LAN에 광고하고 있는지는 알 수 없습니다 fc00::/64
. 동일한 서브넷에 대한 액세스를 브로드캐스팅하는 동일한 LAN에 많은 호스트가 있을 수 있으므로 이는 좋지 않을 수 있습니다.
특히 ND 패킷에 대해 forwarding
다른 가정을 하지 않고 IPv6를 활성화하는 방법이 있습니까 ?IsRouter
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
forwarding - INTEGER
Configure interface-specific Host/Router behaviour.
Note: It is recommended to have the same setting on all
interfaces; mixed router/host scenarios are rather uncommon.
Possible values are:
0 Forwarding disabled
1 Forwarding enabled
FALSE (0):
By default, Host behaviour is assumed. This means:
1. IsRouter flag is not set in Neighbour Advertisements.
2. If accept_ra is TRUE (default), transmit Router
Solicitations.
3. If accept_ra is TRUE (default), accept Router
Advertisements (and do autoconfiguration).
4. If accept_redirects is TRUE (default), accept Redirects.
TRUE (1):
If local forwarding is enabled, Router behaviour is assumed.
This means exactly the reverse from the above:
1. IsRouter flag is set in Neighbour Advertisements.
2. Router Solicitations are not sent unless accept_ra is 2.
3. Router Advertisements are ignored unless accept_ra is 2.
4. Redirects are ignored.
Default: 0 (disabled) if global forwarding is disabled (default),
otherwise 1 (enabled).