Настройка сети в Linux

Рассмотрим настройку сети в Linux Ubuntu.

Приведу пример команд просмотра информации о сетевых интерфейсах:

ifconfig
ifconfig -a
ifconfig eth0
ip a
ethtool eth0
ethtool -i eth0
ethtool -k eth0
ethtool -S eth0
ip -s -s link show
lshw -C network
lspci | grep Ethernet
netstat -st
netstat -s counter

Пример включения/отключения сетевых интерфейсов:

sudo ifconfig eth0 up
sudo ifconfig eth0 down
sudo ifconfig wlan0 up
sudo ifup ens1f0
sudo ifdown ens1f0

Если имя сетевого интерфейса неизвестно, то смотрим его в logical name набрав команду:

sudo lshw -C network

Чтобы единоразово запросить IP адрес по DHCP выполним команду:

dhclient
dhclient eth0
dhclient enp0s3

Ручное назначение настроек (сбрасываются после перезагрузки):

sudo ifconfig eth0 inet 192.168.0.2 netmask 255.255.255.0
sudo ifconfig eth0:0 inet 192.168.3.2 netmask 255.255.255.0
sudo ifconfig eth0:1 inet 192.168.10.1 netmask 255.255.255.0

Удалить все IP с интерфейса eth0 можно так:

sudo ip addr flush dev eth0

Чтобы настройки не сбрасывались их необходимо прописать в конфигурационный файл:

sudo nano /etc/network/interfaces

Пример содержания:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1

auto eth1
iface eth1 inet static
address 10.0.0.2
netmask 255.255.255.0

auto eth2
iface eth2 inet dhcp

В редакторе nano комбинация клавиш Ctrl+O служит для сохранения изменений, Ctrl+X для выхода.

DNS адреса добавляются в конфигурационный файл /etc/resolv.conf, каждый с новой строки, таким образом:

nameserver 192.168.0.1
nameserver 8.8.8.8

Посмотреть/добавить/удалить маршрут по умолчанию можно так:

sudo route add default gw 192.168.1.1
sudo route del default gw 192.168.1.1

Удалить сеть:

sudo route del -net 238.1.0.0/16

Посмотреть таблицу маршрутизации так:

sudo ip route show
sudo ip route show 172.16.0.0/16
sudo route
sudo route -n
sudo netstat -rn
sudo cat /proc/net/route

Пример добавления маршрутов для сети через шлюз, сетевой интерфейс и маршрут для конкретного адреса через шлюз:

sudo route add -net 172.16.0.0/16 gw 10.0.0.1
sudo route add -net 172.16.0.0/16 dev eth0
sudo route add -host 192.168.0.1 gw 172.16.0.1

Например с указанным маршрутом можно удалять пакеты:

sudo ip route add blackhole 10.10.0.0/24

Можно добавить маршруты в отдельную таблицу, например мы добавим маршрут по умолчанию всем, а адресу 192.168.5.12 указали свой маршрут по умолчанию:

sudo route add default gw 192.168.1.1
sudo ip rule add from 192.168.5.12 lookup 4
sudo ip route add default via 10.0.2.1 table 4

Перезапуск сетевых служб:

sudo /etc/init.d/networking restart

Либо перезапуск сервера:

sudo reboot

В случае потерь пакетов при большом трафике или если неправильно работает шейпер, то можно попробовать отключить offload:

ethtool -K eth0 tso off
ethtool -K eth0 ufo off
ethtool -K eth0 gro off
ethtool -K eth0 gso off
ethtool -K eth0 lro off

Или так:

ethtool -K ens2f1 tso off gro off gso off lro off tx off rx off rxvlan off txvlan off

Посмотрим какие offload активированы, например generic-segmentation-offload — это сокращено «gso»:

ethtool --show-offload eth0

Посмотреть правильно ли распределены прерывания сетевой платы по ядрам процессора можно командой:

grep eth0 /proc/interrupts

Смотрите также мои статьи:
Настройка VLAN в Ubuntu
Как посмотреть информацию о сетевом адаптере в Linux
Как поднять сетевой интерфейс в Linux без IP адреса
Создание dummy интерфейсов в Linux
Настройка маскарадинга (NAT) в Ubuntu
Изменение TX и RX буферов сетевых интерфейсов
Изменение txqueuelen в Linux
Причина увеличения RX overruns на сетевом адаптере
nload — мониторинг загрузки сетевых интерфейсов
Ограничение скорости на сетевом интерфейсе используя TC
Скрипт просмотра PPS (Packets Per Second)

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

Оставьте комментарий

Добавить комментарий