<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>IPV6 DUAL-STACK DEPLOYMENT FOR THE DISTRIBUTED COMPUTING CENTER</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. Kotliar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V. Kotliar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anna Kotliar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Viktor Kotliar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for High Energy Physics named by A.A. Logunov of National Research Center “Kurchatov Institute”</institution>
          ,
          <addr-line>Nauki Square 1, Protvino, Moscow region, Russia, 142281</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>5</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>Computing center of the Institute for High Energy Physics in Protvino provides computing and storage resources for various HEP experiments (Atlas, CMS, Alice, LHCb) and currently operates more than 150 working nodes with around 3000 cores and provides near 2.5 PB of disk space. All these resources are connected through two 10 GB/s links to LHCONE and other research networks. IHEP computing center has IPv4 address space limited to one C-sized network and all computing nodes working behind the NAT that has some drawbacks for production use. To optimize routing, switching and to get higher network throughput for data transfer the IPv6 dual-stack was deployed on the computing farm. This work shows the full cycle of the real IPv6 dual-stack deployment from zero to production.</p>
      </abstract>
      <kwd-group>
        <kwd>IPv6</kwd>
        <kwd>GRID</kwd>
        <kwd>distributed computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Computing center of the Institute for High Energy Physics in Protvino provides computing
facilities and storage resources for various HEP experiments like Atlas, CMS, Alice, LHCb. It
operates with more than 150 working nodes (around 3000 cores) and it provides near 2.5 PB of disk
space. Main computations are done by using the distributed computing paradigm and GRID [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. To
connect all resources there are two 10 GB/s links to LHCONE and other research networks. IHEP uses
its own AS2643 autonomous system to operate networks. Through many years IHEP computing
cluster had IPv4 address space limited to one C-sized network and all computing nodes worked behind
the NAT. Such configuration worked well on a small sized cluster but with the computing farm
growing some drawbacks for production use were discovered. Main of them are IPv4 addresses costs
and increasing the number of NAT devices and NAT traffic. To optimize routing, switching and to get
higher network throughput for big data transfer (main traffic for IHEP) the IPv6 dual-stack was
deployed at the computing center and on the computing farm. Due to used hardware and software
stacks, it was done in seamless way without any disturb for the computations and operations of the
computing center. The full cycle of the real IPv6 dual-stack deployment from zero to production is
described below.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. IPv6 features to know</title>
      <p>
        As soon as IPv6 is a completely different protocol from IPv4 there are some basic things and
features which you need to know before starting the deployment [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. IPv4 addresses are sized at
32bits and expressed in decimal octets like:
192.168.1.1 - address;
192.168.1.1/255.255.255.0 - address and netmask;
192.168.1.1/24 - address and prefix length.
      </p>
      <p>IPv6 addresses are sized at 128-bits in hexadecimal words and they have opposite to IPv4
meaning for prefix length:
2001:0678:07d8:0000:0000:0000:0000:0001 – address;
2001:0678:07d8:0000:0000:0000:0000:0001/64 - address and prefix length;
2001:678:7d8::1/64 - short form with skipped zeros.</p>
      <p>There is a completely different way for dynamically assigning IPv6 addresses to devices.
Basics things to understand and configure are following:</p>
      <sec id="sec-2-1">
        <title>IPv6 Router Advertisements</title>
        <p>o IPv6 routers can be configured to send advertisements, both periodically
and on request, with the following information: the IPv6 prefix/prefix length
in use on this link; the IPv6 address of the router; various ‘flags’ (or hints)
which tell hosts how to behave;</p>
      </sec>
      <sec id="sec-2-2">
        <title>IPv6 Dynamic Address Assignment</title>
        <p>Device Unique IDentifier [DUID]
o
hosts can auto-generate their own addresses using SLAAC
(State-Less Auto-Address Configuration) or via DHCPv6 through use of the
‘A’ or ‘M’ flags;
o
o</p>
        <p>DHCPv6 does not necessarily identify machines by MAC address and DUIDs
can be one of: Link-layer address plus time [DUID-LLT], vendor-assigned
UID based on Enterprise Number [DUID-EN], link-layer address
[DUIDLL]UUID-based DUID [DUID-UUID];</p>
      </sec>
      <sec id="sec-2-3">
        <title>Not all DHCPv6 clients use the same DUID type by default. 262</title>
        <p>One more thing to take into consideration with IPv6 deployment is a packer fragmentation.
IPv4 supports packet fragmentation and an intermediate router can break a large IPv4 packet into
several smaller ones prior to forwarding. In opposite, IPv6 does not support packet fragmentation.
This is not permitted in IPv6 and a router drops the packet and responds to the sender with ICMPv6
“Message Too Big” along with the size of packet that it will accept and forward. The sender receives
the response and transmits a smaller packet. This repeats ad-infinitum along the traffic path until
packet successfully reaches the destination. Packet fragmentation hides broken network paths.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Step by step deployment of IPv6</title>
      <p>The real deployment of IPv6 in the production environment is a complex task. It consists of
many sub tasks, which are difficult to know before the real deployment begins. There are some
recommendations to do test setup on preproduction or testing environment. The article, in contrast,
describes deployment in a working environment with minimal services downtimes for IPv6 dual-stack
in stateful mode.</p>
      <sec id="sec-3-1">
        <title>3.1 Planning and preparations</title>
        <p>Before starting the setup IPv6, it should be clear understanding what is the reason for the
deployment and the main goal. Then there is a checklist for the readiness of the current environment to
IPv6:




</p>
        <sec id="sec-3-1-1">
          <title>Network devices support for IPv6;</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Used operating system support for IPv6;</title>
          <p>Used system applications and services support for IPv6 (DNS, mail, DHCP, https,
netflow…);
Used application software support for IPv6 (decide on default IP protocol for
dualstack);</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Possible security issues and firewalls readiness for IPv6.</title>
          <p>
            Moreover, important decision should be made on IPv6 addressing. There are many
recommendations and books written about this and it depends on the used addressing scheme for IPv4
and network topology. Usually IPv6 prefix /64 is used for IPv4 with prefix /24 and the addressing
depends on used VLANs, IPv4 and services roles. Here is an example [fig. 1] for IHEP addressing
plan based on recommendations from Tom Coffeen’s book [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. For the site we use /48 IPv6 network
and split this space across different levels:
1. Network type - GRID, IHEP general, special devices;
2. Role of the device – server, working node for GRID;
3. VLAN ID from the L2 network layer;
4. Last IPv4 byte (it has meaning because IPv4 addresses at IHEP based on VLANs).
          </p>
          <p>So for IPv4 GRID storage server 194.190.165.179/24 (se0003.m45.ihep.su) there is IPv6
address 2001:678:7d8:21a5::179/64 where 2001:678:7d8::/48 is an address space for IHEP.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 One computer setup</title>
        <p>
          It is possible to start just with one dedicated computer in the network with IPv6 dual-stack.
Such setup touches the whole network stack with local access and Internet necessaries (routing, DNS).
To setup one computer:
1. Get IPv6 address space from provider or LIR [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] (PI address space recommended);
2. Configure internal network infrastructure and connect one host to IPv6 network (
ping -6 should work internally between routers and IPv6 testing computer);
3. Setup external routing for IPv6 in RIPE DB and with providers (ping -6 should work
with Internet in both directions);
4. Setup DNS to resolve IPv6 addresses for direct and back zones (ping -6 by name
should work from Internet).
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 Monitoring, accounting and firewall</title>
        <p>
          As soon as there is already one computer with IPv6 and full stack deployed it is possible to
configure and adjust monitoring, accounting and firewall for the new protocol. At IHEP, netflow is
used for traffic accounting and pmacct [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] installed as a collector for netflow v9 from routers. Cacti
plug-in added to show and analyze pmacct netflow DB based on postgresql. Also flox tool for pmacct
adapted for the new setup. To monitor IPv6 traffic on network device interfaces some changes were
made to the local monitoring system based on mrtg. To address security basic IPv6 rules were added
on the IHEP border firewall and some of IPv4 restrictions were adjusted. As soon as at IHEP installed
next generation firewall based on applications and not on IP addresses, initial IPv6 setup and
configuration almost repeats IPv4 rules and is very simplified.
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4 Adding the cluster for distributed computing</title>
        <p>
          After IPv6 stack started to work in general, the distributed computing cluster was reconfigured
to use it. At IHEP, it consists of storage nodes, compute nodes, infrastructure and management servers.
Dual-stack stateful IPv6 configuration is used on all of them. For distributed storage servers IPv6
static configuration is applied through cluster management system [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] and static DNS records are
added to the cluster DNS zones. The used storage software (dCache, xrootd) is configured to work
with IPv4 and IPv6 where IPv6 is made as preferable protocol for data transfers to and from outside.
For computer nodes was added special DHCPv6 server [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] that is allowed to use the same MAC to
IPv6 binding as it was done for IPv4. It needs to be mentioned that such behavior is not a part of IPv6
protocol standart but worked well for the computing cluster and allowed fully control IP addresses
assignment for both IPv4 and IPv6 in the same manner. In addition, a network topology was changed
to allow direct connections for IPv6 from nodes to outside where, alongside, IPv4 still works behind
NAT. As the last step all computer nodes were configured to prefer IPv6 to IPv4 where it is possible.
For management and infrastructure servers static IPv6 configuration was applied and IPv6 protocol
was set as default for all services after carefully inspecting server by server and service by service.
Following the last configuration step the firewall rules were updated on the main IHEP firewall and on
all the servers and nodes connected to IPv6 network.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>Current setup for IPv6 deployment is shown on figure 2. Only a computing cluster is fully
connected to IPv6 in dual-stack deployment and there is still a lot of work that should be done in
connecting IHEP generic public network to IPv6.</p>
      <p>The usage of IPv6 with end-to-end hosts connectivity to all devices allowed to increase cluster
efficiency for data transfers and efficiency of using CPU on the compute nodes. It allows to grow a
compute center by adding more storage and compute nodes by removing IPv4 addresses restrictions
(too expensive addresses) for Internet connections. All new big network setups for projects at IHEP
are going to use IPv6 as primary protocol in IPv6 only or in IPv6 with IPv4 dual-stack deployments
meanwhile migrating IHEP GPN from IPv4 only to IPv4 with IPv6.
at:</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Kotliar</surname>
            <given-names>V.</given-names>
          </string-name>
          <article-title>IHEP cluster for Grid and</article-title>
          distributed computing // CEUR Workshop Proceedings.
          <source>February</source>
          <year>2017</year>
          : Vol.
          <volume>1787</volume>
          .- pp.
          <fpage>312</fpage>
          -
          <lpage>316</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Hagen</surname>
            <given-names>S.</given-names>
          </string-name>
          IPv6 Essentials, 3rd Edition // O'Reilly Media, Inc. June 2014. ISBN:
          <volume>9781449319212</volume>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Coffeen</surname>
            <given-names>T.</given-names>
          </string-name>
          IPv6 Address Planning // O'Reilly Media, Inc.
          <source>November</source>
          <year>2014</year>
          . ISBN:
          <volume>9781491902769</volume>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>IPv6</given-names>
            <surname>Address Allocation</surname>
          </string-name>
          and Assignment Policy https://www.ripe.net/publications/docs/ripe-738
          <source>(accessed 22.09</source>
          .
          <year>2021</year>
          ) [
          <fpage>ripe</fpage>
          -738].
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>[5] pmacct a small set of multi-purpose passive network monitoring tools [pmact github]</article-title>
          . Available at: https://github.com/pmacct/pmacct (accessed
          <volume>22</volume>
          .09.
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Ezhova</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotliar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotliar</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Popova</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>Multicomponent cluster management system for the computing center</article-title>
          at IHEP // CEUR Workshop Proceedings.
          <year>2018</year>
          : Vol.
          <volume>2267</volume>
          . - pp.
          <fpage>37</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>[7] dhcpy6d MAC address aware DHCPv6 server [dhcpy6d https://github</article-title>
          .com/HenriWahl/dhcpy6d (accessed
          <year>22</year>
          .09.
          <year>2021</year>
          ) github]. Available at:
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>