IPv6 adresleme, dinamik önek statik yerel bölüm


10

Ağımdaki yönlendirici, ISS'm tarafından atanan bir IPv6 öneki veriyor. Bu önek dinamik ancak "oldukça yapışkan".

Makinelerimin RA'larda reklamı yapılan öneki otomatik olarak almasını istiyorum, ancak rastgele veya MAC adresine dayalı bir tane oluşturmak yerine kullanıcı tarafından belirlenen bir yerel bölümle birleştiriyorum. Bunu yapmanın kolay bir yolu var mı?


1
Bunu yapmanıza izin veren herhangi bir işletim sistemi görmedim :(
Sander Steffann

@SanderSteffann Hiç Linux kullanmadınız mı?
Michael Hampton

1
@Michael Hiç IID jetonlarını yapılandırmanıza izin veren bir işletim sistemi görmedim. Teknik olarak çekirdek bunu yapabilir, ancak hiçbir işletim sistemi (dağıtımda olduğu gibi) desteklemez :(
Sander Steffann

Yanıtlar:


11

Bunu yapmanın iki yolu vardır. Biri kolay yol, diğeri zor yol.

Kolay yol, ağınızda bir DHCPv6 sunucusu çalıştırmak ve her cihaza ana bilgisayar adreslerini kendiniz atamaktır. Veya sunucunun ana bilgisayar parçasını seçmesine izin verin; gördüğüm DHCPv6 sunucuları, önek değişse bile aynı ana makine parçasını koruyacaktır.

Zor yol ip tokentokenize arabirim tanımlayıcılarını ayarlamak için kullanmaktır . Bu şu şekilde tanımlanır:

IPv6 tokenleştirilmiş arabirim tanımlayıcı desteği, Yönlendirici reklamlarından hala global bir ağ öneki elde ederken, düğümlere iyi bilinen ana bilgisayar parçası adresleri atamak için kullanılır. Belirteç tanımlayıcıları için birincil hedef, DHCPv6 veya SLAAC kullanmak yerine adreslerin genellikle manuel olarak yapılandırıldığı sunucu platformlarıdır. Belirteç tanımlayıcıları kullanarak, ana bilgisayarlar yine de SLAAC kullanarak ağ öneklerini belirleyebilir, ancak ağ önekleri değiştiğinde daha kolay otomatik olarak yeniden numaralandırılabilir. Tokenize IPv6 Tanımlayıcıları taslakta açıklanmıştır: <draft-chown-6man-tokenised-ipv6-identifiers-02>.

Bunun zor yolu, Linux bu işlevselliği içermekle birlikte, farkında olduğum hiçbir Linux dağıtımı, manuel veya DHCP yapılandırılmış adreslerde olduğu gibi, böyle bir yapılandırmayı kalıcı hale getirmek ve önyükleme zamanında uygulamak için destek içermemesidir. Bu nedenle, bazı dağıtımlar gerçekleşene kadar muhtemelen sizin için çok iyi çalışmayacaktır. Artık NetworkManager ve systemd-networkd'de IPv6 belirteçlerini yapılandırmanın mümkün olduğunu unutmayın; daha yeni yanıtların özel yapılandırma talimatları vardır.


Son olarak, ISS'niz zaman zaman ön ekinizi değiştiriyorsa, ağınızdaki Benzersiz Yerel Adresleri kullanmayı düşünün. Bu şekilde, tüm cihazlarınızın her zaman asla değişmeyecek, birbirleriyle konuşabilecekleri bir adresi olacaktır. Bazı IPv6 destekli ev / SOHO yönlendiricileri (OpenWrt gibi), tüm ev ağında ULA'yı etkinleştirme seçeneğine sahiptir; evde birden çok yönlendirici varsa, bu, ISS'ye bağlanan yönlendiricide etkinleştirilmelidir.


Aslında soruyu soran sorun, ISS'lerin yönlendiricisinin RA'ları kısa bir ömürle göndermesiydi. Bu, gizlilik adreslerinde büyük sorunlara neden olur. OTOH MAC adresimi dünyaya ifşa etme fikrinden pek hoşlanmıyorum.
plugwash

Statik bir yerel kısım, MAC adresimi göstermeden gizlilik adresleriyle ilgili sorunları önler, teşekkürler.
plugwash

Set katına tek bir arayüz için birden belirteçleri eklemek için bir yol biliyor musunuz "dinamik, statik' IPv6 adresi?
wedi

@wedi Linux arayüz başına sadece bir jetonu destekler. IPv6 jetonları her ne olursa olsun, muhtemelen probleminizin çözümü değildir.
Michael Hampton

6

Michael çok iyi bir özet yaptı ve plugwash son ipucu CentOS 7 / RHEL (ayrıca systemd ve ağ yöneticisi) çözümü için birkaç saat boyunca avcılıktan sonra bulabildiğim en iyisiydi. Nmcli alıştıktan sonra (ben esas olarak hala ifcfg ve ip kullanıyordum) - başarıyla uygulayabilirim.

Ancak https://developer.gnome.org/NetworkManager/stable/settings-ipv6.html adresine göre daha derine inmek NetworkManager, bir özellik olarak IPv6 tokenize arabirim tanımlayıcılarını doğrudan destekler (1.4 Ağustos 2016'dan itibaren http://news.softpedia.com/ news / networkmanager-1-4-add-support-for-setting-ipv6-tokenized-interface-tanıtıcıları-507601.shtml ).

Bu nedenle, ağ yöneticisi IPv6 ayarlarını yok saymak için ayarlamanıza gerek yoktur, ancak ayarları

nmcli connection modify eth0 ipv6.method "auto" # if not already
nmcli connection modify eth0 ipv6.addr-gen-mode "eui64" # use interface token
nmcli connection modify eth0 ipv6.token "::2"

yazacak olan IPV6_TOKEN=::2yeniden başlatma hayatta kalmak için / etc / sysconfig / network-scripts / ifcfg-eth0 için. Bunu hemen uygulamak için arayüzü yeniden başlatın

nmcli connection up id eth0  # restart

3

Michael, Linux'un bu özelliği desteklediğini ve düşük seviyeli komutu işaret ettiği için teşekkür eder. Bu yanıt, Debian streç masaüstünde (systemd ve ağ yöneticisi ile) pratikte nasıl çalışacağını kapsar.

İlk olarak ağ yöneticisinde bağlantıyı düzenleyin ve IPv6 ayarlarını yok sayacak şekilde ayarlayın.

Şimdi /etc/NetworkManager/dispatcher.d/pre-up.d/iptoken dosyası oluşturun. Dosyanın kök, 755 izinleri ve aşağıdaki içeriklere sahip olması gerekir.

#!/bin/sh
ip token set ::2 dev eth0

Eth0'ı istediğiniz cihazla ve :: 2'yi istediğiniz sonekle değiştirin.


2

Linux altında kullanabilirsiniz systemd-network.

Sadece .networkaltında bir dosya oluşturun /etc/systemd/network/somename.network:

[Match]
Name=e*

[Network]
DHCP=yes
IPv6Token=::1

e*ile başlayan tüm arayüzleri eşleştirmek yerine etam arayüz adını girebilirsiniz. Bu, DHCP {v4, v6} ' ::1yı etkinleştirir ve sonek olarak kullanır . Herhangi bir IPv6 adresi seçebilirsiniz, ancak ilk 64 bit sıfıra ayarlanmalıdır.

Bundan sonra etkinleştirin ve başlatın systemd-networkd.service.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.