From 88ef721c1df36fa50581060dccaeb26207b36b19 Mon Sep 17 00:00:00 2001 From: KusakabeSi Date: Mon, 23 Aug 2021 08:35:17 +0000 Subject: [PATCH] Bugfix, static mode ok --- .vscode/launch.json | 2 +- device/device.go | 3 +- device/receive.go | 4 +- device/receivesendproc.go | 4 - device/send.go | 6 +- example_config/n1.yaml | 65 ---------- example_config/n2.yaml | 70 ----------- example_config/n3.yaml | 70 ----------- example_config/n4.yaml | 70 ----------- example_config/n5.yaml | 64 ---------- example_config/n6.yaml | 64 ---------- example_config/p2p_mode/Example_static.png | Bin 0 -> 16191 bytes example_config/p2p_mode/n1.yaml | 101 ++++++++++++++++ example_config/p2p_mode/n2.yaml | 111 ++++++++++++++++++ example_config/p2p_mode/n3.yaml | 111 ++++++++++++++++++ example_config/p2p_mode/n4.yaml | 111 ++++++++++++++++++ example_config/p2p_mode/n5.yaml | 101 ++++++++++++++++ example_config/p2p_mode/n6.yaml | 101 ++++++++++++++++ example_config/static_mode/Example_static.png | Bin 0 -> 16191 bytes example_config/static_mode/n1.yaml | 101 ++++++++++++++++ example_config/static_mode/n2.yaml | 111 ++++++++++++++++++ example_config/static_mode/n3.yaml | 111 ++++++++++++++++++ example_config/static_mode/n4.yaml | 111 ++++++++++++++++++ example_config/static_mode/n5.yaml | 101 ++++++++++++++++ example_config/static_mode/n6.yaml | 101 ++++++++++++++++ example_config/super_mode/n1.yaml | 60 ++++++++++ example_config/super_mode/n2.yaml | 60 ++++++++++ example_config/super_mode/s1.yaml | 23 ++++ 28 files changed, 1423 insertions(+), 414 deletions(-) delete mode 100644 example_config/n1.yaml delete mode 100644 example_config/n2.yaml delete mode 100644 example_config/n3.yaml delete mode 100644 example_config/n4.yaml delete mode 100644 example_config/n5.yaml delete mode 100644 example_config/n6.yaml create mode 100644 example_config/p2p_mode/Example_static.png create mode 100644 example_config/p2p_mode/n1.yaml create mode 100644 example_config/p2p_mode/n2.yaml create mode 100644 example_config/p2p_mode/n3.yaml create mode 100644 example_config/p2p_mode/n4.yaml create mode 100644 example_config/p2p_mode/n5.yaml create mode 100644 example_config/p2p_mode/n6.yaml create mode 100644 example_config/static_mode/Example_static.png create mode 100644 example_config/static_mode/n1.yaml create mode 100644 example_config/static_mode/n2.yaml create mode 100644 example_config/static_mode/n3.yaml create mode 100644 example_config/static_mode/n4.yaml create mode 100644 example_config/static_mode/n5.yaml create mode 100644 example_config/static_mode/n6.yaml create mode 100644 example_config/super_mode/n1.yaml create mode 100644 example_config/super_mode/n2.yaml create mode 100644 example_config/super_mode/s1.yaml diff --git a/.vscode/launch.json b/.vscode/launch.json index 20c690e..fdb146b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "mode": "auto", "program": "${workspaceFolder}", - "args":["-config","example_config/n1.yaml","-mode","super", "--example"], + "args":["-config","example_config/static_mode/n1.yaml","-mode","edge"], } ] } \ No newline at end of file diff --git a/device/device.go b/device/device.go index 8479190..39a70ed 100644 --- a/device/device.go +++ b/device/device.go @@ -85,7 +85,7 @@ type Device struct { IsSuperNode bool ID config.Vertex graph *path.IG - l2fib map[tap.MacAddress]config.Vertex + l2fib sync.Map LogTransit bool LogControl bool DRoute config.DynamicRouteInfo @@ -323,7 +323,6 @@ func NewDevice(tapDevice tap.Device, id config.Vertex, bind conn.Bind, logger *L device.IsSuperNode = IsSuperNode device.ID = id device.graph = graph - device.l2fib = make(map[tap.MacAddress]config.Vertex) device.rate.limiter.Init() device.indexTable.Init() diff --git a/device/receive.go b/device/receive.go index d057f89..43bb530 100644 --- a/device/receive.go +++ b/device/receive.go @@ -540,7 +540,9 @@ func (peer *Peer) RoutineSequentialReceiver() { if should_receive { // Write message to tap device if packet_type == path.NornalPacket { src_macaddr := tap.GetSrcMacAddr(elem.packet[path.EgHeaderLen:]) - device.l2fib[src_macaddr] = src_nodeID // Write to l2fib table + if !tap.IsBoardCast(src_macaddr) { + device.l2fib.Store(src_macaddr, src_nodeID) // Write to l2fib table + } _, err = device.tap.device.Write(elem.buffer[:MessageTransportOffsetContent+len(elem.packet)], MessageTransportOffsetContent+path.EgHeaderLen) if err != nil && !device.isClosed() { device.log.Errorf("Failed to write packet to TUN device: %v", err) diff --git a/device/receivesendproc.go b/device/receivesendproc.go index deaf22d..da01df5 100644 --- a/device/receivesendproc.go +++ b/device/receivesendproc.go @@ -62,9 +62,6 @@ func (device *Device) SpreadPacket(skip_list map[config.Vertex]bool, packet []by } continue } - if device.LogTransit { - fmt.Printf("Spread Packet packet through %d to %d\n", device.ID, peer_out.ID) - } device.SendPacket(peer_out, packet, MessageTransportOffsetContent) } } @@ -468,7 +465,6 @@ func (device *Device) process_RequestPeerMsg(content path.RequestPeerMsg) error if peer.ID >= path.Special_NodeID { continue } - response := path.BoardcastPeerMsg{ Request_ID: content.Request_ID, NodeID: peer.ID, diff --git a/device/send.go b/device/send.go index af3b4cb..4eff00d 100644 --- a/device/send.go +++ b/device/send.go @@ -252,14 +252,14 @@ func (device *Device) RoutineReadFromTUN() { // lookup peer if tap.IsBoardCast(dstMacAddr) { dst_nodeID = path.Boardcast - } else if val, ok := device.l2fib[dstMacAddr]; !ok { //Lookup failed + } else if val, ok := device.l2fib.Load(dstMacAddr); !ok { //Lookup failed dst_nodeID = path.Boardcast } else { - dst_nodeID = val + dst_nodeID = val.(config.Vertex) } EgBody.SetSrc(device.ID) EgBody.SetDst(dst_nodeID) - EgBody.SetPacketLength(uint16(len(elem.packet))) + EgBody.SetPacketLength(uint16(len(elem.packet) - path.EgHeaderLen)) EgBody.SetTTL(200) EgBody.SetUsage(path.NornalPacket) diff --git a/example_config/n1.yaml b/example_config/n1.yaml deleted file mode 100644 index 0bc200e..0000000 --- a/example_config/n1.yaml +++ /dev/null @@ -1,65 +0,0 @@ -interface: - itype: 'stdio' - ifaceid: 1 - name: 'netcat1' - macaddr: 'BB:AA:CC:DD:EE:01' - mtu: 1500 - recvaddr: '127.0.0.1:4001' - sendaddr: '127.0.0.1:5001' - humanfriendly: true -nodeid: 1 -nodename: 'Node1' -privkey: 'SM8pGjT0r8njy1/7ffN4wMwF7nnJ8UYSjGRWpCqo3ng=' -listenport: 3001 -loglevel: - loglevel: "error" - logtransit: true -supernode: - enable: false - pubkeyv4: "" - pubkeyv6: "" - regurlv4: "" - regurlv6: "" - apiurl: "" -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 -peers: - - nodeid: 2 - pubkey: 'NuYJ/3Ght+C4HovFq5Te/BrIazo6zwDJ8Bdu4rQCz0o=' - endpoint: '127.0.0.1:3002' - diff --git a/example_config/n2.yaml b/example_config/n2.yaml deleted file mode 100644 index 0b35552..0000000 --- a/example_config/n2.yaml +++ /dev/null @@ -1,70 +0,0 @@ -interface: - itype: 'stdio' - ifaceid: 2 - name: 'netcat2' - macaddr: 'BB:AA:CC:DD:EE:02' - mtu: 1500 - recvaddr: '127.0.0.1:4002' - sendaddr: '127.0.0.1:5002' - humanfriendly: true -nodeid: 2 -nodename: 'Node2' -privkey: '4Pb81ZCfhNjIT/fobxsUo4ZZ3fls/g9Py/u6/jpa1Vc=' -listenport: 3002 -loglevel: - loglevel: "error" - logtransit: true -supernode: - enable: false - pubkeyv4: '' - pubkeyv6: '' - regurlv4: '' - regurlv6: '' - apiurl: '' -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 -peers: - - nodeid: 1 - pubkey: '51/RzDlzd0vuFUbNMvFeVA/5ZgtUQKb+6HD+C5Ea2jA=' - endpoint: '127.0.0.1:3001' - - nodeid: 3 - pubkey: '9HsPa7QAgBjvSyW1EBuqGCyZtWdAZHkSIlGraTd4+1E=' - endpoint: '127.0.0.1:3003' - - nodeid: 4 - pubkey: 'QHX2qo9+qn6hPxQ4/E5J7k07HZaBsD9rRxm90+YqTSA=' - endpoint: '127.0.0.1:3004' diff --git a/example_config/n3.yaml b/example_config/n3.yaml deleted file mode 100644 index c134187..0000000 --- a/example_config/n3.yaml +++ /dev/null @@ -1,70 +0,0 @@ -interface: - itype: 'stdio' - ifaceid: 3 - name: 'netcat3' - macaddr: 'BB:AA:CC:DD:EE:03' - mtu: 1500 - recvaddr: '127.0.0.1:4003' - sendaddr: '127.0.0.1:5003' - humanfriendly: true -nodeid: 3 -nodename: 'Node3' -privkey: '8InEcDezmnCyiLA7HC6/qFMKELb4XHdLd3jIu4Jk7lU=' -listenport: 3003 -loglevel: - loglevel: "error" - logtransit: true -supernode: - enable: false - pubkeyv4: '' - pubkeyv6: '' - regurlv4: '' - regurlv6: '' - apiurl: '' -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 -peers: - - nodeid: 2 - pubkey: 'NuYJ/3Ght+C4HovFq5Te/BrIazo6zwDJ8Bdu4rQCz0o=' - endpoint: '127.0.0.1:3002' - - nodeid: 4 - pubkey: 'QHX2qo9+qn6hPxQ4/E5J7k07HZaBsD9rRxm90+YqTSA=' - endpoint: '127.0.0.1:3004' - - nodeid: 5 - pubkey: 'q91lHawt/0XcfONJ/gHvGirQlVztTxS0Br3zOpuh60o=' - endpoint: '127.0.0.1:3005' \ No newline at end of file diff --git a/example_config/n4.yaml b/example_config/n4.yaml deleted file mode 100644 index 077f2b3..0000000 --- a/example_config/n4.yaml +++ /dev/null @@ -1,70 +0,0 @@ -interface: - itype: 'stdio' - ifaceid: 4 - name: 'netcat4' - macaddr: 'BB:AA:CC:DD:EE:04' - mtu: 1500 - recvaddr: '127.0.0.1:4004' - sendaddr: '127.0.0.1:5004' - humanfriendly: true -nodeid: 4 -nodename: 'Node4' -privkey: 'qPPlRulMI8NFq+Mp5+dq8j486RdRXCATkmFGlNXawXI=' -listenport: 3004 -loglevel: - loglevel: "error" - logtransit: true -supernode: - enable: false - pubkeyv4: '' - pubkeyv6: '' - regurlv4: '' - regurlv6: '' - apiurl: '' -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 -peers: - - nodeid: 2 - pubkey: 'NuYJ/3Ght+C4HovFq5Te/BrIazo6zwDJ8Bdu4rQCz0o=' - endpoint: '127.0.0.1:3002' - - nodeid: 3 - pubkey: '9HsPa7QAgBjvSyW1EBuqGCyZtWdAZHkSIlGraTd4+1E=' - endpoint: '127.0.0.1:3003' - - nodeid: 6 - pubkey: 'XwQfrzumgOXkfgkm3n/QR/RdqBGkclGTmtLBgmoboBM=' - endpoint: '127.0.0.1:3006' diff --git a/example_config/n5.yaml b/example_config/n5.yaml deleted file mode 100644 index 127acb8..0000000 --- a/example_config/n5.yaml +++ /dev/null @@ -1,64 +0,0 @@ -interface: - itype: 'stdio' - ifaceid: 5 - name: 'netcat5' - macaddr: 'BB:AA:CC:DD:EE:05' - mtu: 1500 - recvaddr: '127.0.0.1:4005' - sendaddr: '127.0.0.1:5005' - humanfriendly: true -nodeid: 5 -nodename: 'Node5' -privkey: 'IMW0j2o4cxBqXDPX2sqX8KkXbAHkrLGjklnrM4zh/3s=' -listenport: 3005 -loglevel: - loglevel: "error" - logtransit: true -supernode: - enable: false - pubkeyv4: '' - pubkeyv6: '' - regurlv4: '' - regurlv6: '' - apiurl: '' -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 -peers: - - nodeid: 3 - pubkey: '9HsPa7QAgBjvSyW1EBuqGCyZtWdAZHkSIlGraTd4+1E=' - endpoint: '127.0.0.1:3003' diff --git a/example_config/n6.yaml b/example_config/n6.yaml deleted file mode 100644 index efd64c9..0000000 --- a/example_config/n6.yaml +++ /dev/null @@ -1,64 +0,0 @@ -interface: - itype: 'stdio' - ifaceid: 6 - name: 'netcat6' - macaddr: 'BB:AA:CC:DD:EE:06' - mtu: 1500 - recvaddr: '127.0.0.1:4006' - sendaddr: '127.0.0.1:5006' - humanfriendly: true -nodeid: 6 -nodename: 'Node6' -privkey: 'yFCnbYnsOZoq10+ErLdMwWWBh5PVOUv7G4A5T2AyiUc=' -listenport: 3006 -loglevel: - loglevel: "error" - logtransit: true -supernode: - enable: false - pubkeyv4: '' - pubkeyv6: '' - regurlv4: '' - regurlv6: '' - apiurl: '' -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 -peers: - - nodeid: 4 - pubkey: 'QHX2qo9+qn6hPxQ4/E5J7k07HZaBsD9rRxm90+YqTSA=' - endpoint: '127.0.0.1:3004' diff --git a/example_config/p2p_mode/Example_static.png b/example_config/p2p_mode/Example_static.png new file mode 100644 index 0000000000000000000000000000000000000000..c7de7332bf959804ca268741ef1cec3ac8af685f GIT binary patch literal 16191 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 literal 0 HcmV?d00001 diff --git a/example_config/p2p_mode/n1.yaml b/example_config/p2p_mode/n1.yaml new file mode 100644 index 0000000..c6a1879 --- /dev/null +++ b/example_config/p2p_mode/n1.yaml @@ -0,0 +1,101 @@ +interface: + itype: stdio + ifaceid: 1 + name: tap1 + macaddr: AA:BB:CC:DD:EE:01 + mtu: 1400 + recvaddr: 127.0.0.1:4001 + sendaddr: 127.0.0.1:5001 + humanfriendly: true +nodeid: 1 +nodename: Node01 +privkey: aABzjKhWdkFfQ29ZuijtMp1h1TNJe66SDCwvfmvQznw= +listenport: 3001 +loglevel: + loglevel: normal` + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +peers: +- nodeid: 2 + pubkey: csT+hco4Jpa7btMeC9subHk2ZqzxcljcBk/57V0cSEk= + pskey: "" + endpoint: 127.0.0.1:3002 + static: true \ No newline at end of file diff --git a/example_config/p2p_mode/n2.yaml b/example_config/p2p_mode/n2.yaml new file mode 100644 index 0000000..4711e53 --- /dev/null +++ b/example_config/p2p_mode/n2.yaml @@ -0,0 +1,111 @@ +interface: + itype: stdio + ifaceid: 2 + name: tap2 + macaddr: AA:BB:CC:DD:EE:02 + mtu: 1400 + recvaddr: 127.0.0.1:4002 + sendaddr: 127.0.0.1:5002 + humanfriendly: true +nodeid: 2 +nodename: Node02 +privkey: UNZMzPX5fG/8yGC8edVj/ksF9N6ARRqdq7fqE/PD7ls= +listenport: 3002 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +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 \ No newline at end of file diff --git a/example_config/p2p_mode/n3.yaml b/example_config/p2p_mode/n3.yaml new file mode 100644 index 0000000..94ff448 --- /dev/null +++ b/example_config/p2p_mode/n3.yaml @@ -0,0 +1,111 @@ +interface: + itype: stdio + ifaceid: 3 + name: tap3 + macaddr: AA:BB:CC:DD:EE:03 + mtu: 1400 + recvaddr: 127.0.0.1:4003 + sendaddr: 127.0.0.1:5003 + humanfriendly: true +nodeid: 3 +nodename: Node03 +privkey: gJy35nbsd8FuuxyWHjsefN+U+oM7RkuIB1EanNLSVHg= +listenport: 3003 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +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 \ No newline at end of file diff --git a/example_config/p2p_mode/n4.yaml b/example_config/p2p_mode/n4.yaml new file mode 100644 index 0000000..4cb926a --- /dev/null +++ b/example_config/p2p_mode/n4.yaml @@ -0,0 +1,111 @@ +interface: + itype: stdio + ifaceid: 4 + name: tap4 + macaddr: AA:BB:CC:DD:EE:04 + mtu: 1400 + recvaddr: 127.0.0.1:4004 + sendaddr: 127.0.0.1:5004 + humanfriendly: true +nodeid: 4 +nodename: Node04 +privkey: wAdLgCk0SHiO11/aUf9944focD1BUCH5b6Pe+cRHHXQ= +listenport: 3004 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +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 \ No newline at end of file diff --git a/example_config/p2p_mode/n5.yaml b/example_config/p2p_mode/n5.yaml new file mode 100644 index 0000000..0b54f22 --- /dev/null +++ b/example_config/p2p_mode/n5.yaml @@ -0,0 +1,101 @@ +interface: + itype: stdio + ifaceid: 5 + name: tap5 + macaddr: AA:BB:CC:DD:EE:05 + mtu: 1400 + recvaddr: 127.0.0.1:4005 + sendaddr: 127.0.0.1:5005 + humanfriendly: true +nodeid: 5 +nodename: Node05 +privkey: gLmzeCbmN/hjiE+ehNXL9IxuG9hhWIYv2s16/DOW6FE= +listenport: 3005 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +peers: +- nodeid: 3 + pubkey: 0meQ0pQCAkLZdpfyMqggpnk0k3UKG2M8jfIMlQjTRWs= + pskey: "" + endpoint: 127.0.0.1:3003 + static: true \ No newline at end of file diff --git a/example_config/p2p_mode/n6.yaml b/example_config/p2p_mode/n6.yaml new file mode 100644 index 0000000..51b9c87 --- /dev/null +++ b/example_config/p2p_mode/n6.yaml @@ -0,0 +1,101 @@ +interface: + itype: stdio + ifaceid: 6 + name: tap6 + macaddr: AA:BB:CC:DD:EE:03 + mtu: 1400 + recvaddr: 127.0.0.1:4006 + sendaddr: 127.0.0.1:5006 + humanfriendly: true +nodeid: 6 +nodename: Node06 +privkey: IIX5F6oWZUS2dlhxWFJ7TxdJtDCr5jzeuhxUB6YM7Us= +listenport: 3006 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +peers: +- nodeid: 4 + pubkey: 2EfY85KF1S+3dZ3A55eZcyi0QU+sOzOyuADtJs2U2Ww= + pskey: "" + endpoint: 127.0.0.1:3004 + static: true \ No newline at end of file diff --git a/example_config/static_mode/Example_static.png b/example_config/static_mode/Example_static.png new file mode 100644 index 0000000000000000000000000000000000000000..c7de7332bf959804ca268741ef1cec3ac8af685f GIT binary patch literal 16191 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 literal 0 HcmV?d00001 diff --git a/example_config/static_mode/n1.yaml b/example_config/static_mode/n1.yaml new file mode 100644 index 0000000..c6a1879 --- /dev/null +++ b/example_config/static_mode/n1.yaml @@ -0,0 +1,101 @@ +interface: + itype: stdio + ifaceid: 1 + name: tap1 + macaddr: AA:BB:CC:DD:EE:01 + mtu: 1400 + recvaddr: 127.0.0.1:4001 + sendaddr: 127.0.0.1:5001 + humanfriendly: true +nodeid: 1 +nodename: Node01 +privkey: aABzjKhWdkFfQ29ZuijtMp1h1TNJe66SDCwvfmvQznw= +listenport: 3001 +loglevel: + loglevel: normal` + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +peers: +- nodeid: 2 + pubkey: csT+hco4Jpa7btMeC9subHk2ZqzxcljcBk/57V0cSEk= + pskey: "" + endpoint: 127.0.0.1:3002 + static: true \ No newline at end of file diff --git a/example_config/static_mode/n2.yaml b/example_config/static_mode/n2.yaml new file mode 100644 index 0000000..4711e53 --- /dev/null +++ b/example_config/static_mode/n2.yaml @@ -0,0 +1,111 @@ +interface: + itype: stdio + ifaceid: 2 + name: tap2 + macaddr: AA:BB:CC:DD:EE:02 + mtu: 1400 + recvaddr: 127.0.0.1:4002 + sendaddr: 127.0.0.1:5002 + humanfriendly: true +nodeid: 2 +nodename: Node02 +privkey: UNZMzPX5fG/8yGC8edVj/ksF9N6ARRqdq7fqE/PD7ls= +listenport: 3002 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +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 \ No newline at end of file diff --git a/example_config/static_mode/n3.yaml b/example_config/static_mode/n3.yaml new file mode 100644 index 0000000..94ff448 --- /dev/null +++ b/example_config/static_mode/n3.yaml @@ -0,0 +1,111 @@ +interface: + itype: stdio + ifaceid: 3 + name: tap3 + macaddr: AA:BB:CC:DD:EE:03 + mtu: 1400 + recvaddr: 127.0.0.1:4003 + sendaddr: 127.0.0.1:5003 + humanfriendly: true +nodeid: 3 +nodename: Node03 +privkey: gJy35nbsd8FuuxyWHjsefN+U+oM7RkuIB1EanNLSVHg= +listenport: 3003 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +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 \ No newline at end of file diff --git a/example_config/static_mode/n4.yaml b/example_config/static_mode/n4.yaml new file mode 100644 index 0000000..4cb926a --- /dev/null +++ b/example_config/static_mode/n4.yaml @@ -0,0 +1,111 @@ +interface: + itype: stdio + ifaceid: 4 + name: tap4 + macaddr: AA:BB:CC:DD:EE:04 + mtu: 1400 + recvaddr: 127.0.0.1:4004 + sendaddr: 127.0.0.1:5004 + humanfriendly: true +nodeid: 4 +nodename: Node04 +privkey: wAdLgCk0SHiO11/aUf9944focD1BUCH5b6Pe+cRHHXQ= +listenport: 3004 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +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 \ No newline at end of file diff --git a/example_config/static_mode/n5.yaml b/example_config/static_mode/n5.yaml new file mode 100644 index 0000000..0b54f22 --- /dev/null +++ b/example_config/static_mode/n5.yaml @@ -0,0 +1,101 @@ +interface: + itype: stdio + ifaceid: 5 + name: tap5 + macaddr: AA:BB:CC:DD:EE:05 + mtu: 1400 + recvaddr: 127.0.0.1:4005 + sendaddr: 127.0.0.1:5005 + humanfriendly: true +nodeid: 5 +nodename: Node05 +privkey: gLmzeCbmN/hjiE+ehNXL9IxuG9hhWIYv2s16/DOW6FE= +listenport: 3005 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +peers: +- nodeid: 3 + pubkey: 0meQ0pQCAkLZdpfyMqggpnk0k3UKG2M8jfIMlQjTRWs= + pskey: "" + endpoint: 127.0.0.1:3003 + static: true \ No newline at end of file diff --git a/example_config/static_mode/n6.yaml b/example_config/static_mode/n6.yaml new file mode 100644 index 0000000..51b9c87 --- /dev/null +++ b/example_config/static_mode/n6.yaml @@ -0,0 +1,101 @@ +interface: + itype: stdio + ifaceid: 6 + name: tap6 + macaddr: AA:BB:CC:DD:EE:03 + mtu: 1400 + recvaddr: 127.0.0.1:4006 + sendaddr: 127.0.0.1:5006 + humanfriendly: true +nodeid: 6 +nodename: Node06 +privkey: IIX5F6oWZUS2dlhxWFJ7TxdJtDCr5jzeuhxUB6YM7Us= +listenport: 3006 +loglevel: + loglevel: normal + logtransit: true + logcontrol: false +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: false + connurlv4: 127.0.0.1:3000 + pubkeyv4: j8i4dY1i7CUqd/ftaCSfCWosnURiztM+ExI7QRezU2Y= + connurlv6: '[::1]:3000' + pubkeyv6: cCcPlZw0hVkPSi15G+jpJpKE3TdCVEtO1nSiaedukGw= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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 +peers: +- nodeid: 4 + pubkey: 2EfY85KF1S+3dZ3A55eZcyi0QU+sOzOyuADtJs2U2Ww= + pskey: "" + endpoint: 127.0.0.1:3004 + static: true \ No newline at end of file diff --git a/example_config/super_mode/n1.yaml b/example_config/super_mode/n1.yaml new file mode 100644 index 0000000..f4a704f --- /dev/null +++ b/example_config/super_mode/n1.yaml @@ -0,0 +1,60 @@ +interface: + itype: stdio + ifaceid: 1 + name: tap1 + macaddr: AA:BB:CC:DD:EE:FF + mtu: 1400 + recvaddr: 127.0.0.1:4001 + sendaddr: 127.0.0.1:5001 + humanfriendly: true +nodeid: 1 +nodename: Node01 +privkey: 6GyDagZKhbm5WNqMiRHhkf43RlbMJ34IieTlIuvfJ1M= +listenport: 3001 +loglevel: + loglevel: normal + logtransit: true + logcontrol: true +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: true + connurlv4: 127.0.0.1:3000 + pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic= + connurlv6: '[::1]:2999' + pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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: {} +peers: [] \ No newline at end of file diff --git a/example_config/super_mode/n2.yaml b/example_config/super_mode/n2.yaml new file mode 100644 index 0000000..2993271 --- /dev/null +++ b/example_config/super_mode/n2.yaml @@ -0,0 +1,60 @@ +interface: + itype: stdio + ifaceid: 2 + name: tap2 + macaddr: AA:BB:CC:DD:EE:FF + mtu: 1400 + recvaddr: 127.0.0.1:4002 + sendaddr: 127.0.0.1:5002 + humanfriendly: true +nodeid: 2 +nodename: Node02 +privkey: OH8BsVUU2Rqzeu9B2J5GPG8PUmxWfX8uVvNFZKhVF3o= +listenport: 3002 +loglevel: + loglevel: normal + logtransit: true + logcontrol: true +dynamicroute: + sendpinginterval: 20 + dupchecktimeout: 40 + conntimeout: 30 + savenewpeers: true + supernode: + usesupernode: true + connurlv4: 127.0.0.1:3000 + pubkeyv4: LJ8KKacUcIoACTGB/9Ed9w0osrJ3WWeelzpL2u4oUic= + connurlv6: '[::1]:2999' + pubkeyv6: HCfL6YJtpJEGHTlJ2LgVXIWKB/K95P57LHTJ42ZG8VI= + apiurl: http://127.0.0.1:3000/api + supernodeinfotimeout: 40 + p2p: + usep2p: false + sendpeerinterval: 20 + peeralivetimeout: 30 + graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 + ntpconfig: + usentp: true + maxserveruse: 5 + 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: {} +peers: [] \ No newline at end of file diff --git a/example_config/super_mode/s1.yaml b/example_config/super_mode/s1.yaml new file mode 100644 index 0000000..8da8b1b --- /dev/null +++ b/example_config/super_mode/s1.yaml @@ -0,0 +1,23 @@ +nodename: NodeSuper +privkeyv4: mL5IW0GuqbjgDeOJuPHBU2iJzBPNKhaNEXbIGwwYWWk= +privkeyv6: +EdOKIoBp/EvIusHDsvXhV1RJYbyN3Qr8nxlz35wl3I= +listenport: 3000 +repushconfiginterval: 10 +loglevel: + loglevel: normal + logtransit: true + logcontrol: true +graphrecalculatesetting: + jittertolerance: 20 + jittertolerancemultiplier: 1.1 + nodereporttimeout: 40 + recalculatecooldown: 5 +peers: +- nodeid: 1 + pubkey: ZqzLVSbXzjppERslwbf2QziWruW3V/UIx9oqwU8Fn3I= + endpoint: 127.0.0.1:3001 + static: true +- nodeid: 2 + pubkey: dHeWQtlTPQGy87WdbUARS4CtwVaR2y7IQ1qcX4GKSXk= + endpoint: 127.0.0.1:3002 + static: true \ No newline at end of file