Маршрутизація та шлюзи

Маршрутизація та шлюзи

Изображение записи по умолчанию
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

Практическое задание

  1. Просмотрите таблицу маршрутов: ip r
  2. Проверьте маршрут к 8.8.8.8: ip route get 8.8.8.8
  3. Пропингуйте шлюз: ping -c 4 $(ip r | grep default | awk "{print $3}")
  4. Выполните трассировку: traceroute 8.8.8.8 или mtr 8.8.8.8
  5. Проверьте IP-форвардинг: cat /proc/sys/net/ipv4/ip_forward
  6. Пропингуйте с ограничением: ping -c 4 google.com

Comments

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Related Post