- Как добавить статические маршруты (routes) в Ubuntu
- Добаление маршрута в linux (static routes)
- Как сохранить статический маршрут
- Как посмотреть маршруты в системе
- Сохранить статический маршрут в CentOS (Redhat)
- How To Add New Route In Ubuntu, Linux?
- Display/List Existing Routing Table and Information By Using ip Command
- Display/List Existing Routing Table and Information By Using route Command
- Display/List Existing Routing Table and Information By Using netstat Command
- Add New Route with ip Command
- Add New Route By Using route Command
- Check New Route
- Delete/Remove Existing Route By Using route Command
- [Routing] Шпаргалка про роутинг в Ubuntu
- А теперь пример#
- How to Permanently add Static Route in Linux
- Adding temporary static routes
- Adding permanent static routes
- Conclusion
- Настройка маршрутизации в Linux
- Дополнение 1.
- Дополнение 2.
- Дополнение 3.
Как добавить статические маршруты (routes) в Ubuntu
Written by on 28.09.2015 . Posted in Linux
Добаление маршрута в linux (static routes)
В память можно добавить маршрут используя route или через ip ro
синтаксис route
route add [-net|-host] netmask gw dev X
синтаксис ip ro
ip route add via
Все параметры можно посмотреть ip route help
примечание: в команде ip можно использовать сокращенный синтаксис ip ro … в место ip route …
Для удаления статического маршрута используйте del вместо add
Как сохранить статический маршрут
Все эти маршруты будут добавлены в память и сохранятся до перезагрузки. Если необходимо, загружать маршруты при загрузки системы, то необходимо добавить их в файл конфигурации интерфейсов (для ubuntu и debian). /etc/network/interfaces
Добавим в конец файла следующую сточку:
up ip ro add 192.168.2.0/24 via 192.168.0.1
пример файла конфигурации.
Как посмотреть маршруты в системе
Сохранить статический маршрут в CentOS (Redhat)
- Необходимо отредактировать (если нет создать) файл
/etc/sysconfig/network-scripts/route-ethX — ethX заменить на номер интерфейса (eth0, eth1 …)
добавить следующие строки:
X.X.X.X — заменить на нужные значения
Другой вариант добавить маршруты в файл /etc/sysconfig/static-routes. Если нет этого файла — необходимо создать.
Пример содержания фала:
PS: Если маршрутов много или ими нужно управлять (добавлять или удалять) то лучше для этого использовать демон статической маршрутизации
Вам помогла эта статья, не забудьте сказать «спасибо» для благодарности используется вертикальная и горизонтальная реклама на сайте.
Источник
How To Add New Route In Ubuntu, Linux?
I have a box with Ubuntu Linux and I want to add a new route to my box. Because I want to access an external network from a different interface and network. How can I add a new route to my Ubuntu, Debian, Fedora, Cent-OS Linux box? Because ip-tools is the same for all of these Linux distributions.
Display/List Existing Routing Table and Information By Using ip Command
First, we should display existing routing table. Our target network should not intersect existing routing information. The routing table contains different routes to the remote networks with the same or different gateways. In general, the same default gateway is used.
We can see that there is a default route that is listed in the first line. It also named as default . The default gateway IP address is 192.168.142.2
Display/List Existing Routing Table and Information By Using route Command
Linux provides alternative ways and commands to list the existing routing tables and information. We can use the command route in order to list the existing routing table with information like destination, gateway, netmask, flags, metric, interface. route command is provided by the net-tools in Ubuntu which is not installed by default. We can install the net-tools package with the following command to use route command.
Install net-tools Package For route Command
We will only type the command route to the Linux shell.
Display/List Existing Routing Table and Information By Using netstat Command
Alternatively, the command netstat can be also used to list the routing table and information. In order to list routing information the options -n and -r should be provided to the command netstat.
Add New Route with ip Command
In order to add a new route, we will use the command ip route add by providing related information. We will add a new route to the 172.16.0.0/16 network.
- ip route add is our command to add a new route.
- 172.16.0.0/24 is a target network that is the destination range.
- via 192.168.122.1 specifies the next hoop which should be directly connected to our system network.
- devens3 specifies our interface which is the same network with 192.168.122.1
Add New Route By Using route Command
Alternatively, we can add a new route by using the command route. We will use the option add of the route command where also provide other parameters like destination network, gateway, and interface name. In the following example, we will add a route to the network 10.0.0.0 by using the -net option by setting 192.168.1.1 as gateway for the interface eth0 .
Check New Route
A newly added route will be activated instantly after adding the routing table. We can also list and check the newly added route information by using the command ip route show like below. We will see that the new route is added successfully.
Delete/Remove Existing Route By Using route Command
We can delete an existing route by using the command route. It is very similar to the adding route where we will replace the add options with the del option.
You can use the following infographic in order to get brief information about adding new routes for Linux and Ubuntu.
Источник
[Routing] Шпаргалка про роутинг в Ubuntu
Про правила добавления маршрутов в Windows я уже написал. Пришла пора написать про правила добавления маршрутов в любимой мною Ubuntu. Так же есть немного общей информации по данной теме, относящейся к Ubuntu и маршрутизации. И сразу поясню, что все действия требуется делать от имени суперпользователя ( root ).
Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут — это маршрут, который задается явно с помощью команды route. Динамическая маршрутизация выполняется процессом-демоном (routed или gated), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т. д.
Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация. Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации командой route. Прежде чем пытаться настраивать маршруты, просмотрите таблицу маршрутизации ядра с помощью команды netstat -n -r . Вы должны увидеть что-то вроде следующего
Если таблица пуста, то вы увидите только заголовки столбцов. С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат:
Здесь аргумент “операция” может принимать одно из двух значений: add (маршрут добавляется) или delete (маршрут удаляется).
Аргумент “адресат” может быть IP-адресом машины, IP-адресом сети или ключевым словом default .
Аргумент “шлюз” — это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером).
удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host. В первом случае в поле адресата указывается адрес сети, а во втором — адрес конкретного компьютера (хоста). Как правило, бывает необходимо настроить маршрутизацию по упоминавшимся выше трем интерфейсам:
- локальный интерфейс ( lo ),
- интерфейс для платы Ethetnet ( eth0 ),
- интерфейс для последовательного порта ( PPP или SLIP ).
Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1 . Поэтому для маршрутизации пакетов с адресом 127.0.X.X используется команда:
Если у вас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети (сетевая маска 255.255.255.0 ), то для настройки маршрутизации достаточно вызвать:
Если же вы имеете насколько интерфейсов, то вам надо определиться с сетевой маской и вызвать команду route для каждого интерфейса. Поскольку очень часто IP-пакеты с вашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров-маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. С помощью маршрута по умолчанию вы говорите ядру “а все остальное отправляй туда”. Маршрут по умолчанию настраивается следующей командой:
Опция gw указывает программе route , что следующий аргумент — это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации.
А теперь пример#
Имеются следующие интерфейсы /etc/network/interfaces :
Интерфейс eth0 это связь с локальной сетью состоящей из 20 подсетей 192.168.1.х-192.168.20.х
Интерфейс eth1 это связь с ADSL модемом с выходом в интернет. Так большинство запросов идут в Инет на этом интерфейсе прописываем шлюз ( gateway 192.168.254.1 ) данный параметр указывает в системе шлюз по-умолчанию, обращаю внимание, что шлюз надо прописывать только на одном интерфейсе, иначе в системе появятся 2 маршрута по умолчанию и естественно будет затупление в работе. С интернетом разобрались.
Но требуется еще просматривать ресурсы локальной сети для этого надо выполнить вот эти команды:
На этом примере маршрутизируются 3 подсети Все эти команды и многие другие можно прописать в файлк /etc/network/interfaces в итоге получится следующее:
По аналогии настраиваются любое кол-во маршрутов и сетевых интерфейсов. Обратите внимание:
так легко можно изменить MAC , не забываем после редактирования файла делать рестарт
Так же отмечу, что:
- Для того, чтобы просмотреть таблицу маршрутов достаточно запуска команды route без параметров или route -n , если в сети нет DNS .
- Маска может быть записана проще, в виде /x , где x — число единичных битов, например:
Настройки сети размещаются в файле /etc/network/interfaces :
При подключение к Inet через VPN ( ppp0 ), необходимо заменять маршрут по умолчанию на ppp0 . А проще указать в файле /etc/ppp/options следующее:
тогда маршрут заменяется сам и при отключении восстанавливается.
Есть прога, серверная часть которой стоит во внутренней сети, например Radmin Server, чтобы к нему подключиться клиентская прога (Radmin Viewer) запрашивает соединение по порту 5588 (например). Все работает внутри локальной сети. Есть шлюз (с внешним IP), через который обеспечивает доступ в и-нет всех компов внутренней сети. Теперь вопрос, как настроить шлюз, чтобы при обращении из вне клиентсокой частью к IP шлюза по порту 4799 , он пробрасывал этот запрос дальше, например на 192.168.0.2 по томуже порту? Для этого есть команда iptables .
Источник
How to Permanently add Static Route in Linux
Static routing is the process of manually entering the routes to the routing table to reach a particular destination. Basically two commands are used in Linux to add routes. The first command is the old traditional route add and second is the IP route command.
Earlier we learned how to route add in Linux, in this tutorial, here I will show you how to add permanent static routes in Linux distributions such as Centos and Ubuntu.
Adding temporary static routes
In order to add a static route temporarily on your Linux machine, you can use either route or ip command.
You can list the current routing table as follows.
If you want to add a route to the network 198.161.1.0 through gateway 192.168.206.1, you can execute the following command.
Alternatively, you can use ip command as follows:
Adding permanent static routes
In the above section, we saw how to add routes in Linux. But the system will forget those routes on next reboot.
So we have to add routes to config file to make it persistent.
On RHEL or CentOS, you need to modify the interface file in ‘/etc/sysconfig/network-scripts’.
For example, here, we have to add routes on network interface ens192. Hence, the file we need to modify will be ‘/etc/sysconfig/network-scripts/route-ens192’.
The basic syntax of static route in this file is:
target-address — Destination network address.
gateway-address — Router address to reach the destination address.
dev — Indicates which interface to reach the destination, interface naming schemes are eno[1-N], ens[1-N], and or eth[0-N].
So, in order to add the above route in ‘route-ens192’ file, append the following line.
‘10.9.8.0/24 via 10.9.8.100 dev ens192’
Finally, verify that the new routes are visible in the routing table using the following command.
On Ubuntu Linux, if you want to add a permanent static route to your system, you have to add route entry to the ‘/etc/network/interfaces’. Using your favorite editor (nano, vim. ) to open the network interface file and insert the following lines to it.
‘up route add -net 10.9.7.0/24 gw 10.9.8.100 dev ens160’. For example:
In order to make the change take effect, you need to restart the networking service by running:
Verify that the route has been configured correctly:
From Ubuntu 18.04 LTS and higher version, the operating system uses the netplan YAML files for network configuration — it is located in the ‘/etc/netplan’ directory. For example:
In order to add persistent static route, you have to add the following lines to the netplan configuration file ‘/etc/netplan/01-network-manager-all.yaml’
Apply the change by running:
You can verify the route configuration by running command route -n or ip route . Here is the result:
Conclusion
In this tutorial, we learned how to add a permanent route by adding to respective config files in Linux. Thanks for reading and please leave your suggestion in the below comment section.
Источник
Настройка маршрутизации в Linux
Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут — это маршрут, который задается явно с помощью команды route. Динамическая маршрутизация выполняется процессом-демоном (routed или gated), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т. д. Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация. Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации командой route. Прежде чем пытаться настраивать маршруты, просмотрите таблицу маршрутизации ядра с помощью команды netstat -n -r. Вы должны увидеть что-то вроде следующего
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth1
Если таблица пуста, то вы увидите только заголовки столбцов. Тогда надо использовать route. С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат:
route -f операция -тип адресат шлюз интерфейс
Здесь аргумент операция может принимать одно из двух значений: add (маршрут добавляется) или delete (маршрут удаляется). Аргумент адресат может быть IP-адресом машины, IP-адресом сети или ключевым словом default . Аргумент шлюз — это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда
route -f
удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host. В первом случае в поле адресата указывается адрес сети, а во втором — адрес конкретного компьютера
(хоста).
Как правило, бывает необходимо настроить маршрутизацию по упоминавшимся выше трем интерфейсам:
* локальный интерфейс (lo),
* интерфейс для платы Ethetnet (eth0),
* интерфейс для последовательного порта (PPP или SLIP).
Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1. Поэтому для маршрутизации пакетов с адресом 127. используется команда:
route add -net 127.0.0.1 lo
Если у вас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети (сетевая маска 255.255.255.0), то для настройки маршрутизации достаточно вызвать:
route add -net 192.168.36.0 netmask 255.255.255.0 eth0
Если же вы имеете насколько интерфейсов, то вам надо определиться с сетевой маской и вызвать команду route для каждого интерфейса. Поскольку очень часто IP-пакеты с вашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров — маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. С помощью маршрута по умолчанию вы говорите ядру «а все остальное отправляй туда». Маршрут по умолчанию настраивается следующей командой:
route add default gw 192.168.1.1 eth0
Опция gw указывает программе route, что следующий аргумент — это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации. Вот немного теории с сайта linuxcenter.ru
А теперь пример из жизни Имеются следующие интерфейсы /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.17.8
hwaddress ether 00:E0:4C:A2:C4:48
netmask 255.255.255.0
broadcast 192.168.17.255
auto eth1
iface eth1 inet static
address 192.168.254.2
netmask 255.255.255.0
gateway 192.168.254.1
broadcast 192.168.254.255
Интерфейс eth0 это связь с локальной сетью состоящей из 20 подсетей 192.168.1.х-192.168.20.х
Интерфейс eth1 это связь с ADSL модемом с выходом в интернет. Так большинство запросов идут в Инет на этом интерфейсе прописываем шлюз (gateway 192.168.254.1) данный параметр указывает в системе шлюз по-умолчанию, обращаю внимание, что шлюз надо прописывать только на одном интерфейсе, иначе в системе появятся 2 маршрута по умолчанию и естно будет затупление в работе. С интернетом разобрались.
Но требуется еще просматривать ресурсы локальной сети для этого надо выполнить вот эти команды
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
route add -net 192.168.21.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
На этом примере маршрутизируются 3 подсети
Все эти команды и многие другие можно прописать в файлк
/etc/network/interfaces в итоге получится следующее:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.17.8
hwaddress ether 00:E0:4C:A2:C4:48
netmask 255.255.255.0
broadcast 192.168.17.255
up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
up route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
up route add -net 192.168.21.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
auto eth1
iface eth1 inet static
address 192.168.254.2
netmask 255.255.255.0
gateway 192.168.254.1
broadcast 192.168.254.255
Ну вот и все по аналогии настраиваются любое кол-во маршрутов и сетевых интерфейсов
Дополнение 1.
hwaddress ether 00:E0:4C:A2:C4:48
так легко можно изменить MAC, не забываем после редактирования файла делать рестарт
sudo /etc/init.d/networking restart
Дополнение 2.
Следует отметить, что:
1) Для того, чтобы просмотреть таблицу маршрутов достаточно запуска команды route без параметров или route -n, если в сети нет DNS.
2) Маска может быть записана проще, в виде /x, где x — число единичных битов, например:
route add -net 192.168.36.0/24 eth0
вместо
route add -net 192.168.36.0 netmask 255.255.255.0 eth0
Настройки сети размещаются в файле /etc/network/interfaces. При подключение к Inet через VPN (ppp0. ), необходимо заменять маршрут по умолчанию на ppp0. А проще указать в файле /etc/ppp/options следующее:
тогда маршрут заменяется сам и при отключении восстанавливается.
Дополнение 3.
Есть прога, серверная часть которой стоит во внутренней сети, например Radmin Server, чтобы к нему подключиться клиентская прога (Radmin Viewer) запрашивает соединение по порту 4799 (например). Все работает внутри локальной сети. Есть шлюз (с внешним IP), через который обеспечивает доступ в и-нет всех компов внутренней сети. Теперь вопрос, как настроить шлюз, чтобы при обращении из вне клиентсокой частью к IP шлюза по порту 4799, он пробрасывал этот запрос дальше, например на 192.168.0.2 по томуже порту?
Для этого есть команда iptables:
iptables -t nat -D PREROUTING -i -s -p tcp —dport 4899 -j DNAT —to-destination 192.168.0.2:4899
Если ограничивать входящие IP не требуется, то опцию -s можно опустить.
Пример:
iptables -t nat -D PREROUTING -i vlan1 -s 213.87.34.20/24 -p tcp —dport 4899 -j DNAT —to-destination 192.168.128.24:4899
iptables -t nat -A PREROUTING -i eth0 -p udp —dport 3658 -j DNAT —to-destination 192.168.0.2:3658
Источник