- Modifying existing route entry in linux
- 4 Answers 4
- Маршрутизация в Linux
- [править] Команды
- [править] Использование route
- [править] Использование ip
- [править] Действия с маршрутами
- [править] Equal Cost Multi Path
- [править] IPv6
- [править] Просмотр маршрутов до определенной сети
- [править] Пересылка пакетов между интерфейсами
- [править] Конфигурационные файлы
- [править] Policy routing
- [править] Демоны динамической маршрутизации
- [править] Дополнительная информация
- [править] Примечания
- Просмотр и построение таблиц маршрутизации в Linux
- Как посмотреть таблицу маршрутизации
- Команда route
- Команда netstat
- Построение таблицы маршрутизации
- Route
- Ключи
- Основные опции (command)
- Обозначения
- Опции для указания вводных данных
- IP Route
- Основные опции (command)
- Обозначения
- Опции для указания вводных данных
- Примеры статической маршрутизации
- Составление нового маршрута
- Изменение локальной сети
- Изменение адреса тоннеля
- Изменение провайдера
Modifying existing route entry in linux
what is the command to modify metric of an existing route entry in linux? I am able to change gateway of an existing entry using «ip route change» command as below but not able to change metrics. Is there any other command for that?
route –n 40.2.2.0 30.1.3.2 255.255.255.0 eth2 ip route change 40.2.2.0/24 via 30.1.2.2 route -n 40.2.2.0 30.1.2.2 255.255.255.0 eth1
Here is a website page that has the commands to edit IP addresses using the ifconfig command. I don’t know all the commands off the top of my head, but hopefully this page will help you. tecmint.com/ifconfig-command-examples
Delete the route and then add it again, unless they’ve since fixed lkml.iu.edu/hypermail/linux/net/0504.3/0017.html
I don’t understand what your commands above are trying to show. In one you have a route on eth2 and the other on eth1 . They’re totally different.
4 Answers 4
(Combining various comments into an answer)
Currently, it is not possible to modify a route’s metric. As a 2005 message on LKML states:
[. ] The metric/priority cannot be changed because we do not have separate fields for the fields to match and the new values so if you specify a metric the entry simply won’t be found and the request fails with ENOENT because NLM_F_CREATE is not specified. This is a limitation of the current protocol and it might be a good idea to to change this, however it’s non trivial [. ]
This seems to apply both to ip route change and ip route replace — the former results in an error for me, while the latter creates an additional route as advertised (its man page states that replace will replace or create a route). This is consistent with the kernel responding with ENOENT, and ip route replace following up with a route creation request.
So, the solution is to delete the existing route and add a new one. e.g.
ip route del 40.2.2.0/24 via 30.1.2.2 ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234
Маршрутизация в Linux
Linux предоставляет большой набор функций для маршрутизации и инструменты для ее настройки. Ядро 2.6.x поддерживает:
- Простую статическую маршрутизацию.
- Equal Cost Multi Path маршруты (маршруты до одной сети с одинаковым весом, которые выбираются с равной вероятностью).
- Blackhole-маршруты.
- Множественные таблицы маршрутизации.
- Policy Based Routing
[править] Команды
Для управления маршрутизацией применяются следующие команды: route, netstat, ip (последняя из пакета iproute2, возможно его придется установить).
Просмотреть таблицу можно следующими способами:
route -n (устаревшее) netstat -rn ip route show cat /proc/net/route
При этом следует учитывать, что доступ ко всем возможностям дает только ip. Используя route вы не только не сможете настроить «продвинутые» функции вроде политик маршрутизации, но и не увидите их существование в выводе команды просмотра, если они уже настроены в системе. Поэтому следует по возможности использовать ip.
Модификация таблицы маршрутизации:
[править] Использование route
Добавление маршрута через шлюз: route add -net 192.168.0.0/16 gw 10.0.0.1 Добавление маршрута через интерфейс: route add -net 192.168.0.0/16 dev eth1 Маршрут до отдельного хоста: route add -host 192.168.0.1 gw 172.16.0.1 Удаление маршрута: route del .
[править] Использование ip
Синтаксис ip по структуре напоминает синтаксис Cisco IOS. Любые опции могут быть сокращены до потери двусмысленности, например «ip ro ad» вместо «ip route add».
Добавление маршрута через шлюз: ip route add 172.16.10.0/24 via 192.168.1.1 Добавление маршрута через интерфейс: ip route add 172.16.10.0/24 dev eth0 Маршрут с метрикой: ip route add 172.16.10.0/24 dev eth0 metric 100
Командой вида 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
Если добавить два маршрута до одной и той же сети с одинаковой метрикой, ядро начнет распределять нагрузку между ними путем выбора того или другого с равной вероятностью. Работает и для более чем двух маршрутов. Предупреждение: это может вызвать проблемы со входящими соединениями, потому что иногда ответ может пойти по другому маршруту, чем пришел запрос. Будьте осторожны.
ip route add default dev eth0 ip route add default dev eth1
[править] IPv6
Настройка маршрутизации IPv6 почти идентична настройке для IPv4.
ip route add ::/0 via 2001:db8:dead:beef::1/64
В некоторых дистрибутивах еще есть нерешенная проблема с маршрутом по умолчанию (например, старые версии RHEL), используйте
[править] Просмотр маршрутов до определенной сети
На маршрутизаторах с длинной таблицей может быть неудобно просматривать вывод «ip route show» в поисках нужного маршрута. В этом случае можно использовать команду вида:
которая выведет маршруты только до указанной сети.
[править] Пересылка пакетов между интерфейсами
Linux позволяет разрешить или запретить пересылку пакетов между интерфейсами (forwarding). На рабочих станциях и серверах приложений ее можно запретить, на маршрутизаторах или межсетевых экранах она, очевидно, должна быть разрешена.
За этот параметр для IPv4 отвечает переменная net.ipv4.ip_forward (1 = «разрешить», 0 = «запретить»).
cat /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward
Для IPv6 используйте net.ipv6.conf.all.forwarding
cat /proc/sys/net/ipv6/conf/all/forwarding echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Чтобы настройки сохранились после перезагрузки, пропишите значения net.ipv4.ip_forward и net.ipv6.conf.all.forwarding в /etc/sysctl.conf.
[править] Конфигурационные файлы
Настройки статической маршрутизации находятся в различных файлах, в зависимости от дистрибутива.
- Debian GNU/Linux: /etc/network/interfaces
- RHEL/CentOS/Scientifix: etc/sysconfig/network-scripts/route-
- Gentoo: /etc/conf.d/net
(добавьте свои дистрибутивы, пожалуйста)
[править] Policy routing
ip route add default via 10.0.1.2 ip rule add from 192.168.1.1 lookup 3 ip route add default via 10.0.3.4 table 3
Для хоста 192.168.1.1 используется особенная таблица маршрутизации (table 3), не такая как для всех остальных хостов. В ней указан единственный маршрут — маршрут по умолчанию.
Все будут ходить через шлюз 10.0.1.2, а 192.168.1.1 — через 10.0.3.4.
[править] Демоны динамической маршрутизации
[править] Дополнительная информация
[править] Примечания
Просмотр и построение таблиц маршрутизации в LinuxВся цифровая информация передаётся по сети в виде пакетов данных. По пути от отправителя к адресату они проходят через цепочку промежуточных устройств – маршрутизаторов (роутеров) и/или соответственно настроенных компьютеров. Маршрутизация – это процесс определения пути (сетевого маршрута) для установки соединения между хост-устройствами. Этот путь настраивается как внутри локального устройства, так и на маршрутизаторе. Построение сетевого маршрута происходит на основе информации из таблиц маршрутизации. Для их формирования применяются протоколы маршрутизации или инструкции сетевого администратора. Каждая таблица содержит ряд параметров, позволяющих правильно идентифицировать и читать сетевой маршрут. Таблица содержит минимум 5 разделов:
Опционально в таблице также может содержаться следующая информация:
Как посмотреть таблицу маршрутизацииТаблицу маршрутизации в Linux (например, в популярных серверных ОС типа Ubuntu или CentOS) можно посмотреть с помощью нескольких команд. Команда routeПрограмма используется для настройки параметров статической маршрутизации. Просмотр таблицы можно осуществить с помощью команды: Команда netstatУтилита используется для сбора информации о состоянии сетевых соединений. Вывести таблицу можно с помощью команды: Построение таблицы маршрутизацииСуществует несколько основных утилит для настройки таблицы маршрутизации (добавления, обновления, удаления старых и новых маршрутов):
Оба инструмента могут использоваться для выполнения аналогичных задач. Далее будет рассмотрен синтаксис каждого в пределе основных возможностей. RouteКоманда имеет следующий вид: route [-f] [-p] command -net [destination] netmask [MASK netmask] gw [gateway] metric [METRIC metric] dev [IF interface] Ключи
Основные опции (command)
Обозначения
Опции для указания вводных данныхIP RouteКоманда имеет следующий вид: ip route command [destination] netmask [MASK netmask] via [gateway] metric [METRIC metric] dev [IF interface] Основные опции (command)
Обозначения
Опции для указания вводных данных
Примеры статической маршрутизацииСоставление нового маршрутаМожно представить два офиса: A и B. В каждом стоят маршрутизаторы на Linux, которые соединены между собой IP-IP туннелем. Маршрутизатор A имеет IP-адрес — 192.168.1.1, а маршрутизатор B — 192.168.1.2. Чтобы подключение к локальной сеть маршрутизатора A стало возможным из локальной сети маршрутизатора B и наоборот, нужно прописать на маршрутизаторе B: route add -net 172.16.10.0/24 gw 192.168.1.1 Будет произведена установка шлюза «192.168.1.1» для сети «172.16.10.0/24». Также необходимо прописать на маршрутизаторе A обратный маршрут в локальную сеть маршрутизатора B: route add -net 172.20.0.0/24 gw 192.168.1.2 Изменение локальной сетиВ случае изменения локальной сети маршрутизатора B, необходимо удалить старую запись: route del -net 172.20.0.0/24 gw 192.168.1.2 А после добавить новый маршрут на маршрутизаторе А: route add -net 172.20.0.0/24 gw 192.168.1.2 Изменение адреса тоннеляЕсли на маршрутизаторе B изменится IP-адрес туннеля, то следует также актуализировать адрес шлюза на маршрутизаторе А: ip route replace 172.16.10.0/24 via 192.168.1.3 После выполнения команды адрес шлюза для подсети «172.16.10.0/24» будет изменён. Изменение провайдераЧтобы перенаправить трафик через другого провайдера («ISP2»), следует изменить маршрут «по умолчанию» («default»): ip route replace default via 5.215.98.7 Надежный хостинг для сайта. 14 дней - бесплатно! Мы всегда на связи в соцсетях Поддержка в привычной среде Adblockdetector |
---|