Настройка сети iproute2

17. 11. 2013

iproute2 — это набор утилит для управления сетевыми устройствами в Linux. iproute2 пришел на смену классическому но устаревшему набору net-tools (ifconfig, netstat, route и.т.д) в UNIX. Синтаксис iproute2 проще и легче чем у наследованных *nix утилит.

Настройка сети iproute2

Настройка сети iproute2В набор утилит iproute2 входит три основных утилиты:

ip - эта утилита предназначена для просмотра основных параметров и конфигурирования сетевых интерфейсов.
tc (traffic control) -  просмотр и конфигурирования параметров управления трафиком.
ss - для просмотра открытых портов и текущих соединений.

Утилита ip

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

# ip link list

В моем случае вывело следующие:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp4s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
 link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
 link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff

Расшифровка:

1. lo - это интерфейс локальной петли, он есть у всех.
2. wlp4s0 - интерфейс wifi. DOWN - обозначает, что он отключен.
3. enp2s0 - сетевая карта, как видно она включена (mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000) link/ether **:**:**:**:**:** - это мак адрес (вместо * будет ваш адрес).

( Настройка сети iproute2 )  Представим, что интерфейс enp2s0 выключен и для начала нам нужно его поднять (включить). Для этого вводим следующие:

#  ip link set enp2s0 up

Для выключения (убить интерфейс) аналогичная команда, только вместо up вводим down

#  ip link set enp2s0 down

Далее, настроим сеть. Есть два типа адресов, статический адрес и динамический (DHCP).

Динамический адрес

DHCP устанавливается при помощи стандартной утилиты dhcpcd:

# dhcpcd enp2so

DNS хранятся в файле /etc/resolv.conf, если нужно вносим свои:

# cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.43.174
nameserver 192.168.43.175

Если вы не хотите, чтобы dhcpcd назначал свои адреса, тогда добавьте следующею строку в файл /etc/dhcpcd.conf:

nooption domain_name_servers

Имя локальной машины (hostname) хранится в файле /etc/hostname. Обычно это localhost, может быть любым.

Статический адрес

Для ввода статического адреса, вам необходимо ввести следующее:

# ip addr add 192.168.0.2/24 dev enp2s0

Это тоже самое, что и:

# ip addr add 192.168.0.2 255.255.255.0 dev enp2s0

Этой командой устанавливаем ip 192.168.0.2  и маску 255.255.255.0 для сетевого интерфейса enp2s0.

Далее, добавим шлюз (для примера 192.168.0.1):

# ip route add default via 192.168.0.1

Посмотреть на результат можно тремя командами:

# ip addr ls
# ip addr show
# ip addr ls enp2s0

Первые две команды выведут одинаковый результат (общею картину всех интерфейсов), а третья команда выведет непосредственно информацию о нашем сетевом интерфейсе enp2s0.

Список маршрутов

( Настройка сети iproute2 )  Просмотреть список маршрутов можно командой  «ip ro» это аналог команде «route -n», но выводиться немного по-другому:

# ip ro

Выводит следующие:

default via 192.168.0.1 dev wlan0  proto static
169.254.0.0/16 dev wlan0  scope link  metric 1000
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.3  metric 9

А команда «route -n»

# route -n

Выведет следующие:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 enp2s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp2s0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 enp2s0

Для добавления или удаления маршрутов можно использовать следующею команду — «ip ro add|del destination via gateway». Например, чтобы добавить или удалить маршрут на адрес 10.0.0.1/16.

# ip ro add 10.0.0.1/16 via 192.168.0.1
# ip ro del 10.0.0.1/16 via 192.168.0.1

Более подробная информацию об утилиты ip можно прочитать в мануале:

# man ip

MAC адрес

( Настройка сети iproute2 )  Для того, чтобы узнать наш MAC адрес воспользуемся командой:

# ip link show enp2s0

Нам нужна примерно такая строка:

link/ether 00:1d:98:5a:d1:3a

Для замены MAC адреса, нужно совершить три действия: убить сетевой интерфейс, заменить MAC адрес и снова поднять сетевой интерфейс:

# ip link set dev enp2s0 down
# ip link set dev enp2s0 address **:**:**:**:**:**
# ip link set dev enp2s0 up

Где **:**:**:**:**:** ваш MAC адрес (6 байтовое число в 16ричной форме).

Имя сетевого интерфейса

Например, для замены имени сетевого интерфейса с  enp2s0 на eth0, тоже нужно выполнить три действия (убить, переименовать, поднять):

# ip link set dev enp2s0 down
# ip link set dev enp2s0 name eth0
# ip link set dev eth0 up

На этом все, настройка сети iproute2 завершена.