Migrating a queue manager to IPv6

Two example scenarios for migrating a non-cluster queue manager topology to an IPv6 network.

Before you begin

To use the IPv6 protocol, IBM® MQ must be installed on a system that is IPv6 capable.

About this task

If both IPv4 and IPv6 are available, the preferred IP version that two systems use for communicating is determined by the queue manager attribute IPADDRV. This parameter only has an effect if the host name resolves ambiguously to both an IPv4 address and an IPv6 address.

These are the broad steps to migrate a queue manager to use the IPv6 protocol. They are described in more detail in each of the two scenarios.
  1. Configure dual IPv4 and IPv6 protocols on the system where the queue manager to be migrated resides.
  2. Install IBM MQ.
  3. Add an entry to the DNS to resolve the host name of the system that is to be migrated, to both an IPv4 address and an IPv6 address.
  4. Set the IPADDRV parameter to IPv6 (or set the LOCLADDR parameter to resolve to an IPv6 address).
    Note:
    • Not all IPv6 software can interpret an IPv4 mapped IPv6 address. If the combination of CONNAME and LOCLADDR results in an IPv4 mapped IPv6 address, ensure that the system hosting the target queue manager is capable of handling this.
    • Using mapped addresses can require protocol translators in the IP network.

There are a number of different interconnection possibilities. Use the following two scenarios to help you understand how IBM MQ works in each case.

Procedure

  • Non-cluster migration scenario 1

    Three systems exist that are IPv4-only capable. Each system hosts a queue manager (QM1, QM2, and QM3) and each queue manager connects to the other two. All CONNAME parameters in the cluster channel definitions are set using DNS names rather than IP addresses.

    To enable QM1 to be able to use channels running over IPv6, complete the following steps:

    1. Upgrade the host system to have dual IPv4 and IPv6 stacks.
      Important: A listener is required for each IP stack.
    2. Install the latest version of IBM MQ.
    3. Update the DNS table so that it has two entries for the system running QM1; one entry for its IPv4 address and one for its IPv6 address.

      This enables a DNS name request to return both IPv4 and IPv6 addresses for this host.

    4. Set the queue manager IPADDRV attribute to IPv6.
      Note: Even with these changes made to support IPv6 addressing, QM1 can still communicate with queue managers (both existing and new ones) that are only IPv4 capable.
    5. Enable QM2 to use channels running over IPv6, as previously enabled for QM1.
    The queue managers can now connect as follows:
    • Communications between QM1 and QM2 are now over IPv6.
    • Communications between QM1 and QM3 are still over IPv4.
    • Communications between QM2 and QM3 are still over IPv4.

    With the queue manager IPADDRV attribute set to IPv6, the preference is set for the queue manager to connect using the IPv6 protocol. If a channel from QM1 to QM3 has LOCLADDR set to a host name that resolves to an IPv6 address, or has both IPv4 and IPv6 addresses and the IPADDRV attribute is set to IPv6, then the IPv6 address is returned and the channel attempts to use the IPv6 protocol. If the IPv6 protocol installed on the QM1 host system can use a mapped address, then QM1 communicates with QM3 over IPv6. Otherwise, the channel cannot resolve the CONNAME.

    While QM3 remains a queue manager on an earlier version of the product, you must ensure that no CONNAME used to start a channel to QM3 resolves either to an IPv6 address, or to dual IPv4 and IPv6 addresses where the IPv6 address could be returned. Otherwise QM1 attempts to start the channel over IPv6, which fails because it cannot resolve the CONNAME.

    You can upgrade a system to have dual IPv4 and IPv6 capability and still run a queue manager on an earlier version of the product. Although it is not recommended to run this type of configuration, it should work provided the addresses that are returned to this level of queue manager are either IPv4 addresses, or IPv4 mapped versions of IPv6 addresses.

  • Non-cluster migration scenario 2

    Three systems exist that are IPv4-only capable. Each system hosts a queue manager (QM1, QM2, and QM3) and each queue manager connects to the other two. All CONNAME parameters in the cluster channel definitions are set using IP addresses.

    Because addresses are specified instead of DNS names, to allow a queue manager to connect to another using the IPv6 protocol you need to duplicate the definitions that use IPv4 addresses between them, and provide them with IPv6 addresses instead. The original definitions that use IPv4 addresses continue to work, but to take advantage of the IPv6 protocol you need to connect using the new definitions.

    To enable QM1 to be able to use channels running over IPv6, complete the following steps:

    1. Upgrade the host system to have dual IPv4 and IPv6 stacks.
      Important: A listener is required for each IP stack.
    2. Install IBM MQ.
    3. Duplicate the channel, transmission queue and, where applicable, any process definitions using IPv6 addresses where required.
      Note: Even with these changes made to support IPv6 addressing, QM1 can still communicate with existing queue managers that are only IPv4 capable.
    4. Enable QM2 to use channels running over IPv6, as previously enabled for QM1.
    5. Where necessary, amend applications to write to the new remote queue that was created for QM1 with the IPv6 addresses.
    6. Verify the channels can be started.
    The queue managers can now connect as follows:
    • QM1 can now connect with QM2 over either IPv4 or IPv6, depending on the channel the application writes its messages to.
    • QM1 still connects with QM3 over IPv4, using the original definitions.