Back to: Маршрутизація та шлюзи
0
Маршрутизация и шлюзы
Маршрутизация — это процесс выбора пути для передачи пакетов между сетями. Понимание маршрутизации необходимо для диагностики сетевых проблем.
Таблица маршрутизации
# Просмотр таблицы маршрутизации
ip route show
# или коротко:
ip r
# Пример вывода:
default via 192.168.1.1 dev eth0 # шлюз по умолчанию
192.168.1.0/24 dev eth0 proto kernel # локальная сеть
10.0.0.0/8 via 192.168.1.254 dev eth0 # статический маршрут
Шлюз по умолчанию (default gateway)
# Добавить шлюз по умолчанию
sudo ip route add default via 192.168.1.1
# Изменить шлюз по умолчанию
sudo ip route replace default via 192.168.1.1
# Удалить шлюз по умолчанию
sudo ip route del default
# Через конкретный интерфейс
sudo ip route add default via 192.168.1.1 dev eth0
Статические маршруты
# Маршрут к сети
sudo ip route add 10.0.0.0/24 via 192.168.1.254
# Маршрут к конкретному хосту
sudo ip route add 10.0.0.100/32 via 192.168.1.254
# Маршрут через интерфейс (без шлюза)
sudo ip route add 192.168.2.0/24 dev eth1
# Удалить маршрут
sudo ip route del 10.0.0.0/24
Метрики маршрутов
# Маршрут с метрикой (приоритет)
sudo ip route add default via 192.168.1.1 metric 100
sudo ip route add default via 192.168.1.2 metric 200
# Метрика меньше = выше приоритет
route (устаревшая команда)
# Просмотр
route -n
# Добавить шлюз
sudo route add default gw 192.168.1.1
# Добавить маршрут
sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.254
# Удалить
sudo route del default
ping — проверка доступности
# Базовая проверка
ping 192.168.1.1
# Ограничить количество пакетов
ping -c 4 8.8.8.8
# Интервал между пакетами
ping -i 2 8.8.8.8
# С указанием размера пакета
ping -s 1000 8.8.8.8
# Пинг по IPv6
ping6 2001:4860:4860::8888
traceroute — трассировка маршрута
# Трассировка до хоста
traceroute 8.8.8.8
# С указанием количества переходов
traceroute -m 15 8.8.8.8
# По протоколу TCP
traceroute -T -p 80 8.8.8.8
# Современная альтернатива — mtr (traceroute + ping)
mtr 8.8.8.8
ℹ️ traceroute использует TTL (Time To Live) — постепенно увеличивает TTL на 1, чтобы каждый маршрутизатор на пути возвращал ICMP Time Exceeded.
tracepath — упрощённая трассировка
# Не требует root
tracepath 8.8.8.8
Диагностика маршрутизации
# Проверить маршрут к конкретному хосту
ip route get 8.8.8.8
# Пример вывода:
# 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10
# ^--- шлюз ^--- интерфейс ^--- источник
Включение маршрутизации между интерфейсами
# Включить IP-форвардинг
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
# Постоянно — в /etc/sysctl.conf:
# net.ipv4.ip_forward = 1
# Применить
sudo sysctl -p
Практическое задание
- Просмотрите таблицу маршрутов:
ip r - Проверьте маршрут к 8.8.8.8:
ip route get 8.8.8.8 - Пропингуйте шлюз:
ping -c 4 $(ip r | grep default | awk "{print $3}") - Выполните трассировку:
traceroute 8.8.8.8илиmtr 8.8.8.8 - Проверьте IP-форвардинг:
cat /proc/sys/net/ipv4/ip_forward - Пропингуйте с ограничением:
ping -c 4 google.com


Добавить комментарий