Таблица маршрутизации в linux

Как добавить или удалить статический маршрут?

Чтобы добавить новый маршрут к определенной IP подсети в таблицу маршрутизации Linux, нужно выполнить следующую команду:

# ip route add 192.168.0.0/24 via 192.168.1.1

Таким образом, мы добавим маршрут для IP сети 192.168.0.0/24 через шлюз 192.168.1.1.Формат команды ip route очень похоже на синтаксис в Cisco IOS. Здесь также можно исопльзовать сокращений, например вместо ip route add можно написать ip pro ad.

Также можно добавить отдельный маршрут для одного IP адреса (хоста):

# ip route add 192.168.1.0 via 192.168.1.1

Можно сделать аналог null route маршрута в Cisco (ip route null0), пакеты в такую сеть удаляются по причине No route to host:

# ip route add blackhole 10.1.20.0/24

Маршруты, добавленные таким образом являются временным и будут работать до перезагрузки сетевой службы или сервера.

Чтобы удалить созданный вручную маршрут, выполните:

# ip route del 192.168.0.0/24

Как видите, маршрут удален из таблицы маршрутизации.

Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл rc.local (выполняется при загрузке сервера).

Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:

Далее открываем следующий файл:

# nano /etc/sysconfig/network-scripts/route-enp0s3

И добавляем туда строку с маршрутом:

192.168.0.0/24 via 192.168.1.1

После добавления маршрута в файл нужно перезапустить сервис network:

# service network restart

После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.

Также можно добавить команду добавления нового маршрута в файл rc.local, чтобы он автоматически добавлялся при загрузке сервера. Откройте файл:

И укажите команду добавления маршрута:

# ip route add 192.168.0.0/24 via 192.168.1.1

Теперь, если ваш сервер будет перезагружен, маршрут пропишется автоматически при загрузке системы.

Объединение интерфейсов (bonds)

С помощью bonds мы можем объединить интерфейсы с целью обеспечения отказоустойчивости и/или повышения пропускной способности.

Пример настройки:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens2f0: {}
        ens2f1: {}
    bonds:
        bond0:
            dhcp4: no
            interfaces:
            — ens2f0
            — ens2f1
            parameters:
                mode: active-backup
            addresses:
                — 192.168.122.195/24
            gateway4: 192.168.122.1
            mtu: 1500
            nameservers:
                addresses:
                    — 8.8.8.8
                    — 77.88.8.8

* в данном примере мы объединяем физические интерфейсы ens2f0 и ens2f1; настройка parameters mode указываем на тип объединения — доступны варианты:

  • balance-rr (задействуются оба интерфейса по очереди, распределение пакетов по принципу Round Robin).
  • active-backup (используется только один интерфейс, второй активируется в случае неработоспособности первого).
  • balance-xor (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy).
  • broadcast (задействуются оба интерфейса одновременно, пакеты передаются все интерфейсы).
  • 802.3ad (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy)
  • balance-tlb (задействуются оба интерфейса по очереди, пакеты распределяются в соответствии с текущей нагрузкой)

Принятие решений о переадресации

Давайте взглянем на три маршрута, которые мы только что установили в таблице маршрутизации, и посмотрим, как они выглядят на маршрутизаторе.

Если пакет прибывает на интерфейс маршрутизатора с адресом назначения 192.168.32.1, какой маршрут выберет маршрутизатор? Это зависит от длины префикса или количества бит, установленного в маске подсети. При пересылке пакета более длинные префиксы всегда предпочтительнее коротких.

В этом примере, пакет, отправленный по адресу 192.168.32.1 направляется в сеть 10.1.1.1, так как адрес 192.168.32.1 находится в сети 192.168.32.0/26 (192.168.32.0–192.168.32.63). Адресу соответствуют еще два доступных маршрута, но у 192.168.32.0/26 наиболее длинный префикс в таблице маршрутизации (26 бит против 24 и 19).

Точно так же, если пакет, направленный на адрес 192.168.32.100, прибывает на один из интерфейсов маршрутизатора, он перенаправляется на 10.1.1.2, поскольку 192.168.32.100 не попадает в диапазон адресов 192.168.32.0/26 (от 192.168.32.0 до 192.168.32.63), но попадает в диапазон адресов 192.168.32.0/24 назначения (от 192.168.32.0 до 192.168.32.255). Опять, он также попадает в область, перекрытую 192.168.32.0/19, но 192.168.32.0/24 имеет более длинный префикс.

