Статическая маршрутизация

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Static routing and the translation is 86% complete.
Other languages:

Что такое маршрут

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

Показать таблицу маршрутизации с помощью iproute2:

user $ip route show
default via 192.168.1.1 dev wlan1 metric 1
192.168.50.0/24 dev lan proto kernel scope link src 192.168.50.1
127.0.0.0/8 via 127.0.0.1 dev lo 
192.168.1.0/24 dev wlan1 proto kernel scope link src 192.168.1.1

Или показать таблицу маршрутизации с использованием sys-apps/net-tools:

user $netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.50.0    0.0.0.0         255.255.255.0   U     0      0        0 lan
192.168.1.0     0.0.0.0         255.255.255.0   U     2000   0        0 wlan1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.1     0.0.0.0         UG    2000   0        0 wlan1

Добавление статического маршрута

Чтобы добавить статический маршрут, необходимо знать IP и маску подсети, к которой прокладывается маршрут, и шлюз к этой подсети. В этом примере мы прокладываем маршрут к сети 10.10.10.0 с сетевой маской 255.255.255.0 через 192.168.1.50. sys-apps/iproute2 требует указания подсетей в стиле CIDR, поэтому в примере будет 10.10.10.0/24

Добавление статического маршрута с помощью sys-apps/iproute2

root #ip route add 10.10.10.0/24 via 192.168.1.50

Показать таблицу маршрутизации с использованием команды ip:

user $ip route
default via 192.168.1.1 dev wlan1 metric 1
10.10.10.0/24 dev wlan1 via 192.168.1.50 src 10.10.10.1
192.168.50.0/24 dev lan proto kernel scope link src 192.168.50.1
127.0.0.0/8 via 127.0.0.1 dev lo 
192.168.1.0/24 dev wlan1 proto kernel scope link src 192.168.1.1

Или показать таблицу маршрутизации с использованием netstat:

user $netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      192.168.1.50    255.255.255.0   UG    0      0        0 wlan1
192.168.50.0    0.0.0.0         255.255.255.0   U     0      0        0 lan
192.168.1.0     0.0.0.0         255.255.255.0   U     2000   0        0 wlan1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.1     0.0.0.0         UG    2000   0        0 wlan1

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

root #route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.1.50

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

Добавление постоянного статического маршрута

Пользователям netifrc для добавления постоянного статического маршрута нужно открыть /etc/conf.d/net в любимом текстовом редакторе и изменить его соответствующим образом. Обязательно посмотрите свою текущую таблицу маршрутизации для справки.

Файл /etc/conf.d/net
...
routes_wlan1="10.10.10.0/24 via 192.168.1.50
    default via 192.168.1.1"
...

Если в качестве сетевого менеджера используется dhcpcd, статический маршрут вместо этого должен быть записан в /etc/dhcpcd.conf.

Both statements above mean:

  1. IP packets destined to the 10.10.10.0/24 network are send to 192.168.1.50
  2. IP packets destined to all 0.0.0.0/0 other networks are send to 192.168.1.1
Заметка
0.0.0.0/0 means all other networks without a prefix (Subnet mask), the default route

The default route 0.0.0.0/0 is used if:

  • the host has no physical or logical IP interface in the target network segment
  • the host has to send IP packets outside of its own IP network segment, and there is no specific route found in the routing table for target IP network

Смотрите также

Внешние ресурсы