mirror of https://github.com/k3s-io/k3s
Create unique mac address per endpoint
parent
3da79f5cab
commit
d785379d67
|
@ -128,12 +128,23 @@ type endpointsInfo struct {
|
|||
refCount uint16
|
||||
}
|
||||
|
||||
//Uses mac prefix and IPv4 address to return a mac address
|
||||
//This ensures mac addresses are unique for proper load balancing
|
||||
//Does not support IPv6 and returns a dummy mac
|
||||
func conjureMac(macPrefix string, ip net.IP) string {
|
||||
if ip4 := ip.To4(); ip4 != nil {
|
||||
a, b, c, d := ip4[0], ip4[1], ip4[2], ip4[3]
|
||||
return fmt.Sprintf("%v-%02x-%02x-%02x-%02x", macPrefix, a, b, c, d)
|
||||
}
|
||||
return "02-11-22-33-44-55"
|
||||
}
|
||||
|
||||
func newEndpointInfo(ip string, port uint16, isLocal bool) *endpointsInfo {
|
||||
info := &endpointsInfo{
|
||||
ip: ip,
|
||||
port: port,
|
||||
isLocal: isLocal,
|
||||
macAddress: "00:11:22:33:44:55", // Hardcoding to some Random Mac
|
||||
macAddress: conjureMac("02-11", net.ParseIP(ip)),
|
||||
refCount: 0,
|
||||
hnsID: "",
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue