1. 18 May, 2021 5 commits
    • Joanne Hugé's avatar
      51f640de
    • Joanne Hugé's avatar
      Add --test-ping option · 6cb9d724
      Joanne Hugé authored
      Add test_ping script: displays connectivity stats after having parsed all ping_log.csv files
      Add --test-ping option: runs the demo for a specified duration in seconds and uses test_ping script to write connectivity stats in the test-result folder.
      6cb9d724
    • Joanne Hugé's avatar
      Add global nodes and registries conf parser · 38db8d86
      Joanne Hugé authored
      All re6stnet configuration files are now stored in the same place
      (re6stnet_global.conf), and same for re6st-registry configuration
      files. The parser splits these files to create all the individual
      configuration files
      38db8d86
    • Joanne Hugé's avatar
      Add --clone option · 43fb08d5
      Joanne Hugé authored
      clones separate re6stnet babeld git repos for the different machines,
      according to clone.conf. Specific commits or branches can be specified
      in clone.conf
      43fb08d5
    • Joanne Hugé's avatar
      Change the way signals are handled · 2c5cf691
      Joanne Hugé authored
      Make it so that the demo can be interrupted while a test is running
      2c5cf691
  2. 04 May, 2021 1 commit
  3. 08 Apr, 2021 1 commit
  4. 31 Mar, 2021 1 commit
  5. 27 Mar, 2021 1 commit
  6. 23 Mar, 2021 1 commit
    • Joanne Hugé's avatar
      Fix TypeError in _updateCountry · ecda9f06
      Joanne Hugé authored
      Addresses passed to _updateCountry can contain countries if
      cache.my_address is used to initialize address in BaseTunnelManager init
      function, which causes resolve to be called with too many arguments.
      ecda9f06
  7. 22 Mar, 2021 1 commit
    • Joanne Hugé's avatar
      Fix two issues related to handleHello · bbde1c0d
      Joanne Hugé authored
      In some circumstances, the hello_protocol attribute could get modified
      on the wrong peer, which would raise an AttributeError.
      On reception of seqno 1 from a peer with protocol < 7, protocol could be
      equal to zero which would cause handleHello to not return True, causing
      the handshake to fail.
      bbde1c0d
  8. 11 Feb, 2021 3 commits
    • Joanne Hugé's avatar
      New --country option; add country in addresses · 85d77bd8
      Joanne Hugé authored
      This commit concerns networks that use the --same-country option.
      We recently discovered that the IP geolocation database contains
      incorrect entries. To work around this, the protocol needs to be
      changed by adding the country as 4th field in addresses (the first 3
      are: ip, port, protocol) and the new --country option allows a node
      to announce a country that differs from the one the GeoIP DB.
      
      Thanks to the previous commits it's possible to implement backward
      compatibility, by not sending the 4th field (country) to nodes that
      can't parse it. Of course, these old nodes would continue to not
      create appropriate tunnels and after a while, the administrator of
      the network may decide to increase registry's --min-protocol (7).
      
      In a network with only nodes that implement this last version of the
      protocol, the nodes may only use the GeoIP DB to resolve their own IPs.
      
      See merge request !27
      85d77bd8
    • Joanne Hugé's avatar
      Add protocol to handshake with registry · bb7e6376
      Joanne Hugé authored
      bb7e6376
    • Julien Muchembled's avatar
      Add protocol to handshake between nodes · 4f327e1b
      Julien Muchembled authored
      There is a need to be able to extend the protocol without breaking
      compatibility with old nodes. This is done by sending version.protocol
      during inter-node handshake, in seqno 1 and seqno 2, so that a node
      knows what version the peers speak and use appropriate format.
      
      This is implemented with partial backward compatibility: handshake with
      an old node succeeds when the new node does not have to send seqno 1.
      4f327e1b
  9. 22 Dec, 2020 1 commit
  10. 03 Dec, 2020 1 commit
  11. 13 Jan, 2020 1 commit
  12. 10 Jan, 2020 2 commits
  13. 02 Jan, 2020 1 commit
  14. 27 Dec, 2019 6 commits
  15. 11 Dec, 2019 2 commits
  16. 08 Nov, 2019 1 commit
    • Julien Muchembled's avatar
      Fix file descriptor leaks · 9fab68ee
      Julien Muchembled authored
      This should fix strange bugs after running the demo for a long time,
      with certificate renewal happening every few minutes.
      9fab68ee
  17. 07 Nov, 2019 1 commit
    • Julien Muchembled's avatar
      Remove --ipv6, reuse --ip instead · 343e910a
      Julien Muchembled authored
      The previous commit, which adds --ipv6, has the issue
      that it does not check whether given IPs are valid.
      Since IPv4 & IPv6 use completely different address
      representation, --ip can be used for both.
      343e910a
  18. 06 Nov, 2019 1 commit
    • Julien Muchembled's avatar
      New --ipv6 option and fix learning of external IPv6 from other peers · 0106e2f9
      Julien Muchembled authored
      When re6st attempts to use UPnP and IPv6 is enabled at the same time,
      the external IPv4 was published for IPv6 protocols.
      For example, machine6 in the demo had:
        10.0.1.3,1194,tcp;10.0.1.3,1194,udp;10.0.1.3,1195,udp6
      
      This caused re6stnet to crash (socket.gaierror) if GEOIP2_MMDB is set.
      
      With this commit, IPv4 & IPv6 are now processed independently.
      0106e2f9
  19. 31 Oct, 2019 2 commits
  20. 22 Oct, 2019 1 commit
  21. 04 Jul, 2019 1 commit
  22. 03 Jul, 2019 1 commit
    • Killian Lufau's avatar
      Fix handling of private methods · d0233199
      Killian Lufau authored
      The detection of the attribute `_private` was performed on a string
      object representing the name of the method instead of the method itself,
      leading to the registry allowing anyone to call private methods.
      d0233199
  23. 27 Jun, 2019 1 commit
    • Killian Lufau's avatar
      demo: add another re6st network · d868f09a
      Killian Lufau authored
      The purpose is to check that HMAC prevents routes from being exchanged
      between the 2 networks. This happened when 2 nodes of 2 different re6st
      networks are in the same LAN, and it caused many issues.
      
      /reviewed-on !15
      d868f09a
  24. 26 Jun, 2019 1 commit
  25. 19 Jun, 2019 1 commit
    • Killian Lufau's avatar
      Implement HMAC for babel · 12ba2ee4
      Killian Lufau authored
      HMAC is added in babel call to prevent babel communication between nodes of different re6st networks. 
      This solves the problem of machines in different re6st networks but on the same LAN that exchange routes through babel. 
      The key used to authenticate packets is randomly created on 16 bytes by the registry and sent to nodes when they fetch network parameters. 
      This uses the WIP hmac branch of jech/babeld with Nexedi patches and the added possibility to not check HMAC in incoming packets for better HMAC integration on a HMAC-less network.
      
      /reviewed-on !18
      12ba2ee4
  26. 18 Jun, 2019 1 commit
    • Killian Lufau's avatar
      Fix attribute deletion when updating config · 63b5c4c2
      Killian Lufau authored
      The received network parameter name can have a ':json' suffix that
      is not present in the class attribute of this parameter.
      This suffix was not removed and could cause attribute deletion to fail.
      
      /reviewed-on !20
      63b5c4c2