Ip classless

Для тех адресов, для которых команда ip classless configuration попадает в данный диапазон, возможно возникновение сбоев в процессе маршрутизации и пересылки. В реальности команда «IP classless» влияет только на работу процессов переадресации IOS, но не влияет на построение таблицы маршрутизации. Если функция «IP classless» не настроена (с помощью команды no ip classless), маршрутизатор не будет переадресовать пакеты в подсети. Для примера снова поместим три маршрута в таблицу маршрутизации и проведем пакеты через маршрутизатор.

Примечание: Если суперсеть или маршрут по умолчанию получены через IS-IS или OSPF, то команда no ip classless configuration игнорируется. В этом случае режим коммутация пакетов работает так, как если бы команда ip classless была настроена.

Помня о том, что сеть 172.30.32.0/24 включает адреса с 172.30.32.0 по 172.30.32.255, а сеть 172.30.32.0/20 включает адреса с 172.30.32.0 по 172.30.47.255, мы можем выполнить коммутацию трех пакетов с использованием этой таблицы маршрутизации и проанализировать результаты.

  • Пакет, направленный по адресу 172.30.33.1, переадресуются на 10.1.1.2, так как этот маршрут имеет наибольший префикс.

  • Пакет, предназначенный для адреса 172.30.33.1, пересылается на 10.1.1.2, из-за совпадения самого длинного префикса.

  • Пакет, направленный по адресу 192.168.10.1 переадресуются на 10.1.1.3. Так как сеть отсутствует в таблице маршрутизации, пакет переадресуется на маршрут по умолчанию.

  • Пакет, отправленный по адресу 172.30.254.1, отбрасывается.

Удивительно, что из этих четырех пакетов был отброшен последний. Он отброшен потому, что его место назначения 172.30.254.1 находится внутри известной крупной сети 172.30.0.0/16, но маршрутизатор не знает об этой отдельной подсети внутри этой крупной сети.

На этом основана маршрутизация типа classful: Если одна часть основной сети известна, но подсеть в этой основной сети, для которой предназначен пакет, не известна, пакет отбрасывается.

Самым сложным для понимания аспектом этого правила является то, что маршрутизатор использует только маршрут по умолчанию, если крупная сеть назначения вообще не существует в таблице маршрутизации.

Это может вызвать проблемы в сети, когда удаленный участок с одной связью к остальной части сети не выполняет никаких протоколов маршрутизации, как проиллюстрировано.

Маршрутизатор удаленного сайта настраивается следующим образом:

В такой конфигурации узлы на удаленном узле могут достичь назначения через Интернет (через облако 10.x.x.x), но не назначений в облаке 10.x.x.x, которое является корпоративной сетью. Поскольку удаленный маршрутизатор обладает информацией о части сети 10.0.0.0/8, двух напрямую подключенных подсетях и ничего не знает о другой подсети диапазона 10.x.x.x, то он предполагает, что таких подсетей не существует, и сбрасывает предназначенные для них пакеты. Однако трафик, направленный в Интернет, не имеет получателя в диапазоне адресов 10.x.x.x и поэтому правильно направляется по стандартному маршруту.

Настройка бесклассового IP на удаленном маршрутизаторе позволяет решить эту проблему, так как она позволяет удаленному маршрутизатору игнорировать границы класса сетей в таблице маршрутизации и выполнять маршрутизацию просто по совпадению с наибольшей длиной префикса.

Использование ip

Синтаксис ip по структуре напоминает синтаксис Cisco IOS. Любые опции могут быть сокращены до потери двусмысленности, например ip ro ad вместо ip route add.

Назначить маршрут по умолчанию

1
2
3

ip route add defaultvia192.168.1.1

 

Действия с маршрутами
Кроме add также поддерживаются и другие действия:

del — удалить маршрут.
replace — заменить маршрут другим.
change — изменить параметры маршрута.
Equal Cost Multi Path

Если добавить два маршрута до одной и той же сети с одинаковой метрикой, ядро начнет распределять нагрузку между ними путем выбора того или другого с равной вероятностью. Работает и для более чем двух маршрутов. Предупреждение: это может вызвать проблемы со входящими соединениями, потому что иногда ответ может пойти по другому маршруту, чем пришел запрос. Будьте осторожны.

