W tym artykule przyjrzymy się sposobom konfiguracji sieci w systemach Linux. CentOS 7/8, pokaż, jak skonfigurować interfejsy sieciowe za pomocą plików konfiguracyjnych, podstawowych narzędzi do konfiguracji sieci i wielu innych. Jest to istotny temat, ponieważ początkowa konfiguracja dowolnego serwera rozpoczyna się od konfiguracji sieci na nim.
W tym artykule pokażemy funkcje konfiguracji sieci w CentOS 7 przy użyciu standardowej usługi sieciowej. Zobaczmy, jak używać do konfigurowania sieci NetworkManager (NM), który jest domyślnie oferowany w CentOS 8.
Treść
- Nazewnictwo interfejsu sieciowego w CentOS
- Wstępna konfiguracja sieci podczas instalacji CentOS
- Ręczna konfiguracja pliku konfiguracyjnego interfejsu sieciowego w CentOS
- Jak wyłączyć IPv6 w CentOS?
- Jak określić serwer DNS dla interfejsu sieciowego w CentOS?
- Jak skonfigurować wiele adresów IP na jednym interfejsie sieciowym CentOS?
- Konfigurowanie VLAN (802.1Q) w CentOS
- Konfigurowanie wielu interfejsów sieciowych w CentOS
- Przydatne polecenia sieciowe CentOS
- Narzędzia do administrowania siecią w CentOS
- Zarządzanie siecią za pomocą NetworkManager w CentOS 8
Nazewnictwo interfejsu sieciowego w CentOS
Klasyczny schemat nazewnictwa interfejsu sieciowego systemu Linux Nazewnictwo eth0, eth1 i tak dalej. Ale te nazwy nie są ściśle powiązane z interfejsami, a po ponownym uruchomieniu, jeśli istnieje kilka interfejsów sieciowych, nazwy te mogą ulec zmianie. Może to powodować pewne problemy podczas konfigurowania, na przykład zapory ogniowej za pośrednictwem zapory ogniowej lub iptables. W związku z tym, poczynając od RedHat 7 i CentOS 7, postanowiono przypisać nazwy interfejsów sieciowych w oparciu o hierarchię różnych schematów nazewnictwa. Domyślnie systemd zastosuje schematy nazewnictwa pojedynczo, koncentrując się na pierwszym dostępnym i odpowiednim. Nazwy są przypisywane w trybie automatycznym, pozostają niezmienione, nawet jeśli sprzęt zostanie dodany lub zmieniony. Z drugiej strony takie nazwy interfejsów są na przykład mniej czytelne, enp5s0 lub ens3, niż tradycyjny eth0 i eth1.
Możesz powrócić do domyślnej nazwy interfejsu Linux, wykonując następujące czynności.
Edytuj plik / etc / default / grub:
# nano / etc / default / grub
W linii GRUB_CMDLINE_LINUX trzeba dodać:
net.ifnames = 0 biosdevname = 0
Przykład pełnego wiersza:
GRUB_CMDLINE_LINUX = "consoleblank = 0 fsck.repair = tak crashkernel = auto nompath selinux = 0 rhgb quiet net.ifnames = 0 biosdevname = 0"
Zaktualizuj konfigurację grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Zmień nazwę pliku konfiguracyjnego interfejsu sieciowego:
# mv / etc / sysconfig / network-scripts / ifcfg-ens3 / etc / sysconfig / network-scripts / ifcfg-eth0
I zamień wartość Urządzenie:
Zapisz plik, uruchom ponownie serwer i sprawdź, czy wszystko jest w porządku:
# ip a
Interfejs jest teraz nazywany eth0.
Wstępna konfiguracja sieci podczas instalacji CentOS
Początkowo podczas instalacji CentOS Linux można skonfigurować interfejs sieciowy w trybie graficznym w pozycji menu „Sieć i nazwa hosta”. W tym akapicie określasz nazwę serwera, dodajesz żądany IP adres i brama, DNS i wiele więcej. Bardziej szczegółowe ustawienia na tym etapie można zobaczyć w artykule pod linkiem powyżej.
Ręczna konfiguracja pliku konfiguracyjnego interfejsu sieciowego w CentOS
Podajemy listę dostępnych interfejsów sieciowych w systemie:
# ip a
Pliki konfiguracji sieci twojego serwera są przechowywane w katalogu / etc / sysconfig / network-scripts. Pliki te są tworzone przez demona NetworkManager dla każdego interfejsu sieciowego. W naszym przypadku nazywa się plik konfiguracyjny ifcfg-eth0 (może się różnić w zależności od schematu nazewnictwa interfejsu sieciowego).
Rozważ główne parametry:
- URZĄDZENIE - nazwa karty sieciowej, taka sama jak nazwa w systemie, mamy eht0
- BOOTPROTO - metoda przypisywania adresu IP (statyczna - wartość statyczna, określ ręcznie. Dhcp - pobierz adres automatycznie)
- IPADDR - adres IP
- NETMASK - maska podsieci
- BRAMA - brama domyślna
- DNS1 - podstawowy serwer DNS
- DNS2 - alternatywny serwer DNS
- ONBOOT - sposób na uruchomienie interfejsu sieciowego (tak - automatycznie, nie - ręcznie)
- UUID to unikalny identyfikator interfejsu sieciowego. Możesz go wygenerować samodzielnie za pomocą komendy uuidgen.
- IPV4_FAILURE_FATAL - wyłącz interfejs sieciowy o adresie IP v4, jeśli ma niewłaściwą konfigurację (tak - wyłącz, nie - nie wyłączaj)
- IPV6_FAILURE_FATAL - wyłącz interfejs sieciowy z adresem IP v6, jeśli ma niewłaściwą konfigurację (tak - wyłącz, nie - nie wyłączaj)
- IPV6_AUTOCONF - Włącza lub wyłącza automatyczną konfigurację IPv6 przy użyciu protokołu
- IPV6_INIT - włącz stosowanie adresowania IPv6 (tak - można zastosować adresowanie, nie - nie używać)
- PEERROUTES - ustawia domyślny priorytet konfiguracji bramy podczas korzystania z DHCP
- IPV6_PEERROUTES - ustawia domyślny priorytet konfiguracji bramy podczas korzystania z DHCP dla IPv6
Na podstawie tych informacji skonfiguruj interfejs sieciowy.
Skonfiguruj statyczny adres IP w CentOS
Otwórz plik do edycji:
# mcedit / etc / sysconfig / network-scripts / ifcfg-eth0
W tym przykładzie podałem statyczny adres IP, maskę podsieci, bramę i kilka serwerów DNS. Włącz interfejs autostartu:
ONBOOT = „tak”
Po wszystkich modyfikacjach musisz ponownie uruchomić usługę sieć. Jeśli wszystko jest w porządku, otrzymasz taki wpis:
[root @ server network-scripts] # service restart sieci
Ponowne uruchamianie sieci (przez systemctl): [OK]
Możesz także po prostu zrestartować wszystkie profile połączeń:
# nmcli przeładowanie połączenia
Uzyskiwanie dynamicznego adresu IP interfejsu przez DHCP
Jeśli twój serwer powinien otrzymać adres IP z DHCP Północ, otwórz plik konfiguracyjny interfejsu i zmień ustawienia:
Oznacza to, że usunęliśmy wszystkie ustawienia związane z adresami IP i maską, a także zmieniliśmy sposób, w jaki adres IP został przypisany dhcp (BOOTPROTO = ”dhcp”). Po wszystkich zmianach nie zapomnij zrestartować sieci.
Jak wyłączyć IPv6 w CentOS?
W momencie pisania artykułu aktywnego użytkowania ipv6 w Rosji nie, a często, jeśli istnieje taka możliwość, administratorzy wolą protokół ipv4. Dlatego jeśli nadal nie używasz tego protokołu, musisz go wyłączyć na serwerze. Jeśli masz pewność, że żadna z usług nie jest skonfigurowana do pracy z ipv6, możesz natychmiast przystąpić do konfiguracji interfejsu sieciowego, jeśli nie, zacznij od sprawdzenia. Musimy sprawdzić, które usługi używają ipv6 i wyłączyć ten protokół w konfiguracji usługi. Uruchom polecenie:
# netstat -tulnp
Mam serwer testowy, więc ipv6 Używany tylko dla sshd i cronyd. Można to ustalić za pomocą „:::”.
Aby uniknąć problemów po wyłączeniu ipv6 w konfiguracji sieci, wyłącz ten protokół w usługach, w których są one używane na serwerze. Na przykład dla sshd musisz otworzyć plik konfiguracyjny:
# mcedit / etc / ssh / sshd_config
I odkomentuj wiersze:
#AddressFamily any #ListenAddress 0.0.0.0
Następnie uruchom ponownie usługę:
Jak widać, dla protokołu sshd ipv6 teraz niedostępny. Wprowadź te same ustawienia dla wszystkich usług..
Przejdźmy do wyłączenia protokołu IPv6 w ustawieniach sieciowych. Otwórz plik /etc/sysctl.conf:
# nano /etc/sysctl.conf
I dodaj tam następujące wiersze:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Zapisz plik i złóż wniosek przez:
[root @ server ~] # sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Przejdźmy do pliku / etc / sysconfig / network. Dodaj do niego następującą konfigurację:
NETWORKING_IPV6 = brak IPV6INIT = nie
Z pliku konfiguracyjnego interfejsu sieciowego / etc / sysconfig / network-scripts / ifcfg-eth0 usuń wiersz:
IPV6INIT = „tak”
Na koniec dodaj zakaz pracy ipv6 w grub:
# nano / etc / default / grub
Na końcu linii GRUB_CMDLINE_LINUX dodaj:
ipv6.disable = 1
Po wszystkich ustawieniach zapisz plik i zaktualizuj grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Uruchom ponownie serwer i sprawdź konfigurację sieci:
[root @ server ~] # ifconfig
eth0: flags = 4163 mtu 1500 inet 185. *. *. * maska sieci 255.255.255.0 broadcast 185. *. *. 255 ether 52: 54: 00: d3: 1c: 3e txqueuelen 1000 (Ethernet) pakiety RX 10068 bajtów 613092 ( 598,7 KiB) Błędy RX 0 usunięte 0 przekroczeń 0 ramek 0 pakietów TX 32 bajty 5399 (5,2 KiB) Błędy TX 0 usunięte 0 przekroczeń 0 nośnych 0 kolizji 0 lo: flagi = 73 mtu 65536 inet 127.0.0.1 maska sieci 255.0.0.0 pętla txqueuelen 1000 (Lokalna pętla zwrotna) Pakiety RX 0 bajtów 0 (0,0 B) Błędy RX 0 porzucone 0 przepełnień 0 ramek 0 Pakiety TX 0 bajtów 0 (0,0 B) Błędy TX 0 porzuconych 0 przepełnień 0 przewoźnik 0 kolizji 0
Protokół ipv6 wyłączone na serwerze.
Jak określić serwer DNS dla interfejsu sieciowego w CentOS?
Możesz skonfigurować serwer DNS dla swojego serwera za pomocą pliku /etc/resolv.conf lub określ je w ustawieniach interfejsu sieciowego. Podczas konfigurowania statycznej konfiguracji interfejsu sieciowego określiliśmy już serwer DNS za pomocą parametrów:
DNS1 = DNS2 = DNS3 =
Zainstaluj potrzebne serwery DNS i ponownie uruchom usługę sieciową.
Aby złożyć /etc/resolv.conf, Serwery DNS są rejestrowane automatycznie po ponownym uruchomieniu serwera, pobierając je z pliku konfiguracji sieci. Jeśli nie określiłeś serwera DNS podczas konfigurowania sieci, ręcznie zarejestruj je w pliku /etc/resolv.conf:
serwer nazw 77.88.8.8 serwer nazw 8.8.8.8 serwer nazw 8.8.4.4
Jak skonfigurować wiele adresów IP na jednym interfejsie sieciowym CentOS?
Jeśli musisz użyć kilku adresów IP w tym samym interfejsie sieciowym, możesz go skonfigurować za pomocą aliasu interfejsu lub dodając dodatkowy adres IP do głównego pliku konfiguracyjnego.
# nano / etc / sysconfig / network-scripts / ifcfg-eth0
I zmień to w następujący sposób:
# Wygenerowane przez parse-kickstart UUID = "b8bccd4c-fb1b-4d36-9d45-044c7c0194eb" IPADDR1 = "*. *. *. *" IPADDR2 = "*. *. *. *" GATEWAY = "*. *. *. * „NETMASK =” 255.255.255.0 ”BOOTPROTO =„ statyczne ”URZĄDZENIE =„ eth0 ”ONBOOT =„ tak ”DNS1 = 77,888,8.8 DNS2 = 8,8.8.8 DNS3 = 8.8.4.4
Gdzie:
IPADDR1 - pierwszy adres IP
IPADDR2 - drugi adres IP
BRAMA - główna brama
Lub stwórz alias do głównego pliku konfiguracyjnego:
# nano / etc / sysconfig / network-scripts / ifcfg-eth0: 1
I dodaj kilka wierszy bez głównej bramy:
Po wszystkich ustawieniach musisz ponownie uruchomić sieć:
[root @ server network-scripts] # service restart sieci
Ponowne uruchamianie sieci (przez systemctl): [OK]W systemie Windows można również skonfigurować wiele adresów IP (aliasów) na jednym interfejsie.
Konfigurowanie VLAN (802.1Q) w CentOS
Aby uzyskać więcej informacji na temat konfigurowania wielu sieci VLAN dla jednego interfejsu sieciowego w CentOS, zobacz: Konfigurowanie sieci VLAN na interfejsie sieciowym w CentOS.
Konfigurowanie wielu interfejsów sieciowych w CentOS
Jeśli masz kilka interfejsów sieciowych na serwerze, możesz podać dla nich różne adresy IP. Zobaczmy, jak to zrobić. Jeśli masz więcej niż jeden interfejs sieciowy na serwerze, „ip a”Powinien wyświetlać te informacje:
[root @ server ~] # ip a
1: lo: mtu 65536 qdisc noqueue stan UNKNOWN domyślna grupa qlen 1000 link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 zakres host lo lo_wartość_ważna forever prefer_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast stan UP grupa domyślnie qlen 1000 link / ether 52: 54: 00: d3: 1c: 3e brd ff: ff: ff: ff: ff: ff inf 185. *. *. * / 16 brd 185. *. *. 255 zakres globalny eth0 valid_lft na zawsze preferowany_lft na zawsze 3: eth1: mtu 1500 qdisc stan noop DOWN grupa domyślna qlen 1000 link / eter 52: 54: 00: 5f: f3: b8 brd ff: ff : ff: ff: ff: f
Aby skonfigurować drugi interfejs, musisz utworzyć dla niego plik:
# nano / etc / sysconfig / network-scripts / ifcfg-eth1
I dodaj następującą konfigurację:
IPADDR = „*. *. *. *” BRAMA = „*. *. *. *” NETMASK = „255.255.255.0” BOOTPROTO = „statyczny” URZĄDZENIE = „eth1” ONBOOT = „tak”
Następnie musisz zainstalować domyślną bramę na serwerze. Sprawdzimy, która brama jest obecnie zainstalowana i, jeśli to konieczne, zmień ją:
[root @ server ~] # netstat -nr
Tabela routingu IP jądra Bramka docelowa Flagi maski narodowej MSS Okno irtt Iface 0,0,0,0 185. *. *. 1 0,0,0,0 UG 0 0 0 eth1 169,2545,0 0,0 0,0 255,255,0,0 U 0 0 0 eth0 169,2545,0,0 0,0,0,0 255.255.0.0 U 0 0 0 eth1 185. *. 0,0 0,0,0 255 255.255.0.0 U 0 0 0 eth0 185. *. *. 0 0,0,0,0 255.255.255.0 U 0 0 0 eth1
Jako główna brama mamy interfejs eth1. Chcę użyć eth0, w tym celu to zmieniamy:
# route dodaj domyślny gw *. *. *. *
- zastąp bramę bramą określoną w interfejsie sieciowym eth0
# route delete default gw *. *. *. *
- usuń bramę interfejsu eth1
Jeśli chcesz, aby to ustawienie pozostało po ponownym uruchomieniu serwera, dodaj te polecenia do rc.local (zobacz artykuł o usługach startowych w CentOS).
Przydatne polecenia sieciowe CentOS
ifdown eth1
- wyłącz określony interfejs sieciowy.ifup eth1
- podnieś określony interfejs sieciowy.ifconfig
- sprawdź informacje o wszystkich interfejsach.ifconfig -a | eter grep | gawk „print 2 USD”
- polecenie do wyprowadzania adresów MAC interfejsówip a | eter grep | gawk „print 2 USD”
- to samo, tylko poprzez narzędzie iprestart sieci serwisowej
lubsystemctl zrestartuj sieć
- uruchom ponownie usługę sieciową za pomocą systemctlsystemctl uruchom ponownie NetworkManager.service
- uruchom ponownie NMtrasa ip
lubPokaż trasę IP
- zobacz tabelę routinguping host
- pingować określonego hostadomena whois
- uzyskać informacje o whois dla domenykop domenę
- uzyskać informacje o domenie DNS
Narzędzia do administrowania siecią w CentOS
Jeśli serwer działa od jakiegoś czasu lub w ogóle go nie konfigurujesz, pierwszym krokiem jest sprawdzenie, które interfejsy są obecne na serwerze. Dla wygody zainstaluj niezbędne narzędzia z podstawowego repozytorium:
# yum zainstaluj net-tools -y
Po instalacji możesz użyć narzędzia ifconfig:
[root @ server ~] # ifconfig
eth0: flags = 4163 mtu 1500 inet 185. *. *. * maska sieci 255.255.255.0 broadcast 185. *. *. 255 inet6 fe80 :: 5054: ff: fed3: 1c3e prefixlen 64 scopeid 0x20 eter 52: 54: 00: d3 : 1c: 3e txqueuelen 1000 (Ethernet) pakiety RX 2189424 bajtów 144208326 (137,5 MiB) Błędy RX 0 usunięte 0 przekroczeń 0 ramek 0 pakietów TX 2350 bajtów 260486 (254,3 KiB) Błędy TX 0 usunięte 0 przekroczeń 0 nośnych 0 kolizji 0
Jak widać, nazwa naszego interfejsu sieciowego eth0.
Bez instalowania pakietu narzędzia sieciowe, możesz przetestować swoje interfejsy za pomocą następującego polecenia:
# ip a
Wynik będzie prawie taki sam:
Zarządzanie siecią za pomocą NetworkManager w CentOS 8
W CentOS 8 zaleca się stosowanie tylko ustawień sieciowych Menedżer sieci. Ta usługa zarządzania połączeniami sieciowymi monitoruje ustawienia i stosuje zmiany w kartach sieciowych.
Aby sprawdzić status NM, użyj polecenia:
# status systeml NetworkManager.service
CentOS sugeruje użycie konsoli poleceń do konfiguracji sieci nmcli lub narzędzie graficzne nmtui.
Aby przejść do trybu ustawień sieciowych, wprowadź polecenie:
# nmtui
Po wybraniu pierwszego elementu zobaczysz okno z wyborem interfejsu sieciowego do edycji:
Wybierz potrzebny interfejs i edytuj:
Możemy edytować nazwę, adres IP, bramę, serwery DNS. Również w interaktywnym menu NM możemy zmienić metodę przypisywania adresu IP do DHCP:
Zamień „instrukcja obsługi„Do”automatyczne”:
Następnie zapisz ustawienia. Używając nmtui w trybie graficznym, możesz wprowadzić dowolne ustawienia, które wykonujesz ręcznie za pomocą plików konfiguracyjnych. Jeśli wolisz używać wiersza poleceń do konfigurowania interfejsów, możesz użyć nmcli. Na przykład następujące polecenia zmienią adres IP, bramę i serwer DNS dla interfejsu eth1.
# nmcli z mod eth1 ipv4. adresy 192.168.10.14/24
# nmcli z mod eth1 ipv4.gateway 192.168.10.1
# nmcli z mod eth1 ipv4.dns „8.8.8.8”
Aby zastosować zmiany, załaduj ponownie interfejs:
# nmcli con up eth1
Jeśli wygodniej jest pracować z plikami konfiguracyjnymi, zainstaluj osobny pakiet przez yum skrypty sieciowe (CentOS 8 domyślnie go nie ma):
# yum zainstaluj skrypty sieciowe -y
Uaktualniono: initscripts-10.00.1-1.el8_0.1.x86_64 Zainstalowano: skrypty sieciowe-10.00.1-1.el8_0.1.x86_64 skrypty sieciowe-team-1.27-10.el8.x86_64 Zakończone!
Po zainstalowaniu tego pakietu możesz edytować ustawienia sieciowe, jak opisano wcześniej, za pomocą plików konfiguracyjnych: