Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Uwaga 16.
CentOS, do których odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).
W tym artykule omówiono sposób konfigurowania wielu wirtualnych interfejsów sieciowych na maszynach wirtualnych z systemem Linux platformy Azure, które uruchamiają najbardziej typowe dystrybucje systemu Linux.
Podsumowanie
Możesz utworzyć maszynę wirtualną platformy Azure, która ma wiele dołączonych interfejsów sieciowych. Typowym scenariuszem jest posiadanie różnych podsieci na potrzeby łączności frontonu i zaplecza lub sieci dedykowanej dla rozwiązania do monitorowania lub tworzenia kopii zapasowych.
Ten artykuł zawiera wymaganą konfigurację wielu interfejsów sieciowych do pracy na maszynie wirtualnej z systemem Linux platformy Azure, która jest oparta na następującym przykładowym scenariuszu:
- Maszyna wirtualna ma co najmniej dwa interfejsy sieciowe w tej samej podsieci.
- Maszyna wirtualna ma co najmniej dwa interfejsy sieciowe w różnych podsieciach, ale w tej samej sieci wirtualnej.
Aby uzyskać szczegółowe informacje, zobacz następujące zrzuty ekranu:
- Maszyna wirtualna z 2 kartami sieciowymi w tej samej podsieci
- Maszyna wirtualna z 2 kartami sieciowymi w różnych podsieciach
W każdym scenariuszu łączność można przetestować z dowolnej maszyny wirtualnej w tej samej sieci wirtualnej.
Ważne
Ten sam proces można również wykonać na maszynach wirtualnych z więcej niż dwiema kartami sieciowymi.
Konfigurowanie systemu operacyjnego gościa dla wielu interfejsów sieciowych
Po dodaniu wielu interfejsów sieciowych do maszyny wirtualnej z systemem Linux należy utworzyć reguły routingu. Te reguły umożliwiają maszynie wirtualnej wysyłanie i odbieranie ruchu należącego do określonego interfejsu sieciowego. W przeciwnym razie nie można poprawnie przetworzyć ruchu. Na przykład ruch należący do eth1 nie może być poprawnie przetwarzany przez zdefiniowaną trasę domyślną.
Poniższe sekcje zawierają wymaganą konfigurację dwóch interfejsów sieciowych do pracy na maszynach wirtualnych z systemem Linux, które uruchamiają najbardziej typowe dystrybucje systemu Linux.
Uwaga 16.
Uruchom wszystkie polecenia w poniższych sekcjach przy użyciu uprawnień głównych (przełączając się do katalogu głównego lub przy użyciu sudo
narzędzia poleceń).
W każdej sekcji założono, że maszyna wirtualna ma dwa interfejsy sieciowe, które mają dowolne z następujących ustawień:
Routing (dane wyjściowe
sudo ip route show
polecenia):Dwie karty sieciowe w tej samej podsieci:
default via 10.0.1.1 dev eth0 proto static metric 100 10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.4 metric 100 10.0.1.0/24 dev eth1 proto kernel scope link src 10.0.1.5 metric 101 168.63.129.16 via 10.0.1.1 dev eth0 proto dhcp metric 100 169.254.169.254 via 10.0.1.1 dev eth0 proto dhcp metric 100
Dwie karty sieciowe w różnych podsieciach, ale w tej samej sieci wirtualnej:
default via 10.0.1.1 dev eth0 proto static metric 100 10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.4 metric 100 10.0.2.0/24 dev eth1 proto kernel scope link src 10.0.2.5 metric 101 168.63.129.16 via 10.0.1.1 dev eth0 proto dhcp metric 100 169.254.169.254 via 10.0.1.1 dev eth0 proto dhcp metric 100
Interfejsy (dane wyjściowe
sudo ip address show
polecenia):Dwie karty sieciowe w tej samej podsieci:
lo: inet 127.0.0.1/8 scope host lo eth0: inet 10.0.1.4/24 brd 10.0.1.255 scope global eth0 eth1: inet 10.0.1.5/24 brd 10.0.1.255 scope global eth1
Dwie karty sieciowe w różnych podsieciach, ale w tej samej sieci wirtualnej:
lo: inet 127.0.0.1/8 scope host lo eth0: inet 10.0.1.4/24 brd 10.0.1.255 scope global eth0 eth1: inet 10.0.2.5/24 brd 10.0.2.255 scope global eth1
Dodaj dwie tabele routingu do pliku /etc/iproute2/rt_tables , uruchamiając następujące polecenia (potrzebujesz jednego wpisu na kartę sieciową):
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
Jeśli do maszyny wirtualnej jest dołączonych więcej interfejsów sieciowych, dodaj dodatkowe tabele routingu (na przykład 202 eth2-rt, 203 eth3-rt itd.).
Upewnij się, że plik konfiguracji istnieje dla każdego interfejsu sieciowego w katalogu /etc/sysconfig/network-scripts/ . Można utworzyć nowe pliki konfiguracji interfejsu sieciowego na podstawie pliku konfiguracji ifcfg-eth0 (zmodyfikować
DEVICE
wiersz i usunąćDHCP_HOSTNAME
wiersze zHWADDR
nowego pliku). W tym celu uruchom następujące polecenia:sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0 > /etc/sysconfig/network-scripts/ifcfg-eth1 sudo sed -i 's/DEVICE=eth0/DEVICE=eth1/' /etc/sysconfig/network-scripts/ifcfg-eth1 sudo sed -i '/DHCP_HOSTNAME/d' /etc/sysconfig/network-scripts/ifcfg-eth1 sudo sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth1
Aby wprowadzić zmianę trwałą i zastosowaną podczas aktywacji stosu sieciowego, edytuj pliki /etc/sysconfig/network-scripts/ifcfg-eth0 i /etc/sysconfig/network-scripts/ifcfg-eth1 (ifcfg-eth2, ifcfg-eth3 itd., jeśli maszyna wirtualna ma więcej niż dwa interfejsy sieciowe) i zmień wartość
NM_CONTROLLED
zyes
nano
. W tym celu uruchom następujące polecenia:sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg-eth0.bkp sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth1 /tmp/ifcfg-eth1.bkp sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth0 sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
Uwaga 16.
Sprawdź, czy
NM_CONTROLLED=no
wiersz został dodany do plików /etc/sysconfig/network-scripts/ifcfg-eth0 i /etc/sysconfig/network-scripts/ifcfg-eth1 za pomocącat /etc/sysconfig/network-scripts/ifcfg-eth*
polecenia . Jeśli wiersz nie znajduje się w plikach, dodaj go ręcznie przy użyciusudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
poleceń isudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth1
.Po zmodyfikowaniu tej konfiguracji uruchom ponownie usługi sieciowe, aby zastosować zmiany, uruchamiając następujące polecenie:
sudo systemctl restart network
Utwórz odpowiednie pliki reguł i tras przy użyciu dowolnego edytora tekstów (w poniższych przykładach używany jest edytor vi) i dodaj odpowiednie reguły i trasy do każdego pliku. Wykonaj poniższe kroki, aby utworzyć jeden zestaw plików rule-eth# i route-eth# na interfejs sieciowy. Zastąp odpowiednio informacje o adresie IP i podsieci w każdym kroku. Jeśli masz więcej interfejsów sieciowych, utwórz ten sam zestaw plików rule-eth# i route-eth# dla każdego interfejsu przy użyciu odpowiedniego adresu IP, sieci i szczegółów bramy.
Tworzenie reguł i tras dla eth0:
Aby utworzyć plik reguły dla eth0, otwórz plik /etc/sysconfig/network-scripts/rule-eth0.
sudo vi /etc/sysconfig/network-scripts/rule-eth0
Dodaj następującą zawartość do pliku reguły. Zastąp odpowiednio adres IP, upewnij się, że w konfiguracji określono adres IPv4 i zachowaj wartość 32-bitową:
from 10.0.1.4/32 table eth0-rt to 10.0.1.4/32 table eth0-rt
Aby utworzyć plik trasy dla eth0, otwórz plik /etc/sysconfig/network-scripts/route-eth0.
sudo vi /etc/sysconfig/network-scripts/route-eth0
Dodaj następującą zawartość do pliku trasy. Zastąp odpowiednio wartości sieci i bramy.
10.0.1.0/24 dev eth0 table eth0-rt default via 10.0.1.1 dev eth0 table eth0-rt
Tworzenie reguł i tras dla eth1:
Aby utworzyć plik reguły dla eth1, otwórz plik /etc/sysconfig/network-scripts/rule-eth1.
sudo vi /etc/sysconfig/network-scripts/rule-eth1
Dodaj następującą zawartość do pliku reguły. Zastąp odpowiednio adres IP, upewnij się, że w poleceniu określ adres IPv4 i zachowaj wartość 32-bitową.
Dwie karty sieciowe w tej samej podsieci:
from 10.0.1.5/32 table eth1-rt to 10.0.1.5/32 table eth1-rt
Dwie karty sieciowe w różnych podsieciach, ale w tej samej sieci wirtualnej:
from 10.0.2.5/32 table eth1-rt to 10.0.2.5/32 table eth1-rt
Aby utworzyć plik trasy dla eth1, otwórz plik /etc/sysconfig/network-scripts/route-eth1.
sudo vi /etc/sysconfig/network-scripts/route-eth1
Dodaj następującą zawartość do pliku trasy. Zastąp odpowiednio wartości sieci i bramy.
Dwie karty sieciowe w tej samej podsieci:
10.0.1.0/24 dev eth1 table eth1-rt default via 10.0.1.1 dev eth1 table eth1-rt
Dwie karty sieciowe w różnych podsieciach, ale w tej samej sieci wirtualnej:
10.0.2.0/24 dev eth1 table eth1-rt default via 10.0.2.1 dev eth1 table eth1-rt
Aby zastosować zmiany, uruchom następujące polecenie, aby ponownie uruchomić usługę sieciową:
sudo systemctl restart network
Reguły routingu są teraz poprawnie ustawione, a łączność powinna działać z dowolnego interfejsu sieciowego. Łączność można przetestować przy użyciu protokołu Secure Shell (SSH) lub wysłać polecenie ping do obu adresów IP z maszyny wirtualnej w tej samej sieci wirtualnej.
Sprawdź, czy bieżące trasy i reguły są ładowane przy użyciu następujących poleceń:
sudo ip route show sudo ip rule show
Ważne
Jeśli nadal masz problemy z komunikacją z drugą kartą sieciową, uruchom ponownie maszynę wirtualną przy użyciu sudo reboot
polecenia , powtórz krok 7 i ponownie przetestuj łączność.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.