команда ip
https://losst.ru/nastrojka-seti-v-linux
https://packetpushers.net/linux-ip-command-ostensive-definition/

СИНТАКСИС
Сначала рассмотрим синтаксис команды:

ip [опции] объект команда [параметры]
опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.
объект — объект или устройство, с которым будем работать или о котором будем узнавать информацию.
команды — какое-либо действие с объектом.
параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.

ОПЦИИ
Поддерживаются такие опции для настройки сети в lInux:
-v — только вывод информации об утилите и ее версии
-s — включает вывод статистической информации
-f — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция f должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
-o — выводить каждую запись с новой строки
-r — выполнять резолвинг и выводить символические имена хостов

Все остальные опции — ярлыки опции -f:
-4 — ярлык для -f inet
-6 — -f inet6
-B — -f bridge
-0 — -f link

ОБЪЕКТЫ
address — сетевой адрес на устройстве
link— физическое сетевое устройство
monitor — мониторинг состояния устройств
neigh — ARP
route — управление маршрутизацией
rule — правила маршрутизации
tunnel — настройка туннелирования

Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r - означает route.

КОМАНДЫ
Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Вот они: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update.

Если команда не задана, по умолчанию используется show (показать).

Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set, к сожалению.

ПАРАМЕТРЫ
Параметры зависят от объекта и указанной команды. Рассмотрим самые основные:

dev имя_устройства - сетевое устройство
up - включить
down - выключить
llarrr - MAC - адрес
initcwnd - размер окна перегрузки TCP при инициализации
window - размер окна TCP
cwnd - размер окна перегрузки TCP
type - тип
via - подключиться к роутеру
default - маршрут по умолчанию
blackhole - маршрут "черная дыра" - отбрасывать пакеты и не посылать ICMP сообщения о недоступности
prohibit - маршрут "запрета" - отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа
unreachable - маршрут "недостижимый" - отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

IP LINK
Утилита ip в Linux с параметром linux позволяет управлять состоянием сетевых интерфейсов и просматривать информацию о них.

ip link show - отобразить состояние всех сетевых интерфейсов
ip l sh - то же самое
ip ll - то же самое
ip l - то же самое
ip link show eth0 - отобразить состояние eth0
ip link list up - отобразить статус всех включенных интерфейсов
ip link set eth1 up - включить eth1
ip link set eth1 down выключить eth1

IP NEIGBOUR
Объект neigbour используется для управления ARP таблицами.

ip neigh show - показать все записи ARP
ip n sh - то же самое
ip n l - то же самое
ip n - то же самое
ip neigh show dev eth0 - посмотреть все ARP записи для eth0
ip neigh flush - удалить все ARP записи
ip ne fl dev eth0 - удалить все ARP записи для eth0
ip nei add 1.1.1.13 lladdr AA:BB:CC:DD:EE:FF dev eth0 - добавить ARP запись для определенного IP адреса.
ip n del 1.1.1.13 dev eth0 - удалить все записи для указанного адреса

IP ADDRESS
Важно заметить, что вторичные ip адреса не используются в качестве исходящих адресов для отправки пакетов.

ip address show - показать все ip адреса и их интерфейсы
ip a sh - то же самое
ip a list - то же самое
ip a - то же самое
ip a l permanent - отобразить только статические ip адреса
ip a l dynamic - отобразить только динамические ip адреса
ip addr add 1.1.1.13/24 dev eth0 - установить ip адрес для интерфейса eth0
ip addr del 1.1.1.13/24 dev eth0 - удалить ip адрес интерфейса eth0
ip add flush dev eth0 - удалить все ip адреса интерфейса eth0

IP ROUTE
Утилита ip в Linux позволяет не только устанавливать ip адреса, но и настраивать маршруты. По умолчанию в Linux используется таблица маршрутизации 254, вы также можете иметь дело с таблицей 255, которую не следует изменять, а также 253, в которой хранятся маршруты по умолчанию.

ip r sh показать все маршруты в таблице маршрутизации
ip route show table nnn - отобразить все маршруты из таблицы 255
ip route get 10.10.20.0/24 - отобразить маршрут к этой сети
ip route get 10.10.20.0/24 from 192.168.12.9 - отобразить маршрут к этой сети от указного интерфейса.
ip route add 10.10.20.0/24 via 192.168.50.100 - создать маршрут
ip route delete 10.10.20.0/24 - удалить маршрут.
ip route del 10.10.20.0/24 via 192.168.50.100 - удалить маршрут.
ip route add default via 192.168.50.100 - создать маршрут по умолчанию.
ip route add 10.10.20.0/24 dev eth0 - создать маршрут к указной сети.
ip route add table nnn 10.10.20.0/24 dev eth0 - создать маршрут в специальной таблице роутинга.
ip route add blackhole 10.10.20.0/24 dev eth0 - создать blackhole маршрут.
ip route add unreachable 10.10.20.0/24 dev eth0 - создать unreachable маршрут.


Использование route
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-networkscripts-static-routes.html

Просмотреть таблицу можно следующими способами:
route -n (устаревшее)
netstat -rn
ip route show
cat /proc/net/route

route -f операция -тип адресат шлюз интерфейс
Команда route -f удаляет из таблицы данные обо всех шлюзах

Добавление маршрута через шлюз:
route add -net 192.168.0.0/16 gw 10.0.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.1

Добавление маршрута через интерфейс:
route add -net 192.168.0.0/16 dev eth1

Маршрут до отдельного хоста:
route add -host 192.168.0.1 gw 172.16.0.1

Маршрут по умолчанию настраивается следующей командой:
route add default gw 192.168.1.1 eth0

Удаление маршрута: route del ..


настройка сети для убунтовых
https://uzverss.livejournal.com/79797.html (Настройки, работа с сетевыми интерфейсами )
https://netplan.io/examples

nano /etc/netplan/01-network-manager-all.yaml
простой конфиг




в этом случае libvirt (kvm qemu) машины ходят в сеть по дефолтной конфигурации, находясь за nat


посложней, несколько адресов, на одном интерфейсе




здесь надо создавать br0 для libvirt (см ниже настройка сети KVM)

netplan --debug apply

netplan try
systemctl restart systemd-networkd
networkctl status -a

ip link set enp3s0 up
ip link set enp3s0 down


настройка сети для rhel
Настройка сети в CentOS 7

Устанавливаем статический ip
узнаём интерфейс
ip a

nano /etc/sysconfig/network-scripts/ifcfg-интерфейс



ip neig flush all # очистить кэш arp
systemd-resolve --flush-caches # очистить кэш dns имён
systemctl restart systemd-resolved # обновить dns
sudo /etc/init.d/dns-clean start # очистить кэш dns имён для старых os

ip ro
yum install net-tools # нужен для роутинга

route add default gw 192.168.1.1 # добавить шлюз по умолчанию
route del default gw 192.168.1.1 # удалить шлюз по умолчанию
route add -net 192.168.2.0/24 gw 192.168.1.2 # дополнительный роутинг
route delete -net 192.168.1.0 # удалить маршрут

лучше обойтись без net-tools, поскольку он устарел
ip route add default via 192.168.1.1
ip route add default via 192.168.1.1

https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-networkscripts-static-routes.html
Для того чтобы добавленные маршруты работали после перезапуска системы необходимо прописать их в /etc/sysconfig/network-scripts/route-имя_интерфейса
default 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.1 dev eth0
172.16.1.0/24 via 192.168.0.1 dev eth0

systemctl restart network


для винды
NIC Teaming в Windows Server 2012
Объединения сетевых адаптеров NIC Teaming в Windows server 2012 R2


настройка сети KVM
http://www.linux-kvm.org/page/HOWTO
Enabling Intel VT and AMD-V virtualization hardware extensions in BIOS
Гость может связаться с внешней сетью, но не может получить доступ к хосту (macvtap)
http://onreader.mdl.ru/MasteringKVMVirtualisation/content/Ch05.html
https://wiki.libvirt.org/page/Networking
https://libvirt.org/formatnetwork.html
KVM: Creating a bridged network with NetPlan on Ubuntu 22.04
uzverss первый запуск OpenWRT на QEMU

