Аналог ip unnumbered в Linux системах или экономим IP адреса

Не так давно я столкнулся с проблемой аналога ip unnumbered на Linux, которая с легкостью реализовывается на оборудование Cisco.
При использование такого вида маршрутизации, не придется делить сеть глобально маршрутизируемых ip адресов на небольшие с маской /30 или /31. Достаточно присвоить, например, интерфейсу loopback сеть класса C ( /24 ), а клиентским интерфейсам указать на то, что вся обработка IP пакетов будет осуществляется с адресом присвоенным loopback interface. Тем самым вы получаете рациональное использование IP адресов.
Рассмотрим теперь выше сказанное на практике.

Входные данные

  • Публичная сеть ip адресов класса C — 195.131.195.0/24 (маска подсети 255.255.255.0)
  • Cisco router 2811 series, с двумя Fast Ethernet интерфейсами.
  • Управляемый коммутатор L2, cisco catalyst 2950
  • Router на базе Debian 2.6.18
  • На Debian router, установлен пакет vconfig, который отвечает за создание VLAN. В качестве интерфейса, на котором будут создаватся VLAN выступает eth1

Постановка задачи

Необходимо создать 3 VLAN-а, для обслуживания трех абонентов и предоставить каждому по публичному IP адресу из сети 195.131.195.0/24.

Часть первая. Что бы вы сделали без ip unnumbered?

Чтобы мы сделали в таком случае, если бы не использовали ip unnumbered? Мы бы поделили нашу сеть на более мелкие, например, на сети с размерностью /30, тоесть маской подсети 255.255.255.252. И так, три клиента, три сети:
Сеть номер один: 195.131.195.0/30
Где: 195.131.195.0 – индификатор сети, 195.131.195.1 – IP, который выступает в роли шлюза для клиента, 195.131.195.2 – клиентский IP адрес и 195.131.195.3 – broadcast. По этой же аналогии разбиваем оставшиеся две сетки и получаем:
Сеть номер два: 195.131.195.4/30
Сеть номер три: 195.131.195.8/30
Теперь создаем конфиг на cisco router:

Конфиг для Cisco готов. Создадим похожую схему только уже на Debian router, для этого отредактируем файл /etc/network/interfaces

Подготовим коммутатор, к которому будут подключены наши виртуальные клиенты:
1 порт на коуммутаторе будет стоять в режиме switchport access vlan 200
2 порт — switchport access vlan 201
3 порт — switchport access vlan 202

Все работает.

Часть вторая. Переводим нашу схему на ip unnumbered.

Для этого сделаем следующие изменения на cisco router. Повесим нашу публичную сеть на loopback 200, следующим образом:

Теперь поправим клиентские интерфейсы

И заключительный этап. Нам необходимо выдернуть всего один IP из нашей большой сети и предоставить клиенту. Сделаем это с помошью ip route:

Теперь для клиентов, необходимы настройки выходна в Internet: IP: 195.131.195.X, MASK: 255.255.255.0, а основной шлюз 195.131.195.1.
Почувствовали разницу? =)
А что же делать с нашим Debian router? Все просто. Изменим наш конфиг следующим образом. А вот что.
Создадим lo1 и повесим на него нашу публичную сеть.

Теперь поправим клиентские VLAN сделующим образом:

И воспользуемся ip route:

Вот и все.