1
2
3
4

ip route add defaultdev eth0

ip route add defaultdev eth1

 

Переходим к сетевым настройкам Linux

Узнав информацию о текущих подключениях, можно переходить к настройкам локальной сети в Linux. У нас есть 3 способа сделать это:
— через графическую оболочку;
— используя команду ifconfig либо инструмент Network Manager;
— используя конфигурационные файлы сетевого сервиса Network либо Networking.

В принципе, последний способ считается одним из самых удобных и надёжных.
Чтобы настроить сеть в Linux, нужно открыть файл, который содержит конфигурацию интерфейса. Здесь всё будет зависеть от того, какой именно Linux-дистрибутив используется.

Файл с параметрами сетевых подключений здесь:

/etc/network/interfaces

Чтобы поменять в Linux настройки сети, файл надо открыть с root-правами любым текстовым редактором. Например, используя nano:

sudo nano /etc/network/interfaces

Чтобы обеспечить автоматическое получение адресов от DHCP-сервера, нужно прописать:

allow-hotplug eth0
iface eth0 inet dhcp

Если же адрес нужно прописать статически, указываем:

allow-hotplug eth0
iface eth0 inet static
address 192.168.1.2  
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1

В этой конфигурации мы рассмотрели лишь пример обычной домашней сети, в которой адрес компьютера 192.168.1.2, а адрес DNS-сервера и шлюза (их функции обычно выполняет wifi-роутер) — 192.168.1.1.

Вариант № 2. RedHat-based дистрибутивы (OpenSuse, CentOS, Fedora)

Наш файл с настройками сети Linux находится здесь:

/etc/sysconfig/network-scripts/ifcfg-eth0

Мы открываем его с помощью nano или vim:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

Если нужно обеспечить автоматическое получение настроек от DHCP-сервера:

DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00-1C-1B-11-F6-07
ONBOOT=yes

А вот статический IP-адрес:

DEVICE=eth0
HWADDR=00-1C-1B-11-F6-07
IPADDR=192.168.1.2
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
ONBOOT=yes

В этом случае IP-адреса DNS-серверов прописываются в файле:

/etc/resolv.conf

Вот, к примеру, для публичных DNS-серверов от Google:

nameserver 8.8.8.8
nameserver 8.8.4.4

В принципе, это всё, и настройка сети в Linux завершилась. Осталось лишь выполнить перезапуск сети:

service network restart

Можно и так:

/etc/init.d/network restart

Примеры использования ip

Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip.

1. Просмотр IP адресов

Чтобы посмотреть все IP адреса, связанные с сетевыми интерфейсами используйте такую команду:

Или:

Для просмотра информации в кратком виде используйте опцию -br:

Можно посмотреть IP адреса только по определённому сетевому интерфейсу, например: enp0s3:

Или:

Можно отобразить только статические IP адреса:

Или только динамические:

2. Добавление IP адреса

Чтобы присвоить IP адрес для устройства нужно использовать команду add. Её общий синтаксис такой:

$ ip addr add IP_адрес/маска dev интерфейс

Например, давайте присвоим тому же интерфейсу enp0s3 IP адрес 10.0.2.100 с маской подсети 255.255.255.0:

Маску можно указать и в сокращённом виде:

3. Удаление IP адреса

Чтобы удалить IP адрес из интерфейса надо использовать команду del. Синтаксис её очень похож на предыдущую команду. Например, удалим IP адрес 10.0.2.100:

Можно удалять IP адреса по одному или удалить все сразу с помощью команды flush:

Или же можно удалить адреса только определённой подсети:

Если вы будете применять эти команды к интерфейсу, с помощью которого у вас работает сеть, то сеть пропадёт и чтобы её вернуть надо будет перезагрузить сетевые службы.

Чтобы посмотреть список сетевых интерфейсов используйте объект link:

Или:

5. Включение или выключение интерфейсов

Для решения этой задачи тоже используется объект link, но с командой set. Синтаксис её такой:

$ ip link set dev интерфейс действие

В качестве действия можно использовать up или down. Например, чтобы отключить интерфейс enp0s3 выполните:

А чтобы включить его обратно:

6. Настройка MTU

Параметр MTU означает размер одного пакета, передаваемого по сети. Этот размер можно изменить с помощью команды set. Например, увеличим MTU для enp0s3 до 4000 тысяч байт:

