This commit is contained in:
Simon Zolin
2020-04-29 16:22:08 +03:00
parent 7d3a46d644
commit 2ec69bc6ed

View File

@@ -151,8 +151,6 @@ func (s *V6Server) v6Process(req dhcpv6.DHCPv6, resp dhcpv6.DHCPv6) {
return return
} }
resp.AddOption(dhcpv6.OptServerID(s.conf.sid))
oia := &dhcpv6.OptIANA{} oia := &dhcpv6.OptIANA{}
copy(oia.IaId[:], []byte(valIAID)) copy(oia.IaId[:], []byte(valIAID))
oia.Options = dhcpv6.IdentityOptions{Options: []dhcpv6.Option{ oia.Options = dhcpv6.IdentityOptions{Options: []dhcpv6.Option{
@@ -170,6 +168,18 @@ func (s *V6Server) v6Process(req dhcpv6.DHCPv6, resp dhcpv6.DHCPv6) {
} }
} }
// 1.
// fe80::* (client) --(Solicit + ClientID+IANA())-> ff02::1:2
// server -(Advertise + ClientID+ServerID+IANA(IAAddress)> fe80::*
// fe80::* --(Request + ClientID+ServerID+IANA(IAAddress))-> ff02::1:2
// server -(Reply + ClientID+ServerID+IANA(IAAddress)+DNS)> fe80::*
//
// 2.
// fe80::* --(Confirm|Renew|Rebind + ClientID+IANA(IAAddress))-> ff02::1:2
// server -(Reply + ClientID+ServerID+IANA(IAAddress)+DNS)> fe80::*
//
// 3.
// fe80::* --(Release + ClientID+ServerID+IANA(IAAddress))-> ff02::1:2
func (s *V6Server) packetHandler(conn net.PacketConn, peer net.Addr, req dhcpv6.DHCPv6) { func (s *V6Server) packetHandler(conn net.PacketConn, peer net.Addr, req dhcpv6.DHCPv6) {
msg, err := req.GetInnerMessage() msg, err := req.GetInnerMessage()
if err != nil { if err != nil {
@@ -231,7 +241,8 @@ func (s *V6Server) packetHandler(conn net.PacketConn, peer net.Addr, req dhcpv6.
resp, err = dhcpv6.NewReplyFromMessage(msg) resp, err = dhcpv6.NewReplyFromMessage(msg)
default: default:
err = fmt.Errorf("message type %d not supported", msg.Type()) log.Error("DHCPv6: message type %d not supported", msg.Type())
return
} }
if err != nil { if err != nil {
@@ -239,6 +250,8 @@ func (s *V6Server) packetHandler(conn net.PacketConn, peer net.Addr, req dhcpv6.
return return
} }
resp.AddOption(dhcpv6.OptServerID(s.conf.sid))
s.v6Process(req, resp) s.v6Process(req, resp)
log.Debug("DHCPv6: sending: %s", resp.Summary()) log.Debug("DHCPv6: sending: %s", resp.Summary())