GOCDB/Release4/Development/ipv6support
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).
- 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 or range 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:
- <IPv6Address> has the format as described below (https://tools.ietf.org/html/rfc3513#section-2.2)
- [/<prefixLength>] is an optional forward slash and decimal value specifying how many of the leftmost contiguous bits of the address comprise the prefix, typically /64 to /32 (https://tools.ietf.org/html/rfc3513#section-2.3)
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>