LC_ALL=C lscpu | grep Virtualization
cat /proc/cpuinfo |egrep "vmx|svm"
grep -E --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo
lsmod | grep kvm

modprobe kvm-amd
sudo apt-get install cpu-checker
kvm-ok

sudo apt-get install virt-manager
sudo usermod -aG libvirtd `id -un`
sudo virsh net-start default

Создание сети мостов KVM Linux NAT
использовать существующую default конфигурацию сети для создания нового сетевого устройства
virsh net-dumpxml default > br0.xml




в virt-manager добавить сетевое устройство и выбрать br0, адрес будет не за виртуальным nat

определить сеть из файла XML без ее запуска
virsh net-define /etc/libvirt/qemu/networks/br0.xml

запустить (ранее определенную) неактивную сеть
virsh net-start br0

создать переходную сеть, которая не может быть настроена на использование автозапуска
virsh net-create br0.xml

добавить сеть в автозапуск
virsh net-autostart br0

Проверить, включен ли флаг автозапуска
virsh net-list --all

преобразовать сетевое имя в UUID сети
virsh net-uuid br0

проверка доступных мостов в вашей системе
brctl show br0

ip addr show dev br0

Удаление сети
отключить сеть, чтобы поместить ее в неактивный режим
virsh net-destroy br0

проверить
virsh net-undefine br0

brctl show br0

перезапустить
service libvirtd restart

добавить br0 интерфейс к vm, pxe который будет настроен как сервер среды Preboot eXecution.
# virsh attach-interface --domain pxe --type bridge --source br0 --model virtio --config --live
# virsh domiflist pxe

Отсоединение интерфейса, подключенного к виртуальной машине
# virsh detach-interface --domain pxe --type bridge --mac 52:54:00:47:2f:eb --config
# virsh domiflist pxe

на виртуалке
/etc/network/interfaces


dhclient -v enp7s0
route add default gw 10.1.0.1 enp7s0
ping -I enp7s0 ya.ru



Создание моста Linux с помощью brctl

Создайте новый мост:
# brctl addbr br0

Добавьте устройство к мосту, например eth0:
# brctl addif br0 eth0

Назначение IP-адреса
# ip addr add dev br0 192.168.2.4/24
# ip route add default via 192.168.2.1 dev br0

Покажите текущие мосты и с каким интерфейсом они связаны:
# brctl show

Установите мостовое устройство вверх:
# ip link set up dev br0

Удалите мост, вам нужно сначала установить его вниз:
# ip link set dev br0 down
# brctl delbr br0


DHCP
Для получения настроек по DHCP, выполняем следующую команду:
dhclient eth0

Для отключения получения IP адреса по DHCP, выполняем следующую команду:
killall dhclient


DNS
update-resolve-conf
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

Если система использует systemd-resolved, то указанный выше IP-адрес будет 127.0.0.53

systemd-resolved
Настройка кеширования DNS с помощью systemd-resolved
resolvectl status
files – считывание настроек из файла /etc/hosts (имеет наивысший приоритет);
myhostname – считывание имени текущего хоста;
resolve [!UNAVAIL=return] – считывание настроек с помощью локального кеширующего DNS-сервера, systemd-resolved поддерживает внутренний каталог с собственным файлом resolv.conf;
dns – обращение напрямую к DNS-серверам (имеет низший приоритет).

vim /etc/systemd/resolved.conf
Указать список основных и запасных DNS. Для этого раскомментируйте параметры DNS= и FallbackDNS= и укажите свои значения.
В параметре DNS= рекомендуется указывать IP-адрес главного маршрутизатора в локальной сети.
В параметре FallbackDNS= рекомендуется указывать любые публичные DNS-серверы, например, 77.88.8.88 – бесплатный DNS-сервер от Яндекс.
При необходимости раскомментируйте и укажите нужные значения для следующих параметров:
DNSSEC=yes – набор расширений протокола DNS, позволяющий минимизировать атаки, связанные с подменой IP-адреса при разрешении доменных имён;
DNSOverTLS=yes – стандартный протокол для выполнения разрешения удалённой системы DNS с использованием TLS;
MulticastDNS=no – многоадресный DNS для поиска устройства или службы по имени в локальной сети;
LLMNR=no – протокол стека TCP/IP, выполняющий разрешение имён хостов в локальной сети.
Включите кеширование, раскомментировав параметр Cache= и установив значение yes.
После настройки конфигурационного файла выполните перезапуск службы systemd-resolved и проверьте её статус:

systemctl restart systemd-resolved
systemctl status systemd-resolved
systemctl enable systemd-resolved.service --now


проверка открытых портов
netstat -ltup; netstat -lntup; netstat -lntupc
ss -lntu; ss -lntup
nmap -n -Pn -sS -sU -p- localhost
lsof -i; lsof -i :80


частые команды
ifdown enp3s0
ifup enp3s0

ip link set enp3s0 up - включить enp3s0
ip link set enp3s0 down выключить enp3s0
ip link set wlan0 down - деактивировать wlan0 (ifconfig wlan0 down)
ip link set wlan0 up -активировать wlan0 (ifconfig wlan0 up)

ip link show up
ip address

ip a - узнать интерфейсы
ip addr add 192.168.100.12/24 dev enp3s0 - изменить адрес
ip addr del 192.168.100.5/24 dev enp3s0 - удалить адрес

ip addr add 172.17.2.11/16 brd + dev br0 - добавить дополнительный адрес
ip addr del 172.17.2.11/16 dev br0 - удалить дополнительный адрес


ifconfig enp3s0 192.168.100.12 netmask 255.255.255.0
ifconfig eth0 192.168.100.12 netmask 255.255.255.0

dhclient enp3s0 - получить по dhcp адрес
dhclient -r - удалить его

ip r sh

ip route add 10.0.0.0/24 via 192.168.1.50
route add -net 192.168.100.0/24 dev eth2
ip route delete 10.0.0.0/24

post-up route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50
pre-down route del -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50

service networking restart
/etc/init.d/networking restart

ethtool eth0
изменить скорость сетевой карточки до 100Mb/s в случае, если там стояла другая скорость.
ethtool -s eth0 speed 100 duplex full

sudo lspci - список pci устройств, среди которых есть и сетевые карты
sudo lspci -v подробнее; sudo lspci -vv - еще подробнее; sudo lspci -vvv - подробнее не бывает :)
sudo lshw - список оборудования, можно посмотреть и логическое имя сетевой карты
sudo lshw -class network список сетевого оборудования с логическими именами
ifconfig, rourte и netstat - устаревшие команды (legacy), вместо них нужно использовать ip и ss


Network namespace - виртуальный сетевой стек в linux
Примеры применения Linux network namespaces (netns)

Команда для очистки ARP кэша в Linux
ip neig flush all

Команда для очистки DNS кэша в Linux
systemd-resolve --flush-caches
systemctl restart systemd-resolved

systemd-resolve --status

ошибки
Определение правильного MTU
ping -M do -s 1500 -c 1 www.example.com
Уменьшайте значение 1500 на 10 каждый раз, пока пинг не будет успешным. Как только пинг завершится успешно, используемым значением будет MTU, которое вы должны использовать.

разное
Network namespaces или несколько виртуальных сетевых карт (интерфейсов) с разными IP на одной машине.
Добавление дополнительных network namespaces к уже настроенным.
Настройте локальный DNS-преобразователь в Ubuntu 20.04 с BIND9
Как заблокировать IP адрес с помощью ufw на Ubuntu Linux

nano /etc/ufw/before.rules
# Block страница блокировки РосТелеком
-A ufw-before-input -s 95.167.13.50 -j DROP
-A ufw-before-input -s 95.167.13.51 -j DROP

ufw reload

nano /etc/host
127.0.0.1 warning.rt.ru

Блокировку Роскомнадзора можно обойти, добавив точку в конец адреса web-сайта

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 4th, 2025 04:59 am
Powered by Dreamwidth Studios