Статическая маршрутизация
Что такое маршрут
Маршрут – это правило, устанавливаемое в вашем ядре, чтобы определить, какой физический сетевой интерфейс или какой шлюз использовать, чтобы достичь определённой сети (или отдельного компьютера). Существует множество типов маршрутизируемых протоколов, данная статья касается только маршрутизации 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:
- IP packets destined to the 10.10.10.0/24 network are send to 192.168.1.50
- 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
Смотрите также
- Network management — describes possibilities for managing the network stack.
Внешние ресурсы
- Longest prefix match (on Wikipedia)
- Gentoo Bug 5409326