허리케인 전기 터널을 사용하여 dnsmasq로 네트워크에 IP 제공

허리케인 전기 터널을 사용하여 dnsmasq로 네트워크에 IP 제공

나는 Ubuntu 18.04, Firewalld(UFW는 라우터로 사용하기에 적합하지 않음), /networks/interfaces(netplan에는 목적에 부적합하게 만드는 버그가 있음) 및 DHCP 및 DNS용 dnsmasq를 실행하는 x86 상자에서 네트워크를 실행합니다.

PD와 함께 ipv6을 실행하는 ISP가 있었고 나는설정은 여기서. 현재 ISP는 IPV6을 지원하지 않으므로 허리케인 일렉트릭을 ​​통해 라우터에 터널을 설정했습니다. 이는 설정되었으며 아마도 ping이 가능하므로 작동할 것입니다.

외부 인터페이스로 enp1s0이 있고 다른 모든 인터페이스는 함께 브리지되어 나머지 네트워크를 br0으로 제공합니다. 또한 he-ipv6을 터널로 사용하고 어떤 것과도 연결되지 않음

현재 라우터는 두 개의 서로 다른 네트워크 세그먼트(다른 모든 사용자를 위한 192.168.1.x)와 DMZ에 라우터가 있는 192.168.2.x의 자체 테스트 네트워크가 있는 ISP 라우터 뒤에 있습니다. 이것해서는 안 된다문제가 될 수 있습니다.

문제는 dnsmasq를 계속 사용하고 싶지만 이를 설정하는 방법에 대한 문서 자금 조달에 어려움을 겪고 있다는 것입니다.

지금 내가 가지고 있는 것은 다음과 같습니다.

  • /etc/networks/interfaces의 아래 내용을 포함하여 허리케인 일렉트릭 웹페이지의 지침에 따라 라우터에 ipv6을 설정했습니다.
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:470:YY:YYYY::2
        netmask 64
        endpoint 216.218.221.6
        local xxx.xxx.x.xxx
        ttl 255
        gateway 2001:470:YY:YYYY::1

이것은 작동합니다. ipv6.google.com 및 기타 알려진 ipv6 사이트에 ping을 보낼 수 있습니다. IP를 얻을 수 없는 것 같습니다.다른 것.

나는 노력했다

##For HE
enable-ra
dhcp-range = 2001:470:YY:YYYY::
dhcp-option=option6:dns-server,[2001:470:20::2],[2001:4860:4860::8888]

그러나 분명히 구문이 잘못되었습니다.

라우터에서 IP를 가져오는 클라이언트와 br0에 대한 IPv6 주소를 어떻게 얻나요?

답변1

다른 모든 것보다 먼저:

IPv4에서와 마찬가지로 각 링크에는 자체 서브넷 접두사가 필요합니다. "터널 끝점" 은 2001:470:YY:YYYY::/64특히 귀하와 허리케인 사이의 링크를 위한 것입니다(즉, IPv4 용어로 "WAN 주소"를 위한 것입니다). LAN에서는 재사용할 수 없습니다. 후자의 경우 터널 설정 페이지에 있는 "라우팅된 IPv6 접두사" 중 하나가 필요합니다. 이는 DHCPv6-PD 위임 접두사와 동일합니다.

일반적으로 각 LAN에는 표준 SLAAC 기반 주소 할당이 작동할 수 있도록 /64 크기의 서브넷 접두사가 있습니다(많은 클라이언트, 특히 Android는 DHCPv6 기반 주소 할당을 지원하지 않습니다). 따라서 여러 서브넷을 계획하는 경우 "/48 할당"을 선택하여 적절한 양(64ki)/64의 접두사를 얻습니다.

(이미 /48을 할당한 경우에는 "/64 할당"을 사용할 필요가 없습니다.했다"Assign /64"를 사용합니다. 접두사는 다음과 같습니다.약간"터널 끝점" 접두사와 다릅니다. 헷갈리는 경우가 많습니다.)


2001:470:ZZ::/48과 같은 고유한 범위가 있으면 그 중에서 /64를 선택합니다(0부터 ffff까지, 예: 2001:470:ZZ:1::/64) 이를 인터페이스 br0와 dnsmasq 구성에 사용하세요.

enable-ra
dhcp-range = 2001:470:ZZ:1::, ra-stateless
dhcp-option = option6:dns-server, [2001:470:20::2], [2001:4860:4860::8888]

앞서 언급했듯이 많은 클라이언트(특히 Android)지원하지 않는다DHCPv6을 통한 주소 할당. SLAAC가 필요하므로 다음 중 하나 이상이 필요합니다.slaac또는ra-stateless'dhcp-range' 구성에서. ('ra-stateless' 모드는 SLAAC 클라이언트에게 Windows에 유용한 DHCPv6에서 DNS 설정을 계속 가져올 수 있음을 추가로 알려줍니다. 선택에 관계없이 dnsmasq는 Android용 SLAAC-RDNSS를 통해 자동으로 DNS 서버를 제공합니다.)

그러나br0(또는 LAN 인터페이스가 무엇이든) IP 주소를 정적으로 할당해야 합니다. 커널이 자체 멀티캐스트를 수신하는지, 아니면 이에 주의를 기울이는지 잘 모르겠습니다. 어쨌든 나는 의심한다.dnsmasq 자체일치하는 주소가 없는 인터페이스에서는 실행을 거부할 수 있습니다(이미 IPv4에서와 마찬가지로).

iface br0 inet6 static
    address 2001:470:ZZ:1::1/64

iface br1 inet6 static
    address 2001:470:ZZ:2::1/64

dnsmasq를 실행한 후에는 rdisc6 eth0다른 Linux 시스템에서 사용하여 라우터 광고의 내용을 요청하고 표시하세요. "라우터 수명"이 0이 아닌지 확인하세요. 하나 이상의 "접두사"(/64, 온링크, 자율, 0이 아닌 유효 시간이어야 함) 그리고 이는 fe80::*전역 주소가 아닌 링크 로컬 주소에서 비롯됩니다 .

관련 정보