Używanie adresu IP zamiast ifconfig zgłasza „Odpowiedzi RTNETLINK: Plik istnieje” w Debianie

53

Mam system Debian działający jako router bezprzewodowy z eth0i wlan0. Teraz ręcznie dodałem dodatkową sieć eth1z ifconfig:

alix: ~ # ifconfig eth1 192.168.0.2 maska ​​sieci 255.255.255.0
alix: ~ # netstat -rn
Tabela routingu IP jądra
Destination Gateway Genmask Flags Okno MSS irtt Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
alix: ~ # ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56 (84) bajtów danych.
64 bajty od 192.168.0.254: icmp_req = 1 ttl = 64 czas = 0,537 ms
64 bajty od 192.168.0.254: icmp_req = 2 ttl = 64 czas = 0.199 ms
64 bajty od 192.168.0.254: icmp_req = 3 ttl = 64 czas = 0,188 ms
^ C
--- 192.168.0.254 statystyki ping ---
3 pakiety przesłane, 3 odebrane, 0% utraty pakietu, czas 2005ms
rtt min / avg / max / mdev = 0,188 / 0,308 / 0,537 / 0,161 ms

Wszystko działa dobrze, jak widać.

Teraz chciałbym, aby konfiguracja była trwała. Dlatego dodałem następującą sekcję do /etc/network/interfaces:

alix: ~ # sed -n '/ iface eth1 /, / ^ $ / p' / etc / network / interfaces
iface eth1 inet static
  adres 192.168.0.2
  maska ​​sieci 255.255.255.0

Ale kiedy próbuję uruchomić sieć, pojawia się następujący błąd:

alix: ~ # ifconfig eth1 w dół
alix: ~ # ifup -v eth1
Konfigurowanie interfejsu eth1 = eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: wykonanie /etc/network/if-pre-up.d/hostapd
ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1
Odpowiedzi RTNETLINK: Plik istnieje
Nie udało się wywołać eth1.

Po ipręcznym uruchomieniu polecenia pojawia się ten sam błąd:

alix: ~ # ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1
Odpowiedzi RTNETLINK: Plik istnieje

Co jest nie tak z poleceniem? I jak mogę powiedzieć Debianowi, aby zrobił to, co należy?

Ceving
źródło

Odpowiedzi:

83

Przepraszam, ale sam to rozumiem. Musiałem przepłukać urządzenie przed uruchomieniem:

alix: ~ # ip addr flush dev eth1

Czyszczenie ręcznych ustawień takich informacji o konfiguracji interfejsu jest wspomniane w Przewodniku serwera Ubuntu .

Ceving
źródło
Nadal pojawia się (nieco inny) błąd, RTNETLINK answers: No such process Failed to bring up eth1ALE mój Eth1 jest teraz poprawnie przypisany ORAZ UP / UP.
harperville,
tak, ten sam problem tutaj: RTNETLINK answers: No such process Failed to bring up eth1
Drew
7
Nawet jeśli twoje odpowiedzi rozwiązują problem. Byłoby wspaniale, gdybyś mógł powiedzieć, co faktycznie robi. Co to jest plik RTNETLINK, który istnieje?
humanityANDpeace
@ceving: proszę wyjaśnić, co to jest RTNETLINK answers file? Ponadto po opróżnieniu moja karta sieciowa nie pobiera automatycznie nowego adresu IP, jak poprosić dhcp o nowy adres IP?
realtebo
@realtebo @humanityANDpeace Sprawdź instrukcję jądra dotyczącą netlink i rtnetlink . Ale wątpię, czy naprawdę chcesz wiedzieć. To jest komunikat o błędzie, który ipnarzędzie otrzymuje z jądra. I zamiast tłumaczyć wiadomość na coś użytecznego dla użytkowników końcowych, ipprzekazuje ją tylko przez. Ale jeśli naprawdę chcesz poznać elementy wewnętrzne, użyj Ask Questionzamiast Add Commentprzycisku.
ceving
-1

Miałem podobny problem, że do czasu, gdy grałem na 10.000 scenę z pieniędzmi, właśnie to było i próbowałem dodać brakujące rzeczy do / e / n / id / etho

Ale studiując stronę manuala dla interfejsów, zauważyłem, że WSZYSTKIE z zestawu przykładów zawierały tylko 2 linie rzeczywistych danych, adres ipv4 / 24 i linię bramy określającą adres mojego routera. Usunąłem do tego mój plik eth0, uruchomiłem ponownie i działałem idealnie.

Gen
źródło