Настройка и управление сетевой подсистемой Linux (пакет iproute2)
Доброго времени, уважаемые гости и читатели Блога любителя экспериментов. Сегодня хочу затронуть такой вопрос, как управление сетевой подсистемой Linux с помощью программ из пакета iproute2. Для понимания того, о чем здесь пойдет речь обязательно необходимо ознакомиться со статьями Основные понятия сетей и Настройка сети в Linux, диагностика и мониторинг. Начну с небольшой предыстории…
Думаю, очень к месту будет напомнить о модели OSI, ибо с ней (с моделью OSI) в статье будет тесное взаимодействие. Поэтому привожу картинки из статьи. В Linux статическая конфигурация сети настраивается с помощью конфигурационных файлов. Данный способ настройки я рассматривал в статье Настройка сети в Linux, диагностика и мониторинг.
В старых версиях ядер Linux (2.4 и ниже) существовали инструменты настройки сети из пакета net-tools, которые включали в себя такие команды, как ifconfig – для управления сетевыми интерфейсами, route – управление таблицей маршрутизации, arp – управление таблицей разрешения имен, netstat – сетевая статистика, mii-tool – статус сетевых устройств и др. В дистрибутивах, использующих современные ядра внедряется пакет iproute2 (иногда называется iproute) и net-tools оставлен, как некоторые утверждают, для совместимости. В пакет iproute входят 3 основных утилиты: ip – команда для просмотра параметров и настройки сетевых интерфейсов, IP-адресов, таблиц маршрутизации, правил маршрутизации, таблиц ARP преобразования, IP-туннелей и т.д. tc (traffic control) – команда для просмотра и настройки параметров управления трафиком (классификация трафика, дисциплины управления очереди для различных классов трафика), ss – команда для просмотра текущих соединений и открытых портов (аналог netstat).
Управление сетевыми интерфейсами в Linux
Сетевые интерфейсы в линух представляют собой физические устройства, которые взаимодействуют с ядром, а деле и с пользователем через соответствующий драйвер (например Ethernet-драйвера именуют интерфейсы как eth0, eth1 …). Чтобы сетевой интерфейс функционировал, на нем нужно задать настройки какого-либо протокола сетевого уровня (IP, IPX или др.). В современных сетях используется протокол IP. Для управления сетью используется команда ip. Давайте рассмотрим общие параметры команды ip, данные параметры отлично иллюстрирует википедия:
Настройка параметров сетевых интерфейсов
Давайте разберем некоторые аспекты данных команд. Начнем с аналога команды ifconfig – команда ip с параметром link управляет свойствами сетевого интерфейса:
[proxy ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:1d:72:01:ab:93 brd ff:ff:ff:ff:ff:ff 3: irda0: <NOARP> mtu 2048 qdisc noop state DOWN qlen 8 link/irda 00:00:00:00 brd ff:ff:ff:ff 4: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff 5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3 link/ppp
Вывод данной команды содержит пронумерованный список интерфейсов, присутствующих в системе. Информация об интерфейсе содержит две строки: в первой указывается имя интерфейса (lo, eth0 и др.), установленные флаги состояния (в фигурных скобках < и >), MTU (Maximum Transmission Unit, максимально допустимый размер фрейма в байтах), тип и размер очереди фреймов; во второй строке — тип соединения, MAC-адрес, широковещательный адрес и т. п.
Некоторые флаги состояния:
- UP — устройство подключено и готово принимать и отправлять фреймы;
- LOOPBACK — интерфейс является локальным и не может взаимодействовать с другими узлами в сети;
- BROADCAST – устройство способно отправлять широковещательные фреймы;
- POINTTOPOINT — соединение типа “точка-точка”
- PROMISC — устройство находится в режиме “прослушивания” и принимает все фреймы.
- NOARP — отключена поддержка разрешения имен сетевого уровня.
- ALLMULTI — устройство принимает все групповые пакеты.
- NO-CARRIER — нет связи (не подключен кабель).
- DOWN — устройство отключено.
Можно также вывести информацию о выбранном интерфейсе, задав его имя в параметре dev:
[proxy ~]# ip link show dev eth0
или просто:
[proxy ~]# ip link show eth0
Команда ip link также позволяет изменять свойства сетевого интерфейса. Для этого используется параметр set:
iproute:~# ip link show dev eth2 3: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 08:00:27:c9:00:f0 brd ff:ff:ff:ff:ff:ff iproute:~# # установка значения MTU iproute:~# ip link set mtu 1400 eth2 iproute:~# # установка MAC адреса iproute:~# ip link set address 00:11:11:12:FE:09 eth2 iproute:~# # "поднятие" интерфейса iproute:~# ip link set up eth2 iproute:~# ip link show dev eth2 3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:11:12:fe:09 brd ff:ff:ff:ff:ff:ff iproute:~# # отключение интерфейса iproute:~# ip link set down eth2 iproute:~# ip link show dev eth2 3: eth2: <BROADCAST,MULTICAST> mtu 1400 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:11:11:12:fe:09 brd ff:ff:ff:ff:ff:ff
Указанные тут команды являются аналогами “классических” команд из пакета net-tools:
# ifconfig eth2 mtu 1400 # ifconfig eth2 hw ether 00:11:12:13:14:15 # ifconfig eth2 up # ifconfig eth2 down
Управление физическими параметрами интерфейса
Физические параметры (скорость, технология Ethernet, тип дуплекса) сетевого подключения зависят от используемого оборудования и обычно настраиваются автоматически при подключении компьютера к сети. Но иногда из- за несогласованной работы оборудования и драйверов адаптера параметры необходимо выставить вручную, используя утилиту ethtool. Данная утилита включена в стандартные репозитории Debian и устанавливается из пакетного менеджера. Пример использования утилиты:
iproute:~# ethtool eth2 Settings for eth2: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Supports Wake-on: umbg Wake-on: d Current message level: 0x00000007 (7) Link detected: no iproute:~# ethtool -i eth2 driver: e1000 version: 7.3.21-k5-NAPI firmware-version: N/A bus-info: 0000:00:08.0
Настройка параметров сетевых протоколов на физическом интерфейсе
Напомню, что протокол IP является маршрутизируемым протоколом без установления соединения. IP адрес представляет собой комбинацию номера сети и номера узла в данной сети. Количество бит, используемых для номера сети определяется по классу адреса или задается маской подсети. Итого, как я уже говорил, чтобы сетевой интерфейс начал функционировать в соответствии со своим прямым назначением, необходимо на нем задать параметры соответствующего сетевого протокола. Для протокола IP минимально необходимые параметры – это IP адрес и маска подсети. Для настройки параметров протокола IP на сетевом интерфейсе с помощью командной строки необходимо использовать команду ip address (она же ip addr).
user@nout:~$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:25:d3:3f:3e:87 brd ff:ff:ff:ff:ff:ff inet 192.168.1.148/24 brd 192.168.1.255 scope global wlan0 inet6 fe80::225:d3ff:fe3f:3e87/64 scope link valid_lft forever preferred_lft forever
Параметр show отображает текущую конфигурацию. Каждая запись о сетевом адресе может содержать информацию о типе адреса (inet — адрес IPv4, inet6 — IPv6 и т. д.), непосредственно адрес, маску подсети (количество сетевых бит), широковещательный адрес данной сети, область видимости (scope global — действителен везде, scope link — только для данного устройства, scope host — для данного узла, доступные области приведены в /etc/iproute2/rt_scopes) и имя логического интерфейса.
user@nout:~$ # добавление адреса выполняется параметром add user@nout:~$ # при этом необходимо задать широковещательный адреc user@nout:~$ # (параметр brd + задает автоматический рассчет широковещательного адреса) user@nout:~$ # данная операция требует прав суперпользователя user@nout:~$ ip address add 192.168.1.3/25 brd + dev eth0 RTNETLINK answers: Operation not permitted user@nout:~$ sudo -s [sudo] password for user: nout:~# ip address add 192.168.1.3/25 brd + dev eth0 nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/25 brd 192.168.1.127 scope global eth0 nout:~# # удаление адреса производится параметром del nout:~# ip address del 192.168.1.3/25 dev eth0 nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff
C помощью ip можно задать несколько IP адресов на одном интерфейсе:
nout:~# ip address add 192.168.1.11/25 brd + dev eth0 nout:~# ip address add 192.168.1.12/25 brd + dev eth0 nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/25 brd 192.168.1.127 scope global eth0 inet 192.168.1.12/25 brd 192.168.1.127 scope global secondary eth0 nout:~# ip address del 192.168.1.11/25 dev eth0 nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff nout:~# ip address add 192.168.1.12/25 brd + dev eth0 nout:~# ip address add 192.168.1.212/25 brd + dev eth0 nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff inet 192.168.1.12/25 brd 192.168.1.127 scope global eth0 inet 192.168.1.212/25 brd 192.168.1.255 scope global eth0
При добавлении адреса из той же сети, что и существующий, новый адрес становится дополнительным к существующему (secondary), и если удалить основной адрес, то будет удален и дополнительный. При этом, команда ifconfig не умеет отображать второй Ip:
nout:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 90:e6:ba:2f:c1:d4 inet addr:192.168.1.12 Bcast:192.168.1.127 Mask:255.255.255.128 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:1 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:43
Возможно создать ifconfig – совместимую реализацию способа использования нескольких IP-адресов на одном сетевом интерфейсе. Для этого следует в команде ip addr add использовать параметр label:
nout:~# ip address add 192.168.12.212/25 brd + dev eth0 label eth0:newdev nout:~# ifconfig eth0 Link encap:Ethernet HWaddr 90:e6:ba:2f:c1:d4 inet addr:192.168.1.12 Bcast:192.168.1.127 Mask:255.255.255.128 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:1 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:43 eth0:newdev Link encap:Ethernet HWaddr 90:e6:ba:2f:c1:d4 inet addr:192.168.12.212 Bcast:192.168.12.255 Mask:255.255.255.128 UP BROADCAST MULTICAST MTU:1500 Metric:1 Interrupt:43
nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff inet 192.168.1.12/25 brd 192.168.1.127 scope global eth0 inet 192.168.1.212/25 brd 192.168.1.255 scope global eth0 inet 192.168.12.212/25 brd 192.168.12.255 scope global eth0:newdev nout:~# ip address flush dev eth0 nout:~# ip address show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 90:e6:ba:2f:c1:d4 brd ff:ff:ff:ff:ff:ff
Как видно, параметр flush очищает все установленные на интерфейсе IP адреса.
Управление ARP-таблицей
В локальной сети текущий хост для определения физических адресов (MAC-адресов) по IP-адресам удаленных узлов использует протокол ARP и локальный ARP -кэш (ARP-таблицу). Управление ARP-таблицей осуществляется командой ip neigh. Каждый узел локальной сети (в том числе и хабы/свичи) содержат свою локальную ARP-таблицу (кэш), которая устанавливает соответствие между IP и MAC-адресами узлов подсетей, в которые входит данную сеть. В ARP-таблице имеются два вида записей:
- Динамические записи, которые периодически обновляются с использованием протокола ARP (если запись “устаревает”, то она удаляется).
- Статические записи, которые создаются пользователем с помощью соответствующих команд и существуют до тех пор, пока текущий узел не будет выключен/перезагружен.
nout:~# # отображение содержимого таблицы ARP nout:~# ip neigh show 192.168.1.1 dev wlan0 lladdr bc:ae:c5:c3:c9:31 REACHABLE nout:~# # добавление статической записи в ARP таблицу nout:~# ip neigh add 192.168.1.100 lladdr 00:00:00:11:00:22 dev wlan0 nout:~# ip neigh show 192.168.1.100 dev wlan0 lladdr 00:00:00:11:00:22 PERMANENT 192.168.1.1 dev wlan0 lladdr bc:ae:c5:c3:c9:31 REACHABLE nout:~# # удаление записи nout:~# ip neigh del 192.168.1.100 dev wlan0 nout:~# ip neigh show 192.168.1.1 dev wlan0 lladdr bc:ae:c5:c3:c9:31 REACHABLE
Управление маршрутизацией с помощью iproute2
Из статьи Основные понятия сетей мы знаем, что если текущему узлу необходимо куда-либо отправить IP пакет, то сетевая подсистема ядра использует таблицу маршрутизации. Если пакет отправляется в ту же подсеть, которой принадлежит хост, то с помощью ARP определяется физический адрес хоста назначения и пакет отправляется напрямую хосту назначения. Если адрес назначения принадлежит не “локальной сети”, то пакет отправляется на шлюз (читай – направляется по маршруту), который указан в таблице маршрутизации для сети, которой принадлежит хост назначения. При этом, выбирается та сеть, в которой адрес сети наиболее заполнен (читай – меньше хостов в подсети). Если для хоста назначения не найден маршрут, то пакет отправляется на “шлюз по умолчанию”. Все шлюзы должны находиться в той же подсети, что и исходный хост.
Допустим, в локальной сети есть некоторый хост с адресом 192.168.1.100/24, а так же есть хост 192.168.1.1, который является шлюзом в глобальную сеть, а так же есть хост с адресом 192.168.1.2, который является связующим маршрутизатором с сетью 192.168.24.0/24 (то есть имеет еще один интерфейс в сеть 192.168.24.0/24 и на нем включен форвардинг). Для того, чтобы хост с адресом 192.168.1.100/24 имел доступ в сеть Интернет и к локальной сети 192.168.24.0/24, необходимо внести в таблицу маршрутизации соответствующие записи, например с помощью команды ip route add:
# ip route add default via 192.168.1.1 # ip route add 192.168.24.0/24 via 192.168.1.2 # ip route show 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.100 192.168.24.0/24 via 192.168.1.2 dev eth1 default via 192.168.1.1 dev eth
Первая команда добавляет маршрут по умолчанию (default) через узел 192.168.1.1 (параметр via ). Вторая команда устанавливает маршрут на сеть 192.168.24.0/24 через узел 192.168.1.2.
Для вывода на экран содержимого таблицы маршрутизации используется команда ip route show. В данном случае в таблице маршрутизации три записи: первая о том, что сеть 192.168.1.0/24 доступна непосредственно на интерфейсе eth1 (запись добавляется автоматически), и две записи, добавленные пользователем: альтернативный маршрут и маршрут по умолчанию.
Добавление постоянного статического маршрута при инициализации сети
О настройке сети через конфигурационные файлы я рассказывал в статье Настройка сети в Linux, диагностика и мониторинг, в сегодняшней статье я немного дополню эту информацию. С помощью файла /etc/network/interfaces есть возможность задать постоянные маршрута при поднятии интерфейса и удаление маршрута при выключении интерфейса. Это делается с помощью параметра up и down соответственно. Нижеприведенная конфигурация позволяет задать маршрут до сети 192.168.100.0/24 через шлюз 192.168.1.1:
iface eth1 inet static address 192.168.1.100 netmask 255.255.255.0 up ip route add 192.168.100.0/24 via 192.168.1.1 down ip route del 192.168.100.0/24 gateway 192.168.1.3
Выводы
На этом, данную заметку заканчиваю. Подведу краткие итоги. Для управления физическими интерфейсами применяется команда ip link из пакета iproute. Для настройки свойств физического подключения (скорость, технология, тип дуплекса используется команда ethtool. Для того, чтобы хост мог взаимодействовать с другими узлами подсети в рамках локального сегмента (широковещательного домена) на нем должен быть установлен IP-адрес и определена маска подсети. Для управления IP-адресами в Linux можно использовать команду ip addr. В локальной сети данный узел для определения физических адресов(MAC) по IP – адресам других узлов использует протокол ARP и локальный ARP -кэш (таблица). Управление ARP -таблицей осуществляется командой ip neigh. Для взаимодействия с удаленными подсетями на данном узле необходимо определить шлюз по умолчанию или/и альтернативные шлюзы. Все шлюзы должны находиться в той же подсети, что и исходный узел. Управление таблицей маршрутизации на узле может осуществляться командой ip route. У параметров команд пакета iproute2 есть сокращенный синтаксис, например, ip link show eth0 можно записать как ip l sh eth0.
Что почитать
man ip
man interfaces
Linux Advanced Routing & Traffic Control HOWTO
С Уважением, Mc.Sim!
Другие материалы в категории основы Linux
- Текстовый редактор VIM, основы работы
- ddrescue или спасаем данные с HDD
- Резервное копирование файлов сайта по ssh
- Седьмой релиз Debian
- Использование ramdisk в Linux (ramdisk, ramfs, tmpfs) или препарирование рамдисков
- SNMP протокол (основы)
- Установка антивирусного сканера ClamAV на Debian
- HOWTO использование backports в Debian
- Конспект установки Debian на сервер
- SSH сервер на Debian
хотя с этой темой я знаком, но не плохо было освежить в памяти основы Спасибо! Теперь я постоянный читатель вашего блога
Пожалуйста!
Приходите еще, буду рад новым визитам!
Как вводная статья очень даже хорошо.
Каждый раз как дело касается iproute негодую. Все слишком неочевидно, зачем команду вывода Arp таблицы называть ip neigh (от слова “соседи”, выходит, хрен догадаешься), да и вывод не такой наглядный как у команды arp (легко запомнить, очевидное название).
Всему этому не хватает дополнения по ? в конце, как в Cisco IOS. Это бы значительно упростило работу с нею
На 100500% согласен со всем вышесказанным
хотябы не по вопросу, а по Tab Tab, как в Linux
P.S. Хотя есть же великий help, например:
[root@proxy ~]# ip help
Но это же блин жудко неудобноUsage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] [-batch filename
where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
tunnel | maddr | mroute | monitor | xfrm }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-f[amily] { inet | inet6 | ipx | dnet | link } |
-o[neline] | -t[imestamp] }
[root@proxy ~]# ip neigh help
Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ]
[ nud { permanent | noarp | stale | reachable } ]
| proxy ADDR } [ dev DEV ]
ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ]
Ага, неудобно, привыкаем))
А статья очень годная, уже не первый раз к ней обращаюсь когда что то сделать нужно.
При создании vlan через файл /etc/netwok/interfaces и установки опции gvrp on, команда /etc/init.d/networking start выполняется без ошибок и все интерфейсы поднимаются, в том числе и vlan’ы. Но вот опция gvrp не включается. Если после этого исполнить команду ip link set dev VLANNAME type vlan gvrp on – опция включается.
Есть соображения по этому поводу??
А чего за ядро? Вроде Debian эту “экзотику” поддерживает с 2.6.32-5.
Если ядро новее, то думаю, что стоит опцию gvrp on заменить на
up /bin/ip link set dev VLANNAME type vlan gvrp on
и будет все ок… Наверно ))
Если честно, не нашел ни водном мануале опцию gvrp on. Думаю, что такой опции просто нет…
Ну да, так и сделал… работает корректно
Классная статья!
Хотелось бы нечто подобное увидеть по tc и ss, а также по ip rule, ip tunnel, ip xfrm.
Ждем продолжения
В дополнение к предыдущему комментарию.
Подскажите, не могу найти, как сохранить сделанные изменения через iproute, чтобы они не потерялись после перезагрузки?
Чтобы изменения сохранились, необходимо добавить команду iproute с соответствующими параметрами в файлы инициализации сети вашей системы. (например, в Debian – /etc/network/interfaces)
тут имеется ввиду что у 192.168.1.2 есть еще сетевой интерфейс который смотрит в сеть 192.168.24.0/24? Да?
Все верно.
Моё видение опции neigh в iproute2.
В команде ip используется neigh для упрощения зоопарка терминов ipv4, ipv6 и использования единой терминологии в команде.
Так как в ipv6 ARP не применим, а есть NDP (Neighbor Discovery Protocol) основанный на ICMPv6, то чтобы не выдумывать ещё названия сделали просто – neigh.
P.S. А так да – cisco, juniper CLI оно конечно удобно))
да, есть в ваших словах определенная логика.
Спасибо.
Спасибо за статью и за весь блог, очень подробно и понятно, кроме одного момента. В самом конце в interfaces применены и up и down так и должно быть? Не получиться так что они сначала пропишут маршрут а затем следом уберут? Или это только как флаги, типо если eth1 поднят то прописывается маршрут, а стоит его выключить, он удаляется?
да, все верно. Это как указатели на действие при поднятии и выключении интерфейса.
Хорошая статья, тут описывается как назначить ip интерфейсу, а как быть если надо по dhcp получить адрес? или это можно сделать только так dhclient -v eth0?
Вы сами спросили и сами ответили )
Привет, кто подскажет
В локальной сети есть компьютер (Debian) c usb wifi адаптерами подключенные к разным wifi сетям wlan0, wlan1 и т.д. под разными внешними ip.
Например, если этот комп(Debian) в eth0 имеет ip 192.168.0.10 можно ли как то получать доступ в интерент через него по схеме:
мой комп(192.168.0.2) -> eth0 192.168.0.10:3128 -> wlan0 (внешний ip 123.123.123.1)
мой комп(192.168.0.2) -> eth0 192.168.0.10:3129 -> wlan1 (внешний ip 123.123.123.2)
Я хочу использовать Debian в локалке, как прокси для смены внешнего ip, для парсинга сатйов.
Установил прокси-сервер Squid на Debian (192.168.0.10), выход в интерент с внешним ip (eth0) происходит. Каким инструментом мне теперь завтсваить выходить в интеренет через этот squid через wlan0 хотя бы? Утилита ip мне поможет в этом?
Если нужно только веб-трафик перенаправлять, то вы в правильном направлении идете.
В squid нужно разрешить запуск на 2х портах (как у вас указано 3128 и 3129).
Создать 2 acl, которые будут обрабатывать запросы по этим портам и задать исходящий интерфейс для этого acl с помощью параметра
tcp_outgoing_address ipaddr [[!]aclname]
Про squid я писал в соответствующих статьях: https://www.k-max.name/category/linux/squid/.