Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-7472

unable to have puppet master listen on both IPv4 and IPv6

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: PUP 4.8.2
    • Fix Version/s: PUP 5.1.0, PUP 5.4.0
    • Component/s: None
    • Labels:
      None
    • Template:
    • Acceptance Criteria:
      Hide

      Investigate issue and fix, if trivial, as such that master can listen on both IPv4 and IPv6.

      Show
      Investigate issue and fix, if trivial, as such that master can listen on both IPv4 and IPv6.
    • Team:
      Platform OS
    • Story Points:
      0
    • Sprint:
      Platform OS 2017-08-22
    • Release Notes:
      New Feature
    • Release Notes Summary:
      Hide
      the `puppet master` command now listens on both IPv4 and IPv6.

      NOTE: On OSX, the `puppet master` command may not work correctly. This can be fixed by setting 'bindaddress' to "0.0.0.0" or "::", depending on if you want to listen on IPv4 or IPv6.

      For Puppet 5.4.0, it is now possible to use '*' on OSx (and other non *nix platforms).
      Show
      the `puppet master` command now listens on both IPv4 and IPv6. NOTE: On OSX, the `puppet master` command may not work correctly. This can be fixed by setting 'bindaddress' to "0.0.0.0" or "::", depending on if you want to listen on IPv4 or IPv6. For Puppet 5.4.0, it is now possible to use '*' on OSx (and other non *nix platforms).
    • QA Risk Assessment:
      No Action
    • QA Risk Assessment Reason:
      webrick/rack / puppet master is deprecated

      Description

      I'd like have Puppet being dual-stacked, so I did set bindaddress = :: in my puppet.conf, as suggested in "Learning Puppet 4: A Guide to Configuration Management and Automation"/ "IPv6 Dual-Stack Puppet Master" (Page 309 in Google Books), also described here.

      This should make the puppet master listen on both IPv4 and IPv6.

      When running the puppet master, netstat -anl|grep 8140 shows the following:
      tcp6 0 0 :::8140 :::* LISTEN

      I can connect via IPv6:
      curl -k 'https://[::]:8140/puppet/v3/'

      {"message":"Bad Request: The indirection name must be purely alphanumeric, not ''","issue_kind":"RUNTIME_ERROR"}

      But connecting via IPv4 fails:
      curl -k 'https://127.0.0.1:8140/puppet/v3/'
      curl: (7) Failed to connect to 127.0.0.1 port 8140: Connection refused

      So the socket does not seem to be listening under IPv4, contrary to the docs.

      Additionally, it's not possible to bind to two different addresses (:: and 0.0.0.0), so it currently simply isn't possible to start puppet listening both on IPv4 and Ipv6.

        Attachments

          Activity

            People

            • Assignee:
              branan Branan Riley
              Reporter:
              flokli Florian Klink
              QA Contact:
              Erik Dasher
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Zendesk Support