DHCPv6-PD 서버에서 위임 된 접두사를 기반으로 radvd, dhcpd6, 라우팅 및 / 64 서브넷을 구성하는 방법은 무엇입니까?


10

내 ISP가 IPv4 / IPv6 듀얼 스택 서비스를 시작했습니다. IPv4 / IPv6 인터넷을 연결하기 위해 거의 모든 사용자가 일반적으로 ISP가 임대 한 CPE를 사용합니다. 그러나 라우터에는 많은 역할 (많은 iptables 규칙 및 3 개의 이더넷 인터페이스, http 리버스 프록시, http 캐시, memcached, smtp / pop 서버 및 DNS 프록시)이 있기 때문에 그러한 CPE 대신 Linux 라우터를 사용하고 싶습니다. IPv4 / IPv6 듀얼 스택 라우터가되도록하고 싶습니다.

내 라우터

  • CentOS6.0 i686
  • WAN의 경우 eth0
  • LAN의 경우 eth1,2
  • CentOS 업데이트 저장소에서 "# yum install dhcp"로 설치된 ISC dhcp (버전 4.1.1)
  • CentOS 기반 저장소에서 "# yum install radvd"로 설치된 radvd (버전 1.6)
  • [편집] ISC dhclient를 사용하는 이유는 라우터가 일부 ISP 관련 정보가 포함 된 공급 업체별 정보 옵션을 얻기 위해 요청 및 요청 메시지에 DHCPv6 옵션 16 (공급 업체 클래스)을 보내야하기 때문입니다. SIP 전화 번호, 펌웨어 서버 주소). ISC dhclient에서 옵션 16을 설정하는 방법을 알고 있지만 WIDE-dhcpv6에서는 옵션을 모릅니다. 그리고 ISC dhclient에서 "id-assoc"과 같은 설정을 찾을 수 없습니다.

내 목표

  • / 48 접두사가 eth0의 DHCPv6-PD (DHCPv6 접두사 위임) 클라이언트 (dhclient)에 위임되었습니다.
  • IPv6 기본 경로는 ISP로 설정되어 있습니다. ISP의 DHCPv6 서버의 링크 로컬 주소를 기본 경로로 고려해야합니다.
  • 각 LAN I / F (eth1 / eth2)에 하나의 / 64 서브넷과 하나의 전역 주소 (위임 된 접두사에 있음)가 할당됩니다.
  • eth1 및 eth2의 radvd는 할당 된 / 64 서브넷을 기반으로 RA를 발표합니다.
  • eth1 및 eth2의 dhcpd6는 ISP의 DHCPv6 서버에서 수신 한 추가 네트워크 정보 (이름 서버, 도메인 검색 목록 및 sip 서버-주소)를 발표합니다.

내 현재 구성

/ etc / sysconfig / network

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes

/ etc / sysconfig / network-scripts / ifcfg-eth0

DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none

# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"

# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no

/etc/dhcp/dhclient6.conf

script "/sbin/dhclient-script";
interface "eth0" {
        send dhcp6.reconf-accept;
        also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}

결과

"# service network restart"후에 DHCPv6-PD 클라이언트가 성공적으로 완료된 것 같습니다.

lease6 {
  interface "eth0";
  ia-pd xx:xx:xx:xx {
    starts 1312464004;
    renew 7200;
    rebind 10800;
    iaprefix 24xx:xxxx:xxxx::/48 {
      starts 1312464004;
      preferred-life 12600;
      max-life 14400;
    }
  }
  option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.reconf-accept ;
  option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
  option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
  option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
  option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}

질문

DHCPv6-PD 클라이언트가 / 48 접두사를 성공적으로 위임했습니다. 그러나 그 후

  • 라우터의 라우팅 테이블에서 IPv6 기본 경로를 설정하는 방법은 무엇입니까?
  • 위임 된 접두사를 기반으로 각 LAN I / F (eth1 및 eth2)에 글로벌 IPv6 주소 및 / 64 서브넷을 할당하는 방법은 무엇입니까?
  • 각 LAN I / F (eth1 및 eth2)에서 RA를 알리도록 radvd를 트리거하는 방법은 무엇입니까?
  • 각 LAN I / F에서 DHCPv6 서버 (dhcpd6)를 트리거하여 ISP의 DHCPv6 서버에서 수신 한 추가 네트워크 정보 (이름 서버, 도메인 검색 목록 및 sip 서버-주소)를 알리는 방법은 무엇입니까?

