(no subject)
Jun. 6th, 2011 06:58 pmТоварищи, кто понимает в функционировании IPv6!
Ситуация: Есть PowerDNS который умеет биндиться и к IPv4 адресу и к IPv6 адресу.
Если оба адреса указать явным образом, или указать явным образом только IPv6 то все работает нормально.
А вот если попробовать прибиндить его на 0.0.0.0 и ::0 то бинденье к ::0 не удается, мотивируя это тем что сокет уже занят.
Происходит это от того что на ::0 "заворачивается" оба протокола IPv4 и IPv6. Если указать только ::0 то тогда IPv4 запросы pdns
обрабатывает, только приходят они от адреса ::ffff:a.b.c.d где a.b.c.d v4ый айпишник. Что имеет свои суешственные минусы, при сравнении IP'шников.
Если же, залезши в сорцы, при бинденьи сокету установить флаг IPV6_V6ONLY то на этот сокет перестанут заворачиваться IPv4 пакеты, и биндинг пройдет к обоим сокетам.
В багтреккере pdns говорят что это все ожидаемое поведение, и все так и надо.
Собсвенно ВОПРОСЫ:
1. Я не совсем понимаю понятие сокет в данном случае...
В комбинациях
local-address=0.0.0.0
local-ipv6=::0
local-address=195.54.214.xxx
local-ipv6=::0
сокет оказывается занят;
А в вариантах
local-address=0.0.0.0
local-ipv6=2002:c336:d6xx::1
и
local-address=195.54.214.xxx
local-ipv6=2002:c336:d6xx::1
они за сокет почему-то не деруться...
Почему?
2. Как такая задача решается в "нормальных" системах, когда биндится надо и к IPv4 и к IPv6 и при этом конфликтов вроде-бы не надо?
Ситуация: Есть PowerDNS который умеет биндиться и к IPv4 адресу и к IPv6 адресу.
Если оба адреса указать явным образом, или указать явным образом только IPv6 то все работает нормально.
А вот если попробовать прибиндить его на 0.0.0.0 и ::0 то бинденье к ::0 не удается, мотивируя это тем что сокет уже занят.
Происходит это от того что на ::0 "заворачивается" оба протокола IPv4 и IPv6. Если указать только ::0 то тогда IPv4 запросы pdns
обрабатывает, только приходят они от адреса ::ffff:a.b.c.d где a.b.c.d v4ый айпишник. Что имеет свои суешственные минусы, при сравнении IP'шников.
Если же, залезши в сорцы, при бинденьи сокету установить флаг IPV6_V6ONLY то на этот сокет перестанут заворачиваться IPv4 пакеты, и биндинг пройдет к обоим сокетам.
В багтреккере pdns говорят что это все ожидаемое поведение, и все так и надо.
Собсвенно ВОПРОСЫ:
1. Я не совсем понимаю понятие сокет в данном случае...
В комбинациях
local-address=0.0.0.0
local-ipv6=::0
local-address=195.54.214.xxx
local-ipv6=::0
сокет оказывается занят;
А в вариантах
local-address=0.0.0.0
local-ipv6=2002:c336:d6xx::1
и
local-address=195.54.214.xxx
local-ipv6=2002:c336:d6xx::1
они за сокет почему-то не деруться...
Почему?
2. Как такая задача решается в "нормальных" системах, когда биндится надо и к IPv4 и к IPv6 и при этом конфликтов вроде-бы не надо?
no subject
Date: 2011-06-07 03:04 pm (UTC)Вопрос лишь в том, почему именно так... Я видимо не понимаю какого-то краеугольного нюанса, при этом не понимаю какого.
Например, почему
local-address=0.0.0.0
local-ipv6=2002:c336:d6xx::1
работает, а
local-address=195.54.214.xxx
local-ipv6=::0
нет?
no subject
Date: 2011-06-08 05:25 am (UTC)0.0.0.0 биндится на все айпишники v4, но не v6, соотв-но конфликта в первом случае не происходит при любом значении bindv6only.
no subject
Date: 2011-06-08 05:43 am (UTC)no subject
Date: 2011-06-08 05:48 am (UTC)no subject
Date: 2011-06-08 06:28 am (UTC)no subject
Date: 2011-06-09 09:48 am (UTC)no subject
Date: 2011-06-09 10:18 am (UTC)no subject
Date: 2011-06-09 10:27 am (UTC)no subject
Date: 2011-06-09 10:40 am (UTC)