有状态模式

组网需求

FortiGate作为DHCPv6服务器,FortiGate或PC为客户端,客户端通过DHCPv6获取IPv6地址以及DNS等信息,不通过RA进行自动配置。

网络拓扑

image-20230327181828232

FW1和FW2(或PC)直连,FW1作为DHCPv6服务器,FW2(或PC)为客户端,FW2(或PC)通过DHCPv6获取IPv6地址以及DNS等信息,不通过RA进行自动配置。

配置步骤

  1. FW1上配置IPv6地址2100::1/64,并关闭“无状态地址自动配置(SLAAC)”,开启“DHCPv6服务器”,配置DNS服务器,开启“状态服务器”,并配置分配IP范围。

    image-20230404100629520

    config system interface
        edit "port2"
            config ipv6
                set ip6-address 2100::1/64
                set ip6-allowaccess ping https ssh http
                set ip6-send-adv enable    //开启RA
                set ip6-manage-flag enable    //开启M Flag
                set ip6-other-flag enable    //开启O Flag
            end
        next
    en
    
    config system dhcp6 server
        edit 1
            set subnet 2100::/64
            set interface "port2"
            config ip-range
                edit 1
                    set start-ip 2100::65
                    set end-ip 2100::67
                next
            end
            set dns-server1 2100::64
        next
    end
    
  2. FW2上配置port2的“IPv6地址模式”为“DHCP”。

    image-20230404151310278

    config system interface
        edit "port2"
            config ipv6
                set ip6-mode dhcp
            end
        next
    end
    

结果验证

  1. 在FW2上查看DHCPv6获取的IPv6地址和DNS服务器地址,并自动添加了IPv6网关为FW1的port2的IPv6本地链路地址。

    注意:
    • FortiGate作为IPv6客户端时,获取IPv6地址后,默认路由的添加需要通过IPv6路由kernel表(get router info6 kernel)中看到。
    • 客户端添加的默认路由的下一跳为服务器端接口的IPv6本地地址,而非手工配置的IPv6地址。

    image-20230404151532074

    FW2 # config system interface
    FW2 (interface) # edit port2
    
    FW2 (port2) # get | grep ip6
        ip6-mode            : dhcp 
        ip6-address         : 2100::66/128
        ip6-allowaccess     : ping https ssh http 
        ip6-reachable-time  : 0
        ip6-retrans-time    : 0
        ip6-hop-limit       : 0
        vrip6_link_local    : ::
        ip6-dns-server-override: enable
    
    FW2 (port2) # get | grep DNS
    delegated-DNS1      : ::
    delegated-DNS2      : ::
    Acquired DNS1       : 2100::64
    Acquired DNS2       : ::
    Acquired DNS1       : 0.0.0.0
    Acquired DNS2       : 0.0.0.0
    
    FW2 # get router info6 kernel | grep gwy
    vf=0 tbl=254 type=01(unicast) protocol=2(kernel) flag=00450000 prio=1024 gwy:fe80::5200:ff:fe01:1 dev=4(port2) pmtu=1500
    
    FW1 # diagnose ipv6 address list | grep port2
    dev=4 devname=port2 flag=P scope=0 prefix=64 addr=2100::1 preferred=4294967295 valid=4294967295 cstamp=1790 tstamp=1790
    dev=4 devname=port2 flag=P scope=253 prefix=64 addr=fe80::5200:ff:fe01:1 preferred=4294967295 valid=4294967295 cstamp=1790 tstamp=1790
    
  2. 使用Windows PC替换FW2,来获取IPv6地址,可以看到Windows客户端获取到了2100::/64前缀的IPv6地址,并将FW1的port2的IPv6本地地址作为IPv6网关。

    image-20230403171629468

    image-20230404152030935

    image-20230404152140433

    FW1 # diagnose ipv6 address list | grep port2
    dev=4 devname=port2 flag=P scope=0 prefix=64 addr=2100::1 preferred=4294967295 valid=4294967295 cstamp=1790 tstamp=1790
    dev=4 devname=port2 flag=P scope=253 prefix=64 addr=fe80::5200:ff:fe01:1 preferred=4294967295 valid=4294967295 cstamp=1790 tstamp=1790
    
  3. FW1上查看DHCPv6地址分配情况。

    image-20230404153921478

    FW1 # exe dhcp6 lease-list port2
    Interface       DUID                                          IAID       IP/Prefix                      Expiry
    port2           00:01:00:01:2b:bc:4f:c8:00:0c:29:ae:55:70     100666409  2100::65                       Tue Apr 11 15:19:19 2023
    
    port2           00:03:00:01:50:00:00:02:00:01                 4          2100::66                       Tue Apr 11 15:25:13 2023
    
  4. 抓包查看整个流程。

    • 查看FW1发出的RA报文,可以看到RA中开启了M和O Flag,未开启A Flag(没有SLAAC prefix)。

      image-20230404153017005

    • FW2配置接口模式为DHCPv6后,发出DHCPv6 Solicit报文,请求非临时IP地址与DNS地址,目标IP地址(ff02::1:2, DHCPv6保留的组播地址ff02::1:2 )和MAC均为组播。

      image-20230404153214447

    • FW1返回DHCPv6 Advertise报文,包含可用的IPv6地址以及DNS服务器地址,报文为单播,目标IP地址为FW2的本地IPv6地址。

      image-20230404153403309

    • FW2请求占用FW1提供的IPv6 2100::66,目标IP地址(ff02::1:2, DHCPv6保留的组播地址ff02::1:2 )和MAC均为组播。

      image-20230404153604232

    • FW1发送DHCPv6 Reply报文,确认客户端可以使用该IPv6并携带了DNS服务器地址,目标IP为单播FW2的本地IPv6地址。

      image-20230404153736443

补充说明

  1. 服务器端(FW1)A Flag和M Flag同时开启,客户端(FW2)会生成几个地址?

    • 客户端(FW2)的IPv6地址配置为“Manual”+“Auto configure IPv6 addres”时,只会发出RS报文,然后FW1返回RA报文,客户端根据RA中的prefix自动配置地址。

    • 客户端(FW2)的IPv6地址配置为“DHCP”时,不会发出RS报文,只会发出DHCPv6报文,然后通过DHCPv6获取IP和DNS等信息,即使服务器端发出了携带prefix的RA报文,FW2依然会通过DHCPv6获取IP地址和DNS等信息。

    • 也就是对于FortiGate作为Client,Server同时开启M和A Flag,地址生成方式取决于客户端的IPv6地址模式。

    • 对于PC Client来说,当配置为DHCP获取地址时,仍然会发出RS报文,通过Server端发出的RA报文中的Flag来确定地址获取的方式,当RA中的A Flag和M Flag同时开启时,PC Client会同时获取两种地址,一种从RA中的prefix自动生成,一种从DHCPv6 Server获取,如下图所示。

      image-20230404161123454

  2. 接口下开启DHCPv6状态服务器后,请确保DHCPv6分配的IPv6地址与该接口的IPv6地址在同一网段,否则状态服务器不会响应任何DHCPv6请求。

Copyright © 2023 Fortinet Inc. All rights reserved. Powered by Fortinet TAC Team.
📲扫描下方二维码分享此页面👇
该页面修订于: 2023-09-12 15:24:01

results matching ""

    No results matching ""