내 추측

"$ man dhclient"및 "$ man dhclient-script"에 따르면 dhclient-script 는 이러한 설정을 구성하는 데 사용되는 것으로 보이며 일부 후크를 제공합니다. 그러나 이제는 DHCPv6-PD 클라이언트에는 아무런 영향을 미치지 않습니다.

예, IPv6 네트워크 구성에 익숙하지 않지만 DHCPv6-PD 환경에 적합한 일부 스크립트를 작성해야 할 수도 있습니다. 누구나 dhclient-script에서 위의 설정을 알려주십시오. [편집] 실용적인 dhclient-script를 알고 싶습니다.

그리고 나는 특별한 고려가 필요하다는 것을 걱정한다. 예를 들어, 각 IPv6 주소에 선호 / 유효 수명이 있기 때문에 위임 된 접두사를 기반으로 LAN 인터페이스에 글로벌 IPv6 주소를 할당 할 때 IPv6 주소뿐만 아니라 위임에서 파생 된 수명도 할당해야합니다. 접두사의 선호 / 유효한 수명?

또한 DHCPv6 재구성이 발생할 때 LAN 인터페이스의 radvd 및 DHCPv6 서버를 재구성해야합니까? 어떤 후크를 사용해야합니까?

[편집] DHCPv6 재구성이 발생할 때 새로운 정보와 더 이상 사용되지 않는 정보를 모두 알리는 방법은 무엇입니까? radvd가 자동으로 이전 접두사가 사용되지 않는다고 발표 했습니까? DHCPv6 서버는 자동으로 이전 이름 ​​서버가 더 이상 사용되지 않습니까?

답변:


4

귀하의 질문에 대한 답변을 모르겠지만 DHCP 서버 주소를 기본 라우터로 사용하는 것에 대해 경고하고 싶습니다. 작동하면 우연입니다 ... IPv6에서 기본 경로는 DHCP가 아닌 RA에 의해 전달됩니다.

전달을 활성화하고 RA를 수락하고 RS를 전송해야합니다. 여기서 문제는 Centos6에 포함 된 커널이 그렇게 할 수 없다는 것입니다. 전달이 활성화되면 RA 수락 및 RS 전송이 비활성화됩니다. 그래도 관련 패치가 포함 된 CentosPlus 커널이 있어야합니다. http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756 의 메일 링리스트 스레드 / 메시지를 참조하십시오.

관련 sysctl.conf 설정은 다음과 같습니다.

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_defrtr=1
net.ipv6.conf.eth0.router_solicitations=1

2
실제로 accept_ra를 2로 설정하려고합니다 (라우팅이 활성화 된 경우에도 적용). 그렇지 않으면 커널은 라우터에서이를 무시합니다.
Kyle Butt

