mirror of
https://github.com/KusakabeShi/EtherGuard-VPN.git
synced 2025-08-12 09:16:24 +02:00
reorder config, 3.3, genp2p
This commit is contained in:
6
.vscode/launch.json
vendored
6
.vscode/launch.json
vendored
@ -12,7 +12,7 @@
|
|||||||
"program": "${workspaceFolder}",
|
"program": "${workspaceFolder}",
|
||||||
"buildFlags": "-tags 'novpp'",
|
"buildFlags": "-tags 'novpp'",
|
||||||
"env": {"CGO_CFLAGS":"-I/usr/include/memif"},
|
"env": {"CGO_CFLAGS":"-I/usr/include/memif"},
|
||||||
"args":["-config","example_config/super_mode/s1.yaml","-mode","super"/*,"-example"*/],
|
"args":["-config","example_config/super_mode/EgNet_super.yaml","-mode","super"/*,"-example"*/],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Launch Edge",
|
"name": "Launch Edge",
|
||||||
@ -22,8 +22,8 @@
|
|||||||
"program": "${workspaceFolder}",
|
"program": "${workspaceFolder}",
|
||||||
"buildFlags": "-tags 'novpp'",
|
"buildFlags": "-tags 'novpp'",
|
||||||
"env": {"CGO_CFLAGS":"-I/usr/include/memif"},
|
"env": {"CGO_CFLAGS":"-I/usr/include/memif"},
|
||||||
"args":["-config","example_config/super_mode/n1.yaml","-mode","edge"/*,"-example"*/],
|
"args":["-config","example_config/p2p_mode/EgNet_edge1.yaml","-mode","edge"/*,"-example"*/],
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"name": "Launch GenCfg",
|
"name": "Launch GenCfg",
|
||||||
"type": "go",
|
"type": "go",
|
||||||
|
@ -371,6 +371,7 @@ func NewDevice(tapDevice tap.Device, id mtypes.Vertex, bind conn.Bind, logger *L
|
|||||||
device.Chan_SendRegisterStart = make(chan struct{}, 1<<5)
|
device.Chan_SendRegisterStart = make(chan struct{}, 1<<5)
|
||||||
device.Chan_HttpPostStart = make(chan struct{}, 1<<5)
|
device.Chan_HttpPostStart = make(chan struct{}, 1<<5)
|
||||||
device.LogLevel = econfig.LogLevel
|
device.LogLevel = econfig.LogLevel
|
||||||
|
device.SuperConfig.DampingResistance = device.EdgeConfig.DynamicRoute.DampingResistance
|
||||||
|
|
||||||
go device.RoutineSetEndpoint()
|
go device.RoutineSetEndpoint()
|
||||||
go device.RoutineDetectOfflineAndTryNextEndpoint()
|
go device.RoutineDetectOfflineAndTryNextEndpoint()
|
||||||
|
@ -126,7 +126,7 @@ func (et *endpoint_trylist) GetNextTry() (bool, string) {
|
|||||||
}
|
}
|
||||||
delete(et.trymap_p2p, url)
|
delete(et.trymap_p2p, url)
|
||||||
}
|
}
|
||||||
if smallest.lastTry.After(v.lastTry) {
|
if smallest == nil || smallest.lastTry.After(v.lastTry) {
|
||||||
smallest = v
|
smallest = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -581,7 +581,7 @@ func (peer *Peer) RoutineSequentialReceiver() {
|
|||||||
if packet_type != path.NormalPacket {
|
if packet_type != path.NormalPacket {
|
||||||
if device.LogLevel.LogControl {
|
if device.LogLevel.LogControl {
|
||||||
if peer.GetEndpointDstStr() != "" {
|
if peer.GetEndpointDstStr() != "" {
|
||||||
fmt.Println("Control: Received From:" + peer.GetEndpointDstStr() + " " + device.sprint_received(packet_type, elem.packet[path.EgHeaderLen:]))
|
fmt.Printf("Control: Received S:%v D:%v %v From:%v\n", src_nodeID.ToString(), dst_nodeID.ToString(), device.sprint_received(packet_type, elem.packet[path.EgHeaderLen:]), peer.ID.ToString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = device.process_received(packet_type, peer, elem.packet[path.EgHeaderLen:])
|
err = device.process_received(packet_type, peer, elem.packet[path.EgHeaderLen:])
|
||||||
|
@ -52,9 +52,11 @@ func (device *Device) SendPacket(peer *Peer, usage path.Usage, packet []byte, of
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if device.LogLevel.LogControl {
|
if device.LogLevel.LogControl {
|
||||||
|
EgHeader, _ := path.NewEgHeader(packet[:path.EgHeaderLen])
|
||||||
if usage != path.NormalPacket {
|
if usage != path.NormalPacket {
|
||||||
if peer.GetEndpointDstStr() != "" {
|
if peer.GetEndpointDstStr() != "" {
|
||||||
fmt.Println("Control: Send To:" + peer.GetEndpointDstStr() + " " + device.sprint_received(usage, packet[path.EgHeaderLen:]))
|
dst_nodeID := EgHeader.GetDst()
|
||||||
|
fmt.Printf("Control: Send D:%v %v To:%v\n", dst_nodeID.ToString(), device.sprint_received(usage, packet[path.EgHeaderLen:]), peer.GetEndpointDstStr())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,10 +148,14 @@ func (device *Device) process_received(msg_type path.Usage, peer *Peer, body []b
|
|||||||
case path.Register:
|
case path.Register:
|
||||||
if content, err := mtypes.ParseRegisterMsg(body); err == nil {
|
if content, err := mtypes.ParseRegisterMsg(body); err == nil {
|
||||||
return device.server_process_RegisterMsg(peer, content)
|
return device.server_process_RegisterMsg(peer, content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
case path.PongPacket:
|
case path.PongPacket:
|
||||||
if content, err := mtypes.ParsePongMsg(body); err == nil {
|
if content, err := mtypes.ParsePongMsg(body); err == nil {
|
||||||
return device.server_process_Pong(peer, content)
|
return device.server_process_Pong(peer, content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
err = errors.New("not a valid msg_type")
|
err = errors.New("not a valid msg_type")
|
||||||
@ -159,22 +165,32 @@ func (device *Device) process_received(msg_type path.Usage, peer *Peer, body []b
|
|||||||
case path.ServerUpdate:
|
case path.ServerUpdate:
|
||||||
if content, err := mtypes.ParseServerUpdateMsg(body); err == nil {
|
if content, err := mtypes.ParseServerUpdateMsg(body); err == nil {
|
||||||
device.process_ServerUpdateMsg(peer, content)
|
device.process_ServerUpdateMsg(peer, content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
case path.PingPacket:
|
case path.PingPacket:
|
||||||
if content, err := mtypes.ParsePingMsg(body); err == nil {
|
if content, err := mtypes.ParsePingMsg(body); err == nil {
|
||||||
return device.process_ping(peer, content)
|
return device.process_ping(peer, content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
case path.PongPacket:
|
case path.PongPacket:
|
||||||
if content, err := mtypes.ParsePongMsg(body); err == nil {
|
if content, err := mtypes.ParsePongMsg(body); err == nil {
|
||||||
return device.process_pong(peer, content)
|
return device.process_pong(peer, content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
case path.QueryPeer:
|
case path.QueryPeer:
|
||||||
if content, err := mtypes.ParseQueryPeerMsg(body); err == nil {
|
if content, err := mtypes.ParseQueryPeerMsg(body); err == nil {
|
||||||
return device.process_RequestPeerMsg(content)
|
return device.process_RequestPeerMsg(content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
case path.BroadcastPeer:
|
case path.BroadcastPeer:
|
||||||
if content, err := mtypes.ParseBoardcastPeerMsg(body); err == nil {
|
if content, err := mtypes.ParseBoardcastPeerMsg(body); err == nil {
|
||||||
return device.process_BoardcastPeerMsg(peer, content)
|
return device.process_BoardcastPeerMsg(peer, content)
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
err = errors.New("not a valid msg_type")
|
err = errors.New("not a valid msg_type")
|
||||||
@ -311,8 +327,8 @@ func (device *Device) process_ping(peer *Peer, content mtypes.PingMsg) error {
|
|||||||
Timediff := device.graph.GetCurrentTime().Sub(content.Time).Seconds()
|
Timediff := device.graph.GetCurrentTime().Sub(content.Time).Seconds()
|
||||||
OldTimediff := peer.SingleWayLatency.Load().(float64)
|
OldTimediff := peer.SingleWayLatency.Load().(float64)
|
||||||
NewTimediff := Timediff
|
NewTimediff := Timediff
|
||||||
if OldTimediff <= mtypes.Infinity {
|
if (OldTimediff < mtypes.Infinity) == (NewTimediff < mtypes.Infinity) {
|
||||||
DR := device.EdgeConfig.DynamicRoute.P2P.GraphRecalculateSetting.DampingResistance
|
DR := device.SuperConfig.DampingResistance
|
||||||
NewTimediff = OldTimediff*DR + Timediff*(1-DR)
|
NewTimediff = OldTimediff*DR + Timediff*(1-DR)
|
||||||
}
|
}
|
||||||
peer.SingleWayLatency.Store(NewTimediff)
|
peer.SingleWayLatency.Store(NewTimediff)
|
||||||
@ -612,6 +628,9 @@ func (device *Device) process_UpdateSuperParamsMsg(peer *Peer, State_hash string
|
|||||||
device.EdgeConfig.DynamicRoute.PeerAliveTimeout = SuperParams.PeerAliveTimeout
|
device.EdgeConfig.DynamicRoute.PeerAliveTimeout = SuperParams.PeerAliveTimeout
|
||||||
device.EdgeConfig.DynamicRoute.SendPingInterval = SuperParams.SendPingInterval
|
device.EdgeConfig.DynamicRoute.SendPingInterval = SuperParams.SendPingInterval
|
||||||
device.SuperConfig.HttpPostInterval = SuperParams.HttpPostInterval
|
device.SuperConfig.HttpPostInterval = SuperParams.HttpPostInterval
|
||||||
|
if SuperParams.DampingResistance > 0 && SuperParams.DampingResistance <= 1 {
|
||||||
|
device.SuperConfig.DampingResistance = SuperParams.DampingResistance
|
||||||
|
}
|
||||||
device.Chan_SendPingStart <- struct{}{}
|
device.Chan_SendPingStart <- struct{}{}
|
||||||
device.Chan_HttpPostStart <- struct{}{}
|
device.Chan_HttpPostStart <- struct{}{}
|
||||||
if SuperParams.AdditionalCost >= 0 {
|
if SuperParams.AdditionalCost >= 0 {
|
||||||
@ -696,7 +715,7 @@ func (device *Device) process_RequestPeerMsg(content mtypes.QueryPeerMsg) error
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (device *Device) process_BoardcastPeerMsg(peer *Peer, content mtypes.BoardcastPeerMsg) error {
|
func (device *Device) process_BoardcastPeerMsg(peer *Peer, content mtypes.BoardcastPeerMsg) (err error) {
|
||||||
if device.EdgeConfig.DynamicRoute.P2P.UseP2P {
|
if device.EdgeConfig.DynamicRoute.P2P.UseP2P {
|
||||||
var pk NoisePublicKey
|
var pk NoisePublicKey
|
||||||
if content.Request_ID == uint32(device.ID) {
|
if content.Request_ID == uint32(device.ID) {
|
||||||
@ -717,7 +736,10 @@ func (device *Device) process_BoardcastPeerMsg(peer *Peer, content mtypes.Boardc
|
|||||||
if device.graph.Weight(content.NodeID, device.ID, false) == mtypes.Infinity { // add node to graph
|
if device.graph.Weight(content.NodeID, device.ID, false) == mtypes.Infinity { // add node to graph
|
||||||
device.graph.UpdateLatency(content.NodeID, device.ID, mtypes.Infinity, 0, device.EdgeConfig.DynamicRoute.AdditionalCost, true, false)
|
device.graph.UpdateLatency(content.NodeID, device.ID, mtypes.Infinity, 0, device.EdgeConfig.DynamicRoute.AdditionalCost, true, false)
|
||||||
}
|
}
|
||||||
device.NewPeer(pk, content.NodeID, false, 0)
|
thepeer, err = device.NewPeer(pk, content.NodeID, false, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if !thepeer.IsPeerAlive() {
|
if !thepeer.IsPeerAlive() {
|
||||||
//Peer died, try to switch to this new endpoint
|
//Peer died, try to switch to this new endpoint
|
||||||
@ -781,10 +803,10 @@ func (device *Device) RoutineDetectOfflineAndTryNextEndpoint() {
|
|||||||
if !(device.EdgeConfig.DynamicRoute.P2P.UseP2P || device.EdgeConfig.DynamicRoute.SuperNode.UseSuperNode) {
|
if !(device.EdgeConfig.DynamicRoute.P2P.UseP2P || device.EdgeConfig.DynamicRoute.SuperNode.UseSuperNode) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if device.EdgeConfig.DynamicRoute.ConnTimeOut == 0 {
|
if device.EdgeConfig.DynamicRoute.TimeoutCheckInterval == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
timeout := mtypes.S2TD(device.EdgeConfig.DynamicRoute.ConnTimeOut)
|
timeout := mtypes.S2TD(device.EdgeConfig.DynamicRoute.TimeoutCheckInterval)
|
||||||
for {
|
for {
|
||||||
device.event_tryendpoint <- struct{}{}
|
device.event_tryendpoint <- struct{}{}
|
||||||
time.Sleep(timeout)
|
time.Sleep(timeout)
|
||||||
|
71
example_config/p2p_mode/EgNet_edge1.yaml
Normal file
71
example_config/p2p_mode/EgNet_edge1.yaml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
Interface:
|
||||||
|
IType: stdio
|
||||||
|
Name: tap1
|
||||||
|
VPPIFaceID: 1
|
||||||
|
VPPBridgeID: 4242
|
||||||
|
MacAddrPrefix: 26:E9:46:C5
|
||||||
|
IPv4CIDR: 192.168.76.0/24
|
||||||
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
|
MTU: 1416
|
||||||
|
RecvAddr: 127.0.0.1:4001
|
||||||
|
SendAddr: 127.0.0.1:5001
|
||||||
|
L2HeaderMode: kbdbg
|
||||||
|
NodeID: 1
|
||||||
|
NodeName: EgNet1
|
||||||
|
PostScript: ""
|
||||||
|
DefaultTTL: 200
|
||||||
|
L2FIBTimeout: 3600
|
||||||
|
PrivKey: m+okCrSHKbhaAw1MycIf9+i1mnl/PXQFBx9q6Alfa7Y=
|
||||||
|
ListenPort: 3001
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: error
|
||||||
|
LogTransit: true
|
||||||
|
LogNormal: true
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
DynamicRoute:
|
||||||
|
SendPingInterval: 16
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
TimeoutCheckInterval: 20
|
||||||
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.95
|
||||||
|
SaveNewPeers: false
|
||||||
|
SuperNode:
|
||||||
|
UseSuperNode: false
|
||||||
|
PSKey: ""
|
||||||
|
EndpointV4: ""
|
||||||
|
PubKeyV4: ""
|
||||||
|
EndpointV6: ""
|
||||||
|
PubKeyV6: ""
|
||||||
|
EndpointEdgeAPIUrl: ""
|
||||||
|
SkipLocalIP: false
|
||||||
|
SuperNodeInfoTimeout: 50
|
||||||
|
P2P:
|
||||||
|
UseP2P: true
|
||||||
|
SendPeerInterval: 20
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 50
|
||||||
|
JitterToleranceMultiplier: 1.1
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NTPConfig:
|
||||||
|
UseNTP: true
|
||||||
|
MaxServerUse: 8
|
||||||
|
SyncTimeInterval: 3600
|
||||||
|
NTPTimeout: 3
|
||||||
|
Servers: []
|
||||||
|
NextHopTable: {}
|
||||||
|
ResetConnInterval: 86400
|
||||||
|
Peers:
|
||||||
|
- NodeID: 2
|
||||||
|
PubKey: FRPoFmNczfXChxHcyqUB/DlP8uilmULXJ53rkXKbRnA=
|
||||||
|
PSKey: F04akG91pDuDPSpeiorm1RBZTspDqpk5xbWg1ywW2qA=
|
||||||
|
EndPoint: 127.0.0.1:3002
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
83
example_config/p2p_mode/EgNet_edge2.yaml
Normal file
83
example_config/p2p_mode/EgNet_edge2.yaml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
Interface:
|
||||||
|
IType: stdio
|
||||||
|
Name: tap1
|
||||||
|
VPPIFaceID: 1
|
||||||
|
VPPBridgeID: 4242
|
||||||
|
MacAddrPrefix: 26:E9:46:C5
|
||||||
|
IPv4CIDR: 192.168.76.0/24
|
||||||
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
|
MTU: 1416
|
||||||
|
RecvAddr: 127.0.0.1:4001
|
||||||
|
SendAddr: 127.0.0.1:5001
|
||||||
|
L2HeaderMode: kbdbg
|
||||||
|
NodeID: 2
|
||||||
|
NodeName: EgNet2
|
||||||
|
PostScript: ""
|
||||||
|
DefaultTTL: 200
|
||||||
|
L2FIBTimeout: 3600
|
||||||
|
PrivKey: F1rQITtaIzm4uGI83znW7hXRA/brORBYh9nYE1T20TQ=
|
||||||
|
ListenPort: 3002
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: error
|
||||||
|
LogTransit: true
|
||||||
|
LogNormal: true
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
DynamicRoute:
|
||||||
|
SendPingInterval: 16
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
TimeoutCheckInterval: 20
|
||||||
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
|
SaveNewPeers: false
|
||||||
|
SuperNode:
|
||||||
|
UseSuperNode: false
|
||||||
|
PSKey: ""
|
||||||
|
EndpointV4: ""
|
||||||
|
PubKeyV4: ""
|
||||||
|
EndpointV6: ""
|
||||||
|
PubKeyV6: ""
|
||||||
|
EndpointEdgeAPIUrl: ""
|
||||||
|
SkipLocalIP: false
|
||||||
|
SuperNodeInfoTimeout: 50
|
||||||
|
P2P:
|
||||||
|
UseP2P: true
|
||||||
|
SendPeerInterval: 20
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 50
|
||||||
|
JitterToleranceMultiplier: 1.1
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NTPConfig:
|
||||||
|
UseNTP: true
|
||||||
|
MaxServerUse: 8
|
||||||
|
SyncTimeInterval: 3600
|
||||||
|
NTPTimeout: 3
|
||||||
|
Servers: []
|
||||||
|
NextHopTable: {}
|
||||||
|
ResetConnInterval: 86400
|
||||||
|
Peers:
|
||||||
|
- NodeID: 4
|
||||||
|
PubKey: kSH8k+0tx67ExXNXYLElgnMaLQDxqPQ3wIUv2CRXKSc=
|
||||||
|
PSKey: wFwfJeWIBTZw3eAQxBK7mM70cZOllNnCoOnUJC0008g=
|
||||||
|
EndPoint: 127.0.0.1:3004
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
|
- NodeID: 1
|
||||||
|
PubKey: Da0+2BD/tyz38YuAJ7Ltfm8N+tetzo/0YwyqY9PCrRw=
|
||||||
|
PSKey: F04akG91pDuDPSpeiorm1RBZTspDqpk5xbWg1ywW2qA=
|
||||||
|
EndPoint: 127.0.0.1:3001
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
|
- NodeID: 3
|
||||||
|
PubKey: Xv/1VqAxaB+ZYSBg2PeL+oeyi05U+PHdXjoUeHuX7Rs=
|
||||||
|
PSKey: Cijbh7tHoGbwVANl/3x7qtDHbe3bO9lpOFXoU4hp8w8=
|
||||||
|
EndPoint: 127.0.0.1:3003
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
83
example_config/p2p_mode/EgNet_edge3.yaml
Normal file
83
example_config/p2p_mode/EgNet_edge3.yaml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
Interface:
|
||||||
|
IType: stdio
|
||||||
|
Name: tap1
|
||||||
|
VPPIFaceID: 1
|
||||||
|
VPPBridgeID: 4242
|
||||||
|
MacAddrPrefix: 26:E9:46:C5
|
||||||
|
IPv4CIDR: 192.168.76.0/24
|
||||||
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
|
MTU: 1416
|
||||||
|
RecvAddr: 127.0.0.1:4001
|
||||||
|
SendAddr: 127.0.0.1:5001
|
||||||
|
L2HeaderMode: kbdbg
|
||||||
|
NodeID: 3
|
||||||
|
NodeName: EgNet3
|
||||||
|
PostScript: ""
|
||||||
|
DefaultTTL: 200
|
||||||
|
L2FIBTimeout: 3600
|
||||||
|
PrivKey: +zc8mBj65eA/J7RAVRnsRxAfoi45fgipiyqL9kmsqdM=
|
||||||
|
ListenPort: 3003
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: error
|
||||||
|
LogTransit: true
|
||||||
|
LogNormal: true
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
DynamicRoute:
|
||||||
|
SendPingInterval: 16
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
TimeoutCheckInterval: 20
|
||||||
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
|
SaveNewPeers: false
|
||||||
|
SuperNode:
|
||||||
|
UseSuperNode: false
|
||||||
|
PSKey: ""
|
||||||
|
EndpointV4: ""
|
||||||
|
PubKeyV4: ""
|
||||||
|
EndpointV6: ""
|
||||||
|
PubKeyV6: ""
|
||||||
|
EndpointEdgeAPIUrl: ""
|
||||||
|
SkipLocalIP: false
|
||||||
|
SuperNodeInfoTimeout: 50
|
||||||
|
P2P:
|
||||||
|
UseP2P: true
|
||||||
|
SendPeerInterval: 20
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 50
|
||||||
|
JitterToleranceMultiplier: 1.1
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NTPConfig:
|
||||||
|
UseNTP: true
|
||||||
|
MaxServerUse: 8
|
||||||
|
SyncTimeInterval: 3600
|
||||||
|
NTPTimeout: 3
|
||||||
|
Servers: []
|
||||||
|
NextHopTable: {}
|
||||||
|
ResetConnInterval: 86400
|
||||||
|
Peers:
|
||||||
|
- NodeID: 2
|
||||||
|
PubKey: FRPoFmNczfXChxHcyqUB/DlP8uilmULXJ53rkXKbRnA=
|
||||||
|
PSKey: Cijbh7tHoGbwVANl/3x7qtDHbe3bO9lpOFXoU4hp8w8=
|
||||||
|
EndPoint: 127.0.0.1:3002
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
|
- NodeID: 4
|
||||||
|
PubKey: kSH8k+0tx67ExXNXYLElgnMaLQDxqPQ3wIUv2CRXKSc=
|
||||||
|
PSKey: mAgQbX34b3f/geVEU7bn1y4AqA6Eu+ZY9PR1d6IEkDg=
|
||||||
|
EndPoint: 127.0.0.1:3004
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
|
- NodeID: 5
|
||||||
|
PubKey: 6GTxl1C65KC2wV0bXDVSnp6f3FdtjUhhDWZF4Ipt6gY=
|
||||||
|
PSKey: 5Ph+d0SFW7hQ8LibICiXcpWpWnaI7i3T1J5Zmw8km3w=
|
||||||
|
EndPoint: 127.0.0.1:3005
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
83
example_config/p2p_mode/EgNet_edge4.yaml
Normal file
83
example_config/p2p_mode/EgNet_edge4.yaml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
Interface:
|
||||||
|
IType: stdio
|
||||||
|
Name: tap1
|
||||||
|
VPPIFaceID: 1
|
||||||
|
VPPBridgeID: 4242
|
||||||
|
MacAddrPrefix: 26:E9:46:C5
|
||||||
|
IPv4CIDR: 192.168.76.0/24
|
||||||
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
|
MTU: 1416
|
||||||
|
RecvAddr: 127.0.0.1:4001
|
||||||
|
SendAddr: 127.0.0.1:5001
|
||||||
|
L2HeaderMode: kbdbg
|
||||||
|
NodeID: 4
|
||||||
|
NodeName: EgNet4
|
||||||
|
PostScript: ""
|
||||||
|
DefaultTTL: 200
|
||||||
|
L2FIBTimeout: 3600
|
||||||
|
PrivKey: DW1nI8xKiaYJRJYUwQaZKNLRVKIVl1unF4YKzmYfNZE=
|
||||||
|
ListenPort: 3004
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: error
|
||||||
|
LogTransit: true
|
||||||
|
LogNormal: true
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
DynamicRoute:
|
||||||
|
SendPingInterval: 16
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
TimeoutCheckInterval: 20
|
||||||
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
|
SaveNewPeers: false
|
||||||
|
SuperNode:
|
||||||
|
UseSuperNode: false
|
||||||
|
PSKey: ""
|
||||||
|
EndpointV4: ""
|
||||||
|
PubKeyV4: ""
|
||||||
|
EndpointV6: ""
|
||||||
|
PubKeyV6: ""
|
||||||
|
EndpointEdgeAPIUrl: ""
|
||||||
|
SkipLocalIP: false
|
||||||
|
SuperNodeInfoTimeout: 50
|
||||||
|
P2P:
|
||||||
|
UseP2P: true
|
||||||
|
SendPeerInterval: 20
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 50
|
||||||
|
JitterToleranceMultiplier: 1.1
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NTPConfig:
|
||||||
|
UseNTP: true
|
||||||
|
MaxServerUse: 8
|
||||||
|
SyncTimeInterval: 3600
|
||||||
|
NTPTimeout: 3
|
||||||
|
Servers: []
|
||||||
|
NextHopTable: {}
|
||||||
|
ResetConnInterval: 86400
|
||||||
|
Peers:
|
||||||
|
- NodeID: 2
|
||||||
|
PubKey: FRPoFmNczfXChxHcyqUB/DlP8uilmULXJ53rkXKbRnA=
|
||||||
|
PSKey: wFwfJeWIBTZw3eAQxBK7mM70cZOllNnCoOnUJC0008g=
|
||||||
|
EndPoint: 127.0.0.1:3002
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
|
- NodeID: 3
|
||||||
|
PubKey: Xv/1VqAxaB+ZYSBg2PeL+oeyi05U+PHdXjoUeHuX7Rs=
|
||||||
|
PSKey: mAgQbX34b3f/geVEU7bn1y4AqA6Eu+ZY9PR1d6IEkDg=
|
||||||
|
EndPoint: 127.0.0.1:3003
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
|
- NodeID: 6
|
||||||
|
PubKey: XagHQGIw/3Y1btg/gCWYbQMOB5RsOeJRP5i/w5bzf14=
|
||||||
|
PSKey: n44pByAV/umw2EtfP90jn2A1Hq/mzXCRrT6nXQKlJfw=
|
||||||
|
EndPoint: 127.0.0.1:3006
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
71
example_config/p2p_mode/EgNet_edge5.yaml
Normal file
71
example_config/p2p_mode/EgNet_edge5.yaml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
Interface:
|
||||||
|
IType: stdio
|
||||||
|
Name: tap1
|
||||||
|
VPPIFaceID: 1
|
||||||
|
VPPBridgeID: 4242
|
||||||
|
MacAddrPrefix: 26:E9:46:C5
|
||||||
|
IPv4CIDR: 192.168.76.0/24
|
||||||
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
|
MTU: 1416
|
||||||
|
RecvAddr: 127.0.0.1:4001
|
||||||
|
SendAddr: 127.0.0.1:5001
|
||||||
|
L2HeaderMode: kbdbg
|
||||||
|
NodeID: 5
|
||||||
|
NodeName: EgNet5
|
||||||
|
PostScript: ""
|
||||||
|
DefaultTTL: 200
|
||||||
|
L2FIBTimeout: 3600
|
||||||
|
PrivKey: 0zI7tZlrD57Xj0u2qo7zfcqWslpUqaYPpxIp9nZSI1s=
|
||||||
|
ListenPort: 3005
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: error
|
||||||
|
LogTransit: true
|
||||||
|
LogNormal: true
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
DynamicRoute:
|
||||||
|
SendPingInterval: 16
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
TimeoutCheckInterval: 20
|
||||||
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
|
SaveNewPeers: false
|
||||||
|
SuperNode:
|
||||||
|
UseSuperNode: false
|
||||||
|
PSKey: ""
|
||||||
|
EndpointV4: ""
|
||||||
|
PubKeyV4: ""
|
||||||
|
EndpointV6: ""
|
||||||
|
PubKeyV6: ""
|
||||||
|
EndpointEdgeAPIUrl: ""
|
||||||
|
SkipLocalIP: false
|
||||||
|
SuperNodeInfoTimeout: 50
|
||||||
|
P2P:
|
||||||
|
UseP2P: true
|
||||||
|
SendPeerInterval: 20
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 50
|
||||||
|
JitterToleranceMultiplier: 1.1
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NTPConfig:
|
||||||
|
UseNTP: true
|
||||||
|
MaxServerUse: 8
|
||||||
|
SyncTimeInterval: 3600
|
||||||
|
NTPTimeout: 3
|
||||||
|
Servers: []
|
||||||
|
NextHopTable: {}
|
||||||
|
ResetConnInterval: 86400
|
||||||
|
Peers:
|
||||||
|
- NodeID: 3
|
||||||
|
PubKey: Xv/1VqAxaB+ZYSBg2PeL+oeyi05U+PHdXjoUeHuX7Rs=
|
||||||
|
PSKey: 5Ph+d0SFW7hQ8LibICiXcpWpWnaI7i3T1J5Zmw8km3w=
|
||||||
|
EndPoint: 127.0.0.1:3003
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
71
example_config/p2p_mode/EgNet_edge6.yaml
Normal file
71
example_config/p2p_mode/EgNet_edge6.yaml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
Interface:
|
||||||
|
IType: stdio
|
||||||
|
Name: tap1
|
||||||
|
VPPIFaceID: 1
|
||||||
|
VPPBridgeID: 4242
|
||||||
|
MacAddrPrefix: 26:E9:46:C5
|
||||||
|
IPv4CIDR: 192.168.76.0/24
|
||||||
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
|
MTU: 1416
|
||||||
|
RecvAddr: 127.0.0.1:4001
|
||||||
|
SendAddr: 127.0.0.1:5001
|
||||||
|
L2HeaderMode: kbdbg
|
||||||
|
NodeID: 6
|
||||||
|
NodeName: EgNet6
|
||||||
|
PostScript: ""
|
||||||
|
DefaultTTL: 200
|
||||||
|
L2FIBTimeout: 3600
|
||||||
|
PrivKey: 4J/LdOJYHem4ZJyzqniN4VYZcSiBZy362grDDovYVzc=
|
||||||
|
ListenPort: 3006
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: error
|
||||||
|
LogTransit: true
|
||||||
|
LogNormal: true
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
DynamicRoute:
|
||||||
|
SendPingInterval: 16
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
TimeoutCheckInterval: 20
|
||||||
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
|
SaveNewPeers: false
|
||||||
|
SuperNode:
|
||||||
|
UseSuperNode: false
|
||||||
|
PSKey: ""
|
||||||
|
EndpointV4: ""
|
||||||
|
PubKeyV4: ""
|
||||||
|
EndpointV6: ""
|
||||||
|
PubKeyV6: ""
|
||||||
|
EndpointEdgeAPIUrl: ""
|
||||||
|
SkipLocalIP: false
|
||||||
|
SuperNodeInfoTimeout: 50
|
||||||
|
P2P:
|
||||||
|
UseP2P: true
|
||||||
|
SendPeerInterval: 20
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 50
|
||||||
|
JitterToleranceMultiplier: 1.1
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NTPConfig:
|
||||||
|
UseNTP: true
|
||||||
|
MaxServerUse: 8
|
||||||
|
SyncTimeInterval: 3600
|
||||||
|
NTPTimeout: 3
|
||||||
|
Servers: []
|
||||||
|
NextHopTable: {}
|
||||||
|
ResetConnInterval: 86400
|
||||||
|
Peers:
|
||||||
|
- NodeID: 4
|
||||||
|
PubKey: kSH8k+0tx67ExXNXYLElgnMaLQDxqPQ3wIUv2CRXKSc=
|
||||||
|
PSKey: n44pByAV/umw2EtfP90jn2A1Hq/mzXCRrT6nXQKlJfw=
|
||||||
|
EndPoint: 127.0.0.1:3004
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
@ -1,14 +1,55 @@
|
|||||||
# Etherguard
|
# Etherguard
|
||||||
[English](README.md)
|
[English](README.md)
|
||||||
|
|
||||||
P2P Mode的[範例配置檔](./)的說明文件
|
|
||||||
在了解Super Mode的運作之前,建議您先閱讀[Super Mode的運作](../super_mode/README_zh.md)方法,再閱讀本篇會比較好
|
|
||||||
|
|
||||||
## P2P Mode
|
## P2P Mode
|
||||||
受到[tinc](https://github.com/gsliepen/tinc)的啟發
|
受到[tinc](https://github.com/gsliepen/tinc)的啟發
|
||||||
|
|
||||||
和[Super模式運作](../super_mode/README_zh.md)有點相似,不過也有點修改
|
和[Super模式運作](../super_mode/README_zh.md)有點相似,不過也有點修改
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
首先,按照需求修改`genstatic.yaml`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
Config output dir: /tmp/eg_gen_static # 設定檔輸出位置
|
||||||
|
ConfigTemplate for edge node: "" # 設定檔Template
|
||||||
|
Network name: "EgNet"
|
||||||
|
Edge Node:
|
||||||
|
MacAddress prefix: "" # 留空隨機產生
|
||||||
|
IPv4 range: 192.168.76.0/24 # 順帶一提,IP的部分可以直接省略沒關係
|
||||||
|
IPv6 range: fd95:71cb:a3df:e586::/64 # 這個欄位唯一的目的只是在啟動以後,調用ip命令,幫tap接口加個ip
|
||||||
|
IPv6 LL range: fe80::a3df:0/112 # 和VPN本身運作完全無關
|
||||||
|
Edge Nodes: # 所有的節點相關設定
|
||||||
|
1:
|
||||||
|
Endpoint(optional): ""
|
||||||
|
2:
|
||||||
|
Endpoint(optional): ""
|
||||||
|
3:
|
||||||
|
Endpoint(optional): 127.0.0.1:3003
|
||||||
|
4:
|
||||||
|
Endpoint(optional): 127.0.0.1:3004
|
||||||
|
5:
|
||||||
|
Endpoint(optional): ""
|
||||||
|
6:
|
||||||
|
Endpoint(optional): ""
|
||||||
|
```
|
||||||
|
接著執行這個,就會生成所需設定檔了。
|
||||||
|
```
|
||||||
|
./etherguard-go -mode gencfg -cfgmode static -config example_config/static_mode/genstatic.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
把這些設定檔不捨去對應節點,然後再執行
|
||||||
|
```
|
||||||
|
./etherguard-go -config [設定檔位置] -mode edge
|
||||||
|
```
|
||||||
|
就可以了
|
||||||
|
|
||||||
|
確認運作以後,可以關閉不必要的log增加性能
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
P2P Mode的[範例配置檔](./)的說明文件
|
||||||
|
在了解Super Mode的運作之前,建議您先閱讀[Super Mode的運作](../super_mode/README_zh.md)方法,再閱讀本篇會比較好
|
||||||
|
|
||||||
### ControlMsg
|
### ControlMsg
|
||||||
|
|
||||||
P2P模式又引入一種新的 `終點ID` 叫做 `ControlMsg`
|
P2P模式又引入一種新的 `終點ID` 叫做 `ControlMsg`
|
||||||
@ -55,18 +96,34 @@ Pong封包是一種`ControlMsg`,使用**flood廣播**盡量讓每個節點都
|
|||||||
如果已經有了,再檢查Peer是不是離線。
|
如果已經有了,再檢查Peer是不是離線。
|
||||||
如果已經離線,就用收到的Endpoint覆蓋掉自己原本的Endpoint
|
如果已經離線,就用收到的Endpoint覆蓋掉自己原本的Endpoint
|
||||||
|
|
||||||
## Config Paramaters
|
### EdgeNode Config Parameter
|
||||||
|
|
||||||
P2P模式也有幾個參數
|
<a name="P2P"></a>P2P | Description
|
||||||
1. usep2p: 是否啟用P2P模式
|
------------------------|:-----
|
||||||
1. sendpeerinterval: 廣播BoardcastPeer的間格
|
UseP2P | 是否啟用P2P模式
|
||||||
1. graphrecalculatesetting: 一些和[Floyd-Warshall演算法](https://zh.wikipedia.org/zh-tw/Floyd-Warshall算法)相關的參數
|
SendPeerInterval | 廣播BoardcastPeer的間格
|
||||||
1. staticmode: 關閉Floyd-Warshall演算法,只使用一開始載入的nexthoptable。P2P單純用來打洞
|
[GraphRecalculateSetting](../super_mode/README_zh.md#GraphRecalculateSetting) | 一些和[Floyd-Warshall演算法](https://zh.wikipedia.org/zh-tw/Floyd-Warshall算法)相關的參數
|
||||||
1. jittertolerance: 抖動容許誤差,收到Pong以後,一個37ms,一個39ms,不會觸發重新計算
|
|
||||||
1. jittertolerancemultiplier: 一樣是抖動容許誤差,但是高ping的話允許更多誤差
|
#### Run example config
|
||||||
https://www.desmos.com/calculator/raoti16r5n
|
|
||||||
1. nodereporttimeout: 收到的`Pong`封包的有效期限。太久沒收到就變回Infinity
|
在**不同terminal**分別執行以下命令
|
||||||
1. recalculatecooldown: Floyd-Warshal是O(n^3)時間複雜度,不能太常算。設個冷卻時間
|
|
||||||
|
```
|
||||||
|
./etherguard-go -config example_config/p2p_mode/EgNet_edge1.yaml -mode edge
|
||||||
|
./etherguard-go -config example_config/p2p_mode/EgNet_edge2.yaml -mode edge
|
||||||
|
./etherguard-go -config example_config/p2p_mode/EgNet_edge3.yaml -mode edge
|
||||||
|
./etherguard-go -config example_config/p2p_mode/EgNet_edge4.yaml -mode edge
|
||||||
|
./etherguard-go -config example_config/p2p_mode/EgNet_edge5.yaml -mode edge
|
||||||
|
./etherguard-go -config example_config/p2p_mode/EgNet_edge6.yaml -mode edge
|
||||||
|
```
|
||||||
|
|
||||||
|
因為本範例配置是stdio的kbdbg模式,stdin會讀入VPN網路
|
||||||
|
請在其中一個edge視窗中鍵入
|
||||||
|
```
|
||||||
|
b1message
|
||||||
|
```
|
||||||
|
因為`L2HeaderMode`是`kbdbg`,所以b1會被轉換成 12byte 的layer 2 header,b是廣播地址`FF:FF:FF:FF:FF:FF`,1是普通地址`AA:BB:CC:DD:EE:01`,message是後面的payload,然後再丟入VPN
|
||||||
|
此時應該要能夠在另一個視窗上看見字串b1message。前12byte被轉換回來了
|
||||||
|
|
||||||
## Note
|
## Note
|
||||||
P2P模式下,PSK是禁用的。因為n個節點有n(n-1)/2的連線,每個連線都要使用不同PSK
|
P2P模式下,PSK是禁用的。因為n個節點有n(n-1)/2的連線,每個連線都要使用不同PSK
|
||||||
|
29
example_config/p2p_mode/genstatic.yaml
Normal file
29
example_config/p2p_mode/genstatic.yaml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
Config output dir: /tmp/eg_gen_p2p
|
||||||
|
ConfigTemplate for edge node: "EgNet_edge1.yaml"
|
||||||
|
Network name: "EgNet"
|
||||||
|
Edge Node:
|
||||||
|
MacAddress prefix: ""
|
||||||
|
IPv4 range: 192.168.76.0/24
|
||||||
|
IPv6 range: fd95:71cb:a3df:e586::/64
|
||||||
|
IPv6 LL range: fe80::a3df:0/112
|
||||||
|
Edge Nodes:
|
||||||
|
1:
|
||||||
|
Endpoint(optional): 127.0.0.1:3001
|
||||||
|
2:
|
||||||
|
Endpoint(optional): 127.0.0.1:3002
|
||||||
|
3:
|
||||||
|
Endpoint(optional): 127.0.0.1:3003
|
||||||
|
4:
|
||||||
|
Endpoint(optional): 127.0.0.1:3004
|
||||||
|
5:
|
||||||
|
Endpoint(optional): 127.0.0.1:3005
|
||||||
|
6:
|
||||||
|
Endpoint(optional): 127.0.0.1:3006
|
||||||
|
Distance matrix for all nodes: |-
|
||||||
|
X 1 2 3 4 5 6
|
||||||
|
1 0 1.0 Inf Inf Inf Inf
|
||||||
|
2 1.0 0 1.0 1.0 Inf Inf
|
||||||
|
3 Inf 1.0 0 1 1.0 Inf
|
||||||
|
4 Inf 1.0 1.0 0 Inf 1.0
|
||||||
|
5 Inf Inf 1.0 Inf 1.0 Inf
|
||||||
|
6 Inf Inf Inf 1.0 Inf 1.0
|
@ -1,113 +0,0 @@
|
|||||||
interface:
|
|
||||||
itype: stdio
|
|
||||||
name: tap1
|
|
||||||
vppifaceid: 1
|
|
||||||
vppbridgeid: 4242
|
|
||||||
macaddrprefix: AA:BB:CC:DD
|
|
||||||
mtu: 1416
|
|
||||||
recvaddr: 127.0.0.1:4001
|
|
||||||
sendaddr: 127.0.0.1:5001
|
|
||||||
l2headermode: kbdbg
|
|
||||||
nodeid: 1
|
|
||||||
nodename: Node01
|
|
||||||
defaultttl: 200
|
|
||||||
l2fibtimeout: 3600
|
|
||||||
privkey: aABzjKhWdkFfQ29ZuijtMp1h1TNJe66SDCwvfmvQznw=
|
|
||||||
listenport: 3001
|
|
||||||
loglevel:
|
|
||||||
loglevel: normal
|
|
||||||
logtransit: true
|
|
||||||
logcontrol: true
|
|
||||||
lognormal: true
|
|
||||||
loginternal: true
|
|
||||||
logntp: true
|
|
||||||
dynamicroute:
|
|
||||||
sendpinginterval: 20
|
|
||||||
peeralivetimeout: 30
|
|
||||||
dupchecktimeout: 40
|
|
||||||
conntimeout: 30
|
|
||||||
connnexttry: 5
|
|
||||||
savenewpeers: false
|
|
||||||
supernode:
|
|
||||||
usesupernode: false
|
|
||||||
connurlv4: 127.0.0.1:3000
|
|
||||||
pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic=
|
|
||||||
connurlv6: '[::1]:3000'
|
|
||||||
pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI=
|
|
||||||
apiurl: http://127.0.0.1:3000/api
|
|
||||||
supernodeinfotimeout: 40
|
|
||||||
p2p:
|
|
||||||
usep2p: true
|
|
||||||
sendpeerinterval: 20
|
|
||||||
graphrecalculatesetting:
|
|
||||||
staticmode: false
|
|
||||||
jittertolerance: 20
|
|
||||||
jittertolerancemultiplier: 1.1
|
|
||||||
nodereporttimeout: 40
|
|
||||||
timeoutcheckinterval: 5
|
|
||||||
recalculatecooldown: 5
|
|
||||||
ntpconfig:
|
|
||||||
usentp: true
|
|
||||||
maxserveruse: 8
|
|
||||||
synctimeinterval: 3600
|
|
||||||
ntptimeout: 10
|
|
||||||
servers:
|
|
||||||
- time.google.com
|
|
||||||
- time1.google.com
|
|
||||||
- time2.google.com
|
|
||||||
- time3.google.com
|
|
||||||
- time4.google.com
|
|
||||||
- time1.facebook.com
|
|
||||||
- time2.facebook.com
|
|
||||||
- time3.facebook.com
|
|
||||||
- time4.facebook.com
|
|
||||||
- time5.facebook.com
|
|
||||||
- time.cloudflare.com
|
|
||||||
- time.apple.com
|
|
||||||
- time.asia.apple.com
|
|
||||||
- time.euro.apple.com
|
|
||||||
- time.windows.com
|
|
||||||
nexthoptable:
|
|
||||||
1:
|
|
||||||
2: 2
|
|
||||||
3: 2
|
|
||||||
4: 2
|
|
||||||
5: 2
|
|
||||||
6: 2
|
|
||||||
2:
|
|
||||||
1: 1
|
|
||||||
3: 3
|
|
||||||
4: 4
|
|
||||||
5: 3
|
|
||||||
6: 4
|
|
||||||
3:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
4: 4
|
|
||||||
5: 5
|
|
||||||
6: 4
|
|
||||||
4:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
3: 3
|
|
||||||
5: 3
|
|
||||||
6: 6
|
|
||||||
5:
|
|
||||||
1: 3
|
|
||||||
2: 3
|
|
||||||
3: 3
|
|
||||||
4: 3
|
|
||||||
6: 3
|
|
||||||
6:
|
|
||||||
1: 4
|
|
||||||
2: 4
|
|
||||||
3: 4
|
|
||||||
4: 4
|
|
||||||
5: 4
|
|
||||||
resetconninterval: 86400
|
|
||||||
peers:
|
|
||||||
- nodeid: 2
|
|
||||||
pubkey: csT+hco4Jpa7btMeC9subHk2ZqzxcljcBk/57V0cSEk=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3002
|
|
||||||
static: true
|
|
@ -1,123 +0,0 @@
|
|||||||
interface:
|
|
||||||
itype: stdio
|
|
||||||
name: tap2
|
|
||||||
vppifaceid: 2
|
|
||||||
vppbridgeid: 4242
|
|
||||||
macaddrprefix: AA:BB:CC:DD
|
|
||||||
mtu: 1416
|
|
||||||
recvaddr: 127.0.0.1:4002
|
|
||||||
sendaddr: 127.0.0.1:5002
|
|
||||||
l2headermode: kbdbg
|
|
||||||
nodeid: 2
|
|
||||||
nodename: Node02
|
|
||||||
defaultttl: 200
|
|
||||||
l2fibtimeout: 3600
|
|
||||||
privkey: UNZMzPX5fG/8yGC8edVj/ksF9N6ARRqdq7fqE/PD7ls=
|
|
||||||
listenport: 3002
|
|
||||||
loglevel:
|
|
||||||
loglevel: normal
|
|
||||||
logtransit: true
|
|
||||||
logcontrol: true
|
|
||||||
lognormal: true
|
|
||||||
loginternal: true
|
|
||||||
logntp: true
|
|
||||||
dynamicroute:
|
|
||||||
sendpinginterval: 20
|
|
||||||
peeralivetimeout: 30
|
|
||||||
dupchecktimeout: 40
|
|
||||||
conntimeout: 30
|
|
||||||
connnexttry: 5
|
|
||||||
savenewpeers: false
|
|
||||||
supernode:
|
|
||||||
usesupernode: false
|
|
||||||
connurlv4: 127.0.0.1:3000
|
|
||||||
pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic=
|
|
||||||
connurlv6: '[::1]:3000'
|
|
||||||
pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI=
|
|
||||||
apiurl: http://127.0.0.1:3000/api
|
|
||||||
supernodeinfotimeout: 40
|
|
||||||
p2p:
|
|
||||||
usep2p: true
|
|
||||||
sendpeerinterval: 20
|
|
||||||
graphrecalculatesetting:
|
|
||||||
staticmode: false
|
|
||||||
jittertolerance: 20
|
|
||||||
jittertolerancemultiplier: 1.1
|
|
||||||
nodereporttimeout: 40
|
|
||||||
timeoutcheckinterval: 5
|
|
||||||
recalculatecooldown: 5
|
|
||||||
ntpconfig:
|
|
||||||
usentp: true
|
|
||||||
maxserveruse: 8
|
|
||||||
synctimeinterval: 3600
|
|
||||||
ntptimeout: 10
|
|
||||||
servers:
|
|
||||||
- time.google.com
|
|
||||||
- time1.google.com
|
|
||||||
- time2.google.com
|
|
||||||
- time3.google.com
|
|
||||||
- time4.google.com
|
|
||||||
- time1.facebook.com
|
|
||||||
- time2.facebook.com
|
|
||||||
- time3.facebook.com
|
|
||||||
- time4.facebook.com
|
|
||||||
- time5.facebook.com
|
|
||||||
- time.cloudflare.com
|
|
||||||
- time.apple.com
|
|
||||||
- time.asia.apple.com
|
|
||||||
- time.euro.apple.com
|
|
||||||
- time.windows.com
|
|
||||||
nexthoptable:
|
|
||||||
1:
|
|
||||||
2: 2
|
|
||||||
3: 2
|
|
||||||
4: 2
|
|
||||||
5: 2
|
|
||||||
6: 2
|
|
||||||
2:
|
|
||||||
1: 1
|
|
||||||
3: 3
|
|
||||||
4: 4
|
|
||||||
5: 3
|
|
||||||
6: 4
|
|
||||||
3:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
4: 4
|
|
||||||
5: 5
|
|
||||||
6: 4
|
|
||||||
4:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
3: 3
|
|
||||||
5: 3
|
|
||||||
6: 6
|
|
||||||
5:
|
|
||||||
1: 3
|
|
||||||
2: 3
|
|
||||||
3: 3
|
|
||||||
4: 3
|
|
||||||
6: 3
|
|
||||||
6:
|
|
||||||
1: 4
|
|
||||||
2: 4
|
|
||||||
3: 4
|
|
||||||
4: 4
|
|
||||||
5: 4
|
|
||||||
resetconninterval: 86400
|
|
||||||
peers:
|
|
||||||
- nodeid: 1
|
|
||||||
pubkey: CooSkIP7/wiC7Rh83UYnB2yPkJijkNFmhtorHtyYlzY=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3001
|
|
||||||
static: true
|
|
||||||
- nodeid: 3
|
|
||||||
pubkey: 0meQ0pQCAkLZdpfyMqggpnk0k3UKG2M8jfIMlQjTRWs=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3003
|
|
||||||
static: true
|
|
||||||
- nodeid: 4
|
|
||||||
pubkey: 2EfY85KF1S+3dZ3A55eZcyi0QU+sOzOyuADtJs2U2Ww=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3004
|
|
||||||
static: true
|
|
@ -1,123 +0,0 @@
|
|||||||
interface:
|
|
||||||
itype: stdio
|
|
||||||
name: tap3
|
|
||||||
vppifaceid: 3
|
|
||||||
vppbridgeid: 4242
|
|
||||||
macaddrprefix: AA:BB:CC:DD
|
|
||||||
mtu: 1416
|
|
||||||
recvaddr: 127.0.0.1:4003
|
|
||||||
sendaddr: 127.0.0.1:5003
|
|
||||||
l2headermode: kbdbg
|
|
||||||
nodeid: 3
|
|
||||||
nodename: Node03
|
|
||||||
defaultttl: 200
|
|
||||||
l2fibtimeout: 3600
|
|
||||||
privkey: gJy35nbsd8FuuxyWHjsefN+U+oM7RkuIB1EanNLSVHg=
|
|
||||||
listenport: 3003
|
|
||||||
loglevel:
|
|
||||||
loglevel: normal
|
|
||||||
logtransit: true
|
|
||||||
logcontrol: true
|
|
||||||
lognormal: true
|
|
||||||
loginternal: true
|
|
||||||
logntp: true
|
|
||||||
dynamicroute:
|
|
||||||
sendpinginterval: 20
|
|
||||||
peeralivetimeout: 30
|
|
||||||
dupchecktimeout: 40
|
|
||||||
conntimeout: 30
|
|
||||||
connnexttry: 5
|
|
||||||
savenewpeers: false
|
|
||||||
supernode:
|
|
||||||
usesupernode: false
|
|
||||||
connurlv4: 127.0.0.1:3000
|
|
||||||
pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic=
|
|
||||||
connurlv6: '[::1]:3000'
|
|
||||||
pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI=
|
|
||||||
apiurl: http://127.0.0.1:3000/api
|
|
||||||
supernodeinfotimeout: 40
|
|
||||||
p2p:
|
|
||||||
usep2p: true
|
|
||||||
sendpeerinterval: 20
|
|
||||||
graphrecalculatesetting:
|
|
||||||
staticmode: false
|
|
||||||
jittertolerance: 20
|
|
||||||
jittertolerancemultiplier: 1.1
|
|
||||||
nodereporttimeout: 40
|
|
||||||
timeoutcheckinterval: 5
|
|
||||||
recalculatecooldown: 5
|
|
||||||
ntpconfig:
|
|
||||||
usentp: true
|
|
||||||
maxserveruse: 8
|
|
||||||
synctimeinterval: 3600
|
|
||||||
ntptimeout: 10
|
|
||||||
servers:
|
|
||||||
- time.google.com
|
|
||||||
- time1.google.com
|
|
||||||
- time2.google.com
|
|
||||||
- time3.google.com
|
|
||||||
- time4.google.com
|
|
||||||
- time1.facebook.com
|
|
||||||
- time2.facebook.com
|
|
||||||
- time3.facebook.com
|
|
||||||
- time4.facebook.com
|
|
||||||
- time5.facebook.com
|
|
||||||
- time.cloudflare.com
|
|
||||||
- time.apple.com
|
|
||||||
- time.asia.apple.com
|
|
||||||
- time.euro.apple.com
|
|
||||||
- time.windows.com
|
|
||||||
nexthoptable:
|
|
||||||
1:
|
|
||||||
2: 2
|
|
||||||
3: 2
|
|
||||||
4: 2
|
|
||||||
5: 2
|
|
||||||
6: 2
|
|
||||||
2:
|
|
||||||
1: 1
|
|
||||||
3: 3
|
|
||||||
4: 4
|
|
||||||
5: 3
|
|
||||||
6: 4
|
|
||||||
3:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
4: 4
|
|
||||||
5: 5
|
|
||||||
6: 4
|
|
||||||
4:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
3: 3
|
|
||||||
5: 3
|
|
||||||
6: 6
|
|
||||||
5:
|
|
||||||
1: 3
|
|
||||||
2: 3
|
|
||||||
3: 3
|
|
||||||
4: 3
|
|
||||||
6: 3
|
|
||||||
6:
|
|
||||||
1: 4
|
|
||||||
2: 4
|
|
||||||
3: 4
|
|
||||||
4: 4
|
|
||||||
5: 4
|
|
||||||
resetconninterval: 86400
|
|
||||||
peers:
|
|
||||||
- nodeid: 2
|
|
||||||
pubkey: csT+hco4Jpa7btMeC9subHk2ZqzxcljcBk/57V0cSEk=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3002
|
|
||||||
static: true
|
|
||||||
- nodeid: 4
|
|
||||||
pubkey: 2EfY85KF1S+3dZ3A55eZcyi0QU+sOzOyuADtJs2U2Ww=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3004
|
|
||||||
static: true
|
|
||||||
- nodeid: 5
|
|
||||||
pubkey: yS7a/e0l0qF7z9MO/P79yYVfLI6UAli2iKjEZa6XmgY=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3005
|
|
||||||
static: true
|
|
@ -1,123 +0,0 @@
|
|||||||
interface:
|
|
||||||
itype: stdio
|
|
||||||
name: tap4
|
|
||||||
vppifaceid: 4
|
|
||||||
vppbridgeid: 4242
|
|
||||||
macaddrprefix: AA:BB:CC:DD
|
|
||||||
mtu: 1416
|
|
||||||
recvaddr: 127.0.0.1:4004
|
|
||||||
sendaddr: 127.0.0.1:5004
|
|
||||||
l2headermode: kbdbg
|
|
||||||
nodeid: 4
|
|
||||||
nodename: Node04
|
|
||||||
defaultttl: 200
|
|
||||||
l2fibtimeout: 3600
|
|
||||||
privkey: wAdLgCk0SHiO11/aUf9944focD1BUCH5b6Pe+cRHHXQ=
|
|
||||||
listenport: 3004
|
|
||||||
loglevel:
|
|
||||||
loglevel: normal
|
|
||||||
logtransit: true
|
|
||||||
logcontrol: true
|
|
||||||
lognormal: true
|
|
||||||
loginternal: true
|
|
||||||
logntp: true
|
|
||||||
dynamicroute:
|
|
||||||
sendpinginterval: 20
|
|
||||||
peeralivetimeout: 30
|
|
||||||
dupchecktimeout: 40
|
|
||||||
conntimeout: 30
|
|
||||||
connnexttry: 5
|
|
||||||
savenewpeers: false
|
|
||||||
supernode:
|
|
||||||
usesupernode: false
|
|
||||||
connurlv4: 127.0.0.1:3000
|
|
||||||
pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic=
|
|
||||||
connurlv6: '[::1]:3000'
|
|
||||||
pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI=
|
|
||||||
apiurl: http://127.0.0.1:3000/api
|
|
||||||
supernodeinfotimeout: 40
|
|
||||||
p2p:
|
|
||||||
usep2p: true
|
|
||||||
sendpeerinterval: 20
|
|
||||||
graphrecalculatesetting:
|
|
||||||
staticmode: false
|
|
||||||
jittertolerance: 20
|
|
||||||
jittertolerancemultiplier: 1.1
|
|
||||||
nodereporttimeout: 40
|
|
||||||
timeoutcheckinterval: 5
|
|
||||||
recalculatecooldown: 5
|
|
||||||
ntpconfig:
|
|
||||||
usentp: true
|
|
||||||
maxserveruse: 8
|
|
||||||
synctimeinterval: 3600
|
|
||||||
ntptimeout: 10
|
|
||||||
servers:
|
|
||||||
- time.google.com
|
|
||||||
- time1.google.com
|
|
||||||
- time2.google.com
|
|
||||||
- time3.google.com
|
|
||||||
- time4.google.com
|
|
||||||
- time1.facebook.com
|
|
||||||
- time2.facebook.com
|
|
||||||
- time3.facebook.com
|
|
||||||
- time4.facebook.com
|
|
||||||
- time5.facebook.com
|
|
||||||
- time.cloudflare.com
|
|
||||||
- time.apple.com
|
|
||||||
- time.asia.apple.com
|
|
||||||
- time.euro.apple.com
|
|
||||||
- time.windows.com
|
|
||||||
nexthoptable:
|
|
||||||
1:
|
|
||||||
2: 2
|
|
||||||
3: 2
|
|
||||||
4: 2
|
|
||||||
5: 2
|
|
||||||
6: 2
|
|
||||||
2:
|
|
||||||
1: 1
|
|
||||||
3: 3
|
|
||||||
4: 4
|
|
||||||
5: 3
|
|
||||||
6: 4
|
|
||||||
3:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
4: 4
|
|
||||||
5: 5
|
|
||||||
6: 4
|
|
||||||
4:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
3: 3
|
|
||||||
5: 3
|
|
||||||
6: 6
|
|
||||||
5:
|
|
||||||
1: 3
|
|
||||||
2: 3
|
|
||||||
3: 3
|
|
||||||
4: 3
|
|
||||||
6: 3
|
|
||||||
6:
|
|
||||||
1: 4
|
|
||||||
2: 4
|
|
||||||
3: 4
|
|
||||||
4: 4
|
|
||||||
5: 4
|
|
||||||
resetconninterval: 86400
|
|
||||||
peers:
|
|
||||||
- nodeid: 2
|
|
||||||
pubkey: csT+hco4Jpa7btMeC9subHk2ZqzxcljcBk/57V0cSEk=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3002
|
|
||||||
static: true
|
|
||||||
- nodeid: 3
|
|
||||||
pubkey: 0meQ0pQCAkLZdpfyMqggpnk0k3UKG2M8jfIMlQjTRWs=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3003
|
|
||||||
static: true
|
|
||||||
- nodeid: 6
|
|
||||||
pubkey: EXLAGpDrkB5cjP7lr4dL0FGZG0rssmQNtWx9k/CGChk=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3006
|
|
||||||
static: true
|
|
@ -1,113 +0,0 @@
|
|||||||
interface:
|
|
||||||
itype: stdio
|
|
||||||
name: tap5
|
|
||||||
vppifaceid: 5
|
|
||||||
vppbridgeid: 4242
|
|
||||||
macaddrprefix: AA:BB:CC:DD
|
|
||||||
mtu: 1416
|
|
||||||
recvaddr: 127.0.0.1:4005
|
|
||||||
sendaddr: 127.0.0.1:5005
|
|
||||||
l2headermode: kbdbg
|
|
||||||
nodeid: 5
|
|
||||||
nodename: Node05
|
|
||||||
defaultttl: 200
|
|
||||||
l2fibtimeout: 3600
|
|
||||||
privkey: gLmzeCbmN/hjiE+ehNXL9IxuG9hhWIYv2s16/DOW6FE=
|
|
||||||
listenport: 3005
|
|
||||||
loglevel:
|
|
||||||
loglevel: normal
|
|
||||||
logtransit: true
|
|
||||||
logcontrol: true
|
|
||||||
lognormal: true
|
|
||||||
loginternal: true
|
|
||||||
logntp: true
|
|
||||||
dynamicroute:
|
|
||||||
sendpinginterval: 20
|
|
||||||
peeralivetimeout: 30
|
|
||||||
dupchecktimeout: 40
|
|
||||||
conntimeout: 30
|
|
||||||
connnexttry: 5
|
|
||||||
savenewpeers: false
|
|
||||||
supernode:
|
|
||||||
usesupernode: false
|
|
||||||
connurlv4: 127.0.0.1:3000
|
|
||||||
pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic=
|
|
||||||
connurlv6: '[::1]:3000'
|
|
||||||
pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI=
|
|
||||||
apiurl: http://127.0.0.1:3000/api
|
|
||||||
supernodeinfotimeout: 40
|
|
||||||
p2p:
|
|
||||||
usep2p: true
|
|
||||||
sendpeerinterval: 20
|
|
||||||
graphrecalculatesetting:
|
|
||||||
staticmode: false
|
|
||||||
jittertolerance: 20
|
|
||||||
jittertolerancemultiplier: 1.1
|
|
||||||
nodereporttimeout: 40
|
|
||||||
timeoutcheckinterval: 5
|
|
||||||
recalculatecooldown: 5
|
|
||||||
ntpconfig:
|
|
||||||
usentp: true
|
|
||||||
maxserveruse: 8
|
|
||||||
synctimeinterval: 3600
|
|
||||||
ntptimeout: 10
|
|
||||||
servers:
|
|
||||||
- time.google.com
|
|
||||||
- time1.google.com
|
|
||||||
- time2.google.com
|
|
||||||
- time3.google.com
|
|
||||||
- time4.google.com
|
|
||||||
- time1.facebook.com
|
|
||||||
- time2.facebook.com
|
|
||||||
- time3.facebook.com
|
|
||||||
- time4.facebook.com
|
|
||||||
- time5.facebook.com
|
|
||||||
- time.cloudflare.com
|
|
||||||
- time.apple.com
|
|
||||||
- time.asia.apple.com
|
|
||||||
- time.euro.apple.com
|
|
||||||
- time.windows.com
|
|
||||||
nexthoptable:
|
|
||||||
1:
|
|
||||||
2: 2
|
|
||||||
3: 2
|
|
||||||
4: 2
|
|
||||||
5: 2
|
|
||||||
6: 2
|
|
||||||
2:
|
|
||||||
1: 1
|
|
||||||
3: 3
|
|
||||||
4: 4
|
|
||||||
5: 3
|
|
||||||
6: 4
|
|
||||||
3:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
4: 4
|
|
||||||
5: 5
|
|
||||||
6: 4
|
|
||||||
4:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
3: 3
|
|
||||||
5: 3
|
|
||||||
6: 6
|
|
||||||
5:
|
|
||||||
1: 3
|
|
||||||
2: 3
|
|
||||||
3: 3
|
|
||||||
4: 3
|
|
||||||
6: 3
|
|
||||||
6:
|
|
||||||
1: 4
|
|
||||||
2: 4
|
|
||||||
3: 4
|
|
||||||
4: 4
|
|
||||||
5: 4
|
|
||||||
resetconninterval: 86400
|
|
||||||
peers:
|
|
||||||
- nodeid: 3
|
|
||||||
pubkey: 0meQ0pQCAkLZdpfyMqggpnk0k3UKG2M8jfIMlQjTRWs=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3003
|
|
||||||
static: true
|
|
@ -1,113 +0,0 @@
|
|||||||
interface:
|
|
||||||
itype: stdio
|
|
||||||
name: tap6
|
|
||||||
vppifaceid: 6
|
|
||||||
vppbridgeid: 4242
|
|
||||||
macaddrprefix: AA:BB:CC:DD
|
|
||||||
mtu: 1416
|
|
||||||
recvaddr: 127.0.0.1:4006
|
|
||||||
sendaddr: 127.0.0.1:5006
|
|
||||||
l2headermode: kbdbg
|
|
||||||
nodeid: 6
|
|
||||||
nodename: Node06
|
|
||||||
defaultttl: 200
|
|
||||||
l2fibtimeout: 3600
|
|
||||||
privkey: IIX5F6oWZUS2dlhxWFJ7TxdJtDCr5jzeuhxUB6YM7Us=
|
|
||||||
listenport: 3006
|
|
||||||
loglevel:
|
|
||||||
loglevel: normal
|
|
||||||
logtransit: true
|
|
||||||
logcontrol: true
|
|
||||||
lognormal: true
|
|
||||||
loginternal: true
|
|
||||||
logntp: true
|
|
||||||
dynamicroute:
|
|
||||||
sendpinginterval: 20
|
|
||||||
peeralivetimeout: 30
|
|
||||||
dupchecktimeout: 40
|
|
||||||
conntimeout: 30
|
|
||||||
connnexttry: 5
|
|
||||||
savenewpeers: false
|
|
||||||
supernode:
|
|
||||||
usesupernode: false
|
|
||||||
connurlv4: 127.0.0.1:3000
|
|
||||||
pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic=
|
|
||||||
connurlv6: '[::1]:3000'
|
|
||||||
pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI=
|
|
||||||
apiurl: http://127.0.0.1:3000/api
|
|
||||||
supernodeinfotimeout: 40
|
|
||||||
p2p:
|
|
||||||
usep2p: true
|
|
||||||
sendpeerinterval: 20
|
|
||||||
graphrecalculatesetting:
|
|
||||||
staticmode: false
|
|
||||||
jittertolerance: 20
|
|
||||||
jittertolerancemultiplier: 1.1
|
|
||||||
nodereporttimeout: 40
|
|
||||||
timeoutcheckinterval: 5
|
|
||||||
recalculatecooldown: 5
|
|
||||||
ntpconfig:
|
|
||||||
usentp: true
|
|
||||||
maxserveruse: 8
|
|
||||||
synctimeinterval: 3600
|
|
||||||
ntptimeout: 10
|
|
||||||
servers:
|
|
||||||
- time.google.com
|
|
||||||
- time1.google.com
|
|
||||||
- time2.google.com
|
|
||||||
- time3.google.com
|
|
||||||
- time4.google.com
|
|
||||||
- time1.facebook.com
|
|
||||||
- time2.facebook.com
|
|
||||||
- time3.facebook.com
|
|
||||||
- time4.facebook.com
|
|
||||||
- time5.facebook.com
|
|
||||||
- time.cloudflare.com
|
|
||||||
- time.apple.com
|
|
||||||
- time.asia.apple.com
|
|
||||||
- time.euro.apple.com
|
|
||||||
- time.windows.com
|
|
||||||
nexthoptable:
|
|
||||||
1:
|
|
||||||
2: 2
|
|
||||||
3: 2
|
|
||||||
4: 2
|
|
||||||
5: 2
|
|
||||||
6: 2
|
|
||||||
2:
|
|
||||||
1: 1
|
|
||||||
3: 3
|
|
||||||
4: 4
|
|
||||||
5: 3
|
|
||||||
6: 4
|
|
||||||
3:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
4: 4
|
|
||||||
5: 5
|
|
||||||
6: 4
|
|
||||||
4:
|
|
||||||
1: 2
|
|
||||||
2: 2
|
|
||||||
3: 3
|
|
||||||
5: 3
|
|
||||||
6: 6
|
|
||||||
5:
|
|
||||||
1: 3
|
|
||||||
2: 3
|
|
||||||
3: 3
|
|
||||||
4: 3
|
|
||||||
6: 3
|
|
||||||
6:
|
|
||||||
1: 4
|
|
||||||
2: 4
|
|
||||||
3: 4
|
|
||||||
4: 4
|
|
||||||
5: 4
|
|
||||||
resetconninterval: 86400
|
|
||||||
peers:
|
|
||||||
- nodeid: 4
|
|
||||||
pubkey: 2EfY85KF1S+3dZ3A55eZcyi0QU+sOzOyuADtJs2U2Ww=
|
|
||||||
pskey: ""
|
|
||||||
endpoint: 127.0.0.1:3004
|
|
||||||
static: true
|
|
@ -3,7 +3,7 @@ Interface:
|
|||||||
Name: tap1
|
Name: tap1
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: DA:21:10:81
|
MacAddrPrefix: EA:C9:BC:0F
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -16,7 +16,7 @@ NodeName: EgNet1
|
|||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: LFFQqPBQ84x2AQ9BCI+0wG8nr+Y6yXHqhXkMCb4HCmg=
|
PrivKey: wEo/Y73+zu/OwhdV6pfwJHaUlhPhQJFk5scQYAWHdcI=
|
||||||
ListenPort: 3001
|
ListenPort: 3001
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
@ -28,10 +28,11 @@ LogLevel:
|
|||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: false
|
UseSuperNode: false
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
||||||
@ -100,8 +100,8 @@ NextHopTable:
|
|||||||
ResetConnInterval: 86400
|
ResetConnInterval: 86400
|
||||||
Peers:
|
Peers:
|
||||||
- NodeID: 2
|
- NodeID: 2
|
||||||
PubKey: 0r2o9Hb36gYVgD3VSKCH18MVOZw0BvzcJ6TOTo6Cc1g=
|
PubKey: /OUi+mno1dvZi3L0T72P4Lxd42TkXdEJwR0VEhsaKxQ=
|
||||||
PSKey: lFq67qp9LXL3PtlEJ3SGg3c/6++Ljy2I8i/k0Xcibvk=
|
PSKey: viLcvMWwVR2P+ojtc2psl5CFhmziiet5aquG3KFQDrs=
|
||||||
EndPoint: 127.0.0.1:3002
|
EndPoint: 127.0.0.1:3002
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
|
@ -3,7 +3,7 @@ Interface:
|
|||||||
Name: tap1
|
Name: tap1
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: DA:21:10:81
|
MacAddrPrefix: EA:C9:BC:0F
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -16,7 +16,7 @@ NodeName: EgNet2
|
|||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: M8SxYCTHCPES/yPqcKP4mr+AoMAx9sgUmk64FCJIv6k=
|
PrivKey: RYPUQ3ne0AxLKF6T800B/bqiF0L6kIA5aP6E2MUYoKw=
|
||||||
ListenPort: 3002
|
ListenPort: 3002
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
@ -28,10 +28,11 @@ LogLevel:
|
|||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: false
|
UseSuperNode: false
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
||||||
@ -99,21 +99,21 @@ NextHopTable:
|
|||||||
5: 4
|
5: 4
|
||||||
ResetConnInterval: 86400
|
ResetConnInterval: 86400
|
||||||
Peers:
|
Peers:
|
||||||
|
- NodeID: 4
|
||||||
|
PubKey: 4WO6Eqm0puYvZMyw6mlzq8Ap0KKXcaqbaQp0zxAVYhs=
|
||||||
|
PSKey: VVzfkmJBGdjphL0Ccs0Ka04rgsOlZkhuO308u4yK5Wc=
|
||||||
|
EndPoint: 127.0.0.1:3004
|
||||||
|
PersistentKeepalive: 0
|
||||||
|
Static: true
|
||||||
- NodeID: 1
|
- NodeID: 1
|
||||||
PubKey: fnc7bfFTf7B23hwtARPpX14tCeZwNfDhGCJctBpMfA8=
|
PubKey: 4J8epTkbMnIiSQRM1BAzLMSjTN2OdcuXqIfH74IeQh0=
|
||||||
PSKey: lFq67qp9LXL3PtlEJ3SGg3c/6++Ljy2I8i/k0Xcibvk=
|
PSKey: viLcvMWwVR2P+ojtc2psl5CFhmziiet5aquG3KFQDrs=
|
||||||
EndPoint: 127.0.0.1:3001
|
EndPoint: 127.0.0.1:3001
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
- NodeID: 3
|
- NodeID: 3
|
||||||
PubKey: ymNpm430tiph3rMSVnQzDAxmK9+3jdcRFi6e96xmQUI=
|
PubKey: FRpS3KJJDiG3LgNkZCZiSNenYR3b/nINu2fTJmXZWlo=
|
||||||
PSKey: Y86PZY1ldgoyzPJxEqei5Vg5zlzkJkoO77LJfxV8alE=
|
PSKey: LBGuT44cTMEFe03LIpG3ze8GF+ZFmQ7/90ZdQUm/Stw=
|
||||||
EndPoint: 127.0.0.1:3003
|
EndPoint: 127.0.0.1:3003
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
- NodeID: 4
|
|
||||||
PubKey: 9YSIkihv/+aeukOaWwsR9EKvO1DM9+5kN53a/osTpmA=
|
|
||||||
PSKey: QHyrrls0KT2dvBKtoWkZvq5NQ+Xyjm0YgbMUzCCRw34=
|
|
||||||
EndPoint: 127.0.0.1:3004
|
|
||||||
PersistentKeepalive: 0
|
|
||||||
Static: true
|
|
||||||
|
@ -3,7 +3,7 @@ Interface:
|
|||||||
Name: tap1
|
Name: tap1
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: DA:21:10:81
|
MacAddrPrefix: EA:C9:BC:0F
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -16,7 +16,7 @@ NodeName: EgNet3
|
|||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: cTO/GUSYHoj5mKczCyQu/ckPiDMEygkUbXcY3RafGEE=
|
PrivKey: f1B5y7rG0+ci4SM3myrPgUZdMsKfytqS1tC9V07mTrc=
|
||||||
ListenPort: 3003
|
ListenPort: 3003
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
@ -28,10 +28,11 @@ LogLevel:
|
|||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: false
|
UseSuperNode: false
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
||||||
@ -100,20 +100,20 @@ NextHopTable:
|
|||||||
ResetConnInterval: 86400
|
ResetConnInterval: 86400
|
||||||
Peers:
|
Peers:
|
||||||
- NodeID: 2
|
- NodeID: 2
|
||||||
PubKey: 0r2o9Hb36gYVgD3VSKCH18MVOZw0BvzcJ6TOTo6Cc1g=
|
PubKey: /OUi+mno1dvZi3L0T72P4Lxd42TkXdEJwR0VEhsaKxQ=
|
||||||
PSKey: Y86PZY1ldgoyzPJxEqei5Vg5zlzkJkoO77LJfxV8alE=
|
PSKey: LBGuT44cTMEFe03LIpG3ze8GF+ZFmQ7/90ZdQUm/Stw=
|
||||||
EndPoint: 127.0.0.1:3002
|
EndPoint: 127.0.0.1:3002
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
- NodeID: 4
|
- NodeID: 4
|
||||||
PubKey: 9YSIkihv/+aeukOaWwsR9EKvO1DM9+5kN53a/osTpmA=
|
PubKey: 4WO6Eqm0puYvZMyw6mlzq8Ap0KKXcaqbaQp0zxAVYhs=
|
||||||
PSKey: SQyLomXDeknBIFezUKardOviAmNS+YZ1XTvZtYVlOtE=
|
PSKey: Kpd1FKPEj+NFgq69+t5xDely7Yp5tU+fvlkeRVNCb2I=
|
||||||
EndPoint: 127.0.0.1:3004
|
EndPoint: 127.0.0.1:3004
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
- NodeID: 5
|
- NodeID: 5
|
||||||
PubKey: x66hOjYXoZjL1FI3OVtf/CWittsnvmezKV6sW0v5FXQ=
|
PubKey: raPJ4aW930QQMko5khFGnFB9TcVv+iHNJpnjdCm6Wwo=
|
||||||
PSKey: ChWBQurfGNZE5xIlhi9EUvZrQPBvkFsfrPaD6tyqSYg=
|
PSKey: pd+roM0C5CqSii7NPZkgK3EWdx0PS2zXEiUHycdIPts=
|
||||||
EndPoint: 127.0.0.1:3005
|
EndPoint: 127.0.0.1:3005
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
|
@ -3,7 +3,7 @@ Interface:
|
|||||||
Name: tap1
|
Name: tap1
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: DA:21:10:81
|
MacAddrPrefix: EA:C9:BC:0F
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -16,7 +16,7 @@ NodeName: EgNet4
|
|||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: ai9XXdezwamYHf7EvzmLGlMp7mUg+hZwoqLefzwHWVM=
|
PrivKey: GwPv8hvKV5YP6TdSc9Bn4lJirmyapU/4iHb6NhgUueI=
|
||||||
ListenPort: 3004
|
ListenPort: 3004
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
@ -28,10 +28,11 @@ LogLevel:
|
|||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: false
|
UseSuperNode: false
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
||||||
@ -100,20 +100,20 @@ NextHopTable:
|
|||||||
ResetConnInterval: 86400
|
ResetConnInterval: 86400
|
||||||
Peers:
|
Peers:
|
||||||
- NodeID: 2
|
- NodeID: 2
|
||||||
PubKey: 0r2o9Hb36gYVgD3VSKCH18MVOZw0BvzcJ6TOTo6Cc1g=
|
PubKey: /OUi+mno1dvZi3L0T72P4Lxd42TkXdEJwR0VEhsaKxQ=
|
||||||
PSKey: QHyrrls0KT2dvBKtoWkZvq5NQ+Xyjm0YgbMUzCCRw34=
|
PSKey: VVzfkmJBGdjphL0Ccs0Ka04rgsOlZkhuO308u4yK5Wc=
|
||||||
EndPoint: 127.0.0.1:3002
|
EndPoint: 127.0.0.1:3002
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
- NodeID: 3
|
- NodeID: 3
|
||||||
PubKey: ymNpm430tiph3rMSVnQzDAxmK9+3jdcRFi6e96xmQUI=
|
PubKey: FRpS3KJJDiG3LgNkZCZiSNenYR3b/nINu2fTJmXZWlo=
|
||||||
PSKey: SQyLomXDeknBIFezUKardOviAmNS+YZ1XTvZtYVlOtE=
|
PSKey: Kpd1FKPEj+NFgq69+t5xDely7Yp5tU+fvlkeRVNCb2I=
|
||||||
EndPoint: 127.0.0.1:3003
|
EndPoint: 127.0.0.1:3003
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
- NodeID: 6
|
- NodeID: 6
|
||||||
PubKey: f6kHXq3qPLocdM0CZEkoumOHevrabzqOBFG5vg9cjDc=
|
PubKey: jY7Uj9s2UXTiiNjZlTuUagIYz5YzAnelfrp4YT8+5So=
|
||||||
PSKey: crsb9pbTY/Bei7TugjPNtg4dVKVzjwC/A6AjlSVoqbQ=
|
PSKey: zd3zB1QWk26a7IOCJSx031TPly3nv7P3QIxk845zsXA=
|
||||||
EndPoint: 127.0.0.1:3006
|
EndPoint: 127.0.0.1:3006
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
|
@ -3,7 +3,7 @@ Interface:
|
|||||||
Name: tap1
|
Name: tap1
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: DA:21:10:81
|
MacAddrPrefix: EA:C9:BC:0F
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -16,7 +16,7 @@ NodeName: EgNet5
|
|||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: hBNK6Wu/Cl2MOXVA/F8yZsqIQ5eeIYCKPJeLu7i/190=
|
PrivKey: jK3oL4WfEPphp+2jra5/uVZwbhI6wqPAXYStOGwGJqQ=
|
||||||
ListenPort: 3005
|
ListenPort: 3005
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
@ -28,10 +28,11 @@ LogLevel:
|
|||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: false
|
UseSuperNode: false
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
||||||
@ -100,8 +100,8 @@ NextHopTable:
|
|||||||
ResetConnInterval: 86400
|
ResetConnInterval: 86400
|
||||||
Peers:
|
Peers:
|
||||||
- NodeID: 3
|
- NodeID: 3
|
||||||
PubKey: ymNpm430tiph3rMSVnQzDAxmK9+3jdcRFi6e96xmQUI=
|
PubKey: FRpS3KJJDiG3LgNkZCZiSNenYR3b/nINu2fTJmXZWlo=
|
||||||
PSKey: ChWBQurfGNZE5xIlhi9EUvZrQPBvkFsfrPaD6tyqSYg=
|
PSKey: pd+roM0C5CqSii7NPZkgK3EWdx0PS2zXEiUHycdIPts=
|
||||||
EndPoint: 127.0.0.1:3003
|
EndPoint: 127.0.0.1:3003
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
|
@ -3,7 +3,7 @@ Interface:
|
|||||||
Name: tap1
|
Name: tap1
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: DA:21:10:81
|
MacAddrPrefix: EA:C9:BC:0F
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -16,7 +16,7 @@ NodeName: EgNet6
|
|||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: ao6wfUYOG3FBYYPlb+VtXk2ZiK6j/6ac75Y9VuKd2Vs=
|
PrivKey: Hn6v3HRWZW63P44qocWQm+hydkZPqCwSSVv7N8aVBBo=
|
||||||
ListenPort: 3006
|
ListenPort: 3006
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
@ -28,10 +28,11 @@ LogLevel:
|
|||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: false
|
UseSuperNode: false
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
||||||
@ -100,8 +100,8 @@ NextHopTable:
|
|||||||
ResetConnInterval: 86400
|
ResetConnInterval: 86400
|
||||||
Peers:
|
Peers:
|
||||||
- NodeID: 4
|
- NodeID: 4
|
||||||
PubKey: 9YSIkihv/+aeukOaWwsR9EKvO1DM9+5kN53a/osTpmA=
|
PubKey: 4WO6Eqm0puYvZMyw6mlzq8Ap0KKXcaqbaQp0zxAVYhs=
|
||||||
PSKey: crsb9pbTY/Bei7TugjPNtg4dVKVzjwC/A6AjlSVoqbQ=
|
PSKey: zd3zB1QWk26a7IOCJSx031TPly3nv7P3QIxk845zsXA=
|
||||||
EndPoint: 127.0.0.1:3004
|
EndPoint: 127.0.0.1:3004
|
||||||
PersistentKeepalive: 0
|
PersistentKeepalive: 0
|
||||||
Static: true
|
Static: true
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Config output dir: /tmp/eg_gen_static
|
Config output dir: /tmp/eg_gen_static
|
||||||
ConfigTemplate for edge node: "" # "EgNet_edge1.yaml"
|
ConfigTemplate for edge node: "EgNet_edge1.yaml"
|
||||||
Network name: "EgNet"
|
Network name: "EgNet"
|
||||||
Edge Node:
|
Edge Node:
|
||||||
MacAddress prefix: ""
|
MacAddress prefix: ""
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Interface:
|
Interface:
|
||||||
IType: stdio
|
IType: stdio
|
||||||
Name: Node001
|
Name: EgNet001
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: CE:51:BA:B4
|
MacAddrPrefix: 62:A6:A3:6D
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -12,34 +12,35 @@ Interface:
|
|||||||
SendAddr: 127.0.0.1:5001
|
SendAddr: 127.0.0.1:5001
|
||||||
L2HeaderMode: kbdbg
|
L2HeaderMode: kbdbg
|
||||||
NodeID: 1
|
NodeID: 1
|
||||||
NodeName: Node001
|
NodeName: EgNet001
|
||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: C0SXvffZh8nDqXYNzG4UqUJtSCiRMEj3ehX5o7QiJz0=
|
PrivKey: 12CRJpzWOTRQDOdtROtwwWb68B4HHjSbrS1WySAkWYI=
|
||||||
ListenPort: 3001
|
ListenPort: 0
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
LogTransit: false
|
LogTransit: false
|
||||||
LogControl: true
|
|
||||||
LogNormal: false
|
LogNormal: false
|
||||||
|
LogControl: true
|
||||||
LogInternal: true
|
LogInternal: true
|
||||||
LogNTP: true
|
LogNTP: true
|
||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: true
|
UseSuperNode: true
|
||||||
PSKey: j2f9Fhdhw2O2zLqUqfL5nTFStjVWPnEXpw7Iqz6VX9M=
|
PSKey: 2eOq1sJlEs3No80xYOaKJ059ElgRaSveyMu9IyQG3X8=
|
||||||
EndpointV4: 127.0.0.1:3456
|
EndpointV4: 127.0.0.1:3456
|
||||||
PubKeyV4: Id/VoZ6HmTU3FSqhxBUswfuHHB0mQxfzcbdoJNGBRzQ=
|
PubKeyV4: 10CPQrpXKqXxnjtpdxDwnYqLglnuRnCFsiSAjxMrMTc=
|
||||||
EndpointV6: :3456
|
EndpointV6: :3456
|
||||||
PubKeyV6: 40tADRhJTvaortwE5Ur4qNXhP+SOMX7ZuSvl251Yxnc=
|
PubKeyV6: KhpV1fJ+jtNT6S5wKUZJbb0oFlDNMS5qxO0f5Ow/QQU=
|
||||||
EndpointEdgeAPIUrl: http://127.0.0.1:3456/eg_net/eg_api
|
EndpointEdgeAPIUrl: http://127.0.0.1:3456/eg_net/eg_api
|
||||||
SkipLocalIP: false
|
SkipLocalIP: false
|
||||||
SuperNodeInfoTimeout: 50
|
SuperNodeInfoTimeout: 50
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
@ -1,9 +1,9 @@
|
|||||||
Interface:
|
Interface:
|
||||||
IType: stdio
|
IType: stdio
|
||||||
Name: Node002
|
Name: EgNet002
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: CE:51:BA:B4
|
MacAddrPrefix: 62:A6:A3:6D
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -12,34 +12,35 @@ Interface:
|
|||||||
SendAddr: 127.0.0.1:5002
|
SendAddr: 127.0.0.1:5002
|
||||||
L2HeaderMode: kbdbg
|
L2HeaderMode: kbdbg
|
||||||
NodeID: 2
|
NodeID: 2
|
||||||
NodeName: Node002
|
NodeName: EgNet002
|
||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: AErxhLXdZvidPZVXRYgD+84fa2qYWG9ft4MRuCbAtt8=
|
PrivKey: 2swvwMtyuOKd2HsrfSY1eEYKRjhS4dCr2Cwtj9or0us=
|
||||||
ListenPort: 3002
|
ListenPort: 0
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
LogTransit: false
|
LogTransit: false
|
||||||
LogControl: true
|
|
||||||
LogNormal: false
|
LogNormal: false
|
||||||
|
LogControl: true
|
||||||
LogInternal: true
|
LogInternal: true
|
||||||
LogNTP: true
|
LogNTP: true
|
||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: true
|
UseSuperNode: true
|
||||||
PSKey: iCw096jsW2aWyMwPyzVEvL8C3XXqMpB+jOeWqDC34uU=
|
PSKey: Ye1vd4P8vZWCLmuhYq8yiu1ziB84AGwuO+/cexQObqc=
|
||||||
EndpointV4: 127.0.0.1:3456
|
EndpointV4: 127.0.0.1:3456
|
||||||
PubKeyV4: Id/VoZ6HmTU3FSqhxBUswfuHHB0mQxfzcbdoJNGBRzQ=
|
PubKeyV4: 10CPQrpXKqXxnjtpdxDwnYqLglnuRnCFsiSAjxMrMTc=
|
||||||
EndpointV6: :3456
|
EndpointV6: :3456
|
||||||
PubKeyV6: 40tADRhJTvaortwE5Ur4qNXhP+SOMX7ZuSvl251Yxnc=
|
PubKeyV6: KhpV1fJ+jtNT6S5wKUZJbb0oFlDNMS5qxO0f5Ow/QQU=
|
||||||
EndpointEdgeAPIUrl: http://127.0.0.1:3456/eg_net/eg_api
|
EndpointEdgeAPIUrl: http://127.0.0.1:3456/eg_net/eg_api
|
||||||
SkipLocalIP: false
|
SkipLocalIP: false
|
||||||
SuperNodeInfoTimeout: 50
|
SuperNodeInfoTimeout: 50
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
@ -1,9 +1,9 @@
|
|||||||
Interface:
|
Interface:
|
||||||
IType: stdio
|
IType: stdio
|
||||||
Name: Node100
|
Name: EgNet100
|
||||||
VPPIFaceID: 1
|
VPPIFaceID: 1
|
||||||
VPPBridgeID: 4242
|
VPPBridgeID: 4242
|
||||||
MacAddrPrefix: CE:51:BA:B4
|
MacAddrPrefix: 62:A6:A3:6D
|
||||||
IPv4CIDR: 192.168.76.0/24
|
IPv4CIDR: 192.168.76.0/24
|
||||||
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
IPv6CIDR: fd95:71cb:a3df:e586::/64
|
||||||
IPv6LLPrefix: fe80::a3df:0/112
|
IPv6LLPrefix: fe80::a3df:0/112
|
||||||
@ -12,34 +12,35 @@ Interface:
|
|||||||
SendAddr: 127.0.0.1:5100
|
SendAddr: 127.0.0.1:5100
|
||||||
L2HeaderMode: kbdbg
|
L2HeaderMode: kbdbg
|
||||||
NodeID: 100
|
NodeID: 100
|
||||||
NodeName: Node100
|
NodeName: EgNet100
|
||||||
PostScript: ""
|
PostScript: ""
|
||||||
DefaultTTL: 200
|
DefaultTTL: 200
|
||||||
L2FIBTimeout: 3600
|
L2FIBTimeout: 3600
|
||||||
PrivKey: a04BVvT+YbrX1ejjvMQVI6k5VRFlBkEX8tuLGWNyNrY=
|
PrivKey: iquaLyD+YLzW3zvI0JGSed9GfDqHYMh/vUaU0PYVAbQ=
|
||||||
ListenPort: 3100
|
ListenPort: 0
|
||||||
LogLevel:
|
LogLevel:
|
||||||
LogLevel: error
|
LogLevel: error
|
||||||
LogTransit: false
|
LogTransit: false
|
||||||
LogControl: true
|
|
||||||
LogNormal: false
|
LogNormal: false
|
||||||
|
LogControl: true
|
||||||
LogInternal: true
|
LogInternal: true
|
||||||
LogNTP: true
|
LogNTP: true
|
||||||
DynamicRoute:
|
DynamicRoute:
|
||||||
SendPingInterval: 16
|
SendPingInterval: 16
|
||||||
PeerAliveTimeout: 70
|
PeerAliveTimeout: 70
|
||||||
DupCheckTimeout: 40
|
TimeoutCheckInterval: 20
|
||||||
ConnTimeOut: 20
|
|
||||||
ConnNextTry: 5
|
ConnNextTry: 5
|
||||||
|
DupCheckTimeout: 40
|
||||||
AdditionalCost: 10
|
AdditionalCost: 10
|
||||||
|
DampingResistance: 0.9
|
||||||
SaveNewPeers: true
|
SaveNewPeers: true
|
||||||
SuperNode:
|
SuperNode:
|
||||||
UseSuperNode: true
|
UseSuperNode: true
|
||||||
PSKey: Gfp2RkPNrKTeGKrCJNEvSyiBqYYRmzVnVG6CBuUKUNc=
|
PSKey: w5t64vFEoyNk/iKJP3oeSi9eiGEiPteZmf2o0oI2q2U=
|
||||||
EndpointV4: 127.0.0.1:3456
|
EndpointV4: 127.0.0.1:3456
|
||||||
PubKeyV4: Id/VoZ6HmTU3FSqhxBUswfuHHB0mQxfzcbdoJNGBRzQ=
|
PubKeyV4: 10CPQrpXKqXxnjtpdxDwnYqLglnuRnCFsiSAjxMrMTc=
|
||||||
EndpointV6: :3456
|
EndpointV6: :3456
|
||||||
PubKeyV6: 40tADRhJTvaortwE5Ur4qNXhP+SOMX7ZuSvl251Yxnc=
|
PubKeyV6: KhpV1fJ+jtNT6S5wKUZJbb0oFlDNMS5qxO0f5Ow/QQU=
|
||||||
EndpointEdgeAPIUrl: http://127.0.0.1:3456/eg_net/eg_api
|
EndpointEdgeAPIUrl: http://127.0.0.1:3456/eg_net/eg_api
|
||||||
SkipLocalIP: false
|
SkipLocalIP: false
|
||||||
SuperNodeInfoTimeout: 50
|
SuperNodeInfoTimeout: 50
|
||||||
@ -51,7 +52,6 @@ DynamicRoute:
|
|||||||
ManualLatency: {}
|
ManualLatency: {}
|
||||||
JitterTolerance: 50
|
JitterTolerance: 50
|
||||||
JitterToleranceMultiplier: 1.1
|
JitterToleranceMultiplier: 1.1
|
||||||
DampingResistance: 0
|
|
||||||
TimeoutCheckInterval: 5
|
TimeoutCheckInterval: 5
|
||||||
RecalculateCoolDown: 5
|
RecalculateCoolDown: 5
|
||||||
NTPConfig:
|
NTPConfig:
|
55
example_config/super_mode/EgNet_super.yaml
Normal file
55
example_config/super_mode/EgNet_super.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
NodeName: EgNetSP
|
||||||
|
PostScript: ""
|
||||||
|
PrivKeyV4: xJiK1UiWpZyygZUlZWR+nmGU9PrweCIPDcCRRXNvHLI=
|
||||||
|
PrivKeyV6: 8AEBC4hRAKhAWd2F5kR7xJZJi8GIp7K8hEjo2cDn8kE=
|
||||||
|
ListenPort: 3456
|
||||||
|
ListenPort_EdgeAPI: "3456"
|
||||||
|
ListenPort_ManageAPI: "3456"
|
||||||
|
API_Prefix: /eg_net/eg_api
|
||||||
|
RePushConfigInterval: 30
|
||||||
|
HttpPostInterval: 50
|
||||||
|
PeerAliveTimeout: 70
|
||||||
|
SendPingInterval: 15
|
||||||
|
DampingResistance: 0.9
|
||||||
|
LogLevel:
|
||||||
|
LogLevel: normal
|
||||||
|
LogTransit: false
|
||||||
|
LogNormal: false
|
||||||
|
LogControl: true
|
||||||
|
LogInternal: true
|
||||||
|
LogNTP: true
|
||||||
|
Passwords:
|
||||||
|
ShowState: zOWP0T9O_showstate
|
||||||
|
AddPeer: zOWP0T9O_addpeer
|
||||||
|
DelPeer: zOWP0T9O_delpeer
|
||||||
|
UpdatePeer: zOWP0T9O_updatepeer
|
||||||
|
UpdateSuper: zOWP0T9O_updatesuper
|
||||||
|
GraphRecalculateSetting:
|
||||||
|
StaticMode: false
|
||||||
|
ManualLatency: {}
|
||||||
|
JitterTolerance: 30
|
||||||
|
JitterToleranceMultiplier: 1.01
|
||||||
|
TimeoutCheckInterval: 5
|
||||||
|
RecalculateCoolDown: 5
|
||||||
|
NextHopTable: {}
|
||||||
|
EdgeTemplate: EgNet_edge001.yaml
|
||||||
|
UsePSKForInterEdge: true
|
||||||
|
Peers:
|
||||||
|
- NodeID: 1
|
||||||
|
Name: EgNet001
|
||||||
|
PubKey: SlRqHTbVz976aBbR06DFDFXG8yKjSvMdrrWeKuvePgw=
|
||||||
|
PSKey: 2eOq1sJlEs3No80xYOaKJ059ElgRaSveyMu9IyQG3X8=
|
||||||
|
AdditionalCost: 10
|
||||||
|
SkipLocalIP: false
|
||||||
|
- NodeID: 2
|
||||||
|
Name: EgNet002
|
||||||
|
PubKey: TlxC+ZHej2RkitN1o2tnFT8pO6WUFulitF4RzMlMFlk=
|
||||||
|
PSKey: Ye1vd4P8vZWCLmuhYq8yiu1ziB84AGwuO+/cexQObqc=
|
||||||
|
AdditionalCost: 10
|
||||||
|
SkipLocalIP: false
|
||||||
|
- NodeID: 100
|
||||||
|
Name: EgNet100
|
||||||
|
PubKey: DG/Lq1bFpE/6109emAoO3iaC+shgWtdRaGBhW3soiSI=
|
||||||
|
PSKey: w5t64vFEoyNk/iKJP3oeSi9eiGEiPteZmf2o0oI2q2U=
|
||||||
|
AdditionalCost: 10
|
||||||
|
SkipLocalIP: false
|
@ -1,55 +0,0 @@
|
|||||||
NodeName: NodeSP
|
|
||||||
PostScript: ""
|
|
||||||
PrivKeyV4: 2P0mV5RkpFFyg+aLPK841sml5RobQGrxAV5ld4En9Kk=
|
|
||||||
PrivKeyV6: 9JrdnAk1ljXUTn9VFb1uFyey20tQEQuzJJtVueM4vsw=
|
|
||||||
ListenPort: 3456
|
|
||||||
ListenPort_EdgeAPI: "3456"
|
|
||||||
ListenPort_ManageAPI: "3456"
|
|
||||||
API_Prefix: /eg_net/eg_api
|
|
||||||
RePushConfigInterval: 30
|
|
||||||
HttpPostInterval: 50
|
|
||||||
PeerAliveTimeout: 70
|
|
||||||
SendPingInterval: 15
|
|
||||||
LogLevel:
|
|
||||||
LogLevel: normal
|
|
||||||
LogTransit: false
|
|
||||||
LogNormal: false
|
|
||||||
LogControl: true
|
|
||||||
LogInternal: true
|
|
||||||
LogNTP: true
|
|
||||||
Passwords:
|
|
||||||
ShowState: passwd_showstate
|
|
||||||
AddPeer: passwd_addpeer
|
|
||||||
DelPeer: passwd_delpeer
|
|
||||||
UpdatePeer: passwd_updatepeer
|
|
||||||
UpdateSuper: passwd_updatesuper
|
|
||||||
GraphRecalculateSetting:
|
|
||||||
StaticMode: false
|
|
||||||
ManualLatency: {}
|
|
||||||
JitterTolerance: 30
|
|
||||||
JitterToleranceMultiplier: 1.01
|
|
||||||
DampingResistance: 0.9
|
|
||||||
TimeoutCheckInterval: 5
|
|
||||||
RecalculateCoolDown: 5
|
|
||||||
NextHopTable: {}
|
|
||||||
EdgeTemplate: ""
|
|
||||||
UsePSKForInterEdge: true
|
|
||||||
Peers:
|
|
||||||
- NodeID: 1
|
|
||||||
Name: Node001
|
|
||||||
PubKey: awnuKYQOgCywkJbHAynqMzKi5QEGsG0w4iBy2Ja1MDQ=
|
|
||||||
PSKey: j2f9Fhdhw2O2zLqUqfL5nTFStjVWPnEXpw7Iqz6VX9M=
|
|
||||||
AdditionalCost: 10
|
|
||||||
SkipLocalIP: false
|
|
||||||
- NodeID: 2
|
|
||||||
Name: Node002
|
|
||||||
PubKey: WUyblc/DZzPNU5sOQQS2lS0aP53zFEVNjqCHjkhkdzE=
|
|
||||||
PSKey: iCw096jsW2aWyMwPyzVEvL8C3XXqMpB+jOeWqDC34uU=
|
|
||||||
AdditionalCost: 10
|
|
||||||
SkipLocalIP: false
|
|
||||||
- NodeID: 100
|
|
||||||
Name: Node_100
|
|
||||||
PubKey: Bax6wOJpisSVJtrU92ujn8D/2oGUyhyPrKTXkHbGamM=
|
|
||||||
PSKey: Gfp2RkPNrKTeGKrCJNEvSyiBqYYRmzVnVG6CBuUKUNc=
|
|
||||||
AdditionalCost: 1000
|
|
||||||
SkipLocalIP: false
|
|
@ -230,7 +230,7 @@ curl "http://127.0.0.1:3456/eg_net/eg_api/manage/super/state?Password=passwd_sho
|
|||||||
```bash
|
```bash
|
||||||
curl -X POST "http://127.0.0.1:3456/eg_net/eg_api/manage/peer/add?Password=passwd_addpeer" \
|
curl -X POST "http://127.0.0.1:3456/eg_net/eg_api/manage/peer/add?Password=passwd_addpeer" \
|
||||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||||
-d "NodeID=100&Name=Node_100&PubKey=Bax6wOJpisSVJtrU92ujn8D%2F2oGUyhyPrKTXkHbGamM%3D&AdditionalCost=1000&PSKey=Gfp2RkPNrKTeGKrCJNEvSyiBqYYRmzVnVG6CBuUKUNc%3D&SkipLocalIP=false"
|
-d "NodeID=100&Name=Node_100&PubKey=DG%2FLq1bFpE%2F6109emAoO3iaC%2BshgWtdRaGBhW3soiSI%3D&AdditionalCost=1000&PSKey=w5t64vFEoyNk%2FiKJP3oeSi9eiGEiPteZmf2o0oI2q2U%3D&SkipLocalIP=false"
|
||||||
```
|
```
|
||||||
參數:
|
參數:
|
||||||
1. URL query: Password: 新增peer用的密碼,在設定檔配置
|
1. URL query: Password: 新增peer用的密碼,在設定檔配置
|
||||||
@ -260,7 +260,7 @@ curl "http://127.0.0.1:3456/eg_net/eg_api/manage/peer/del?Password=passwd_delpee
|
|||||||
|
|
||||||
也可以使用privkey刪除,同上,但是只要附上privkey參數就好
|
也可以使用privkey刪除,同上,但是只要附上privkey參數就好
|
||||||
```bash
|
```bash
|
||||||
curl "http://127.0.0.1:3456/eg_net/eg_api/manage/peer/del?PrivKey=a04BVvT%2BYbrX1ejjvMQVI6k5VRFlBkEX8tuLGWNyNrY%3D"
|
curl "http://127.0.0.1:3456/eg_net/eg_api/manage/peer/del?PrivKey=iquaLyD%2BYLzW3zvI0JGSed9GfDqHYMh%2FvUaU0PYVAbQ%3D"
|
||||||
```
|
```
|
||||||
|
|
||||||
參數:
|
參數:
|
||||||
@ -286,7 +286,7 @@ curl -X POST "http://127.0.0.1:3456/eg_net/eg_api/eg_api/manage/peer/update?Pass
|
|||||||
```bash
|
```bash
|
||||||
curl -X POST "http://127.0.0.1:3456/eg_net/eg_api/eg_api/manage/super/update?Password=e05znou1_updatesuper" \
|
curl -X POST "http://127.0.0.1:3456/eg_net/eg_api/eg_api/manage/super/update?Password=e05znou1_updatesuper" \
|
||||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||||
-d "SendPingInterval=15&HttpPostInterval=60&PeerAliveTimeout=70"
|
-d "SendPingInterval=15&HttpPostInterval=60&PeerAliveTimeout=70DampingResistance=0.9"
|
||||||
```
|
```
|
||||||
|
|
||||||
### SuperNode Config Parameter
|
### SuperNode Config Parameter
|
||||||
@ -360,14 +360,14 @@ ResetConnInterval | 如果對方是動態ip就要用這個。每隔一段時間
|
|||||||
<a name="DynamicRoute"></a>DynamicRoute | Description
|
<a name="DynamicRoute"></a>DynamicRoute | Description
|
||||||
--------------------|:-----
|
--------------------|:-----
|
||||||
SendPingInterval | 發送Ping訊息的間隔(秒)
|
SendPingInterval | 發送Ping訊息的間隔(秒)
|
||||||
PeerAliveTimeout | 每次收到封包就重置,超過時間(秒)沒收到就標記該peer離線
|
PeerAliveTimeout | 被標記為離線所需的無反應時間(秒)
|
||||||
|
TimeoutCheckInterval | 檢查間格(秒),檢查是否有任何peer超時,若有就標記
|
||||||
|
ConnNextTry | 被標記以後,嘗試下一個endpoint的間隔(秒)
|
||||||
DupCheckTimeout | 重複封包檢查的timeout(秒)<br>完全相同的封包收第二次會被丟棄
|
DupCheckTimeout | 重複封包檢查的timeout(秒)<br>完全相同的封包收第二次會被丟棄
|
||||||
ConnTimeOut | 檢查peer離線的時間間格<br>如果標記離線,就切換下一個endpoint<br>SuperNode可能傳了多個endpoint過來
|
|
||||||
ConnNextTry | 切換下一個endpoint的間隔
|
|
||||||
[AdditionalCost](#AdditionalCost) | 繞路成本(毫秒)。僅限SuperNode設定-1時生效
|
[AdditionalCost](#AdditionalCost) | 繞路成本(毫秒)。僅限SuperNode設定-1時生效
|
||||||
SaveNewPeers | 是否把下載來的鄰居資訊存到本地設定檔裡面
|
SaveNewPeers | 是否把下載來的鄰居資訊存到本地設定檔裡面
|
||||||
[SuperNode](#SuperNode) | SuperNode相關設定
|
[SuperNode](#SuperNode) | SuperNode相關設定
|
||||||
P2P | P2P相關設定,SuperMode用不到
|
[P2P](../p2p_mode/README_zh.md#P2P) | P2P相關設定,SuperMode用不到
|
||||||
[NTPConfig](#NTPConfig) | NTP時間同步相關設定
|
[NTPConfig](#NTPConfig) | NTP時間同步相關設定
|
||||||
|
|
||||||
<a name="SuperNode"></a>SuperNode | Description
|
<a name="SuperNode"></a>SuperNode | Description
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Config output dir: /tmp/eg_gen_super
|
Config output dir: /tmp/eg_gen_super
|
||||||
ConfigTemplate for super node: ""
|
ConfigTemplate for super node: "" # "EgNet_super.yaml"
|
||||||
ConfigTemplate for edge node: ""
|
ConfigTemplate for edge node: "" # "EgNet_edge001.yaml"
|
||||||
Network name: EgNet
|
Network name: EgNet
|
||||||
Super Node:
|
Super Node:
|
||||||
Listen port: 3456
|
Listen port: 3456
|
||||||
|
@ -51,9 +51,10 @@ func GetExampleEdgeConf(templatePath string, getDemo bool) mtypes.EdgeConfig {
|
|||||||
SendPingInterval: 16,
|
SendPingInterval: 16,
|
||||||
PeerAliveTimeout: 70,
|
PeerAliveTimeout: 70,
|
||||||
DupCheckTimeout: 40,
|
DupCheckTimeout: 40,
|
||||||
ConnTimeOut: 20,
|
TimeoutCheckInterval: 20,
|
||||||
ConnNextTry: 5,
|
ConnNextTry: 5,
|
||||||
AdditionalCost: 10,
|
AdditionalCost: 10,
|
||||||
|
DampingResistance: 0.95,
|
||||||
SaveNewPeers: true,
|
SaveNewPeers: true,
|
||||||
SuperNode: mtypes.SuperInfo{
|
SuperNode: mtypes.SuperInfo{
|
||||||
UseSuperNode: true,
|
UseSuperNode: true,
|
||||||
@ -73,7 +74,6 @@ func GetExampleEdgeConf(templatePath string, getDemo bool) mtypes.EdgeConfig {
|
|||||||
StaticMode: false,
|
StaticMode: false,
|
||||||
JitterTolerance: 50,
|
JitterTolerance: 50,
|
||||||
JitterToleranceMultiplier: 1.1,
|
JitterToleranceMultiplier: 1.1,
|
||||||
DampingResistance: 0.9,
|
|
||||||
TimeoutCheckInterval: 5,
|
TimeoutCheckInterval: 5,
|
||||||
RecalculateCoolDown: 5,
|
RecalculateCoolDown: 5,
|
||||||
ManualLatency: mtypes.DistTable{
|
ManualLatency: mtypes.DistTable{
|
||||||
@ -193,6 +193,7 @@ func GetExampleSuperConf(templatePath string, getDemo bool) mtypes.SuperConfig {
|
|||||||
},
|
},
|
||||||
RePushConfigInterval: 30,
|
RePushConfigInterval: 30,
|
||||||
PeerAliveTimeout: 70,
|
PeerAliveTimeout: 70,
|
||||||
|
DampingResistance: 0.9,
|
||||||
HttpPostInterval: 50,
|
HttpPostInterval: 50,
|
||||||
SendPingInterval: 15,
|
SendPingInterval: 15,
|
||||||
Passwords: mtypes.Passwords{
|
Passwords: mtypes.Passwords{
|
||||||
@ -206,7 +207,6 @@ func GetExampleSuperConf(templatePath string, getDemo bool) mtypes.SuperConfig {
|
|||||||
StaticMode: false,
|
StaticMode: false,
|
||||||
JitterTolerance: 30,
|
JitterTolerance: 30,
|
||||||
JitterToleranceMultiplier: 1.01,
|
JitterToleranceMultiplier: 1.01,
|
||||||
DampingResistance: 0.9,
|
|
||||||
TimeoutCheckInterval: 5,
|
TimeoutCheckInterval: 5,
|
||||||
RecalculateCoolDown: 5,
|
RecalculateCoolDown: 5,
|
||||||
},
|
},
|
||||||
|
@ -34,7 +34,7 @@ func printNMCinfig() {
|
|||||||
fmt.Print(string(toprint))
|
fmt.Print(string(toprint))
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenNMCfg(NMCinfigPath string, printExample bool) (err error) {
|
func GenNMCfg(NMCinfigPath string, enableP2P bool, printExample bool) (err error) {
|
||||||
NMCfg := NMCfg{}
|
NMCfg := NMCfg{}
|
||||||
if printExample {
|
if printExample {
|
||||||
printNMCinfig()
|
printNMCinfig()
|
||||||
@ -76,10 +76,31 @@ func GenNMCfg(NMCinfigPath string, printExample bool) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
g, _ := path.NewGraph(0, false, mtypes.GraphRecalculateSetting{}, mtypes.NTPInfo{}, mtypes.LoggerInfo{LogInternal: false})
|
g, _ := path.NewGraph(0, false, mtypes.GraphRecalculateSetting{}, mtypes.NTPInfo{}, mtypes.LoggerInfo{LogInternal: false})
|
||||||
edges, err := path.ParseDistanceMatrix(NMCfg.DistanceMatrix)
|
edges := []mtypes.PongMsg{}
|
||||||
|
if NMCfg.DistanceMatrix != "" {
|
||||||
|
edges, err = path.ParseDistanceMatrix(NMCfg.DistanceMatrix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
for S, edgeinfoS := range NMCfg.EdgeNodes {
|
||||||
|
for D, edgeinfoD := range NMCfg.EdgeNodes {
|
||||||
|
if S == D {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if len(edgeinfoS.Endpoint)+len(edgeinfoD.Endpoint) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
edges = append(edges, mtypes.PongMsg{
|
||||||
|
Src_nodeID: S,
|
||||||
|
Dst_nodeID: D,
|
||||||
|
Timediff: 1,
|
||||||
|
TimeToAlive: 99999,
|
||||||
|
AdditionalCost: 0,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
g.UpdateLatencyMulti(edges, false, false)
|
g.UpdateLatencyMulti(edges, false, false)
|
||||||
all_verts := g.Vertices()
|
all_verts := g.Vertices()
|
||||||
MaxNodeID := mtypes.Vertex(0)
|
MaxNodeID := mtypes.Vertex(0)
|
||||||
@ -156,9 +177,12 @@ func GenNMCfg(NMCinfigPath string, printExample bool) (err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
econfig := GetExampleEdgeConf(NMCfg.EdgeConfigTemplate, false)
|
econfig := GetExampleEdgeConf(NMCfg.EdgeConfigTemplate, false)
|
||||||
econfig.DynamicRoute.P2P.UseP2P = false
|
econfig.DynamicRoute.P2P.UseP2P = enableP2P
|
||||||
econfig.DynamicRoute.SuperNode.UseSuperNode = false
|
econfig.DynamicRoute.SuperNode.UseSuperNode = false
|
||||||
econfig.NextHopTable = next
|
econfig.NextHopTable = next
|
||||||
|
if enableP2P {
|
||||||
|
econfig.NextHopTable = make(mtypes.NextHopTable)
|
||||||
|
}
|
||||||
|
|
||||||
econfig.DynamicRoute.NTPConfig.Servers = make([]string, 0)
|
econfig.DynamicRoute.NTPConfig.Servers = make([]string, 0)
|
||||||
econfig.DynamicRoute.SuperNode.PSKey = ""
|
econfig.DynamicRoute.SuperNode.PSKey = ""
|
||||||
|
@ -264,7 +264,6 @@ func GenSuperCfg(SMCinfigPath string, printExample bool) (err error) {
|
|||||||
peerceconf.DynamicRoute.SuperNode.EndpointV4 = EndpointV4 + ":" + ListenPort
|
peerceconf.DynamicRoute.SuperNode.EndpointV4 = EndpointV4 + ":" + ListenPort
|
||||||
peerceconf.DynamicRoute.SuperNode.EndpointV6 = EndpointV6 + ":" + ListenPort
|
peerceconf.DynamicRoute.SuperNode.EndpointV6 = EndpointV6 + ":" + ListenPort
|
||||||
peerceconf.DynamicRoute.SuperNode.EndpointEdgeAPIUrl = EndpointEdgeAPIUrl
|
peerceconf.DynamicRoute.SuperNode.EndpointEdgeAPIUrl = EndpointEdgeAPIUrl
|
||||||
peerceconf.DynamicRoute.P2P.GraphRecalculateSetting.DampingResistance = 0
|
|
||||||
peerceconf.Interface.MacAddrPrefix = MacPrefix
|
peerceconf.Interface.MacAddrPrefix = MacPrefix
|
||||||
peerceconf.Interface.IPv4CIDR = IPv4Block
|
peerceconf.Interface.IPv4CIDR = IPv4Block
|
||||||
peerceconf.Interface.IPv6CIDR = IPv6Block
|
peerceconf.Interface.IPv6CIDR = IPv6Block
|
||||||
|
@ -44,23 +44,8 @@ type NMCfg struct {
|
|||||||
DistanceMatrix string `yaml:"Distance matrix for all nodes"`
|
DistanceMatrix string `yaml:"Distance matrix for all nodes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PMCfg struct {
|
|
||||||
ConfigOutputDir string `yaml:"Config output dir"`
|
|
||||||
EdgeConfigTemplate string `yaml:"ConfigTemplate for edge node"`
|
|
||||||
NetworkName string `yaml:"Network name"`
|
|
||||||
EdgeNode struct {
|
|
||||||
MacPrefix string `yaml:"MacAddress prefix"`
|
|
||||||
IPv4Range string `yaml:"IPv4 range"`
|
|
||||||
IPv6Range string `yaml:"IPv6 range"`
|
|
||||||
IPv6LLRange string `yaml:"IPv6 LL range"`
|
|
||||||
} `yaml:"Edge Node"`
|
|
||||||
EdgeNodes map[mtypes.Vertex]edge_raw_info `yaml:"Edge Nodes"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type edge_raw_info struct {
|
type edge_raw_info struct {
|
||||||
Endpoint string `yaml:"Endpoint(optional)"`
|
Endpoint string `yaml:"Endpoint(optional)"`
|
||||||
PersistentKeepalive uint32 `yaml:"PersistentKeepalive"`
|
|
||||||
AdditionalCost float64 `yaml:"AdditionalCost"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type edge_info struct {
|
type edge_info struct {
|
||||||
|
4
main.go
4
main.go
@ -72,7 +72,9 @@ func main() {
|
|||||||
case "super":
|
case "super":
|
||||||
err = gencfg.GenSuperCfg(*tconfig, *printExample)
|
err = gencfg.GenSuperCfg(*tconfig, *printExample)
|
||||||
case "static":
|
case "static":
|
||||||
err = gencfg.GenNMCfg(*tconfig, *printExample)
|
err = gencfg.GenNMCfg(*tconfig, false, *printExample)
|
||||||
|
case "p2p":
|
||||||
|
err = gencfg.GenNMCfg(*tconfig, true, *printExample)
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("gencfg: generate config for %v mode are not implement", *cfgmode)
|
err = fmt.Errorf("gencfg: generate config for %v mode are not implement", *cfgmode)
|
||||||
}
|
}
|
||||||
|
@ -51,8 +51,8 @@ func Edge(configPath string, useUAPI bool, printExample bool, bindmode string) (
|
|||||||
if len(NodeName) > 32 {
|
if len(NodeName) > 32 {
|
||||||
return errors.New("Node name can't longer than 32 :" + NodeName)
|
return errors.New("Node name can't longer than 32 :" + NodeName)
|
||||||
}
|
}
|
||||||
if econfig.DynamicRoute.P2P.GraphRecalculateSetting.DampingResistance < 0 || econfig.DynamicRoute.P2P.GraphRecalculateSetting.DampingResistance >= 1 {
|
if econfig.DynamicRoute.DampingResistance < 0 || econfig.DynamicRoute.DampingResistance >= 1 {
|
||||||
return fmt.Errorf("DampingResistance must in range [0,1) : %v", econfig.DynamicRoute.P2P.GraphRecalculateSetting.DampingResistance)
|
return fmt.Errorf("DampingResistance must in range [0,1) : %v", econfig.DynamicRoute.DampingResistance)
|
||||||
}
|
}
|
||||||
var logLevel int
|
var logLevel int
|
||||||
switch econfig.LogLevel.LogLevel {
|
switch econfig.LogLevel.LogLevel {
|
||||||
|
@ -234,6 +234,7 @@ func edge_get_superparams(w http.ResponseWriter, r *http.Request) {
|
|||||||
HttpPostInterval: httpobj.http_sconfig.HttpPostInterval,
|
HttpPostInterval: httpobj.http_sconfig.HttpPostInterval,
|
||||||
PeerAliveTimeout: httpobj.http_sconfig.PeerAliveTimeout,
|
PeerAliveTimeout: httpobj.http_sconfig.PeerAliveTimeout,
|
||||||
AdditionalCost: httpobj.http_PeerID2Info[NodeID].AdditionalCost,
|
AdditionalCost: httpobj.http_PeerID2Info[NodeID].AdditionalCost,
|
||||||
|
DampingResistance: httpobj.http_sconfig.DampingResistance,
|
||||||
}
|
}
|
||||||
SuperParamStr, _ := json.Marshal(SuperParams)
|
SuperParamStr, _ := json.Marshal(SuperParams)
|
||||||
httpobj.http_PeerState[PubKey].SuperParamStateClient.Store(State)
|
httpobj.http_PeerState[PubKey].SuperParamStateClient.Store(State)
|
||||||
@ -737,6 +738,7 @@ func manage_peerupdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
SendPingInterval: httpobj.http_sconfig.SendPingInterval,
|
SendPingInterval: httpobj.http_sconfig.SendPingInterval,
|
||||||
HttpPostInterval: httpobj.http_sconfig.HttpPostInterval,
|
HttpPostInterval: httpobj.http_sconfig.HttpPostInterval,
|
||||||
PeerAliveTimeout: httpobj.http_sconfig.PeerAliveTimeout,
|
PeerAliveTimeout: httpobj.http_sconfig.PeerAliveTimeout,
|
||||||
|
DampingResistance: httpobj.http_sconfig.DampingResistance,
|
||||||
AdditionalCost: new_superpeerinfo.AdditionalCost,
|
AdditionalCost: new_superpeerinfo.AdditionalCost,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -797,6 +799,17 @@ func manage_superupdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
sconfig_temp.PeerAliveTimeout = PeerAliveTimeout
|
sconfig_temp.PeerAliveTimeout = PeerAliveTimeout
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DampingResistance, err := extractParamsFloat(r.Form, "DampingResistance", 64, nil)
|
||||||
|
if err == nil {
|
||||||
|
if DampingResistance < 0 || DampingResistance >= 0 {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
w.Write([]byte(fmt.Sprintf("Paramater DampingResistance %v: Must in range [0,1)\n", DampingResistance)))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Updated_params["DampingResistance"] = fmt.Sprintf("%v", DampingResistance)
|
||||||
|
sconfig_temp.DampingResistance = DampingResistance
|
||||||
|
}
|
||||||
|
|
||||||
SendPingInterval, err := extractParamsFloat(r.Form, "SendPingInterval", 64, nil)
|
SendPingInterval, err := extractParamsFloat(r.Form, "SendPingInterval", 64, nil)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if SendPingInterval <= 0 || SendPingInterval >= sconfig_temp.PeerAliveTimeout {
|
if SendPingInterval <= 0 || SendPingInterval >= sconfig_temp.PeerAliveTimeout {
|
||||||
@ -827,11 +840,13 @@ func manage_superupdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
httpobj.http_sconfig.PeerAliveTimeout = sconfig_temp.PeerAliveTimeout
|
httpobj.http_sconfig.PeerAliveTimeout = sconfig_temp.PeerAliveTimeout
|
||||||
httpobj.http_sconfig.SendPingInterval = sconfig_temp.SendPingInterval
|
httpobj.http_sconfig.SendPingInterval = sconfig_temp.SendPingInterval
|
||||||
httpobj.http_sconfig.HttpPostInterval = sconfig_temp.HttpPostInterval
|
httpobj.http_sconfig.HttpPostInterval = sconfig_temp.HttpPostInterval
|
||||||
|
httpobj.http_sconfig.DampingResistance = sconfig_temp.HttpPostInterval
|
||||||
|
|
||||||
SuperParams := mtypes.API_SuperParams{
|
SuperParams := mtypes.API_SuperParams{
|
||||||
SendPingInterval: httpobj.http_sconfig.SendPingInterval,
|
SendPingInterval: httpobj.http_sconfig.SendPingInterval,
|
||||||
HttpPostInterval: httpobj.http_sconfig.HttpPostInterval,
|
HttpPostInterval: httpobj.http_sconfig.HttpPostInterval,
|
||||||
PeerAliveTimeout: httpobj.http_sconfig.PeerAliveTimeout,
|
PeerAliveTimeout: httpobj.http_sconfig.PeerAliveTimeout,
|
||||||
|
DampingResistance: httpobj.http_sconfig.PeerAliveTimeout,
|
||||||
AdditionalCost: 10,
|
AdditionalCost: 10,
|
||||||
}
|
}
|
||||||
httpobj.Lock()
|
httpobj.Lock()
|
||||||
|
@ -100,8 +100,8 @@ func Super(configPath string, useUAPI bool, printExample bool, bindmode string)
|
|||||||
if sconfig.RePushConfigInterval <= 0 {
|
if sconfig.RePushConfigInterval <= 0 {
|
||||||
return fmt.Errorf("RePushConfigInterval must > 0 : %v", sconfig.RePushConfigInterval)
|
return fmt.Errorf("RePushConfigInterval must > 0 : %v", sconfig.RePushConfigInterval)
|
||||||
}
|
}
|
||||||
if sconfig.GraphRecalculateSetting.DampingResistance < 0 || sconfig.GraphRecalculateSetting.DampingResistance >= 1 {
|
if sconfig.DampingResistance < 0 || sconfig.DampingResistance >= 1 {
|
||||||
return fmt.Errorf("DampingResistance must in range [0,1) : %v", sconfig.GraphRecalculateSetting.DampingResistance)
|
return fmt.Errorf("DampingResistance must in range [0,1) : %v", sconfig.DampingResistance)
|
||||||
}
|
}
|
||||||
|
|
||||||
var logLevel int
|
var logLevel int
|
||||||
|
@ -46,6 +46,7 @@ type SuperConfig struct {
|
|||||||
HttpPostInterval float64 `yaml:"HttpPostInterval"`
|
HttpPostInterval float64 `yaml:"HttpPostInterval"`
|
||||||
PeerAliveTimeout float64 `yaml:"PeerAliveTimeout"`
|
PeerAliveTimeout float64 `yaml:"PeerAliveTimeout"`
|
||||||
SendPingInterval float64 `yaml:"SendPingInterval"`
|
SendPingInterval float64 `yaml:"SendPingInterval"`
|
||||||
|
DampingResistance float64 `yaml:"DampingResistance"`
|
||||||
LogLevel LoggerInfo `yaml:"LogLevel"`
|
LogLevel LoggerInfo `yaml:"LogLevel"`
|
||||||
Passwords Passwords `yaml:"Passwords"`
|
Passwords Passwords `yaml:"Passwords"`
|
||||||
GraphRecalculateSetting GraphRecalculateSetting `yaml:"GraphRecalculateSetting"`
|
GraphRecalculateSetting GraphRecalculateSetting `yaml:"GraphRecalculateSetting"`
|
||||||
@ -110,9 +111,11 @@ func (v *Vertex) ToString() string {
|
|||||||
case NodeID_Broadcast:
|
case NodeID_Broadcast:
|
||||||
return "Boardcast"
|
return "Boardcast"
|
||||||
case NodeID_AllPeer:
|
case NodeID_AllPeer:
|
||||||
return "Control"
|
return "AllPeer"
|
||||||
case NodeID_SuperNode:
|
case NodeID_SuperNode:
|
||||||
return "Super"
|
return "Super"
|
||||||
|
case NodeID_Invalid:
|
||||||
|
return "Invalid"
|
||||||
default:
|
default:
|
||||||
return strconv.Itoa(int(*v))
|
return strconv.Itoa(int(*v))
|
||||||
}
|
}
|
||||||
@ -121,10 +124,11 @@ func (v *Vertex) ToString() string {
|
|||||||
type DynamicRouteInfo struct {
|
type DynamicRouteInfo struct {
|
||||||
SendPingInterval float64 `yaml:"SendPingInterval"`
|
SendPingInterval float64 `yaml:"SendPingInterval"`
|
||||||
PeerAliveTimeout float64 `yaml:"PeerAliveTimeout"`
|
PeerAliveTimeout float64 `yaml:"PeerAliveTimeout"`
|
||||||
DupCheckTimeout float64 `yaml:"DupCheckTimeout"`
|
TimeoutCheckInterval float64 `yaml:"TimeoutCheckInterval"`
|
||||||
ConnTimeOut float64 `yaml:"ConnTimeOut"`
|
|
||||||
ConnNextTry float64 `yaml:"ConnNextTry"`
|
ConnNextTry float64 `yaml:"ConnNextTry"`
|
||||||
|
DupCheckTimeout float64 `yaml:"DupCheckTimeout"`
|
||||||
AdditionalCost float64 `yaml:"AdditionalCost"`
|
AdditionalCost float64 `yaml:"AdditionalCost"`
|
||||||
|
DampingResistance float64 `yaml:"DampingResistance"`
|
||||||
SaveNewPeers bool `yaml:"SaveNewPeers"`
|
SaveNewPeers bool `yaml:"SaveNewPeers"`
|
||||||
SuperNode SuperInfo `yaml:"SuperNode"`
|
SuperNode SuperInfo `yaml:"SuperNode"`
|
||||||
P2P P2PInfo `yaml:"P2P"`
|
P2P P2PInfo `yaml:"P2P"`
|
||||||
@ -162,7 +166,6 @@ type GraphRecalculateSetting struct {
|
|||||||
ManualLatency DistTable `yaml:"ManualLatency"`
|
ManualLatency DistTable `yaml:"ManualLatency"`
|
||||||
JitterTolerance float64 `yaml:"JitterTolerance"`
|
JitterTolerance float64 `yaml:"JitterTolerance"`
|
||||||
JitterToleranceMultiplier float64 `yaml:"JitterToleranceMultiplier"`
|
JitterToleranceMultiplier float64 `yaml:"JitterToleranceMultiplier"`
|
||||||
DampingResistance float64 `yaml:"DampingResistance"`
|
|
||||||
TimeoutCheckInterval float64 `yaml:"TimeoutCheckInterval"`
|
TimeoutCheckInterval float64 `yaml:"TimeoutCheckInterval"`
|
||||||
RecalculateCoolDown float64 `yaml:"RecalculateCoolDown"`
|
RecalculateCoolDown float64 `yaml:"RecalculateCoolDown"`
|
||||||
}
|
}
|
||||||
@ -218,6 +221,7 @@ type API_SuperParams struct {
|
|||||||
SendPingInterval float64
|
SendPingInterval float64
|
||||||
HttpPostInterval float64
|
HttpPostInterval float64
|
||||||
PeerAliveTimeout float64
|
PeerAliveTimeout float64
|
||||||
|
DampingResistance float64
|
||||||
AdditionalCost float64
|
AdditionalCost float64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,9 +65,6 @@ func NewGraph(num_node int, IsSuperMode bool, theconfig mtypes.GraphRecalculateS
|
|||||||
g.edges = make(map[mtypes.Vertex]map[mtypes.Vertex]*Latency, num_node)
|
g.edges = make(map[mtypes.Vertex]map[mtypes.Vertex]*Latency, num_node)
|
||||||
g.IsSuperMode = IsSuperMode
|
g.IsSuperMode = IsSuperMode
|
||||||
g.loglevel = loglevel
|
g.loglevel = loglevel
|
||||||
if theconfig.DampingResistance < 0 || theconfig.DampingResistance >= 1 {
|
|
||||||
return nil, fmt.Errorf("DampingResistance must in range [0,1)")
|
|
||||||
}
|
|
||||||
g.InitNTP()
|
g.InitNTP()
|
||||||
return &g, nil
|
return &g, nil
|
||||||
}
|
}
|
||||||
@ -206,9 +203,6 @@ func (g *IG) UpdateLatencyMulti(pong_info []mtypes.PongMsg, recalculate bool, ch
|
|||||||
g.edgelock.Unlock()
|
g.edgelock.Unlock()
|
||||||
oldval := g.OldWeight(u, v, false)
|
oldval := g.OldWeight(u, v, false)
|
||||||
g.edgelock.Lock()
|
g.edgelock.Lock()
|
||||||
if oldval != mtypes.Infinity && g.IsSuperMode && g.gsetting.DampingResistance > 0 {
|
|
||||||
w = oldval*g.gsetting.DampingResistance + newval*(1-g.gsetting.DampingResistance)
|
|
||||||
}
|
|
||||||
should_update = should_update || g.ShouldUpdate(oldval, w, false)
|
should_update = should_update || g.ShouldUpdate(oldval, w, false)
|
||||||
if _, ok := g.edges[u][v]; ok {
|
if _, ok := g.edges[u][v]; ok {
|
||||||
g.edges[u][v].ping = w
|
g.edges[u][v].ping = w
|
||||||
|
Reference in New Issue
Block a user