Статья: Статическая IP-маршрутизация
route add default 192.168.1.1
замечу, что маршрутизация "default" на самом деле есть "inet 0x0 netmask 0x0" и это надо прописывать, если старая версия команды route не понимает слова "default". создала запись, в соответствии с которой все пакеты (все, потому что любой пакет подходит под 0.0.0.0/0) будут отправляться на машину, имеющую интерфейс 192.168.1.1. Информация о том, как можно добраться до интерфейса 192.168.1.1 содержится в предыдущей команде, которая определила способ доступа ко всем машинам 192.168.1.* через интерфейс ep0.
Таким образом, у нас сложилась примерно такая ситуация:
Вообще система маршрутизации (за исключением предельно примитивных случаев) древовидна, т.е. одни записи включают в себя другие. Частичное пересечение невозможно, ибо границы адресного пространства, на которое действует каждая запись, выровняны на размер этого пространства. Порядок хранения и просмотра таблицы может быть разный, но должен обеспечивать приоритет записей с маленьким пространством перед записями с большим пространством. В данном случае обращение к машине 192.168.1.9 попадает под юрисдикцию обеих записей, но обращаться к ней наша рабочая станция будет в соответствии с 192.168.1.0/24->ep0.
Интерфейс шлюза надо сконфигурировать так:
ifconfig ed1 inet 192.168.1.1 netmask 255.255.255.0
На самом деле у нашего шлюза много интерфейсов и они будут конфигурироваться по мере надобности. Еще раз обращаю внимание на то, что номер и маска сети совпадают для всех машин этого сегмента.
Второй сегмент содержит в себе машину, к которой по последовательной линии с помощью протокола SLIP подсоединен еще один компьютер.
Сконфигурируем ws.2.1:
slattach -S 0 [...]
ifconfig sl0 192.168.1.81 192.168.1.82 up
ifconfig ep0 inet 192.168.2.7 netmask 255.255.255.0
route add default 192.168.2.1
Сконфигурируем ws.2.2:
slattach -S 0 [...]
ifconfig sl0 192.168.1.82 192.168.1.81 up
route add default 192.168.1.81
Сконфигурируем шлюз:
ifconfig ed2 inet 192.168.2.1 netmask 255.255.255.0
route add host 192.168.2.81 192.168.2.7
route add host 192.168.2.82 192.168.2.7
Третий сегмент будет сочетать в себе две сети - сеть класса C 192.168.2.*/24 и сеть класса B 172.16.*.*/16.
Начнем с шлюза. Ему присвоим два адреса, по одному из каждой сети:
ifconfig ed3 inet 192.168.3.1 netmask 255.255.255.0
ifconfig ed3 inet 172.16.0.1 netmask 255.255.0.0 alias...
Теперь ws.3.1 - ей дадим адрес только из первой сети:
ifconfig ep0 inet 192.168.3.7 netmask 255.255.255.0
route add default 192.168.3.1
В такой конфигурации ws.3.1 отлично сможет общаться с машинами из сети 192.168.3.0/24 и с машинами вне сегмента локальной сети. При попытке же обратиться к машине того же сегмента, но другой IP-сети, пакет будет послан на шлюз. Шлюз знает, что пакеты с этим адресом надо послать в ту локальную сеть; но некоторые операционные системы работают по алгоритму маршрутизации, в котором запрещено посылать пакет туда, откуда он пришел - это делается для того, чтобы избежать зацикливания пакетов.