- Управление сетевыми маршрутами в Debian 9 Stretch
- Посмотреть маршруты
- Добавить временный статический маршрут
- Добавить постоянный статический маршрут
- Изменить статический маршрут
- Удалить статический маршрут
- Sysadminium
- Получение информации о сетевых интерфейсах
- Настройка IP адреса
- Настройка DNS сервера
- Утилита IP
- Добавление статических маршрутов
- Итог
Управление сетевыми маршрутами в Debian 9 Stretch
Рассмотрим как управлять статическими маршрутами (static routes). Сетевые маршруты бывают временные, которые действую до перезагрузки сетевой службы, либо системы и постоянные маршруты.
Посмотреть маршруты
Вывести список всех имеющихся маршрутов, командой (ip route):
ip route default via 192.168.1.254 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2 192.168.7.0/24 dev eth1 proto kernel scope link src 193.268.7.2
Добавить временный статический маршрут
Добавление статического маршрута в сеть 192.168.7.0/24 через шлюз 192.168.1.1, командой (ip route add):
ip route add 192.168.7.0/24 via 192.168.1.1
Посмотреть прохождение маршрута, можно командой (ip route get):
ip route get 192.168.7.2 192.168.7.2 via 192.168.1.1 dev eth1 src 192.168.1.2 cache ipid 0x9bbc mtu 1500 advmss 1460 hoplimit 64
Добавить постоянный статический маршрут
Постоянные статические маршруты добавляются в файл конфигурации сети (/etc/network/interfaces), в описание необходимого интерфейса.
post-up ip route add default via 172.16.100.1 pre-down ip route del default via 172.16.100.1
Опция post-up — означает запустить команду после поднятия интерфейса, а pre-down — означает запустить команду перед отключением интерфейса.
auto eth0 iface eth0 inet static address 192.168.1.2 network 255.255.255.0 gateway 192.168.1.1 post-up ip route add default via 172.16.100.1
Данные параметры применяться после следующей инициализации сетевой карты. Перезагружаем систему либо отключаем\включаем сетевой интерфейс:
Изменить статический маршрут
Изменить разово статический маршрут, можно командами (ip route replace / ip route change):
ip route replace default via 192.168.1.1 dev ens192 ip route replace 192.168.1.0/24 via 192.168.1.1
ip route change default via 192.168.1.1 dev ens192 ip route change 192.168.1.0/24 via 192.168.1.1
Для изменения постоянного маршрута, необходимо вносить изменения в конфигурационный файл (/etc/network/interfaces), для нужного сетевого интерфейса.
Удалить статический маршрут
Удалить маршрут, командой (ip route del):
Понравилась или оказалась полезной статья, поблагодари автора
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Sysadminium
Настройка сети — это один из важнейших навыков системного администрирования, и в этой статье мы научимся настраивать сеть на Debian 11.
Получение информации о сетевых интерфейсах
Так как в предыдущем уроке мы научились пользоваться и устанавливать sudo на debian, то для административных действий теперь будем использовать эту утилиту. А настройка сети — это административное действие на любой системе, в том числе и на Debian.
Определить какие интерфейсы есть у вашего сервера поможет утилита lshw. Но её предварительно нужно установить с помощью следующей команды:
Эта утилита предназначена для определения железа вашего сервера. Например, с её помощью можно посмотреть какой на сервере процессор или оперативная память. Используя параметр -С network получим информацию только по сетевым устройствам:
$ sudo lshw -C network *-network description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 12 bus info: pci@0000:00:12.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:11 ioport:e0a0(size=32) memory:fea52000-fea52fff memory:fe408000-fe40bfff memory:fea00000-fea3ffff *-virtio2 description: Ethernet interface physical id: 0 bus info: virtio@2 logical name: ens18 serial: 2a:75:9e:4d:1d:fa capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.28.90.31 link=yes multicast=yes
Из этого вывода вы можете получить следующую информацию:
- logical name: ens18 — имя сетевого интерфейса;
- serial: 2a:75:9e:4d:1d:fa — mac-адрес;
- ip=172.28.90.31 — ip-адрес;
- и другое.
Утилита lshw в основном используется, чтобы узнать имя и возможности сетевой карты. А для получения информации о mac и ip адресах нужно использовать другую утилиту — ip. Эта утилита командной строки не так проста, команда ip имеет множество подкоманд, которые мы изучим в этой статье. И первая подкоманда это address — она означает, что работать мы будем с ip-адресами. У подкоманды address, тоже есть свои подкоманды, например подкоманда show покажет информацию о назначенных ip-адресах. В самом конце команды можно указать имя сетевого интерфейса, чтобы получить информацию только по нему, а не по всем сетевым интерфейсам в системе.
Все эти подкоманды можно сокращать, например address = addr, show = sh. Но пока не будем этого делать, так как вначале нужно их запомнить.
Для того чтобы посмотреть, какие настройки использует сетевой интерфейс ens18 выполним команду ip address show ens18 :
$ ip address show ens18 2: ens18: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 2a:75:9e:4d:1d:fa brd ff:ff:ff:ff:ff:ff altname enp0s18 inet 172.28.90.31/20 brd 172.28.95.255 scope global dynamic ens18 valid_lft 258476sec preferred_lft 258476sec inet6 fe80::2875:9eff:fe4d:1dfa/64 scope link valid_lft forever preferred_lft forever
Здесь мы также видим mac и ip адрес с маской подсети.
Этот ip адрес был получен по dhcp.
Настройка IP адреса
Чтобы изменить ip адрес на какой-нибудь другой, нужно отредактировать конфигурационный файл «/etc/network/interfaces». Но вначале глянем на него с помощью команды cat:
$ cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug ens18 iface ens18 inet dhcp
Посмотрим внимательнее на блок настроек для интерфейса ens18:
- # The primary network interface — это комментарий, так как в начале строки стоит символ #. Он ни на что не влияет, просто подсказывает нам, что следующие за ним настройки редактируют основной сетевой интерфейс (ens18).
- allow-hotplug ens18 — разрешает горячее подключение для интерфейса ens18. То есть этот сетевой интерфейс будет включен при старте системы.
- iface ens18 inet dhcp — интерфейс ens18 будет получать настройки с помощью dhcp.
Чтобы назначить другой статический ip адрес нужно отредактировать этот блок в файле, например с помощью текстового редактора nano.
$ sudo nano /etc/network/interfaces ***** пропущу другие блоки настроек ***** # The primary network interface allow-hotplug ens18 iface ens18 inet static address 172.28.90.77/20 gateway 172.28.80.1
То есть меняем dhcp на static и ниже указываем адрес интерфейса (address) и адрес шлюза по умолчанию (gateway).
Дальше нужно перезагрузить сетевую подсистему чтобы применились изменения. Для этого можно воспользоваться следующими командами:
- $ sudo systemctl restart networking.service — перезагружает службу отвечающую за сеть на сервере, но если сетевых интерфейсов несколько, то все они на время окажутся недоступными. Также эта команда у меня не всегда срабатывала, то есть после перезапуска службы, интерфейс оказывался без назначенного ip адреса. Поэтому я не рекомендую этот способ.
- $ sudo ifdown ens18; sudo ifup ens18 — это две команды, которые выполнятся по очереди. Первая команда (ifdown ens18) отключит сетевой интерфейс, а вторая (ifup ens18) включит. Эта команда меня ещё не подводила.
- $ sudo reboot — эта команда перезагрузит сервер полностью. После чего сервер загрузится уже с новыми сетевыми настройками.
В любом случае вы отвалитесь от сервера, так как были подключены к нему по ssh по другому ip адресу. Вам придется заново подключиться к серверу, но использовать уже новый ip адрес.
Настройка DNS сервера
Чтобы указать серверу, какой ему использовать dns сервер, нужно редактировать конфигурационный файл /etc/resolv.conf. Давайте взглянем на него:
$ cat /etc/resolv.conf nameserver 172.28.80.1
Этот адрес был получены от dhcp сервера. Но его можно изменить прям в этом файле:
$ sudo nano /etc/resolv.conf nameserver 77.88.8.8
После редактирования этого файла ничего перезагружать не нужно, настройки подхватятся на лету. Проверить это можно с помощью команды nslookup, которая определит ip адрес по имени используя указанный dns сервер.
$ nslookup ya.ru Server: 77.88.8.8 Address: 77.88.8.8#53 Non-authoritative answer: Name: ya.ru Address: 87.250.250.242 Name: ya.ru Address: 2a02:6b8::2:242
Как видим, был использован dns от Яндекса — 77.88.8.8. Именно его мы внесли в конфиг /etc/resolv.conf.
Утилита IP
Теперь более подробно разберем утилиту ip.
Работая с ней вы используете различные подкоманды. Все их рассматривать не будем. Разберём лишь некоторые из них:
- address — позволяет назначать и удалять ip адреса, просматривать их и тому подобное.
- link — можно включить или выключить сетевой интерфейс, посмотреть список интерфейсов и их mac адреса.
- neigh — можно добавить или удалить mac адрес из arp таблицы, или полностью её очистить.
- route — позволяет создавать новые маршруты и удалять их, а также просматривать уже созданные маршруты.
У этих подкоманд есть свои подкоманды. Например, чтобы посмотреть информацию используется общая подкоманда show:
# ip address show - посмотреть ip адреса # ip link show - посмотреть физические устройства # ip neigh show - посмотреть arp таблицу # ip route show - посмотреть таблицу маршрутизации
Во всех случаях можно указывать конкретный интерфейс:
Помимо просмотра информации можем настраивать сеть, например можно добавить или удалить ip адрес на интерфейсе. Но в отличии от правки конфигурационного файла, изменённый ip адрес этим способом будет действовать только до перезагрузки сервера:
# ip address add 192.168.0.44/24 dev ens18 - добавить ip для ens18 # ip address del 192.168.0.44/24 dev ens18 - удалить ip для ens18
Также можем добавлять или удалять маршруты. Такие маршруты тоже будут действовать только до перезагрузки сервера:
# ip route add 192.168.5.0/24 via 192.168.0.10 - добавить маршрут # ip route delete 192.168.5.0/24 - удалить маршрут
Можем включать и выключать сетевые интерфейсы:
# ip link set ens18 up - включить # ip link set ens18 down - выключить
Кстати, выключение и включение сетевых интерфейсов с помощью ip link set не перечитывают настройки из /etc/network/interfaces, поэтому если вы что-то там изменили, то выполняйте ifdown и ifup.
Можем очистить arp таблицу:
Если хотите, можете почитать мануал по команде ip. На русском языке он доступен тут.
Добавление статических маршрутов
Чтобы добавленный маршрут остался после перезагрузки его нужно вписать в уже знакомый файл /etc/network/interfaces в таком виде:
up ip route add 192.168.5.0/24 via 192.168.0.10
То есть в конце файла, с новой строки пишите up, а дальше команду с помощью которой вы создаете маршрут.
Итог
Вот мы и прошли тему «Настройка сети Debian«.
Мы познакомились с командами lshw, и ip. Научились настраивать сеть с помощью конфигурационных файлов /etc/network/interfaces и /etc/resolv.conf, а также с помощью команды ip. Научились включать и выключать сетевые интерфейсы с помощью команд ifup и ifdown.
Настраивая сеть мы теперь можем указать ip адрес, адрес шлюза, адрес dns сервера, а также можем создать отдельные маршруты. Это не все сетевые настройки, которые можно сделать, их намного больше, можно даже создать свой роутер на Debian, но это выходит за рамки этого курса.