2
  • DHCPv6 PD를 사용하여 추가 서브넷을 가져 오기 전에 기본 (업스트림) 인터넷 연결에 따라 IPv6 기본 경로를 설정해야합니다. 실제로 업스트림 연결 방법에 대해서는 언급하지 않았으므로 도와 드릴 수 없습니다.
  • ISC 대신 WIDE DHCPv6 클라이언트를 사용하므로 구체적으로 수행하는 방법을 모르겠지만 ISC에는이 WIDE 구성 옵션과 동등한 기능이있을 것으로 기대합니다.

    id-assoc pd {
        prefix-interface eth0 {
            sla-id 1;
            sla-len 4;
        };
    };
    

    기본적으로 DHCP 클라이언트에게 서브넷을 내부 인터페이스에 할당하는 방법을 알려줍니다. 위의 구성은 내가 나를 (에 접두사 위임의 4 개 비트를 얻고있다 "라고 sla-len 4), 사용 가능한 첫 번째 서브넷을 (가지고 sla-id 1)와에 할당 eth0( prefix-interface eth0).

  • 적절한 interface스탠자를 사용 하여 radvd를 설정 하십시오 ( radvd.confMan 페이지 에는 좋은 예제가 있습니다). 그냥 작동합니다.
  • 나는 당신을 도울 수 없습니다. 테스트 외에도 DHCPv6 서비스를 사용하지 않습니다 (DHCP 서버에서 모든 DHCP 정보를 얻습니다).

답변 주셔서 감사합니다. 1. 업스트림 연결 방법은 이더넷 케이블을 FTTH GE-PON에 연결하는 것입니다. 지금은 DHCPv6을 통해 기본 IPv6 경로를 지정할 수있는 방법이 없습니다. DHCPv6 서버의 로컬 링크 주소를 기본 경로로 고려해야합니다.
takaomag 2

2. 언급하지는 않았지만 ISC dhclient를 사용하는 이유는 라우터가 일부 요청을 포함하여 공급 업체별 정보 옵션을 얻기 위해 요청 및 요청 메시지에 DHCPv6 옵션 16 (공급 업체 클래스)을 보내야하기 때문입니다. ISP 특정 정보 (SIP 전화 번호, 펌웨어 서버 주소). ISC dhclient에서 옵션 16을 설정하는 방법을 알고 있지만 WIDE-dhcpv6에서는 옵션을 모릅니다. 그리고 ISC dhclient에서 "id-assoc"과 같은 설정을 찾을 수 없습니다.
takaomag 2

2
3,4. DHCPv6 서버의 정보 (접두사 등)를 기반으로 radvd.conf 및 dhcpd6.conf를 구성하기 위해 일부 불량 스크립트를 작성할 수 있습니다. 그러나 DHCPv6 재구성이 발생하면 새로운 정보와 더 이상 사용되지 않는 정보를 모두 알리는 방법은 무엇입니까? radvd가 자동으로 이전 접두사가 사용되지 않는다고 발표 했습니까? DHCPv6 서버는 자동으로 이전 이름 ​​서버가 더 이상 사용되지 않습니까?
takaomag

어쨌든 실용적인 dhclient-script를 알고 싶습니다.
takaomag

답변에 대한 의견에이 모든 정보를 추가하지 마십시오. 질문에 추가하십시오 .
울다

-1

Wombie는 radv 및 라우팅 설정에 사용하는 것과 동일한 답변을 제공했습니다. Inet6은 DHCP 서버가 없어도 자체 구성이 가능하도록 설계되었습니다.

radvd 및 zeroconf로 처리 할 수 ​​있으므로 DHCPv6을 사용하지 않습니다. radvd는 이름 서버를 제공하도록 구성 할 수 있으며 /etc/resolv.conf에서 서버를 보급 할 수 있습니다. 새로운 버전의 radvd도 검색 목록 배포를 구현했습니다.

이름 서비스와 서버를 클라이언트에 배포하도록 avahi-daemon을 구성했습니다. 클라이언트가 서비스 검색을 수행 할 수 있어야합니다. 보드 전체에서 이중 스택 네트워크를 실행하면서 서비스 검색에 대한 많은 테스트를 수행하지 않았습니다.


DHCPv6 서버를 사용하든 radvd를 사용하든 DHCPv6 서버의 정보 (접두사 등)를 기반으로 dhcpd6.conf 또는 radvd.conf를 동적으로 구성하는 스크립트를 작성해야합니다. 그러나 DHCPv6 재구성이 발생하면 새로운 정보와 더 이상 사용되지 않는 정보를 모두 LAN 측 호스트에 알리는 방법은 무엇입니까? DHCPv6 서버의 새 정보 만 기반으로 새 dhcpd6.conf 또는 radvd.conf를 동적으로 구성하면 radvd가 자동으로 이전 접두사가 더 이상 사용되지 않는다고 알립니다. DHCPv6 서버는 자동으로 이전 이름 ​​서버가 더 이상 사용되지 않습니까?
takaomag

radvd는 :: / 64 접두사를 사용하여 인터페이스에서 주소를 자동으로 가져올 수 있습니다. 구성을 다시 작성할 필요가 없습니다. DNS 서버 및 검색 목록은 정적 데이터 여야합니다. IPv6 자동 구성은 마이그레이션 주소를 처리하도록 설계되었습니다. ISP가 전환을 얼마나 잘 지원하는지 모르겠습니다. DHCPv6을 보지 않았습니다.
BillThor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.