A quick test to see if the host has full IPv6 capability is to run traceroute6
453cottrell@www3:~$traceroute6 ipv6.google.com traceroute to ipv6.google.com (2607:f8b0:4007:802::200e), 30 hops max, 80 byte packets connect: Network is unreachable Exit 1 |
To enable for IPv6:
for taylor.opts on a linux server, I believe would look something like ipv6addr=2620:114:d000:25a1::80/64,2620:114:d000:25a1::1
It may seem to have an IPv6 address by looking at ifconfig you may see
eth0 Link encap:Ethernet HWaddr 00:50:56:BE:3D:4C inet addr:134.79.197.214 Bcast:134.79.197.255 Mask:255.255.255.128 inet6 addr: 2620:114:d000:2716:250:56ff:febe:3d4c/64 Scope:Global inet6 addr: fe80::250:56ff:febe:3d4c/64 Scope:Link |
The global ipv6 addr which is currently configure on this host is probably the slaac (auto configured) from the router.
If the last couple octets look like a MAC address (versus zero or a very small number), then the address was almost certainly auto configured.
The other way to convince yourself is to look at the DNS record for the given system (e.g. “host www3”). If there is no IPv6 address displayed, then the address got autoconfigured.
447cottrell@rhel6-64f:~$host www3 www3.slac.stanford.edu has address 134.79.197.214 |
If it does not have an IPv6 address then we have to assign one from the relevant range (e.g. for www3)
ksa@cdlogin3 $ /afs/slac/g/scs/net/bin/subnet all | grep SERV01-DMZ-WEBSERV 134.79.197.128 SERV01-DMZ-WEBSERV 134.79.197.129 255.255.255.128 Serv01 Web Servers DMZ (vlan 1814) 2620:114:d000:2716:: SERV01-DMZ-WEBSERV 2620:114:d000:2716::1 ffff:ffff:ffff:ffff:: Serv01 Web Servers DMZ (vlan 1814) |
To test:
ksa@www3 $ curl -I -v www3 * About to connect() to www3 port 80 (#0) * Trying 2620:114:d000:2716::8... connected * Connected to www3 (2620:114:d000:2716::8) port 80 (#0) [?] |
Modified to enable both the hostname and IPv6 address to be the same.
Modified to make work on Solaris and Linux:
my $version="7.3, 12/13/2017, Les Cottrell";
# Added \[\] to untainting of dig command. Appears to be needed for IPv6.
# Do not avoid testing internal domains if server is IPv6 host,
# Added avoid calling gethostbyname6 if hostname is already an ipv6 address
# Fixed how Solaris mis-interprets system(@args) sometimes (saw in IPv6)
Created nodes-ipv6.pl to add the PingER IPv6 MA 2001:da8:270:2018:f816:3eff:fef3:bd3. See here for addition.
Copied getdata.pl to getdata-ipv6.pl and modified to use the /afs/slac/package/pinger/nodes-ipv6.cf file and write to the /nfs/slac/g/net/pinger/pingerdata/ipv6/data/ directory (e.g. /nfs/slac/g/net/pinger/pingerdata/ipv6/data/2001:da8:270:2018:f816:3eff:fef3:bd3/ping-2017-12-19.txt.gz) when running getdata-ipv6.pl 2001:da8:270:2018:f816:3eff:fef3:bd3 2017-12-19 1. Also replaced IPv4 address checks with sub chck_ip{} to test for both IPv4 and IPv6 addresses.
Call with:
wrap-analyze-hourly.pl --usemetric --dataset ipv6 --by by-node --size 100 --set_metric 3 --date 2017-12-19
This will use as input:
Output will go to:
This does not accept IPv6 Addresses, see INC0176849 and INC0176966.
%NODE_DETAILS=( "2001:da8:270:2018:f816:3eff:fef3:bd3" => [ "2001:da8:270:2018:f816:3eff:fef3:bd3", "gzhu.edu.cn", "CN.GZHU.EDU.IPV6", "CERNET Cloud", "Tsinghua University, Beijing", "China", "East Asia", "23.037002 113.36777", "M", "http://[2001:da8:270:2018:f816:3eff:fef3:bd3]/cgi-bin/traceroute.pl?function=ping", "http://[2001:da8:270:2018:f816:3eff:fef3:bd3]/cgi-bin/traceroute.pl?choice=yes", "http://[2001:da8:270:2018:f816:3eff:fef3:bd3]/cgi-bin/ping_data.pl", "http://www.gzhu.edu.cn/", "", "", "", "Saqib Ali <saqibutm\@outlook.com>, Prof. Guojun Wang, csgjwang\@gzhu.edu.cn; csgjwang\@gmail.com", "Test record by Venkat based on add by Cottrell 12/19/2017.", ], |
APEX doesn't like colon(:) in primary key column values. Primary key value is passed in the URL as a parameter and APEX parameters are separated by colons (:), which is causing the issue. Venkat provided a workaround. We will test this on the Oracle SLACDEV2 (SLACPROD is the production version) test database.
Ipaddress is limited to 14 characters and expecting a format of ^[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}$
If you want to increase the length or change the format, we need to modify the interface code. Proposal is to extend the field to 100 characters (like the other fields) and not apply any filters.
The connection to the database is defined in: /afs/slac/package/pinger/oracleArchive/netratDb.pm
In that program the following lines contain slacprod/SLACPROD
I made a copy of the script in /afs/slac/package/pinger/oracleArchive/netratDbdev2.pm and substituted slacdev2/SLACDEV2 for slacprod/SLACPROD and also made a copy of /afs/slac/package/pinger/guthrie/node.pl in /afs/slac/package/pinger/guthrie/node-ipv6.pl to call the new script. Then I saved the new file using /afs/slac/package/pinger/guthrie/node-ipv6.pl -o > /afs/slac/package/pinger/nodes-ipv6.cf
The password is kept in a protected file. The password on SLACDEV2 was changed to match the one on SLACPROD
Accessing SLACPROD and SLACDEV2 from the web as follows, they use the same windows userid/passwords
One can use https://network-tools.webwiz.net/ping.htm to check if a target responds to IPv6 pings. As part of this we discovered that the SLAC border was blocking IPv6 pings (see INC0178575).
See here. Currently, it contains random pingable IPv6 addresses as Saqib took it from http://www.ipv6forum.com/ipv6%5fenabled/approval%5flist.php. He proceeded as follows:
Unfortunately it is very common that sites use a proxy for common services such as www. A possibility is to use perfSONAR. These are high performance throughput monitoring sites mainly in US, and Europe. perfSONAR fully supports IPv6 and has a data base that includes latitude and longitude. When we were working on TULIP ( the use of pings from ping servers to find the location of targets) we used these perfSONAR ping/traceroute servers/landmarks to make the RTT measurements. There is some documentation at https://confluence.slac.stanford.edu/display/IEPM/Automated+PerfSONAR+Landmark+finding
There is a spreadsheet of active landmarks that can make pings at http://www-wanmon.slac.stanford.edu/cgi-wrap/reflector.cgi?function=landmarks&ability=1. I am not sure how current this is, the psonar_auto.pl job updates the web page information and runs monthly. Tulip has not been maintained for a couple of years. There is more documentation at https://confluence.slac.stanford.edu/display/IEPM/TULIP+Analysis and looking at http://www-iepm.slac.stanford.edu/pinger/crontab-slaconly.txt you can see the tulip jobs that are run by cron.
In the spreadsheet there is a column labelled Ping URL. It contains the URL of the ping server for the Measurement Agent (MA).
We wrote a perl script ping-ipv6-ps.pl to ping all those IPv6 addresses from an IPv6 host at SLAC and none responded to an IPv6 ping. The config file is /u/sf/cottrell/ps-lm.csv obtained by exporting the active landmarks. This yielded about 27 host with their lat, long, country and city. One can also look at the JSON files with the information for the perfSONAR nodes using the information here.
Quality of IPv6 Enablement of Universities: An International Study by John Pickard and Anne Y Patric of East Carolina University has a list of about 1000 world universities and their IPv6 addresses if they have them. It uses IT sonar agents from Nephos6, to perform "user experience" measurements accessing select websites from multiple global geographic vantage points. About 125 hosts have IP addresses. We wrote a perl script (ping-ipv6.pl) to ping all those IPv6 addresses from an IPv6 host at SLAC and about 67 respond to pings. The script runs against the file of ipv6 universities exported from the Excel spreadsheet as a tab delimited file (top-uni.txt).
Using %NODE_DETAILS we wrote a script ping-ipv6-pinger.pl to identify (using dig hostname AAAA) whether the host has an IPv6 address and if so try and ping it with ping6. This yielded about 53 successful hosts for which we provided the name(ipv6 address), lat long, country.
Pinger (Linux), www1 (Solaris), www3 (Linux), nospam2-out (Linux), pinger
Looks like nospam2 is working for me. this is the ipv6 address for nospam2: ```ksa@nospam2 $ host nospam2-out nospam2-out.slac.stanford.edu has IPv6 address 2620:114:d000:2598::10 ksa@nospam2 $ ``` ```ksa@nospam2 $ host google.com | grep IPv6 google.com has IPv6 address 2607:f8b0:4005:808::200e ksa@nospam2 $ ping6 2607:f8b0:4005:808::200e PING 2607:f8b0:4005:808::200e(2607:f8b0:4005:808::200e) 56 data bytes 64 bytes from 2607:f8b0:4005:808::200e: icmp_seq=1 ttl=53 time=2.34 ms 64 bytes from 2607:f8b0:4005:808::200e: icmp_seq=2 ttl=53 time=2.24 ms 64 bytes from 2607:f8b0:4005:808::200e: icmp_seq=3 ttl=53 time=2.27 ms ^C --- 2607:f8b0:4005:808::200e ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2638ms rtt min/avg/max/mdev = 2.248/2.290/2.347/0.057 ms ksa@nospam2 $ ``` www1 also works: 435cottrell@www1:~>ping -s -A inet6 -a 2607:f8b0:4005:805::200e PING 2607:f8b0:4005:805::200e: 56 data bytes 64 bytes from 2607:f8b0:4005:805::200e: icmp_seq=0. time=2.58 ms 64 bytes from 2607:f8b0:4005:805::200e: icmp_seq=1. time=2.37 ms 64 bytes from 2607:f8b0:4005:805::200e: icmp_seq=2. time=2.46 ms ^C ----2607:f8b0:4005:805::200e PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max/stddev = 2.37/2.47/2.58/0.10 However ns-ext1, pinger do not work: 436cottrell@ns-ext1:~$ping6 2607:f8b0:4005:805::200e PING 2607:f8b0:4005:805::200e(2607:f8b0:4005:805::200e) 56 data bytes --- 2607:f8b0:4005:805::200e ping statistics --- 12 packets transmitted, 0 received, 100% packet loss, time 10999ms Exit 1 436cottrell@pinger:~$ping6 2607:f8b0:4005:808::200e connect: Network is unreachable Exit 2 |