7. Настройка MAC адреса

Адрес MAC — это физический адрес, который используется для определения какому устройству надо передать сетевой пакет в локальной сети. Прежде чем настраивать MAC адрес ваше устройство надо отключить:

Затем можно установить адрес:

А потом включить интерфейс обратно:

8. Таблица ARP

Именно протокол ARP отвечает за преобразование IP адресов в низкоуровневые MAC адреса. Для того чтобы не отправлять ARP запросы каждый раз в сеть, кэш хранится в таблице ARP на протяжении 20-ти минут. Чтобы посмотреть содержимое таблицы ARP используйте такую команду:

Или

9. Добавление записи в таблицу ARP

Обычно записи в эту таблицу попадают автоматически, но вы можете добавить их и вручную. Для этого используйте команду add объекта neigh:

В этом примере я заставил компьютер думать, что узел с IP 192.168.0.105 это 192.168.0.1. Теперь можно попытаться выполнить ping по этому адресу и оно будет работать, несмотря на то, что реально такого узла в сети нет.

10. Очистка таблицы ARP

Вы можете удалять IP адреса по одному с помощью команды del:

Можно удалить все записи для определённого сетевого интерфейса:

Или очистить таблицу полностью командой flush:

Для просмотра таблицы маршрутизации используйте объект route и команду show:

Или:

12. Добавление маршрута

Синтаксис добавления нового маршрута в таблицу маршрутизации такой:

$ ip route add подсеть/маска via шлюз

Вместо шлюза можно указать сетевой интерфейс с помощью которого надо отправлять пакеты:

$ ip route add подсеть/маска dev устройство

Например, добавим новый маршрут для сети через тот же IP адрес:

Или можно указать сетевой интерфейс через который надо отправлять пакеты для определённой сети:

Включать интерфейс при загрузке

Чтобы не включать сетевой интерфейс каждый раз вручную можно в настройках прописать ONBOOT=yes

Как вариант можно перейти в

И отредактировать с помощью

vi

файл

ifcfg-ИМЯ_ИНТЕРФЕЙСА
— например

ifcfg-enp0s3

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Либо под root использовать

sed

sudo sed -i sONBOOT=noONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-enp0s3

Если команда выше вам не до конца понятна — изучите статью

«Основы sed»

Проверить получилось ли изменить ONBOOT на yes можно командой

grep ONBOOT !$

Подробную информацию о каждом сетевом интерфейсе можно получить выполнив nmcli connection show имя_интерфейса

Например:

nmcli connection show ens192

connection.id: ens192
connection.uuid: 5c2584c5-7d87-4826-ba2a-79713eb62a9a
connection.stable-id: —
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1618914913
connection.read-only: no
connection.permissions: —
connection.zone: —
connection.master: —
connection.slave-type: —
connection.autoconnect-slaves: -1 (default)
connection.secondaries: —
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
802-3-ethernet.port: —
802-3-ethernet.speed: 0
802-3-ethernet.duplex: —
802-3-ethernet.auto-negotiate: no
802-3-ethernet.mac-address: —
802-3-ethernet.cloned-mac-address: —
802-3-ethernet.generate-mac-address-mask:—
802-3-ethernet.mac-address-blacklist: —
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels: —
802-3-ethernet.s390-nettype: —
802-3-ethernet.s390-options: —
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: —
ipv4.method: auto
ipv4.dns: —
ipv4.dns-search: —
ipv4.dns-options: «»
ipv4.dns-priority: 0
ipv4.addresses: —
ipv4.gateway: —

Работа с утилитой ifconfig

В завершении сетевых настроек хотел немного поговорить об ifconfig. Ранее я упомянул, что более современным средством для настройки сети является утилита ip. В последних релизеах Debian и CentOS ifconfig вообще исключили из базовой установки, ее приходится устанавливать отдельно. IP объединяет в себе два функционала — настройка сетевых интерфейсов и маршрутизации. То есть по сути она заменяет ifconfig + route. В ней реализован функционал обоих программ.

Сам я привык к ifconfig, так как она есть не только в linux, но и в freebsd. Удобно использовать одно и то же средство во всех дистрибутивах. Но последнее время переучиваюсь на ip, так как надо идти в ногу со временем. Тенденция такова, что ip будут продвигать все сильнее и сильнее в силу его большей новизны и, наверное, удобства. Что касается удобства, лично я ничего не могу сказать, мне совершенно все равно, какую команду использовать:

