Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1.5
    • Component/s: Network
    • Environment:

      All OSes, but primary importance on Linux.

      Description

      Support for IPv6 for client connections, but NOT origin connections. Client support is more important to begin with so TS can be used as an IPv6 to IPv4 gateway.

      Design doc here:
      http://cwiki.apache.org/confluence/display/TS/IPv6+Feature+Design

      1. TS-18_syncing_netProcessor.accept_usage.patch
        1 kB
        Zhao Yongming
      2. trafficserver_ipv6-r936014.patch
        48 kB
        Andrew Hsu
      3. trafficserver_ipv6.patch
        48 kB
        Tsunayoshi Egawa

        Issue Links

          Activity

          Hide
          Tsunayoshi Egawa added a comment -
          • Fuctions:
            1. receive a request based on v4 and v6
          • back post based on v4 only
          • change proxy.config.http.server_port_attr to bind v6.

          2. Logs

          • logging v6 address.
          • Configuration:
            CONFIG proxy.config.http.server_port_attr STRING X6
            6: bind AF_INET6

          CONFIG proxy.config.http.server_other_ports STRING 8080:X6
          6: bind AF_INET6

          Show
          Tsunayoshi Egawa added a comment - Fuctions: 1. receive a request based on v4 and v6 back post based on v4 only change proxy.config.http.server_port_attr to bind v6. 2. Logs logging v6 address. Configuration: CONFIG proxy.config.http.server_port_attr STRING X6 6: bind AF_INET6 CONFIG proxy.config.http.server_other_ports STRING 8080:X6 6: bind AF_INET6
          Hide
          Andrew Hsu added a comment -

          Update of original trafficserver_ipv6.patch file to apply properly to SVN revision 936014.

          I've tested this on RHEL4.8 and confirmed that an ipv6 http proxy request constructed via `telnet -6` works and logs to squid with ipv6 address:

          1272306929.356 14408 fe80::21f:f3ff:fe50:d8cc TCP_MISS/200 122709 GET http://www.yahoo.com/ - DIRECT/www.yahoo.com text/html -

          Next steps: cleanup, config options for controlling different aspects of ipv6, perf testing, load testing, etc. I'll update cwiki with details.

          Cheers,
          Andrew

          Show
          Andrew Hsu added a comment - Update of original trafficserver_ipv6.patch file to apply properly to SVN revision 936014. I've tested this on RHEL4.8 and confirmed that an ipv6 http proxy request constructed via `telnet -6` works and logs to squid with ipv6 address: 1272306929.356 14408 fe80::21f:f3ff:fe50:d8cc TCP_MISS/200 122709 GET http://www.yahoo.com/ - DIRECT/www.yahoo.com text/html - Next steps: cleanup, config options for controlling different aspects of ipv6, perf testing, load testing, etc. I'll update cwiki with details. Cheers, Andrew
          Hide
          Leif Hedstrom added a comment -

          When committing contributions from non-committers, please attribute the original author in the commit messages. Many thanks to Tsunayoshi Egawa for providing the original patch!

          Show
          Leif Hedstrom added a comment - When committing contributions from non-committers, please attribute the original author in the commit messages. Many thanks to Tsunayoshi Egawa for providing the original patch!
          Hide
          Leif Hedstrom added a comment -

          I would highly recommend not to use the v2 stats APIs, they are experimental, and do not integrate well with the rest of the ATS core. For anything that goes into the core (i.e. not plugins) use the "old" existing stats APIs please.

          Show
          Leif Hedstrom added a comment - I would highly recommend not to use the v2 stats APIs, they are experimental, and do not integrate well with the rest of the ATS core. For anything that goes into the core (i.e. not plugins) use the "old" existing stats APIs please.
          Hide
          Andrew Hsu added a comment -

          Requires Mac OS X and Solaris builds to be back on par. For now, I'll move the IPv6 commits to a separate branch so as to not block any development and testing on trunk.

          Show
          Andrew Hsu added a comment - Requires Mac OS X and Solaris builds to be back on par. For now, I'll move the IPv6 commits to a separate branch so as to not block any development and testing on trunk.
          Hide
          Leif Hedstrom added a comment -

          Moving this out to v2.3.0, unless someone else picks this up and fixes the code to be cross platform. The other option is to take the patch, and make it compile time optional only for Linux (where it does seem to work).

          If someone else wants to work on this, please assign the bug accordingly.

          Show
          Leif Hedstrom added a comment - Moving this out to v2.3.0, unless someone else picks this up and fixes the code to be cross platform. The other option is to take the patch, and make it compile time optional only for Linux (where it does seem to work). If someone else wants to work on this, please assign the bug accordingly.
          Hide
          Anirban Roy added a comment -

          Traffic Server used as forward proxy in a number of places including web crawling and feed fetching applications. In those applications, (origin)server side IPv6 support is desirable. As the Internet running out of IPv4 addresses, the new sites will run on IPv6 stack. The applications pulling content using traffic server should be able to do so in the changing scenario.

          Wondering if I need to create a separate jira for server-side support. Please advise.

          Show
          Anirban Roy added a comment - Traffic Server used as forward proxy in a number of places including web crawling and feed fetching applications. In those applications, (origin)server side IPv6 support is desirable. As the Internet running out of IPv4 addresses, the new sites will run on IPv6 stack. The applications pulling content using traffic server should be able to do so in the changing scenario. Wondering if I need to create a separate jira for server-side support. Please advise.
          Hide
          Leif Hedstrom added a comment -

          Hi Anirban,

          yeah, please file a seperate Jira ticket for server side support. It's unclear to me how much "support" we can expect from the authors of this patch, and I'd really like to get TS-18 landed sooner rather than later.

          Fwiw, even though this fix doesn't help or support your needs, it does help people getting on the IPv6 bandwagon sooner and easier (i.e. run ATS on IPv6, and proxy back to the old IPv4 servers, which can even be re-IPed to 1918 address space).

          Cheers!

          – Leif

          Show
          Leif Hedstrom added a comment - Hi Anirban, yeah, please file a seperate Jira ticket for server side support. It's unclear to me how much "support" we can expect from the authors of this patch, and I'd really like to get TS-18 landed sooner rather than later. Fwiw, even though this fix doesn't help or support your needs, it does help people getting on the IPv6 bandwagon sooner and easier (i.e. run ATS on IPv6, and proxy back to the old IPv4 servers, which can even be re-IPed to 1918 address space). Cheers! – Leif
          Hide
          Andrew Hsu added a comment -

          Fixing up the description of the ticket since there is a separate ticket to address IPv6 connection to the origin server.

          Show
          Andrew Hsu added a comment - Fixing up the description of the ticket since there is a separate ticket to address IPv6 connection to the origin server.
          Hide
          Andrew Hsu added a comment -

          Typo

          Show
          Andrew Hsu added a comment - Typo
          Hide
          Leif Hedstrom added a comment -

          Andrew: Can we close this bug now?

          Show
          Leif Hedstrom added a comment - Andrew: Can we close this bug now?
          Hide
          Zhao Yongming added a comment -

          when I compile TS with gcc-4.5.1, it fails at:
          LogCollationAccept.cc: In constructor 'LogCollationAccept::LogCollationAccept(int)':
          LogCollationAccept.cc:50:111: error: converting 'false' to pointer type for argument 6 of 'virtual Action* NetProcessor::accept(Continuation*, int, int, bool, unsigned int, char*, bool, int, int, bool, sockaddr*, int*, int, int, uint32, EventType)'
          make[2]: *** [LogCollationAccept.o] Error 1
          make[2]: Leaving directory `/root/rpmbuild/BUILD/trafficserver-2.1.5-unstable/proxy/logging'

          turns out that NetProcessor::accpet need to adjust the usage, so comes this patch.

          Show
          Zhao Yongming added a comment - when I compile TS with gcc-4.5.1, it fails at: LogCollationAccept.cc: In constructor 'LogCollationAccept::LogCollationAccept(int)': LogCollationAccept.cc:50:111: error: converting 'false' to pointer type for argument 6 of 'virtual Action* NetProcessor::accept(Continuation*, int, int, bool, unsigned int, char*, bool, int, int, bool, sockaddr*, int*, int, int, uint32, EventType)' make [2] : *** [LogCollationAccept.o] Error 1 make [2] : Leaving directory `/root/rpmbuild/BUILD/trafficserver-2.1.5-unstable/proxy/logging' turns out that NetProcessor::accpet need to adjust the usage, so comes this patch.
          Hide
          Leif Hedstrom added a comment -

          I applied the patch as proposed, for the gcc 4.5.1 build issues.

          Show
          Leif Hedstrom added a comment - I applied the patch as proposed, for the gcc 4.5.1 build issues.
          Hide
          Andrew Hsu added a comment -

          Patch is in trunk and regression tests passed.

          Show
          Andrew Hsu added a comment - Patch is in trunk and regression tests passed.

            People

            • Assignee:
              Andrew Hsu
              Reporter:
              Bryan Call
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development