Giter VIP home page Giter VIP logo

lambdahuang / flashroute Goto Github PK

View Code? Open in Web Editor NEW
37.0 4.0 5.0 1.13 MB

๐Ÿš€ Takes minutes to explore the topology of all routable /24 prefixes in IPv4 address space. Now supports IPv6 scan!

License: Other

Starlark 4.88% C++ 90.19% C 0.15% Shell 0.09% Python 3.67% Jupyter Notebook 1.02%
traceroute network-topology network-tools pentest-tool network-scanner internet ipv4 ipv6-compatibility topology efficiency

flashroute's People

Contributors

lambdahuang avatar maxmouchet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

flashroute's Issues

difficulties in building the application

I try to install the application but I can not solve this error to be able to use the application.
Does anyone know the solution?

ERROR: /home/oan/Desktop/FlashRoute/flashroute/BUILD:230:11: C++ compilation of rule '//flashroute:dump_result' failed (Exit 1): gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer '-std=c++14' -MD -MF ... (remaining 43 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer '-std=c++14' -MD -MF ... (remaining 43 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
In file included from external/boost/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
from external/boost/boost/smart_ptr/detail/yield_k.hpp:23,
from external/boost/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
from external/boost/boost/smart_ptr/detail/spinlock.hpp:42,
from external/boost/boost/smart_ptr/detail/spinlock_pool.hpp:25,
from external/boost/boost/smart_ptr/shared_ptr.hpp:29,
from external/boost/boost/shared_ptr.hpp:17,
from external/boost/boost/date_time/time_clock.hpp:17,
from external/boost/boost/date_time/posix_time/posix_time_types.hpp:10,
from external/boost/boost/asio/time_traits.hpp:23,
from external/boost/boost/asio/detail/timer_queue_ptime.hpp:22,
from external/boost/boost/asio/detail/deadline_timer_service.hpp:29,
from external/boost/boost/asio/basic_deadline_timer.hpp:25,
from external/boost/boost/asio.hpp:25,
from ./flashroute/dump_result.h:7,
from flashroute/dump_result.cc:2:
external/boost/boost/bind.hpp:36:1: note: '#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.'
36 | BOOST_PRAGMA_MESSAGE(
| ^~~~~~~~~~~~~~~~~~~~
flashroute/dump_result.cc: In destructor 'flashroute::ResultDumper::~ResultDumper()':
flashroute/dump_result.cc:43:23: error: 'sleep_for' is not a member of 'std::this_thread'
43 | std::this_thread::sleep_for(
| ^~~~~~~~~
flashroute/dump_result.cc:43:23: note: suggested alternatives:
In file included from external/boost/boost/thread/pthread/condition_variable.hpp:15,
from external/boost/boost/thread/condition_variable.hpp:16,
from external/boost/boost/thread/condition.hpp:13,
from ./flashroute/bounded_buffer.h:7,
from ./flashroute/dump_result.h:13,
from flashroute/dump_result.cc:2:
external/boost/boost/thread/pthread/thread_data.hpp:295:14: note: 'boost::this_thread::sleep_for'
295 | void sleep_for(const chrono::duration<Rep, Period>& d)
| ^~~~~~~~~
external/boost/boost/thread/pthread/thread_data.hpp:341:16: note: 'boost::this_thread::no_interruption_point::sleep_for'
341 | void sleep_for(const chrono::duration<Rep, Period>& d)
| ^~~~~~~~~
flashroute/dump_result.cc: In member function 'void flashroute::ResultDumper::runDumpingThread()':
flashroute/dump_result.cc:92:23: error: 'sleep_for' is not a member of 'std::this_thread'
92 | std::this_thread::sleep_for(std::chrono::milliseconds(kDumpingIntervalMs));
| ^~~~~~~~~
flashroute/dump_result.cc:92:23: note: suggested alternatives:
In file included from external/boost/boost/thread/pthread/condition_variable.hpp:15,
from external/boost/boost/thread/condition_variable.hpp:16,
from external/boost/boost/thread/condition.hpp:13,
from ./flashroute/bounded_buffer.h:7,
from ./flashroute/dump_result.h:13,
from flashroute/dump_result.cc:2:
external/boost/boost/thread/pthread/thread_data.hpp:295:14: note: 'boost::this_thread::sleep_for'
295 | void sleep_for(const chrono::duration<Rep, Period>& d)
| ^~~~~~~~~
external/boost/boost/thread/pthread/thread_data.hpp:341:16: note: 'boost::this_thread::no_interruption_point::sleep_for'
341 | void sleep_for(const chrono::duration<Rep, Period>& d)
| ^~~~~~~~~
Target //flashroute:flashroute failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 43.193s, Critical Path: 7.71s
INFO: 162 processes: 2 internal, 160 linux-sandbox.
FAILED: Build did NOT complete successfully

Some questions about main probing callback

Hi, I'm recently working on a course project to reproduce your work, and I'd like to say that your work is so great and creative!
However I'm a little bit confused with the callback function of main probing, that is

if (!fromDestination) {
   ...
} else {
  targetList_[blockIndex].stopForwardProbing();
}

My question is: shouldn't we add the target into some set (stop or discovery set) if the response is from destination? Will this cause some targets be missed?
To check this, I generate a random target list of /24 and then run the test, figuring out that adding a line like backwardProbingStopSet_.insert(responder); will increase the total probed interfaces from 800,000 to 1,200,000. This make me confused but it seems that no interfaces are counted more than twice indeed.

Looking forward to your reply!

Difficulties encoutered in parsing the results

I perform one scan and then try to parse the results using the same command shown in the readme. However, it seems that there is no valid output. Did I make any mistakes?

./input/test_targets.txt is consisted of 100 (active) IPv6 addresses, with one IP address per line.

me@ubuntu18:~/FlashRoute$ sudo ./bazel-bin/flashroute/flashroute --interface ens3 --targets ./input/test_targets.txt --output ./output/flashroute_output
I1101 13:52:26.842790 39976 main.cc:244] Seed for random number generator is 0, we random generate the seed: 1635774746
I1101 13:52:26.843158 39976 blacklist.cc:40] Blacklist disabled.
I1101 13:52:26.843225 39976 main.cc:259] Load 15 blacklist rules.
I1101 13:52:26.844971 39976 traceroute.cc:241] Start preprobing.
I1101 13:52:29.932461 39976 traceroute.cc:256] Preprobing finished (Took 3 seconds).
I1101 13:52:29.932910 39976 traceroute.cc:308] Start main probing.
I1101 13:52:36.844626 39980 traceroute.cc:137] R: 7 S:  0.00k R:  0.00k PreP: 100.00 RmnP: 25.00 IfCnt: 3 FwIfCnt: 0
I1101 13:52:41.845054 39980 traceroute.cc:137] R: 12 S:  0.00k R:  0.01k PreP: 100.00 RmnP: 25.00 IfCnt: 7 FwIfCnt: 0
I1101 13:52:42.942278 39976 traceroute.cc:361] Scan finished.
I1101 13:52:43.016521 39976 traceroute.cc:368] Main probing finished (Took 13 seconds).
I1101 13:52:44.016777 39976 traceroute.cc:465] Average Sending Rate:         0.00 Kpps
I1101 13:52:44.016945 39976 traceroute.cc:467] Average Receving Rate:        0.01 Kpps
I1101 13:52:44.016968 39976 traceroute.cc:469] Sent packets:                 26
I1101 13:52:44.017005 39976 traceroute.cc:471] Received packets:             89
I1101 13:52:44.017042 39976 traceroute.cc:473] Total Dropped responses:      0
I1101 13:52:44.017060 39976 traceroute.cc:476] Other dropped:                0
I1101 13:52:44.017071 39976 traceroute.cc:478] Checksum Mismatches:          0
I1101 13:52:44.017083 39976 traceroute.cc:480] Distance Abnormalities:       0
I1101 13:52:44.017112 39976 traceroute.cc:482] Sent probes:                  22
I1101 13:52:44.017125 39976 traceroute.cc:483] Sent preprobes:               4
I1101 13:52:44.017156 39976 traceroute.cc:485] Interfaces Forward-probing:   0
I1101 13:52:44.017174 39976 traceroute.cc:487] Interfaces Backward-probing:  8
I1101 13:52:44.017189 39976 traceroute.cc:492] Discovered Interfaces:        8
I1101 13:52:46.845803 39976 blacklist.cc:21] Free the blacklist.
I1101 13:52:46.845891 39976 main.cc:345] The program ends.
me@ubuntu18:~/FlashRoute$ bazel run parsers/utils/route_generator -- --file ./output/flashroute_output
INFO: Build options --compilation_mode and --cxxopt have changed, discarding analysis cache.
INFO: Analyzed target //parsers/utils:route_generator (0 packages loaded, 6688 targets configured).
INFO: Found 1 target...
Target //parsers/utils:route_generator up-to-date:
  bazel-bin/parsers/utils/route_generator
INFO: Elapsed time: 1.590s, Critical Path: 0.02s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
WARNING: Logging before InitGoogleLogging() is written to STDERR
I1101 13:52:57.646713 40089 route_generator.cc:21] Program starts.
I1101 13:52:57.647363 40089 utils.cc:77] Preprocessing finished.
I1101 13:52:57.647799 40089 utils.cc:111] Processing finished.
I1101 13:52:57.647845 40089 route_generator.cc:31] Finished

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.