У меня дома достаточно стандартная настройка, которая состоит из одной подсети 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
Почему появилась эта последняя строка и почему она не соответствует маршруту, который я создал ранее? Что мне нужно сделать, чтобы заставить его использовать созданный мной статический маршрут?