Внутренние сети IPX и маршрутизация
Компьютеры с несколькими IPX-интерфейсами имеют уникальную комбинацию адресов сеть/узел для каждого из интерфейсов. Чтобы соединяться с таким компьютером, Вы можете использовать любую из этих комбинаций. Когда SAP объявляет сервисы, это обеспечивает адрес сети/узла, связанный с сервисом. На компьютерах с несколькими интерфейсами это означает, что один из интерфейсов должен быть выбран как интерфейс для внесения в таблицы маршрутов, это функция флажка primary интерфейса, о котором мы уже говорили ранее. Но это представляет проблему: маршрут к этому интерфейсу не может всегда быть оптимальным, и если происходит сбой, который изолирует эту сеть от остальной части сети, компьютер станет недостижим даже при том, что имеются другие возможные маршруты к другим интерфейсам. Другие маршруты никогда не будут известны другим компьютерам, потому что они не вносятся в таблицы маршрутов, и ядро не может узнать, что оно должно выбрать другой первичный интерфейс. Чтобы избежать этой проблемы, разработано устройство, которое позволяет IPX-компьютеру быть известным, как независимая от маршрута пара адресов сеть/узел. Это решает нашу проблему потому, что эта новая пара доступна через все интерфейсы.
Внутренние сети IPX и маршрутизация
Компьютеры с несколькими IPX-интерфейсами имеют уникальную комбинацию адресов сеть/узел для каждого из интерфейсов. Чтобы соединяться с таким компьютером, Вы можете использовать любую из этих комбинаций. Когда SAP объявляет сервисы, это обеспечивает адрес сети/узла, связанный с сервисом. На компьютерах с несколькими интерфейсами это означает, что один из интерфейсов должен быть выбран как интерфейс для внесения в таблицы маршрутов, это функция флажка primary интерфейса, о котором мы уже говорили ранее. Но это представляет проблему: маршрут к этому интерфейсу не может всегда быть оптимальным, и если происходит сбой, который изолирует эту сеть от остальной части сети, компьютер станет недостижим даже при том, что имеются другие возможные маршруты к другим интерфейсам. Другие маршруты никогда не будут известны другим компьютерам, потому что они не вносятся в таблицы маршрутов, и ядро не может узнать, что оно должно выбрать другой первичный интерфейс. Чтобы избежать этой проблемы, разработано устройство, которое позволяет IPX-компьютеру быть известным, как независимая от маршрута пара адресов сеть/узел. Это решает нашу проблему потому, что эта новая пара доступна через все интерфейсы.
Рассмотрим сервер, подключенный к двум сетям IPX. Он выбирает один из своих интерфейсов как primary, пусть это будет 0000001a:0800000010aa, и объявляет его точкой доступа для некоего сервиса. Это работает нормально для сети 0000001a, но пользователи сети 0000002c пойдут кружным путем через первую сеть, несмотря на то, что сервер имеет порт и в их сети.
Это решается созданием виртуальной сети, которая является полностью программной конструкцией. Ее лучше рассматривать, как находящуюся внутри IPX-машины. SAP-информация нужна только для распространения адреса этой сети. Такие виртуальные сети известны как внутренние (internal network). Но как другие компьютеры узнают, каким путем достичь этой сети? Удаленные компьютеры направляются к внутренней сети через непосредственно связанные сети главного компьютера. Это означает, что надо смотреть на записи маршрутов, которые обращаются к внутренним сетям машин, имеющих несколько сетевых IPX-интерфейсов. Таким образом, в каждый момент будет выбран оптимальный маршрут. Допустим, мы сконфигурировали внутреннюю IPX-сеть с адресом 0x10000010 и используем адрес хоста 00:00:00:00:00:01. Это тот адрес, который будет нашим первичным интерфейсом. Он будет сообщаться через SAP. Наша маршрутизация отразит эту сеть как доступную через любой из реальных сетевых портов, так что компьютеры будут всегда использовать самый лучший сетевой маршрут, чтобы соединиться с этим сервером.
Для созадния внутренней сети используйте команду ipx_internal_net, входящую в пакет IPX tools (автор Greg Page). Простой пример:
# ipx_internal_net add 10000010 000000000001 |
Для удаления внутренней сети IPX используйте:
# ipx_internal_net del |