Linux предоставляет большой набор функций для маршрутизации и инструменты для ее настройки. Ядро 2.6.x поддерживает:
Простую статическую маршрутизацию.
Equal Cost Multi Path маршруты (маршруты до одной сети с одинаковым весом, которые выбираются с равной вероятностью).
Blackhole-маршруты.
Множественные таблицы маршрутизации.
Policy Based Routing
Содержание
[править] Команды
Для управления маршрутизацией применяются следующие команды: route, netstat, ip (последняя из пакета iproute2, возможно его придется установить).
Просмотреть таблицу можно следующими способами:
При этом следует учитывать, что доступ ко всем возможностям дает только ip. Используя route вы не только не сможете настроить «продвинутые» функции вроде политик маршрутизации, но и не увидите их существование в выводе команды просмотра, если они уже настроены в системе. Поэтому следует по возможности использовать ip.
Модификация таблицы маршрутизации:
[править] Использование route
[править] Использование ip
Синтаксис ip по структуре напоминает синтаксис Cisco IOS. Любые опции могут быть сокращены до потери двусмысленности, например «ip ro ad» вместо «ip route add».
Командой вида ip route add blackhole 10.56.50.0/27 можно добавить «зануленный» маршрут (аналог «ip route . null0» в Cisco). Пакеты в сеть с таким маршрутом будут удалены с причиной «No route to host». Может быть полезно для подавление DoS-атаки с хоста или иных подобных случаев.
[править] Действия с маршрутами
Кроме add также поддерживаются и другие действия:
del — удалить маршрут.
replace — заменить маршрут другим.
change — изменить параметры маршрута.
[править] Equal Cost Multi Path
Если добавить два маршрута до одной и той же сети с одинаковой метрикой, ядро начнет распределять нагрузку между ними путем выбора того или другого с равной вероятностью. Работает и для более чем двух маршрутов. Предупреждение: это может вызвать проблемы со входящими соединениями, потому что иногда ответ может пойти по другому маршруту, чем пришел запрос. Будьте осторожны.
[править] IPv6
Настройка маршрутизации IPv6 почти идентична настройке для IPv4.
В некоторых дистрибутивах еще есть нерешенная проблема с маршрутом по умолчанию (например, старые версии RHEL), используйте
[править] Просмотр маршрутов до определенной сети
На маршрутизаторах с длинной таблицей может быть неудобно просматривать вывод «ip route show» в поисках нужного маршрута. В этом случае можно использовать команду вида:
которая выведет маршруты только до указанной сети.
[править] Пересылка пакетов между интерфейсами
Linux позволяет разрешить или запретить пересылку пакетов между интерфейсами (forwarding). На рабочих станциях и серверах приложений ее можно запретить, на маршрутизаторах или межсетевых экранах она, очевидно, должна быть разрешена.
За этот параметр для IPv4 отвечает переменная net.ipv4.ip_forward (1 = «разрешить», 0 = «запретить»).
Для IPv6 используйте net.ipv6.conf.all.forwarding
Чтобы настройки сохранились после перезагрузки, пропишите значения net.ipv4.ip_forward и net.ipv6.conf.all.forwarding в /etc/sysctl.conf.
[править] Конфигурационные файлы
Настройки статической маршрутизации находятся в различных файлах, в зависимости от дистрибутива.
Для хоста 192.168.1.1 используется особенная таблица маршрутизации (table 3), не такая как для всех остальных хостов. В ней указан единственный маршрут — маршрут по умолчанию.
Все будут ходить через шлюз 10.0.1.2, а 192.168.1.1 — через 10.0.3.4.
Источник
Как удалить маршрут из таблицы маршрутизации Linux
Это оказывается сложнее, чем я думал. Маршруты, которые я хочу удалить, — это «!». отклоненные маршруты, но я не могу сформулировать правильную команду «route del», чтобы отключить ее.
Вот таблица маршрутизации .
У меня есть две записи для 192.168.46.79 и 10.1.0.0. Они автоматически генерируются небольшим маршрутизатором на базе Linux, который я использую. Я могу пинговать туннели IPSEC из самой оболочки, но трафик из локальной сети занимает второй маршрут (отклоненный маршрут «!» Или «! H») по причинам, которые я просто не понимаю.
3 ответа
с помощью команды route -n вы получите
sudo route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0
вы получите все параметры соответственно сверху
Типы маршрутов с флагом ! либо недоступны, либо запрещены. route , будучи старинной утилитой из сетевых инструментов, не различает их. Используйте iproute2.
Метод сетевых инструментов для удаления этих маршрутов будет состоять в том, чтобы использовать route del . Однако сетевые инструменты не позволяют различать отклоненный маршрут и другой (поскольку аргумент dev является необязательным, хотя не указывая, что устройство, вероятно, удалит недостижимый маршрут).
iproute2 позволяет сделать это следующим образом:
Это может быть недопустимо, но запретить. Используйте ip route без аргументов, чтобы определить, какой из них.
Я думаю, что это так: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2
Я не уверен на 100%. Но, я думаю, у вас есть что-то еще, что происходит, поскольку у вас есть два маршрута по умолчанию.
Источник
Настройка сетевых маршрутов в Linux (CentOS)
В этой статье мы рассмотрим особенности настройки маршрутизации и управления маршрутами в Linux (просмотр таблицы маршрутизации, добавление/удаление статических маршрутов и т.д.) на примере CentOS с помощью утилиты ip. Статья применима и для любого другого дистрибутива Linux с утилитой ip (Red Hat, Fedora и т.д.).
Просмотр таблицы маршрутизации в Linux
Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:
default via 192.168.1.1 dev enp0s3 – шлюз по умолчанию, в данном примере работающий через интерфейс enp0s3. Если для target адреса в таблице маршрутизации отсутствует маршрут, то такой пакет отправляется через данный шлюз (маршрут по умолчанию)
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 — статический маршрут для сети 192.168.1.0/24 через адрес 192.168.1.201, который прописан на интерфейсе
proto kernel – маршрут создан ядром ( proto static – маршрут добавлен администратором)
metric – приоритет маршрута (чем меньше значение metric, тем выше приоритет). При наличии двух маршрутов с одинаковой метрикой (не стоит так делать!), ядро начинает выбирать маршруты случайным образом.
Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:
# ip route get 192.168.2.45
Как добавить или удалить статический маршрут?
Чтобы добавить новый маршрут к определенной 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 адреса (хоста):
# 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 (выполняется при загрузке сервера).
Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:
В моем случае, интерфейс enp0s3.
Далее открываем следующий файл:
И добавляем туда строку с маршрутом:
После добавления маршрута в файл нужно перезапустить сервис network:
# service network restart
После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.
Также можно добавить команду добавления нового маршрута в файл rc.local, чтобы он автоматически добавлялся при загрузке сервера. Откройте файл:
И укажите команду добавления маршрута:
# ip route add 192.168.0.0/24 via 192.168.1.1
Теперь, если ваш сервер будет перезагружен, маршрут пропишется автоматически при загрузке системы.
Изменить маршрут в Linux
Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:
# ip route replace 192.168.0.0/24 via 192.168.1.1
Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:
]# service network restart
Изменить маршрут по умолчанию
Вы можете удалить маршрут по-умолчаню с помощью команды ip route del:
# ip route del default via 192.168.1.1 dev enp0s3
Чтобы указать новый маршрут по-умолчанию в CentOS используется команда:
# ip route add default via 192.168.1.2 (маршрут через IP адрес шлюза)
# ip route add default via enp0s3 (маршрут через имя устройства)
Чтобы изменить параметры маршрута по умолчанию, используется команда:
Источник
Для системного администратора
—> Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15 Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия
Добавление, просмотр, удаление статического маршрута в ОС FreeBSD, Linux, Windows
Ответ на частые вопросы:
Как добавить статический маршут ?
Как посмотреть таблицу маршрутизации ?
Для примера будем добавлять маршрут в сеть 10.10.0.0/16 (маска 255.255.0.0) через gateway 10.10.1.1/24
Не забывайте , что маршрут добавится ТОЛЬКО если на вашем компьютере есть IP-адрес который входит в одну подсеть с gateway (в данном примере gateway 10.10.1.1, значит у вас должен быть настроен IP-адрес из сети 10.10.1.0/24 т.к IP-адрес gateway имеет маску /24 (255.255.255.0))
FreeBSD
Добавление:
route add 10.10.0.0/16 10.10.1.1
если после выполнения команды вам говорится, что команда не найдена, то используйте полный путь до команды route (и для других команд):
так же если прочитать:
то можно узнать, что статический роутинг можно добавить и так:
Просмотр таблицы маршрутизации выполняется командой:
Удаление:
/sbin/route delete 10.10.0.0/16
Linux
Добавление:
route add -net 10.10.0.0/16 gw 10.10.1.1
ip route add 10.10.0.0/16 via 10.10.1.1
Просмотр таблицы:
Удаление:
route delete -net 10.10.0.0 netmask 255.255.0.0
Windows
Откройте командную строку (cmd).
Добавление:
route add 10.10.0.0 mask 255.255.0.0 10.10.1.1
Просмотр:
Удаление:
route delete 10.10.0.0 mask 255.255.0.0 10.10.1.1
Если у Вас все ещё есть вопросы, то прочтите мануал (инструкцию) к данным командам в Вашей ОС.
Постовой
В этом магазине я рекомендую всем купить мобильный телефон. Очень большой выбор и хорошие цены. Покупал себе и знакомым, очень доволен.
Портал Фэшн Джанки знает все модной одежде и обуви: кроссовки adidas и кроссовки nike, уличная мода и прочее. Смотреть обязательно.
4 комментов оставлено (Add 1 more)
В linux команду ip route можно сократить до ip r.
Опять же, для Венды чтобы маршрут сохранился после перезагрузки, добавляем опцию “-p”: route add -p 10.10.0.0 mask 255.255.0.0 10.10.1.1
В приведенном выше примере маршруты не останутся после перезагрузки. Для RHEL-like дистрибутивов: /etc/sysconfig/network-scripts/route-eth0 – Файл статической маршрутизации, с синтаксисом: 192.168.124.0/24 via 192.168.0.220 dev eth0 или: ADDRESS0=192.168.124.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.0.220
А как же netsh routing ip add ? Самое важное в Windows-командной строке опустили. )
Источник
Добавление и удаление маршрутов Windows Линукс Linux cheatSheet || Шпаргалка
Главная » Инструкции » Добавление и удаление маршрутов Windows Линукс Linux cheatSheet || Шпаргалка
Маршруты в Windows
route print — вывести список всех маршрутов, ключ -4 выведет все маршруты только по протоколу ipv4
Добавить маршрут в Windows
Синтаксис добавления маршрута в CMD
где: Ключ -p (persistent) добавит статический маршрут, т.е. он сохранится после перезагрузки. Во избежание стрельбы себе в ногу лучше сначала добавить без -p, протестить и потом уже добавить с -p. SUBNET ID — подсеть которую мы добавляем SUBNET MASK — маска для нового маршрута METRIC — вес маршрута от 1 до 9999, чем меньше значение, тем выше приоритет маршрута GATEWAY — гейтвей для новой подсети, по сути первый hop в который сервер отправит трафик INTERFACE ID — необязательно, нро лучше указываем интерфейс, иначе может забиндиться на другой NIC и отправить трафик в неверном направлении, прописываем route print и смотрим внутренний номер интерфейса
Добавить маршрут в CMD
Прочитать можно так: чтобы трафик попал в подсеть 192.168.0.0/24, нужно обратиться к узлу 192.168.1.1 через сетевой интерфейс с айди 11
Добавить маршрут в PowerShell
Тут вместо route print используется Get-NetRoute Get-NetAdapter используется чтобы узнать Interface Index
Удалить маршрут в Windows
Удалить маршрут в CMD
Удалить маршрут в PowerShell
Маршруты в Linux Линукс
route -n — вывести список всех маршрутов
Добавить маршрут в Linux Линукс
Добавить статический маршрут в Linux
В /etc/network/interfaces, после описания интерфейса, следует добавить: