IPv4를 브리지하고 IPv6을 동시에 라우팅하는 방법은 무엇입니까?

IPv4를 브리지하고 IPv6을 동시에 라우팅하는 방법은 무엇입니까?

내 ISP가 나에게 권한을 부여했습니다.하나IPv4 주소와 IPv6 접두사는 여러 네트워크로 세분화됩니다.

              +--------------+
              |              | eth1
              |              |---------- <IPv6 network>
              |              |
         eth0 | Linux Router | eth2
ISP ----------|              |---------- <IPv6 network>
              |              |
              |              | eth3
              |              |---------- <IPv6 network>
              +--------------+

바로하나IPv6 네트워크에 연결된 노드는 eth1IPv4 주소를 갖는 이점을 누릴 수 있습니다.

라우터가 필요한 것 같아요다리IPv4 트래픽 및노선IPv6 트래픽. 아니요?

프록시 ARP에 대해 들어본 적이 있지만 라우터에 다른 IPv4 주소를 제공해야 한다고 알고 있습니다. 그렇지 않으면 ISP의 v4 트래픽과 상호 작용을 시도하지 않습니다. 맞죠? 다시 말하지만 v4 주소만 있습니다.

일반 브리징도 옵션이 아니라고 생각합니다. 레이어 2이고 IPv4 트래픽과 IPv6 트래픽의 차이를 구분할 수 없기 때문입니다. IPv4를 브리지하면 IPv6도 브리지하게 되어 현재 IPv6 설정이 중단됩니다.

트래픽을 개인 네트워크로 강제로 NAT하고 해당 네트워크의 다른 주소를 노드에 할당해야 합니까? 더 직접적인 옵션이 있습니까?

답변1

(이 모든 명령은 Linux 라우터에서 실행되어야 합니다.)

1단계: 두 인터페이스 사이의 모든 트래픽을 라우팅하는 것처럼 정상적으로 브리지를 생성합니다.

ip link add name br0 type bridge
ip link set br0 up
ip link set eth0 master br0
ip link set eth1 master br0

2단계: ebtables 규칙을 통해 커널에 IPv4 트래픽은 브리지되어야 하고 IPv6 트래픽은 라우팅되어야 함을 알립니다.

ebtables -t broute -A BROUTING -p ipv4 -j ACCEPT
ebtables -t broute -A BROUTING -p ipv6 -j DROP

(BROUTING 체인에서 "ACCEPT"는 브리징을 의미하고 "DROP"은 브릿지 무시를 의미합니다.)

Linux 라우터의 인터페이스에는 IPv4 주소가 필요하지 않습니다.

몇 가지 문제가 있으므로 이 솔루션은 Virtualbox VM에서 테스트해서는 안 됩니다.브리지 오류br0일할 곳이 전혀 없습니다.

관련 정보