nataraj: (Default)
[personal profile] nataraj
Товарищи, кто понимает в функционировании 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 и при этом конфликтов вроде-бы не надо?
(deleted comment)

Date: 2011-06-07 03:04 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
То что так и должно быть, я уже давно осознал...
Вопрос лишь в том, почему именно так... Я видимо не понимаю какого-то краеугольного нюанса, при этом не понимаю какого.

Например, почему

local-address=0.0.0.0
local-ipv6=2002:c336:d6xx::1

работает, а

local-address=195.54.214.xxx
local-ipv6=::0

нет?

Date: 2011-06-08 05:25 am (UTC)
From: [identity profile] romanrm.ru (from livejournal.com)
v6-сокет ::0 биндится на все айпишники вообще, включая v4. Это поведение отключается через установку bindv6only=1.
0.0.0.0 биндится на все айпишники v4, но не v6, соотв-но конфликта в первом случае не происходит при любом значении bindv6only.

Date: 2011-06-08 05:43 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
А есть ли какая-то нотация, позволяющая записать ::0 так чтобы сказать не все IP'шники, а все IPv6 IP'шники?

Date: 2011-06-08 05:48 am (UTC)
From: [identity profile] romanrm.ru (from livejournal.com)
Переключайте bindv6only в 1, и оно будет означать именно это.

Date: 2011-06-08 06:28 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Это я понял... но оно же глобально на всю систему начнет действовать... :-/

Date: 2011-06-09 09:48 am (UTC)
From: [identity profile] wrar.livejournal.com
Локальный механизм - IPV6_V6ONLY

Date: 2011-06-09 10:18 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Знаю... я его уже локально в сорцы запихнул... Но как-то хочется ситуацию разрешить глобально, на уровне апстрима, чтобы более у людей таких проблем не было... Вот и разбираюсь прежде чем в апстрим лезть...

Date: 2011-06-09 10:27 am (UTC)
From: [identity profile] wrar.livejournal.com
Пусть апстрим поставит IPV6_V6ONLY

Date: 2011-06-09 10:40 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Апстрим -- не хотит. И возможно прав. А вот комментарий в конфиге и документацию -- надо апдейтить, и сравнение адресов сделать так, чтобы ::ffff:.a.b.c.d и a.b.c.d признавались одним адресом...

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 21st, 2026 04:01 am
Powered by Dreamwidth Studios