В моем офисе есть маршрутизатор Windows Server 2008, 192.168.16.1, который является нашим шлюзом по умолчанию. Это отправляет данные через наше основное интернет-соединение. Это прекрасно работает.
192.168.16.1 также имеет другое подключение к Интернету, которое в настоящее время не используется. Он подключается к маршрутизатору 192.168.1.254, который затем подключается к нашему вторичному интернет-соединению.
Я настроил маршрутизацию и удаленный доступ для маршрутизации диапазона 192.168.1. * В нашу внутреннюю сеть, и я могу пинговать 192.168.1.254 со своего рабочего стола с IP-адресом 192.168.16.22.
У меня очень интенсивная задача по загрузке и загрузке Linux-сервера в том же офисе, поэтому я хочу настроить статический маршрут, чтобы не связывать наше основное интернет-соединение и влиять на моих коллег. Итак, я планирую настроить этот ящик со статическим маршрутом.
Из окна Linux я могу пинговать 192.168.1.254, но я не могу добавить статический маршрут к целевому серверу в нашем центре обработки данных:
$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0
SIOCADDRT: No such process
Это сообщение об ошибке указывает на то, что я не могу получить доступ к 192.168.1.254 для настройки маршрута, но я могу проверить связь с ним. Я попытался добавить статический маршрут к 192.168.1.254, который работал отлично, но это не решило проблему (как и ожидалось).
Я недостаточно продвинут в сетевых технологиях, чтобы диагностировать эту проблему дальше, так как я занимаюсь разработкой ПО, а не системным администрированием. Буду очень признателен за любой совет.
Спасибо за уделенное время.
Рабочий стол на 192.168.16.0/24?
Вы не можете добавить маршрут (к любой цели) через шлюз, к которому вы напрямую не подключены, потому что ваш компьютер не знает, как найти путь к маршрутизатору, не пройдя маршрут по умолчанию.
Вы можете получить «SIOCADDRT: такого процесса нет» ошибка, если "Вы пытались установить маршрут для сети перед установка маршрута к хосту для шлюза, который обрабатывает трафик для этой сети ".
например для локальных -> 172.19.0.1 -> 172.19.0.xx
[root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0
SIOCADDRT: No such process
ОТВЕТ: Сначала создайте маршрут к хосту, затем создайте сетевой маршрут.
например для рассматриваемой сети: local -> 192.168.1.254 -> 123.123.123.123
sudo route add -host 192.168.1.254 dev eth0
sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0
Статический маршрут по-прежнему будет загружать сеть, Я думаю, это зависит;). Трафик загрузки / выгрузки должен пересекать сеть. Так что это повлияет на других пользователей сети. Вы можете ограничить трафик или перенести этот трафик на более тихие часы, если хотите уменьшить влияние на других пользователей сети. например rsync имеет хорошие параметры ограничения пропускной способности.
У меня была аналогичная проблема с маршрутизацией и SIOCADDRT. локальный -> dockerserver -> dockercontainer. Добавление маршрута к хосту, а затем сетевого маршрута заставило маршрутизацию работать в одном направлении.
Это помогло мне https://support.symantec.com/en_US/article.TECH142841.html
Пример полной маршрутизации, маршрутизация работает в обоих направлениях:
dockerserver=172.19.0.1
dockerservernet=172.19.0.0
dockercontainer=172.19.0.25
local=192.168.111.23
localnet=192.168.111.0
### 0. create host route for gw and net route local->docker
[root@local]# route add -host $dockerservernet dev eth0
[root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0
### 1. route on dockerserver to local
[root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[root@dockerserver ~]# ping $local
### 2. route FROM dockercontainer to local (via gateway dockerserver)
[root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[root@dockercontainer /]# ping $local
Что касается части вопроса об установке постоянных маршрутов в экземпляре AWS EC2 под управлением Ubuntu, правильным местом для размещения статических маршрутов, сохраняемых при перезагрузке, остановке и запуске AWS, является /etc/rc.local
.
Внутри этого файла вам нужно разместить свои маршруты в строке над последней строкой. Ваши строки должны выглядеть примерно так:
route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX
Запуск sudo
команда будет потеряна при перезагрузке.