On verkot A ja B. A:n liikennettä ulos mailmalle hoitaa Debian-kone T,
joka nattaa ipv4-liikenteen ja pitää yllä vpn-linkkiä verkkoon B, joka
on kaukana maailmalla.
Verkossa B olevilla laitteilla on vain ipv6-osoitteet. Tätä varten
T:llä on radvd, joka mainostaa ipv6-prefixiä A-verkkoon jolloin A:ssa
olevat laitteet voivat yhdistää ipv6:lla vpn:n kautta B:ssä oleviin
laitteisiin.
Toimii hyvin mutta sitten se iso MUTTA:
Kun radvd mainostaa ipv6-prefixiä, kaikki verkossa A olevat koneet
saavat reititystauluunsa ipv6-oletusreitin T:n kautta, vaikkei
sillä pääsekään muualle kuin verkkoon B.
Useimmiten tämä ei haittaa, esim.
$ time wget -6 -O /dev/null
https://google.fi/
--2018-10-01 16:56:59--
https://google.fi/
Selvitetään osoitetta
google.fi (
google.fi)... 2a00:1450:400f:807::2003
Yhdistetään palvelimeen
google.fi (
google.fi)|2a00:1450:400f:807::2003|:443... epäonnistui: Verkkoa ei tavoiteta.
real 0m0,051s
user 0m0,016s
sys 0m0,000s
Mutta sitten on
registry.npmjs.org:
$ time wget -6 -O /dev/null
https://registry.npmjs.org/
--2018-10-01 16:59:50--
https://registry.npmjs.org/
Selvitetään osoitetta
registry.npmjs.org (
registry.npmjs.org)... 2400:cb00:2048:1::6810:1423, 2400:cb00:2048:1::6810:1023, 2400:cb00:2048:1::6810:1b23, ...
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1423|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1023|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1b23|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1323|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1523|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1123|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1223|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1823|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1923|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1623|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1723|:443... epäonnistui: Verkkoa ei tavoiteta.
Yhdistetään palvelimeen
registry.npmjs.org (
registry.npmjs.org)|2400:cb00:2048:1::6810:1a23|:443... epäonnistui: Verkkoa ei tavoiteta.
real 0m8,222s
user 0m0,020s
sys 0m0,000s
Muutaman osoitteen tarkistus tapahtuu nopeasti, mutta sitten
loppuihin osoitteisiin pääsy tarkistetaan jostakin systä
noin sekunnin välein. Tämä hidastaa esim. "npm install":n
todella hitaaksi. Ongelma ei kuitenkaan esiinnyt T:llä, jolla
ei ole oletusreittiä ipv6:lle.
Voiko radvd:llä mainostaa prefixiä siten, että verkossa
olevat laitteet eivät aseta mainostavaa konetta oletusreitiksi
kaikkiin mahdollisiin ipv6-osoitteisiin vaan vain reitiksi
muutamaan eri aliverkkoon? Kokeilin jo asettaa
AdvDefaultLifetime:n nollaksi, mutta silloin laitteet
eivät lisänneet reititystauluunsa reittiä B:hen. Vaikka
radvd.conf:issa oli route bverkonprefix/64 { };
Katsoin pikaisesti tcpdumpilla ja näyttää siltä, että reititinkone
hidastelee ennen kuin palauttaa ICMP6, destination unreachablen.
Onko linuxissa joku oletuksena päällä oleva jarru nopeasti tuleviin
yhteydenavauksiin ja voiko sitä säätää?