IPv6 ve IPv4 için aynı bağlantı noktasını dinlemek için şunu kullanın:
bind :::80 v4v6
Kuşkusuz, bu doğru gibi görünen sezgisel bir tahmindi ... ama sadece cevap olarak "şanslı" bir tahmin göndermek yerine, işe yarıyor olsa bile, bunu haklı çıkarmalıyım gibi görünüyor.
v4v6 anahtar sözcüğü, haproxy'yi yalnızca bir v4 soketine bağlar.
İlk sezgim, bu soketin sadece IPv4'te dinlemesine neden v4v6
olan değil :80
(ya da daha kesin olarak hiçbir IP adresi kullanılmaması, sadece bir port numarası) kullanılması değil.
Bu, dokümanlar için aşağıdakiler için onaylanmış gibi görünüyor bind
:
address
isteğe bağlıdır ve bir ana bilgisayar adı, IPv4 adresi, IPv6 adresi veya olabilir '*'
. Ön ucun dinleyeceği adresi belirler. Ayarlanmazsa, sistemin tüm IPv4 adresleri dinlenir. Aynısı '*'
veya sistemin " 0.0.0.0
" özel adresi için de geçerlidir . IPv6 eşdeğeri '::' dir.
http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#4.2- bağlama (vurgu eklendi)
Dolayısıyla, aşağıdaki üç formun hepsi eşdeğerdir ve hepsi HAProxy tarafından IPv4 olarak yorumlanır:
bind :80
bind *:80
bind 0.0.0.0:80
Daha sonra, IPv6'da dinlemek için yukarıdaki bağlama ifadelerinden birini genişletmek için kullanılabilir olabileceğini v4v6
belirtmek için dokümanlarda ayrı ayrı okunabilecek bir cümle var v4v6
...
v4v6
Varsayılan adresi kullandığında bir soketi hem IPv4 hem de IPv6'ya bağlamak için kullanılır.
... hmmm, ama bunun aslında "v6 varsayılan adresi" ( ::
) anlamına geldiğinden şüpheleniyorum ...
Bunu yapmak IPv6'ya yalnızca varsayılan olarak bağlanan sistemlerde bazen gereklidir.
... ve şimdi daha da şüpheliyim ...
IPv6 olmayan soketler üzerinde hiçbir etkisi yoktur ve v6only
seçenek tarafından geçersiz kılınır .
http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#5.1
Bu nedenle, v4v6
yalnızca bind
IPv6 varsayılan dinleme adresini belirten yönergeleri değiştirir ::
(3. :
, adres ile bağlantı noktası arasındaki ayırıcıdır) ve diğerleri için yoksayılır.
bind :::80 v4v6
?