Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата ruslandh:
Цитата El Scorpio:
Не может сетевая карта быть "шлюзом" для локальной сети. »

Да ну, сколько угодно. »
Повторяю: не может быть интерфейс локальной сети быть сам себе "шлюзом" для этой же сети

Цитата ruslandh:
route add -net 10.10.19.0/24 dev eth1 - просто перекидывала запрос на eth1, без указания какому компу посылать (широковещательный запрос), а шлюз не сообщал, что это его запросы.
А route add -net 10.10.19.0/24 gw 192.168.30.250 указало конкретный адрес шлюза. »
Вынужден констатировать, что вы имеете крайне смутное представление о работе таблицы маршрутизации

Рассмотрим самую простую таблицу
Код: Выделить весь код
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
Каждый пакет протоколов TCP, UDP, ICPM и ряда других содержит значение IP-адреса и MAC-адреса получателя.
Если для IP-адреса получателя в таблице маршрутизации есть диапазон без шлюза (адрес 0.0.0.0), тогда отправитель делает прямую передачу информации следующим образом:
1. Отправляет служебный запрос ARP "Кто здесь 192.168.0.10?".
Только этот запрос является широковещательным, потому что у него MAC получателя равен FFFFFFFFFFFF, и такой пакет принимают все устройства данной локальной сети. Все прочие пакеты содержат MAC-адреса конкретных устройств, и принимаются только этими устройствами.
2. Устройство с этим IP-адресом присылает ответ "Ну я здесь 192.168.0.10"
3. Отправитель берёт из ответа MAC-адрес устройства, и записывает его в таблицу ARP, где тот хранится некоторое время
4. Затем отправитель начинает отправлять пакеты с данными, в которых указывается IP и MAC конечного получателя.

Если для IP-адреса получателя в таблице маршрутизации есть диапазон с указанным шлюзом, тогда отправитель делает запрос ARP по адресу шлюза, а затем начинает отправлять пакеты с данными, в которых указывается IP конечного получателя и MAC шлюза. Далее подразумевается что указанный шлюз получит этот пакет и отправит далее в нужную сеть по своей таблице маршрутизации.

А теперь вопрос: если сетевая карта является шлюзом для своей локальной сети, и IP-адрес шлюза совпадает с IP-адресом самой сетевой карты, то какие значения адресов будут в отправляемом пакете?
Правильно: отправляемый пакет будет иметь IP конечного получателя и MAC самого отправителя. Как следствие, этот пакет сможет принять только сам отправитель. Затем он будет пересылать пакет снова и снова, пока в пакете не обнулится значение TTL (время жизни)
Однако сейчас такие "маршруты" работают корректно, потому что в современных реализациях стека протоколов TCP/IP предусмотрели защиту от такой глупости.

-------------------------------------------------------

Теперь вернёмся к проблеме jscar, совершившего именно такую глупость.
Команда route add -net 10.10.19.0/24 gw 192.168.30.250 завершается ошибкой, потому что route просматривает таблицу маршрутизации на предмет прямых маршрутов до 192.168.30.250. То есть он ищет нужное значение только среди среди строк, у которых адрес шлюза равен 0.0.0.0
А среди таких срок нужного диапазона нет

Посему нужно заменить неправильный маршрут
Код: Выделить весь код
192.168.30.0 192.168.30.1 255.255.255.0 UG 0 0 0 eth1
на правильную запись
Код: Выделить весь код
192.168.30.0 0.0.0.0 255.255.255.0 UG 0 0 0 eth1

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 07:41, 31-05-2015 | #19