или

Делают они одно и то же. Остальные команды по конфигурированию сетевых интерфейсов тоже не сильно отличаются, просто пишутся немного по-разному. Вот пример работы с маршрутами:

или

В случае с ip мы работаем с одной командой, а не двумя. Чем пользоваться вам, выбирайте сами. Если не привыкли к чему-то конкретному, рекомендую использовать ip. Мне было бы любопытно узнать, кто, что использует. Оставьте свой комментарий на эту тему.

На этом я завершаю свой материал по теме настройки сети в debian. Я рассмотрел все наиболее значимые и необходимые параметры, с которыми приходится сталкиваться во время конфигурирования сервера.

Предварительные условия

Требования

Использование данного документа требует наличия следующих знаний.

  • Подключение к маршрутизатору с помощью консоли, портов aux и vty.

  • Общие проблемы конфигурации IOS.

  • Интерпретация выводов команд debug IOS

Используемые компоненты

Настоящий документ не имеет жесткой привязки к устройству или какой-либо версии ПО.

Сведения, содержащиеся в данном документе, были получены с устройств в специальной лабораторной среде. Все устройства, используемые в этом документе, были запущены с чистой (заданной по умолчанию) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.

Предупреждения

Команды debug необходимо использовать с осторожностью. Обычно рекомендуется использовать эти команды только под руководством представителя технической поддержки своего маршрутизатора при выявлении конкретных неполадок.. Включение режима отладки может повлиять на работу маршрутизатора при высокой загрузке внутренней сети

Следовательно, если включена регистрация событий, сервер будет периодически недоступен, если порт консоли перегружен сообщениями о регистрации

Включение режима отладки может повлиять на работу маршрутизатора при высокой загрузке внутренней сети. Следовательно, если включена регистрация событий, сервер будет периодически недоступен, если порт консоли перегружен сообщениями о регистрации.

Используя команду debug, всегда принимайте во внимание объем выходных данных этой команды и время ее выполнения. Например, если имеется маршрутизатор с одним интерфейсом базового уровня (BRI), команда debug isdn q931 не повредит системе

Однако такая же отладка на AS5800 с полной конфигурацией E1 приведет к такому объему входных данных, что устройство может «зависнуть».

Перед использованием отладки определите степень загруженности процессора, применив команду show processes cpu. Перед началом отладки убедитесь, что имеющийся CPU обладает достаточной производительностью. Дополнительные сведения об управлении процессором в случае высокой загрузки см. в документе Устранение неполадок, связанных с высокой загрузкой процессора в маршрутизаторах Cisco. Например, при наличии маршрутизатора Cisco 7200 с интерфейсом ATM, использующего мост, – в зависимости от количества настроенных субинтерфейсов – перезагрузка маршрутизатора может вызвать высокую загрузку процессора. Здесь причиной является то, что для каждого виртуального канала необходимо создать пакет BPDU. Начало отладки в столь критический период может вызвать резкое увеличение загрузки CPU и привести к зависанию или потере сетевого соединения.

Примечание. При работе отладчика приглашение маршрутизатора обычно не видно, особенно в моменты интенсивной отладки. Однако в большинстве случаев для остановки процесса отладки можно использовать команды no debug all или undebug all. Дополнительные сведения о безопасном использовании отладки см. в разделе .

Условные обозначения

Дополнительные сведения об условных обозначениях в документах см. в статье Условные обозначения, используемые в технической документации Cisco.

Настройка IPv6 при установке CentOS 8

Если вы хотите задать настройки для IPv6, то перейдите на соответствующую вкладку. Возможные варианты настройки:

  • Игнорировать (Ignore) – IPv6 игнорируется для этого соединения.
  • Автоматическая (Automatic) – NetworkManager использует объявление маршрутизатора (RA) для создания автоматической конфигурации без сохранения состояния.
  • Автоматически, только адреса (Automatic, addresses only) – NetworkManager использует RA для создания автоматической конфигурации без сохранения состояния, но DNS-серверы и поисковые домены игнорируются и должны настраиваться вручную.
  • Автоматический, только DHCP (Automatic, DHCP only) – NetworkManager не использует RA, но запрашивает информацию у DHCPv6 напрямую для создания конфигурации с сохранением состояния.
  • Ручная (Manual) – Параметры IPv6 настраиваются вручную для статической конфигурации.
  • Link-Local Only – link-local адрес с FE80 ::/10 префиксом назначается интерфейсу


Если вы выбрали метод, который требует ввода параметров вручную, введите сведения об IP-адресе для этого интерфейса, маске сети и шлюзе. Используйте кнопки Добавить и Удалить, чтобы добавить или удалить адреса. Введите разделенный запятыми список DNS-серверов в поле DNS-серверов и разделенный запятыми список доменов в поле “Search Domain” для любых доменов, которые вы хотите включить в поиск серверов имен. При желании введите имя для этого сетевого подключения в поле идентификатора клиента DHCP (DHCP client ID).Это имя должно быть уникальным в подсети. Когда вы назначаете значимый идентификатор клиента DHCP для соединения, это соединение легко идентифицировать при устранении неполадок в сети. Снимите флажок, если он стоит “Require IPv6 addressing for this connection to complete (Требовать адресацию IPv6 для этого соединения для завершения)“, чтобы разрешить системе устанавливать это соединение в сети с поддержкой IPv4, если конфигурация IPv6 не удалась, но конфигурация IPv4 прошла успешно.
Сохраняем все сетевые настройки. Теперь можно сказать, что вы произвели базовую настройку сети при установке CentOS 8, можно дальше продолжить инсталляцию.

Настройка шлюза по-умолчанию в CentOS 8

Если есть необходимость поменять шлюз по умолчанию, или задать его при его отсутствии, то это легко делается. Для начала вам необходимо посмотреть текущие параметры, кто в вашей системе шлюз по умолчанию, для этого есть старая, добрая команда:

netstat -nr

Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.253.2 0.0.0.0 UG 0 0 0 ens36
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.253.0 0.0.0.0 255.255.255.0 U 0 0 0 ens36

В итоге в моем примере есть основной шлюз 0.0.0.0 192.168.235.2. Напоминаю, что в системе может быть только один шлюз по умолчанию.

Если хотите поменять его, то для этого вы можете ввести команду:

route add default gw 192.168.31.1

Если нужно удалить шлюз или маршрут, то для этого есть ключ del.

route del default gw 192.168.31.1

Создаем VLAN через subinterface

Для настройки тегированного интерфейса, на сервере должен быть загружен модуль ядра Linux — 8021q. Для загрузки модуля, выполните:

Если модуль уже загрузен, появится ошибка: .

Проверим, загрузился ли модуль:

8021q 33080 0
garp 14384 1 8021q
mrp 18542 1 8021q

Все ок, модуль 8021q имеется.

Создадим VLAN c ID 7 для сетевого интерфейса eth0. Добавляем конфигурационный файл ifcfg-eth0.7 (7 после точки это назначаемый номер VLAN). В этом файле содержится описание подинтерфейса VLAN.

И вписываем следующее содержимое:

ONBOOT=yes
TYPE=Ethernet
VLAN=yes
DEVICE=eth0.7
BOOTPROTO=static
IPADDR=10.16.20.10
NETMASK=255.255.255.0

Данный файл конфигурации связывает виртуальный интерфейс eth0.7 с физическим интерфейсом eth0. После создания файла конфигурации, нужно перезапустить сервис network:

Проверим сетевые настройки:

Как видим, сабинтерфейс с нужным нам VLAN7 добавлен.

Текущие привязки интерфейсов и VLAN можно вывести:

Статистику интерфейса можно получить так (с помощью счетчиков пакетов можно убедиться, что VLAN интерфейс получает маркированный трафик) :

Чтобы выполнить ping с определенного интерфейса VLAN, используйте формат команды:

Как изменить имя в CentOS 8

Давайте я покажу вам какой конфигурационный файл отвечает за имя хоста (Hostname). Если вы или не вы во время установки CENTOS 8 не удосужились задать правильное DNS имя вашего сервера, то у вас оно по умолчанию будет localhost.localdomain. Посмотреть, это можно командой uname или hostname.

uname -n или hostname

В моем примере, это CentOS 8

Предположим, что я хочу сделать имя SuperCentOS01, для этого отредактируйте конфигурационный файл etc/hostname. Пишем команду;

vi etc/hostname

либо вы можете воспользоваться и вот такой командой, чтобы задать нужное имя хоста в CentOS 8:

