Krótka historia: sposób, w jaki to zrobiłeś, jest poprawny (zgodnie z komentarzem do pytania).
Długa historia: w Linuksie nazywane „urządzenie” sieciowe foo:bar
to alias „foo” używany, gdy musimy przypisać wiele ustawień sieciowych do interfejsu „foo”, np. Aby odpowiadał w wielu podsieciach na tym samym przewodzie.
Jest to niechlujny sposób na zrobienie tego i niekonsekwentne uruchamianie. W przypadku IPv6 wszystkie adresy przypisane do interfejsu eth0 są wymienione razem pod wpisem eth0. Istnieje bardziej nowoczesna metoda robienia tego (za pomocą ip addr
polecenia).
Możesz wykryć interfejsy aliasów, ponieważ :
w nazwach mają dwukropek , część po lewej stronie dwukropka to zachowana nazwa interfejsu, a zwrotka interfejsu ifconfig
jest bardzo krótka. HWaddr
Powinny również być identyczny z interfejsem „macierzystego”. Nie będą również wymienione w /proc/net/dev
. Jeśli chcesz powiedzieć ip addr
, eth0:0
pokaże się jako drugi adres interfejsu eth0
. (poszukaj wciętej linii zaczynającej się od inet
)
Aliasy i ich rodzice mają wiele ustawień i pól, ponieważ dzielą warstwę fizyczną. Jądro nie traktuje ich jako całkowicie oddzielnych interfejsów. Po pierwsze, ruch pojawia się w interfejsie nadrzędnym , a nie w aliasie. Być może zauważyłeś, że alias nie ma nawet liczników pakietów / bajtów!
Jeśli musisz wąchać ruch, zaporę ogniową itp. W interfejsie aliasu, musisz zamiast tego użyć jego elementu nadrzędnego. Ponieważ jedyną różnicą, jaką alias ma od swojego rodzica, są ustawienia IPv4, jedynym sposobem dopasowania ruchu na aliasie jest użycie tych ustawień IP. Za pomocą iptables
dopasowujesz adres IPv4 aliasu, tak jak w komentarzu do odpowiedzi.