Hay algunas herramientas críticas para mi flujo de trabajo que hablan con www.pivotaltracker.com usando ruby.
Alguna combinación de la actualización de Ruby 2.1.2 a Ruby 2.1.3, las recientes actualizaciones del sistema os x, y las actualizaciones de brew hicieron que empezaran a tardar mucho en funcionar, y la razón es ipv6 que puedo ver utilizando curl
para realizar peticiones api similares:
curl -v -H "X-TrackerToken: $TOKEN" -X GET http://www.pivotaltracker.com/services/v3/projects
* About to connect() to www.pivotaltracker.com port 80 (#0)
* Trying 2607:f700:1:1388:c856:ed01:e1bf:b0e0…
después de un minuto o dos de tiempo de espera en todas las direcciones ipv6 de www.pivotaltracker.com, la dirección ipv4 se intenta finalmente, y la solicitud se completa con éxito.
Esto es así a pesar de utilizar sudo networksetup -setv6off Ethernet
y verificando que ipv6 estaba "desactivado" en Preferencias>Red. También he intentado poner una entrada ipv4 correcta en mi /etc/hosts
.
Si uso curl --ipv4
la solicitud se completa inmediatamente. Sin embargo, no consigo averiguar cómo forzar los scripts de ruby que utilizan net::http
para saltar ipv6
Lo más frustrante de esto es que el mismo problema ocurrió con una ronda de actualizaciones del entorno de desarrollo en mayo o junio, y de alguna manera lo resolví, pero parece que no puedo volver a descubrir cómo o encontrarlo buscando en mis archivos del historial del shell.
El problema no es exclusivo de pivotaltracker.com, sino que es válido para cualquier dominio que tenga direcciones ipv6. Os X intenta las direcciones ipv6 primero a menos que se le indique lo contrario, lo que los navegadores y algunas otras aplicaciones parecen hacer, pero ruby y la mayoría de las aplicaciones unix no lo hacen. wget
también se detiene.
Eventualmente actualizaré mi router y conseguiré que ipv6 funcione completamente, pero mientras tanto me gustaría encontrar una solución.
Salida de ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fd3e:fe65:5a2c:ebe1:224:1dff:fe16:65d3 prefixlen 128
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:24:1d:16:65:d3
inet 192.168.0.47 netmask 0xffffff00 broadcast 192.168.0.255
media: autoselect (1000baseT <full-duplex>)
status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 2030
lladdr 00:19:a1:fa:00:00:24:1d
media: autoselect <full-duplex>
status: inactive
vnic0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1c:42:00:00:08
inet 10.211.55.2 netmask 0xffffff00 broadcast 10.211.55.255
inet6 fe80::21c:42ff:fe00:8%vnic0 prefixlen 64 scopeid 0x6
inet6 ::1 prefixlen 64
media: autoselect
status: active
vnic1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1c:42:00:00:09
inet 10.37.129.2 netmask 0xffffff00 broadcast 10.37.129.255
inet6 fe80::21c:42ff:fe00:9%vnic1 prefixlen 64 scopeid 0x7
inet6 ::1 prefixlen 64
media: autoselect
status: active
netstat -r
cuando ejecuto netstat -r, tiene una sección de Internet6, a pesar de que Preferencias del Sistema>Red>Ethernet>Avanzado >Configurar IPv6 está en Off.