hostnamectl set-hostname SuperCentos01

Примечания

  1. Поскольку альтернативных маршрутов к сети 10.0.0.0 не существует, фактически ввод данных о метрике не требуется. Однако всегда рекомендуется проявлять предусмотрительность и вводить данные о метрике, чтобы можно было уменьшить объем работы по администрированию сети на тот случай, если конфигурация сети в дальнейшем изменится. Следует также ответить, что с точки зрения настройки конфигурации, статические маршруты в действительности не имеют метрики. При вводе в статический маршрут параметра, который в терминах ISO именуется «метрикой», фактически для этого статического маршрута задается так называемое административное расстояние. При условии, что используются только статические маршруты, административное расстояние можно рассматривать как аналог метрики, но различия между этими параметрами станут существенными только после перехода к применению в сети динамических маршрутизирующих протоколов.
  2. Следует учитывать, что маршрутизатор всегда использует наиболее конкретный маршрут, который он может найти в таблице маршрутизации. Например, если пакет должен быть передан по адресу 10.1.1.1, а маршрутизатор имеет данные о маршрутах к сетям 10.0.0.0/8, 10.1.1.0/24 и 0.0.0.0/0, то он воспользуется маршрутом 10.1.1.0/24. Это правило известно под названием правила поиска адреса с наибольшим количеством совпадающих битов.
  3. Метод распределения нагрузки по резервным статическим маршрутам известен под названием распределения нагрузки с учетом равной стоимости; при этом каналы и пропускная способность в обоих маршрутах должны быть примерно равными. Если это условие не соблюдается, то один канал будет перегружен, а другой недогружен. Такая ситуация называется микрозатором.
  4. Обычно система IOS компании Cisco позволяет распределять нагрузку по статическим маршрутам, количество которых может достигать шести.
  5. При использовании статической маршрутизации резервирование обеспечивает нормальную работу только при отказах прямого канала. Средства статической маршрутизации не позволяют обнаружить отказ удаленного устройства и не обеспечивают удаление из таблицы маршрутизации маршрута через отказавший резервный канал. Поэтому доставка пакетов периодически нарушается. (При наличии двух каналов отказ резервного канала влечет за собой потерю 50% пакетов, при наличии трех каналов — 33% пакетов и т.д.)
  6. В системе IOS компании Cisco предусмотрено, чтобы маршруты с более высокой метрикой в таблице маршрутизации не были показаны. Но после возникновения отказа прямого канала эти маршруты вставляются в таблицу маршрутизации и используются обычным образом.

Установка статического IP

nmcli conn show

NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Настроим статический IP адрес для enp0s8

Настройки сети хранятся в директории

Отредактировать нужно файл

ifcfg-enp0s8

Основные параметры:

TYPE — тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;

BOOTPROTO — способ получения IP адреса, static, dhcp или none;

NAME — имя соединения;

DEVICE — имя сетевого интерфейса;

ONBOOT — необходимо ли запускать при старте системы;

IPADDR — IP адрес, который будет использован для этого компьютера;

GATEWAY — шлюз для доступа к интернету;

NETMASK — маска сети;

DNS1 — сервер для разрешения доменных имен DNS.

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=939a0551-f5b5-46d8-87fe-24e5e7b1a0c1
DEVICE=enp0s8
ONBOOT=yes

Заключение

С помощью бесплатного дистрибутива Linux мы смогли за считанные минуты настроить шлюз для организации доступа в интернет компьютеров из локальной сети. У меня ушло минут 10 на настройку шлюза по этой инструкции. Если вы делаете это первый раз, то конечно у вас уйдет гораздо больше времени. Нужно будет разобраться в нюансах, к тому же я дал много ссылок на дополнительный материал.

Давайте разберемся в том, что мы сделали:

  1. Выполнили предварительную настройку сервера, подготовили его к работе.
  2. Включили маршрутизацию.
  3. Настроили firewall.
  4. Включили NAT.
  5. Установили и настроили dnsmasq для организации служб dns и dhcp.
  6. Проанализировали сетевую активность шлюза, узнали кто загружает канал интернета.

Это минимально необходимый функционал для организации работы шлюза на CentOS 7. Следующим этапом может быть настройка прокси сервера, шейпера траффика, настройка 2-х и более провайдеров и много другое. Что-то из этого я рассмотрю в своих будущих статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: