Sklonowany system Linux i /etc/udev/rules.d/70-persistent-net.rules

9

Skonfigurowałem system Ubuntu i skonfigurowałem go poprawnie, w tym definiując eth0w /etc/network/interfaces. Następnie zobrazowałem ten system i sklonowałem go na nowym systemie.

Kiedy uruchomiłem system po raz pierwszy, wszystko było w porządku, ale kilka restartów później przywitał mnie limit czasu konfiguracji sieci. Kiedy się zalogowałem, okazało się, że eth0nie jest dostępny.

Moje wstępne badania pozwoliły mi spróbować ifdown -ai ifup -azrobiłem to kilka razy bez widocznego efektu.

Badania ostatecznie wskazały mi /etc/udev/rules.d/70-persistent-net.rules, gdzie odkryłem, że adres MAC nowego systemu stworzył eth1. Dobry pomysł, ale nie to, co chciałem zrobić.

Kiedy właśnie się uruchomiłem, odkryłem, że /etc/udev/rules.d/70-persistent-net.rulesma teraz sześć wpisów dla sześciu różnych adresów HW, co wydaje mi się dziwne, ponieważ istnieje tylko jeden interfejs.

Moje pytanie brzmi: czy moje użycie w ifup -ajakiś sposób stworzyło nowe adresy MAC do utworzenia? Jeśli nie, czy są jakieś przemyślenia na temat tego, jak to się stało? Zmieniłem /etc/udev/rules.d/70-persistent-net.rulesnazwę obecnego adresu HW eth0i wydaje się, że działa, ale czy mogę być pewien, że adres nie zmieni się ponownie po ponownym uruchomieniu?

Zobal
źródło
Przyszli goście tego pytania: To nie jest VM, to fizyczny system, który OP sklonował na nowym sprzęcie!
slm

Odpowiedzi:

7

Od czasu do czasu napotykałem dokładnie ten sam problem w CentOS, kiedy klonowałem maszyny wirtualne (VM). Problem wynika z faktu, że oryginalna maszyna wirtualna otrzymała wpis do tego pliku, aby skonfigurować urządzenie Ethernet eth0.

Przykładowy plik .rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Problem powoduje brzydką głowę podczas klonowania pierwszej maszyny wirtualnej, co powoduje utworzenie nowego adresu MAC, w przypadku niektórych technologii wirtualizacji, takich jak KVM. Ten nowy adres MAC jest automatycznie wykrywany, gdy sklonowana maszyna wirtualna jest uruchamiana i przeglądana przez nowe urządzenie Ethernet /lib/udev/write_net_rules, dlatego do powyższego pliku dodawany jest drugi wpis.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Zwykle otwieram ten plik 70-persistent-net.rulesw edytorze i po prostu konsoliduję wiersze, aby nowy adres MAC został przypisany do eth0urządzenia i uruchomił się ponownie.

...
# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

EDYCJA 1

OP odpowiedział na pytanie, podając następujące nowe informacje.

Przedmiot # 1: Hmmm. W moim przypadku to nie zadziała, ponieważ korzystam z oprogramowania z licencją Flex powiązaną z adresem mac. Stale zmieniające się adresy czynią wspomniane oprogramowanie bezużytecznym.

@Zobal - znam Flex. Ponieważ jest to VM, możesz zmienić jej MAC (w oprogramowaniu VM - VirtualBox, KVM itp.).

UWAGA: Flex to technologia licencjonowania oferowana przez Flexera . Nazywano je GlobeTrotter Software. Ta technologia pozwala na powiązanie oprogramowania z hostem fizycznym lub zarządzanie licencjami z serwera centralnego jako „tokenami”, w których klienci mogą przez pewien czas sprawdzać tokeny. Licencje są zazwyczaj powiązane z hostem, a ten host jest zazwyczaj identyfikowany przez unikalny numer, który można znaleźć za pomocą polecenia hostid.

Na przykład:

$ hostid
a8c0c801

Punkt 2: W moim przypadku nie jest to VM. Sklonowałem jeden system fizyczny na inny system fizyczny.

Na co odpowiedziałem: Cóż, wtedy jedyną opcją jest zmiana adresu MAC nowego systemu na taki sam, jak adres MAC drugiego systemu. Uświadom sobie, że te 2 systemy nie mogą istnieć w tej samej sieci, w przeciwnym razie będą ze sobą sprzeczne. Również licencjonowanie Flex zazwyczaj nie korzysta z MAC, używają numeru, który można zidentyfikować za pomocą polecenia hostid!

Bibliografia

slm
źródło
Hmmm. W moim przypadku to nie zadziała, ponieważ korzystam z oprogramowania z licencją Flex powiązaną z adresem mac. Stale zmieniające się adresy czynią wspomniane oprogramowanie bezużytecznym ...
Zobal 23.01.14
@Zobal - znam Flex. Ponieważ jest to VM, możesz zmienić jej MAC (w oprogramowaniu VM - VirtualBox, KVM itp.).
slm
W moim przypadku nie jest to VM. Sklonowałem jeden system fizyczny na inny system fizyczny.
Zobal
@Zobal - więc jedyną opcją jest zmiana adresu MAC nowego systemu na taki sam, jak adres MAC drugiego systemu. Uświadom sobie, że te 2 systemy nie mogą istnieć w tej samej sieci, w przeciwnym razie będą ze sobą sprzeczne. Również licencjonowanie Flex zazwyczaj nie korzysta z MAC, używają numeru, który można zidentyfikować za pomocą polecenia hostid!
slm
Licencje Flex to licencje, które utworzyliśmy w celu powiązania naszego oprogramowania z konkretną maszyną, w tym przypadku korzysta ono z MAC. Nowe opracowanie: Ponownie zainstalowałem UBUNTU od zera (nie ze i obrazu) i otrzymuję to samo zachowanie. W rzeczywistości pojawia się tylko przy brudnych wyłączeniach (moc jest szarpana). jakieś pomysły?
Zobal
0

hostid jest tak unikalny jak adres IP twojego serwera.
W twoim przykładzie hostid to a8c0c801, czy adres IP twojego serwera to 192.168.1.200?
A8C0 C801 -> C0A8 01C8
C0: 192
A8: 168
01: 1
C8: 200

Chris
źródło