- Настройка сети в Linux
- Интересное по теме:
- 5 thoughts on “ Настройка сети в Linux ”
- Ifconfig Command in Linux
- Ifconfig Command Syntax
- 1) Display All network interface information
- 2) Enable or disable the network interface
- 3) Assign IP address and Netmask to network interface
- 4) Set IPV6 Address to network interface
- 5) How to Enable ARP protocol
- 6) How to Disable ARP protocol
- 7) Change MAC address of interface
- 8) How to enable Promiscuous mode
- 9) Changing the MTU
- 10) Add Alias to network interface
- Conclusion
- Linux: NIC, работа с сетевыми интерфейсами (ifconfig, ip, ethtool, interfaces – lspci network, lshw network, RSS)
Настройка сети в Linux
Перед тем, как приступать к настройке сетевого подключения в Линукс, надо начать с того, что посмотреть — какие настройки сети используются сейчас. Для этого надо воспользоваться командой ifconfig. В информационном режиме она доступна и без прав ROOT, хотя для её полноценного использования лучше получить привилегии суперпользователя, введя команду sudo ifconfig. Результатом её работы будет список имеющихся в системе сетевых подключений и их параметров.
В разных версиях Линукс имя сетевого интерфейса может быть сокращением от Ethernet — eth0, eth1, eth2 и т.п.
На интерфейс lo — сокращение от loopback — то есть локальная петля с адресом 127.0.0.1 .
Для примера рассмотрим интерфейс Eth0.
В строке inet addr отображается текущий IP-адрес компьютера в локальной сети, подключенной к этой сетевой карте. В примере это: 192.168.1.144
Bcast — это широковещательный адрес в сети, так называемый Бродкаст(Broadcast).
Mask — это маска сети.
HWaddr — это аппаратный адрес сетевой карты, он же MAC-адрес, используемый на канальном уровне.
Информацию о текущих подключения узнали, теперь рассмотрим настройку локальной сети в Linux. Сделать это можно тремя способами:
1 — Через графическую оболочку
2 — через команду ifconfig или инструмент Network Manager
3 — через конфигурационные файлы сетевого сервиса Netork или Networking.
На мой взгляд, последний способ — самый удобный и надёжный, а значит — правильный. Чтобы настроить сеть в Линукс надо открыть файл, содержащий конфиг интерфейса. Тут всё зависит от того, какой дистрибутив Linux используется.
Вариант 1. В дистрибутивах, основанных на Debian (Ubuntu, Kubuntu и т.п.)
Файл с параметрами сетевого подключения:
Для того, чтобы изменить в linux настройки сети, файл его надо с правами root любым текстовым редактором. Например, через nano:
Для автоматического получения адресов от DHCP-сервера надо пописать следующее:
Если адрес надо прописать статически, то указываем следующее:
В этом конфиге рассмотрен пример обычной домашней сети, где адрес компьютера будет 192.168.1.2, адрес шлюза и DNS-сервера (их фукнции обычно выполняет wifi-роутер)- 192.168.1.1.
Вариант 2. RedHat-based дистрибутивы (Fedora, OpenSuse, CentOS)
Файл с настройками сети Linux:
Открываем его так же через nano или vim:
В случае автоматического получения настроек от DHCP-сервера:
IP-адреса DNS-серверов в этом случае прописываются в файле
вот пример для публичных DNS-серверов от Google:
Настройка сети в Линукс завершена. Остаётся только перезапустить сеть командой:
В качестве постскриптума расскажу как включить и выключить сеть в Linux. Делается это через всё ту же команду ifconfig. Выключить сетевую карту eth0:
Включить сетевую плату в Линуксе обратно:
Полностью остановить работу всех сетевых интерфейсов.
Включить всё назад:
Интересное по теме:
5 thoughts on “ Настройка сети в Linux ”
Не настраивается, Линукс минт 18.3 в чём засада?
enp2s0 Link encap:Ethernet HWaddr 00:16:d3:48:1d:91
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:886 errors:0 dropped:0 overruns:0 frame:0
TX packets:886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:82987 (82.9 KB) TX bytes:82987 (82.9 KB)
wlp5s0 Link encap:Ethernet HWaddr 00:13:02:70:76:47
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlxf46d048b327f Link encap:Ethernet HWaddr f4:6d:04:8b:32:7f
inet addr:192.168.1.72 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::99f4:be38:665a:3b0d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39068 errors:0 dropped:2423 overruns:0 frame:0
TX packets:24703 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:48902729 (48.9 MB) TX bytes:3037797 (3.0 MB)
Какие настройки Вы делаете — опишите подробно!
Сергей, может вы мне ответите? В общем, настраивал подключение к сети через «Менеджер сети», встроенный по умолчанию в Linux mint 18.3 Cinnamon. Настройки ставил следующие: IPv6 совсем выключил (Method: ignore). IPv4 Method:manual; Address:192.168.1.250; Netmask:250.250.250.0; Gateway 192.168.1.1; DNS servers 8.8.8.8
(Не понял где программа сохраняет эти настройки. В файле interfaces, находящемуся по адресу Файловая система/etc/network/interfaces ничего не поменялось.) IP адрес роутера определил командой ip route show. В качестве роутера стоит Asus RTN-10U. Wi-fi свисток Asus N13. Вот данные lsusb (0b05:17ab ASUSTek Computer, Inc. USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU]).
Сеть распозналась корректно и работает, но через 5 минут пропадает. Т.е. Менеджер сетей утверждает, что сеть есть и подключение хорошее, но браузер Firefox не может найти соединение. Проверил соединение с роутером коммандой Ping 192.168.1.1. Соединение отсутствует. Выключил сеть и включил через Менеджер сетей и сразу запустил проверку соединения Ping 192.168.1.1. Лазил в Интернете минут 15. Сеть держится. Возникает предположение, что Linux в определённый момент считает, что устройство бездействует и отключает сеть, если я его не спамлю ping’ом. Как это можно отрегулировать или решения нет и придётся спамить ping?
Михаил — Здравствуйте. начните с того, что укажите правильно маску — 255.255.255.0. Та, что Вы указали — 250.250.250.0 — неверная.
Источник
Ifconfig Command in Linux
The word ‘ifconfig’ stands for interface configuration. Ifconfig is used in Linux and Unix systems to debug, configure and manage network interfaces from the terminal.
Using ifconfig command you can assign IP address and netmask, display network configuration (including broadcast address, mac address, MTU), enable or disable an interface.
In this tutorial, we learn about ifconfig command and how to set different parameters on network interface.
Ifconfig Command Syntax
Let’s check ifconfig command syntax
We will explain the different options of ifconfig command in the following section.
1) Display All network interface information
If you run ifconfig command without any options it will give you the status of all interfaces which are in up status. From the output, we can find the assigned IP address and also many other interface details.
The following output shows ifconfig without any options:
If you want to see all interfaces information (including status up and down) then you have to use -a option.
You can check specific interface (say eth0) details using below command:
To display a short list use -s option.
Note: If you looking for MAC address binded to that interface you can find from the ifconfig output.
2) Enable or disable the network interface
For troubleshooting or debugging some system admin have to enable or disable the interface. The following command shows to enable and disable specific interface.
To enable interface eth0 run the following command:
To disable interface eth0 run the following command:
3) Assign IP address and Netmask to network interface
To assign IP address to an interface (eth0), use IP address followed by a specific interface name.
The following command set IP address ‘192.168.1.30’ to the interface ‘eth0’. The second command set netmask ‘255.255.255.0’ to ‘eth0’ interface.
You can set both IP address and netmask using one command. The following example configures eth0 with ip address ‘192.168.1.30’ with netmask ‘255.255.255.0’.
If you looking to set broadcast IP on the interface, use ‘ifconfig eth0 broadcast 192.168.1.32’ as shown below:
4) Set IPV6 Address to network interface
To add ipv6 address to a interface (etho) use the following syntx:
5) How to Enable ARP protocol
ARP stands for the address resolution protocol, it is used for resolution of network layer addresses into link layer addresses.
To enable arp on eth0 interface, use the following command:
6) How to Disable ARP protocol
To disable ARP on eth0 interface you have to add a hyphen ( — ) before arp option.
7) Change MAC address of interface
In order to change the MAC address, you should first disable the interface (NIC) and also make sure the hardware vendor supports this function. Alternative commands to change mac address are ip command and ‘macchanger’ utility.
The following command will change the MAC address for the interface (eth0) using the option hw ether .
8) How to enable Promiscuous mode
In promiscuous mode is a mode of operation in which every data packet transmitted can be received and read by a network adapter. The promisc mode is mostly enabled to monitor network card traffic via tcpdump command or Wireshark.
The following command set eth0 in promiscuous mode:
To disable promiscuous mode use -promisc as following:
9) Changing the MTU
MTU stands for Maximum Transmission Unit, it is the size of the largest block of data that can be transmitted as a single unit, the default value is 1500, you can change it as the below example
10) Add Alias to network interface
You can create additional logical network interfaces known as alias using ifconfig command. The following command set alias interface (eth0:0) and new ip address (192.168.1.31).
You can delete alias by bringing down the interface as shown below:
Conclusion
In this tutorial, we learned how to use ifconfig command in Linux to view and set interface parameters. Ifconfig is one of the deprecated command within net-tools that has not been maintained for many years. The functionalities of many commands is retained with more features under iproute2 suite.
Источник
Linux: NIC, работа с сетевыми интерфейсами (ifconfig, ip, ethtool, interfaces – lspci network, lshw network, RSS)
BASIC
- COMPARING NET-TOOLS VS. IPROUTE PACKAGE COMMANDS
- veth – virtual eth
- как отключить networkmanager описано в статье
- про недостатки классических net-tools/net-utils (напр. ifconfig) в статье, так же там как их установить 🙂
ip link или ifconfig -a – показывает все интерфейсы. В том числе те, которые не подняты. Мне помогло при дебаге неподнимания secondary ipif на виртуалке VirtualBox. Косяк оказался в том, что я неправильно в конфиге /etc/network/interfaces указал название интерфейса 🙂
ip a add 1.1.1.1/32 dev enp2s0 или ifconfig eth1 1.1.1.1/32 up – конфигурируем IP на интерфейсе. Можно и secondary создать обеими утилитами. Причем secondary можно огромное количество настроить – я пробовал настраивать 10 ТЫС IP адресов и они все работали (проверка корректности работы маршрутов /32).
sudo dhclient -v ens192 – включение работы DHCP клиента на интерфейсе.
Включаем интерфейс, для работы ifup с enp интерфейсами нужно их переименовывать.
Изменяем MAC на Wi-Fi интерфейсе MAC OS.
PROMISCUOUS
ip link set enp2s0 promisc on # для работы сетевых утилит типа tcpdump, tcpreplay, wireshark, tshark зачастую нужно включение promiscuous режима (чаще всего включается утилитой автоматически перед стартом сбора сетевого трафика)
Переименование интерфейсов
Временное (до перезагрузки)
Сохраняется и после перезагрузки
IP multicast
MACSEC
Static настройка интерфейса через файл /etc/network/interfaces
Если на сервере нет vim (есть только vi), возможно есть vim.tiny (на примере Debian).
Пример файла с настройками интерфейса + статическими (permanent) маршрутами через файл interfaces.
Рестарт
Для применения настроек через файл не обязательно перезагружать сервер. Можно за-флашить настройки (если интерфейсы уже есть в системе – иначе просто перезапустить), а потом перезапустить networking.service. Перезапускать службу в целом и flash’ить интерфейс по которому мы подключены при удаленном подключении обязательно одновременно с рестартом – иначе доступ потеряется.
NETWORK INTERFACE CARD info (lshw, lspci)
lshw -class network # полный вывод
lshw -c network -short -numeric # вывод в виде удобной таблички (short – краткий, numeric – добавляем адрес PCI)
Если девайс в списке есть, но без logical name, перезагрузить сервер или рестартовать службу командой выше. Если состояние DISABLED, то интерфейс нужно включить (ifup/ifconfig/ip link – выше примеры).
Если в выводе Unclaimed – вероятнее всего нужно обновлять операционную систему для обновления драйверов.
lspci | grep -i ‘network\|ethernet’
lspci -knn | grep “Net\|Eth” -A2
ETHTOOL
ethtool ethX – смотрим данные по физ. интерфейсу.
ethtool -i – информация по драйверам.
ethtool -p – blink.
ethtool –a ethX – можно посмотреть параметры flow control.
ethtool –A ethX [autoneg on|off] [rx on|off] [tx on|off] – можно изменить параметры flow control.
ethtool -C ethX [adaptive-rx on|off] [adaptive-tx on|off] [rx-usecs N] [rx-frames N] [rx-usecs-irq N] [rx-frames-irq N] [tx-usecs N] [tx-frames N] [tx-usecs-irq N] [tx-frames-irq N] [stats-block-usecs N] [pkt-rate-low N] [rx-usecs-low N] [rx-frames-low N] [tx-usecs-low N] [tx-frames-low N] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N] – позволяет изменить большое количество различных параметров.
ETHTOOL: RSS (HASH) and queues
Receive side scaling (RSS) is a network driver technology that distributes the receiving of network traffic more efficiently by distributing receive processing across multiple CPUs in a multiprocessor system. In simple terms, RSS allows a system to process more received traffic because it uses all available CPUs instead of just one.
С помощью ethtool можно настроить перераспределение трафика по очередям сетевой карты на основе hash от каких-то данных на базе RSS. RSS в случае сетевых карт рассчитывается на основе чипа FPGA/ASIC. Такое (или софтовое) распределение использую очень многие вендоры, которые работают с сетевым трафиком – как вендоры производители оборудования, так и вендоры производители генераторов трафика.
По умолчанию сетевые интерфейсы имеют настройку hash SRC & DST IP для UDP трафика и hash SRC & DST IP and PORTs для TCP трафика. Для реализации симметричного (symmetric RSS) распределения по очередям может изменяться (поддерживает незначительное количество сетевых карт):
-
- можно посмотреть и изменить используемый ключ для hash (Random Secret Key, RSK) на ряде сетевых карт (напр. Intel X710) на симметричный с меньшей энтропией (т.е. балансировка в целом будет хуже, но это плата за симметричность)
- можно посмотреть и изменить XOR функцию на ряде сетевых карт (напр. Mellanox ConnectX-5)
Перераспределение может происходить к процессам ksoftirqd (их еще надо настроить, напр, с использованием qdisc). Количество очередей RSS обычно делается равным количеству процессов, на которые трафик распределяется. Подробнее про распределение трафика в статье про CPU affinity.
QUEUES
Пример количества очередей RSS на сетевых картах.
Описание логики symmetric HASH. Пример настройки на Mellanox, Intel картах выше.
По умолчанию выделяется по одной очереди RX/TX на виртуалки.
Multiqueue при использовании в виртуализации – спорная тема. Может приводить к деградации исходящего трафика.
Неплохое объяснение работы очередей на сетевой карты – есть очереди пакетов, которые выступают по сути буфером для них перед отправкой если nic не может всю очередь отправить сразу в интерфейс. В случае переполнения очереди пакеты дропаются, но обычно можно управлять этими дропами с помощью QoS (какие пакеты будут дропаться).
ethtool: Offload
Вообще offload технологии на сетевых картах призваны уменьшить количество прерываний и обработок CPU приходящих сетевых пакетов за счет склеивания этих данных при отправке или приеме. Пример технологий offload – LSO, LRO, TSO, GSO:
- Large Send Offload (LSO),
- Large Receive Offload (LRO),
- TCP segmentation offload (TSO),
- generic segmentation offload (GSO)
При их использовании можно увидеть разные “аномалии” в трафике:
- Общее количество пакетов в дампе будет меньше, чем по факту было в сети
- Максимальный размер сегмента в снятом дампе трафика может быть значительно более согласованного MSS из-за включенного TCP offload на сетевой карте в виде .
- Так же из-за включенного offload в дампе могут быть некокорректные TCP checksum, хотя с фактическим трафиком в сети такой проблемы нет.
Рекомендации snort по отключению offload:
ethtool –show-offload ethX/enpX – смотрим какие offload включены (включая RSS в виде receive-hashing ON/OFF)
ethtool -k ethX/enpX – смотрим какие offload включены
Для удобства выключение offload в одном месте:
ethtool -K ethX/enpX rx/tx off – освобождение ОС от расчёт контрольных суммы TCP/IP (rx-checksumming) для входящих/исходящих пакетов, можно так же использовать ключ –offload вместо -k.
ethtool -K ethX/enpX tso off – отключение функции (tcp-segmentation-offload) сборки сегментов без участия CPU;
ethtool -K ethX/enpX gso off – отключение функции (generic-segmentation-offload) фрагментации пакетов без участия CPU;
ethtool -K ethX/enpX gro off – отключение функции (generic-receive-offload) сборки пакетов сетевым интерфейсом без участия CPU;
ethtool -K ethX/enpX lro off – отключение функции (large-receive-offload) сборки пакетов сетевым интерфейсом без участия CPU.
ETHTOOL, sys/class, netstat, ip link: статистика по интерфейсу
Самый простой способ получения общих счетчиков по количеству полученных пакетов/количеству drop – извлечь инфу из папки /sys/class/net/ для интерфейса. При этом нужно учитывать, что процент дропов rx_dropped от количества rx_packets может быть более 100% (Real example: RX packets 859466582; dropped 945024683). Причем после обработки одного потока трафика (т.е. это не накопленные dropped) – причина в том, что в rx_packets не попадают rx_dropped – по сути rx_dropped это НЕ ПРИНЯТЫЕ интерфейсом пакеты.
Для получения общей статистики по интерфейсам, помимо ethtool, может помочь ifconfig, netstat, ip link (-s).
Пример настроенного распределения по 8ми очередям с помощью RSS.
ethtool: Ошибки
Для VM ethtool может быть крайне урезан, вплоть до полной нефункциональности.
iwconfig – wireless interfaces config
Источник