DHCPv4 Review

4个步骤

  1. DHCP Discover : Broadcast
  2. DHCP Offer : Unicast
  3. DHCP Request : Broadcast
  4. DHCP Acknowledge :Unicast

DHCP Server 需要提供的东西

  1. Unicast Address
  2. Subnet mask
  3. Default Router
  4. DNS Server

Terms

  • Prefix : 网络号 Network ID
  • Siffix : 主机号 Host ID

DHCPv6

  • DHCP 协议实际没有v6版本,IPv6 上的DHCP 依赖的是 ICMP协议中的 RS 和 RA
  • RA 的内容
    • Source IPv6 Address:我的Link Local IP Address
    • Destination IPv6 Address:FF02::1 所有设备的广播地址
    • 建议获取IPv6 地址的方式 —— 注意这里提供的是建议
      • Method1:SLAAC
      • Method2:SLAAC and a stateless DHCPv6 Server
        • Client 从网关的RA中的得到Prefix,会再发1个新的RS 到 FF02::1:2 (所有IPv6 Server的组播地址)获取DHCP信息(DNS)
      • Method3:Stateful DHCPv6 Server
    • 3种建议是通过3种Flag表示的
      • A Falg:Address Autoconfiguration
      • O Flag:Other configuration,从DHCPv6 服务器上获取除了GUA地址之外的其他信息(DNS)
      • M Flag:Managed Address configuration,从DHCPv6 服务器上获取除了网关的全部信息

Stateless vs Statefull

  • stateless :不提供地址和网关,只提供DNS
  • statefull:
    • 提供地址和DNS,不提供网关
    • 会记录哪个Client 分配了哪个地址
  • 其他没有提供的信息, 直接从RA中获取

Method1 Stateless Address Autoconfig —— 默认方式

  • A=1:使用SLAAC创建GUA
  • O=0:Stateless DHCPv6 Server 没有其他信息
  • M=0:不需要从 Stateful DHCPv6 Server 获取信息
  • Client 只能得到地址(Prefix)和Default-Route
    • ipv6 address autoconfig default
    • default 生成的默认路由,下一跳地址使用的是网关的 link local address ,不是GUA

Method2 SLAAC with Stateless DHCPv6

  • A=1 —— A默认就是1
  • O=1 —— 需要找Stateless DHCPv6 Server 获取其他信息,需要修改配置,在网关接口上开启O Flag
    • interface XX
    • ipv6 nd other-config-flag
  • M=0 —— 不需要找Statefull DHCPv6 Server
  • Client 发送1个标准RS(目标地址 FF02::2 )可以得到地址(Prefix),同时注意到O Flag = 1,所以会再发1个新的RS(这次的目标地址是 FF02::1:2 IPv6 DHCP Server的组播地址),DHCPv6 Server会返回对应信息(DNS,域名)
  • DHCPv6 Server可以和网关是同1台设备

Method3 SLAAC with Statefull DHCPv6

  • A=0,O=0,M=1 只有默认路由从网关获取,其他信息(包括Prefix)都找 statefull DHCPv6 Server
  • 在网关Router上开启M Flag
    • interface XX
    • ipv6 nd prefix 2001:db8:cafe:1::/64 no-autoconfig —— 设置A Flag 为0,不使用SLAAC
    • ipv6 nd managed-config-flag —— 设置M Flag 为1
  • 特殊命令
    • ipv6 nd autoconfig prefix —— 在 statefull 的链路上,默认情况下,即使分配的是/64(或其他) 的地址,接口和路由表里都只有 /128 的地址,无法路由。所以需要用这个命令使用原先的Prefix (/64)
    • ipv6 nd autoconfig default-route

DHCPv6 Relay Agent

  • 和 IPv4 中的 ip-helper 一致,客户端和Server 不在同1个网段,因为DHCP Discovery 是 2层信息,没有办法跨越3层。所以需要1个 helper,Router对其封装发给DHCP Server,或者反向解封发给CLient
  • 命令
    • ipv6 dhcp relay destination XXX