У меня дома достаточно стандартная настройка, которая состоит из одной подсети 192.168.240.0/24, а мой маршрутизатор DSL находится на 192.168.240.1. Другие устройства занимают 192.168.240.64 года.

Но теперь я добавил сервер Linux на 192.168.240.16, который имеет две сетевые карты. Один явно сидел 192.168.240.0/24, а другой - 192.168.241.0/24 (192.168.241.16).

На данный момент больше ничего нет на 192.168.241.0/24, но я собираюсь перенести мой DSL-модем в эту подсеть в ближайшем будущем.

Я пытаюсь настроить маршрутизацию на Linux-боксе между двумя интерфейсами, и я считаю, что это работает. Но прежде чем переместить DSL модем, я подумал, что должен убедиться, что маршрутизация работает.

Я проверил таблицу маршрутизации на Mac (используя netstat -r), прежде чем что-то делать, что (за исключением несущественных записей) показывало как:

Destination        Gateway           Flags        Refs      Use   Netif Expire
default            192.168.240.1     UGSc         4665        0     en0
192.168.240        link#4            UCS             8        0     en0

Поэтому я настроил статический маршрут на Mac следующим образом:

route add -net 192.168.241.0/24 192.168.240.16

Затем таблица маршрутизации на Mac показала:

Destination        Gateway           Flags        Refs      Use   Netif Expire
default            192.168.240.1     UGSc         4665        0     en0
192.168.240        link#4            UCS             8        0     en0
192.168.241        192.168.240.16    UGSc            0        1     en0

Когда я попытался пропинговать второй интерфейс на моем Linux-компьютере с Mac, я не получил ответа. Снова проверяя таблицы маршрутизации, к моему удивлению, появилась дополнительная строка.

Destination        Gateway           Flags        Refs      Use   Netif Expire
default            192.168.240.1     UGSc         4665        0     en0
192.168.240        link#4            UCS             8        0     en0
192.168.241        192.168.240.16    UGSc            0        1     en0
192.168.241.16     192.168.240.1     UGHDI           0       17     en0

Почему появилась эта последняя строка и почему она не соответствует маршруту, который я создал ранее? Что мне нужно сделать, чтобы заставить его использовать созданный мной статический маршрут?

2 ответа2

1

Я думаю, что D в UGHDI означает динамический. Блок Linux сообщил Mac, что он не знает маршрут к этой подсети, и сказал, что было бы лучше направить эти данные на маршрутизатор DSL (потому что это шлюз по умолчанию для блока Linux и поэтому предполагается, что он знает, как маршрутизировать везде).

Это подразумевает, что Linux не распределяет данные между сетевыми картами. Я бы проверил его конфигурацию.

0

Похоже, вам нужно не только добавить новую подсеть, но и добавить новый маршрут по умолчанию, который, по-видимому, является тем, что вы делаете неправильно.

К счастью, у меня часто возникают проблемы с базовым разрешением имен и сетевым подключением на устройствах Apple (ssh hostname завершается с ошибкой «не удалось определить имя хоста», но nslookup hostname возвращает IP-адрес), поэтому это ни в коей мере не удивляет меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .