GOCDB/Release4/Development/ipv6support

From EGIWiki
Jump to: navigation, search
Main EGI.eu operations services Support Documentation Tools Activities Performance Technology Catch-all Services Resource Allocation Security


GOC DB menu: Home Documentation Index


<< Back to GOCDB/Release4/Development

IPv6 Support

GOCDB needs to support IPv6 addresses for Sites and Services.

To do this we propose:

  • Add new, optional IPV6 network range fields for both Site and Service objects.
    • Allows an optional IPv6 network range to be defined in addition to existing IPv4 address.
    • New fields will be optional and not mutually exclusive (for single Site or Service, both IPv4 and IPv6 fields could be defined).
  • Required? - Update the existing IPv4 Service <HOST_IP/> to define a range rather than a single IP (network-address/subnet-mask, e.g. 10.2.1.0/255.255.255.128) or (network-address/prefix-length, 10.2.1.0/25).

Therefore:

  • A Site may define : <SITE_IP/> and/or <SITE_IPV6/> (to define an ip or range for site)
  • Service may define: <HOST_IP/> and/or <HOST_IPV6/> (to define an ip for service)


The proposed format for <SITE_IPV6/> and <HOST_IPV6/> is taken from RFC3513: https://tools.ietf.org/html/rfc3513 which recommends for IPv6 a prefix-length notation should only be used for a range:

<IPv6Address>[/<PrefixLength>] 

Where:


From Wikipedia: IvP6, has a few rules that allow you to drop a lot of characters so it changes a lot. So this is the full representation – 8 groups of 4 characters separated by colon (8 groups of 4 hexiadecimals).

2001:0db8:85a3:0000:0000:8a2e:0370:7334

When there are zeros these groups can be omitted so the above can also be shown as (note the pair of double colons in the middle):

2001:0db8:85a3::8a2e:0370:7334

Also leading zeros from each group can also be omitted so some groups may have less than 4 characters, so the second and second from last group here are valid despite only having 3 characters:

2001:db8:85a3::8a2e:370:7334

Some IPv6 addresses have the 5-8th group all made up of zeros:

2001:adb8:85a3:7334:0000:0000:0000:0000

Some IPv6 have an odd number of groups for instance this is valid and has 6 groups one of which is blank:

fe80::2000:aff:fea7:f7c

PI Changes

An additional element will be added for the following PI methods: get_site, get_service_endpoint, get_service_group. These elements are optional and may not be rendered if they are empty.

The changes to the XML output are highlighed below:


get_site:

<?xml version="1.0"?>
<results>
 <SITE ID="1" PRIMARY_KEY="194G0" NAME="RAL-LCG2">
  <PRIMARY_KEY>194G0</PRIMARY_KEY>
  <SHORT_NAME>RAL-LCG2</SHORT_NAME>
  <GOCDB_PORTAL_URL>
   https://next.gocdb.eu/portal/index.php?Page_Type=View_Objectamp;object_id=1133amp;grid_id=0
  </GOCDB_PORTAL_URL>
  <OFFICIAL_NAME>RAL, GridPP Tier-1 Computing, Oxfordshire UK</OFFICIAL_NAME>
  <SITE_DESCRIPTION>Rutherford Appleton Laboratory - Tier1</SITE_DESCRIPTION>
  <HOME_URL>http://mywebsite.com</HOME_URL>
  <CONTACT_EMAIL>contact@demo.com</CONTACT_EMAIL>
  <CONTACT_TEL>+44 (0) 1235 446777 </CONTACT_TEL>
  <ALARM_EMAIL>alarm@demo.com</ALARM_EMAIL>
  <GIIS_URL> ldap://site-bdii.gridpp.rl.ac.uk:2170/mds-vo-name=RAL-LCG2,o=grid
  </GIIS_URL>
  <TIER>2</TIER>
  <COUNTRY_CODE>GB</COUNTRY_CODE>
  <COUNTRY>United Kingdom</COUNTRY>
  <ROC>UKI</ROC>
  <SUBGRID>Tier1A</SUBGRID>
  <PRODUCTION_INFRASTRUCTURE>Production</PRODUCTION_INFRASTRUCTURE>
  <CERTIFICATION_STATUS>Certified</CERTIFICATION_STATUS>
  <TIMEZONE>Europe/London</TIMEZONE>
  <LATITUDE>51</LATITUDE>
  <LONGITUDE>-1</LONGITUDE>
  <DOMAIN>
   <DOMAIN_NAME>gridpp.rl.ac.uk</DOMAIN_NAME>
  </DOMAIN>
  <SITE_IP>0.0.0.0/255.255.255.254<SITE_IP>                              <!-- New optional element here -->  
  <SITE_IPV6>fe80::2000:aff:fea7:f7c<SITE_IPV6>  <!-- New optional element here -->  
  <EXTENSIONS>                       
      <EXTENSION>
      <LOCAL_ID>01</LOCAL_ID>
      <KEY>VO</KEY>
      <VALUE>LHCB</VALUE>
      </EXTENSION>
  </EXTENSIONS>
 </SITE>
</results>

get_service_endpoint:

<?xml version="1.0"?>
<results>
  <SERVICE_ENDPOINT PRIMARY_KEY="651G0">
    <PRIMARY_KEY>651G0</PRIMARY_KEY>
    <HOSTNAME>foo.bar.ral</HOSTNAME>
    <GOCDB_PORTAL_URL>https://next.gocdb.eu/portal/index.php?.....elided</GOCDB_PORTAL_URL>
    <HOSTDN>/C=UK/O=test/OU=demo/CN=foo.bar.ral</HOSTDN>
    <HOST_OS>SL5</HOST_OS>
    <HOST_ARCH>x64<HOST_ARCH>
    <BETA>Y<BETA/>
    <SERVICE_TYPE>CE</SERVICE_TYPE>
    <HOST_IP>4.4.4.4</HOST_IP>
    <HOST_IPV6>fe80::2000:aff:fea7:f7c</HOST_IPV6>                  <!-- New optional element here -->  
    <CORE/>
    <IN_PRODUCTION>N</IN_PRODUCTION>
    <NODE_MONITORED>N</NODE_MONITORED>
    <SITENAME>RAL-LCG2</SITENAME>
    <COUNTRY_NAME>United Kingdom</COUNTRY_NAME>
    <COUNTRY_CODE>GB</COUNTRY_CODE>
    <ROC_NAME>UKI</ROC_NAME>
    <URL>https://some.serviceurl.eu:8443/services/se<URL/> 
    <EXTENSIONS>                                           
       <EXTENSION>
           <LOCAL_ID>01</LOCAL_ID>
           <KEY>VO</KEY>
           <VALUE>LHCB</VALUE>
       <EXTENSION>
    </EXTENSIONS>
  </SERVICE_ENDPOINT>
</results>

get_service_group:

<?xml version="1.0" encoding="UTF-8"?>
<results>
<SERVICE_GROUP PRIMARY_KEY="57654G0">
   <NAME>OPSTOOLS</NAME>
   <DESCRIPTION>All EGI Operational Tools</DESCRIPTION>
   <MONITORED>Y</MONITORED>
   <CONTACT_EMAIL>gocdb-admins@mailtalk.ac.uk</CONTACT_EMAIL>
   <GOCDB_PORTAL_URL> https://elided </GOCDB_PORTAL_URL>
   <SERVICE_ENDPOINT>
      <HOSTNAME>goc.egi.eu</HOSTNAME>
      <GOCDB_PORTAL_URL>https://elided</GOCDB_PORTAL_URL>
      <SERVICE_TYPE>egi.GOCDB</SERVICE_TYPE>
      <HOST_IP/>
      <HOST_IPV6/>                                              <!-- New optional element here -->
      <HOSTDN>/C=UK/O=eScience/OU=CLRC/L=RAL/CN=goc.egi.eu</HOSTDN>
      <IN_PRODUCTION>Y</IN_PRODUCTION>
      <NODE_MONITORED>Y</NODE_MONITORED>
      <EXTENSIONS>                           
        <EXTENSION>
          <LOCAL_ID>01</LOCAL_ID>
          <KEY>VO</KEY>
          <VALUE>LHCB</VALUE>
        </EXTENSION>
      </EXTENSIONS>
   </SERVICE_ENDPOINT>   
   <SERVICE_ENDPOINT>
      …elided…
   </SERVICE_ENDPOINT>
</SERVICE_GROUP>
</results>