Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipv6 #10

Merged
merged 25 commits into from
Jan 11, 2023
Merged

Ipv6 #10

merged 25 commits into from
Jan 11, 2023

Conversation

vhein99
Copy link
Collaborator

@vhein99 vhein99 commented Jan 10, 2023

Introduction of IPv6 support for both client and server

Changes to client

  • Added -4 and -6 options to resolve a hostname to the specified address family.
    The option is ignored when a valid IP is specified as the target.
    When omitted the client attempts to resolve the target to an IPv4 address, on failure to an IPv6 address.
  • Updated scapy dependency to version 2.5.0 for full Python 3.10 support

Server

  • Two independent executables are built for both IP address families from the same source
  • Both executables can be attached to the same interface

Testlab

  • The integration test is performed inside a virtual machine
  • Using ipmininet for dynamic routing and better IPv6 support inside the test environment

Valentin Heinrich and others added 22 commits December 6, 2022 17:48
Updated the build system to compile seperate programs
for the IPv4 and IPv6 versions of augsburg-traceroute-server.

This has following advantages over a single program:
    + Saving a lot of unnecessary memory overhead
        A single program would maintain all sessions in a single map,
        thus forcing the session entries to be large enough to hold IPv6
        addresses.
        By seperating the programs, the IPv4 version doesn't waste any
        space.
    + Allowing IPv4 and IPv6 programs to be configured seperately
        Both the session size and the session timeout can now be
        configured per-program.

Both programs can be attached to a single interface, just run them one
after the other.
- Added -4|-6 switch to client to resolve hostnames
  to the given address family.
- Refactored client main function for better code readability.
- Added ipv6 support for probe generation.
Moved prev. static functions in headers to internal functions in c file.
Cleaned up code to eliminate compile time warnings.
Removed duplicate includes in header and source files.
Tests now run inside a virtual machine, which is created and configured
by vagrant. The testscript now relies on ipmininet, which provides
automatic routing and builtin IPv6 support.
The client defaulted to resolving an IPv4 address for a given hostname
if no address family was specified by the user.
Now the client tries to resolve an IPv4 address and on failure proceeds
to fetch an IPv6 address.
To test the clients merge behaviour the testlab is now
configured to create a topology with two unequal-length path
and the same igp_metric.
@pimvanpelt
Copy link

pimvanpelt commented Jan 10, 2023 via email

@vhein99 vhein99 merged commit 336c5e0 into main Jan 11, 2023
@vhein99 vhein99 deleted the ipv6 branch January 23, 2023 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants