Как добавить статические маршруты (routes) в Ubuntu

Written by on . Posted in Linux

Добаление маршрута в linux (static routes)

В память можно добавить маршрут используя route или через ip ro

синтаксис route
route add [-net|-host] <IP/Net> netmask gw <Gateway IP> dev <Int>X

Пример:

route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.1
route add -net 192.168.2.0/24 gw 192.168.0.1
route add -host 192.168.3.158 gw 192.168.0.1

синтаксис ip ro
ip route add <IP/Net> via <Gateway IP>

Все параметры можно посмотреть ip route help

Пример:

ip ro add 192.168.2.0/24 via 192.168.0.1
ip ro add 192.168.3.159/32 via 192.168.0.1

примечание: в команде 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

пример файла конфигурации.

root@linux:~# 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).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
	address 172.16.0.69
	netmask 255.255.255.0
	network 172.16.0.0
	broadcast 172.16.0.255
	gateway 172.16.0.1
	# dns-* options are implemented by the resolvconf package, if installed
	dns-nameservers 172.16.0.1 172.16.0.3

#static route
up ip ro add 192.168.0.0/16 via 172.16.0.2

Как посмотреть маршруты в системе

root@linux:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG        0 0          0 eth0
172.16.0.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.0.0     172.16.0.2      255.255.0.0     UG        0 0          0 eth0
root@linux:~# ip ro sh
default via 172.16.0.1 dev eth0 
172.16.0.0/24 dev eth0  proto kernel  scope link  src 172.16.0.69 
192.168.0.0/16 via 172.16.0.2 dev eth0

Сохранить статический маршрут в CentOS (Redhat)

  1. Необходимо отредактировать (если нет создать) файл
    /etc/sysconfig/network-scripts/route-ethX — ethX заменить на номер интерфейса (eth0, eth1 …)
    добавить следующие строки:

    GATEWAY0=X.X.X.X
    NETMASK0=X.X.X.X
    ADDRESS0=X.X.X.X
    GATEWAY1=
    NETMASK1=
    ADDRESS1=
    

    X.X.X.X — заменить на нужные значения

  2. Другой вариант добавить маршруты в файл /etc/sysconfig/static-routes. Если нет этого файла — необходимо создать.

    Пример содержания фала:

    any net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1 eth0
    any net 10.0.0.0 netmask 255.0.0.0 gw 10.0.0.1 eth0
    

PS: Если маршрутов много или ими нужно управлять (добавлять или удалять) то лучше для этого использовать демон статической маршрутизации
Вам помогла эта статья, не забудьте сказать «спасибо» для благодарности используется вертикальная и горизонтальная реклама на сайте.

Leave a comment