![라우팅된 IPv6 접두사를 가상 인터페이스로 사용](https://linux55.com/image/221860/%EB%9D%BC%EC%9A%B0%ED%8C%85%EB%90%9C%20IPv6%20%EC%A0%91%EB%91%90%EC%82%AC%EB%A5%BC%20%EA%B0%80%EC%83%81%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A1%9C%20%EC%82%AC%EC%9A%A9.png)
최근에 전용 서버 호스트를 "ReliableSite"에서 "Psychz"로 변경해야 했습니다. ARIN IPv6 할당을 게시하도록 요청했을 때 Psychz는 내 서버가 "라우터"로 사용될 것이라고 가정하고 이를 "라우팅" 블록으로 제공했습니다.
명확히 하기 위해 ARIN의 123::/48이 있다고 가정하고 "브리지" 구성의 서버 인터페이스에서 직접 123::/48을 사용하는 대신 Psychz에서 제공하는 234::를 통해 123::/48을 라우팅합니다. 567 IPv6 주소.
openSUSE에서 가상 인터페이스를 생성하고 123::/48 IPv6 설정을 시도했지만 외부에서 액세스할 수 없습니다. Rocky Linux와 FreeBSD에는 비슷한 문제가 있습니다.
서버 자체의 IP 주소만 사용하는 경우 Linux 서버에서 라우팅된 IPv6 블록을 사용하는 올바른 방법이 있습니까?
답변1
"경로"는 단순히 의미상류전체 접두사를 사용자에게 라우팅합니다(주소를 직접 ARP하는 대신 사용자를 "다음 홉" 게이트웨이로 사용). 이러한 패킷이 사용자에게 전달되면 사용자가 무엇을 하든 상관이 없습니다. 업스트림은 서버가 해당 패킷을 자체 주소로 처리하는지, 아니면 다른 곳으로 전달하는지 상관하지 않습니다.그리고여러분의 서버는 이러한 패킷이 ARP/ND를 통해 도착하는지 아니면 라우팅을 통해 도착하는지 전혀 신경 쓰지 않습니다.
즉, dummy0(또는 "lo")에 주소를 구성하는 것만으로도 충분합니다. Linux에서는 활성화해야 할 가능성이 높습니다.net.ipv6.conf.all.forwarding
당신이 아니더라도 sysctl을 통해진짜인바운드 인터페이스가 아닌 다른 인터페이스에서 전송된다는 사실을 제외하고 어디에서나 패킷을 전달하려면 IP 전달이 활성화되어야 하는 것 같습니다.
물리적 이더넷 인터페이스에서 주소를 /128로 구성하는 것도 옵션이며 위의 문제를 방지할 수 있습니다. (예, /48이 아니라 /128입니다.)
하지만 무엇보다도 먼저 tcpdump -n -i eth0 "net 123::/48"
,예실제로, 원하는 대로 업스트림에서 패킷을 수신하십시오. (ARIN에서 고유한 접두사를 얻은 경우 BGP를 실행하고 있다고 가정합니다. 세션이 작동 중인지 확인하세요.)
(만약에 대비해 tcpdump를 실행하여 -i all
실수로 라우팅했는지 확인하세요.당신의패킷이 올바른 게이트웨이가 아닌 다른 위치에 있습니다. 라우팅 테이블을 확인하여 BGP 데몬이 모든 항목에 대해 "...via unreachable"을 표시하지 않고 다음 홉을 확인할 수 있는지 확인하세요. )
다른 호스트와 공유 서브넷을 설정하지 않고 별도의 주소를 사용하려는 경우 dummy0 에 주소를 구성하는 것이 더 적절할 수 있지만 /128
이것이 중요하지는 않습니다.많은,하지만 /48은 이상합니다. (/48 접두사가 있지만 이것이 /48 서브넷이 있어야 한다는 의미는 아닙니다.)
(아니면 음,적어도/64로 구성합니다. 전체 /48을 인터페이스에서 직접 구성하는 것은 1) 약간 이상하고 2) 언제든지 문제가 발생할 가능성이 높습니다.하다더 작은 덩어리 중 일부를 다른 곳으로 라우팅하기로 결정했습니다. )