Настройка нескольких pppoE подключений

Материал из Bryansk Linux Users Group.

Перейти к: навигация, поиск

Иногда возникает необходимость создать несколько pppoE подключений. Причиной этому могут быть особенности организации доступа к ресурсам сети, например жёсткое разделение доступа к локальным и внешним IP адресам в целях безопасности, увеличения производительности или для решения иных задач. Какой бы сложной ни была конфигурация сети, на какие бы "ужимки" в благородном порыве ублажить абонента ни шёл провайдер, мы, имея минимум необходимого оборудования, запросто можем адаптировать любую unix операционную систему (в частности Linux) к любой магистрали. Иначе она не носила бы гордого звания net-ориентированной системы.

Итак, приступим к настройке нескольких pppoE интерфейсов на конкретном примере.

Оборудование: PC с предустановленной Debian 5.0.0 Lenny, ADSL (LAN) модем, Ethernet-сетевая карта.

Задача: Настроить два совместно работающих pppoE-подключения, по одному для локальной и внешней сети Domolink (Брянск).

Решение:

Теоретический минимум:

/etc/network/intefaces - конфиг с сетевыми интерфейсами.
/etc/resolv.conf - конфигурационный файл, где указаны адреса DNS-серверов.
/etc/ppp - директория с настройками ppp-интерфейсов.
/etc/ppp/chap-secrets'' и ''/etc/ppp/pap-secrets'' - файлы с логинами паролями для доступа в сеть.
/etc/ppp/peers - директория с конфигурационными файлами, в которых описаны опции подключения.

ppp-интерфейсами управляет pppd-демон. Все характеристики каждого из ppp-интерфейсов передаются из выше указанных конфигурационных файлов pppd-демону в виде значений переменных.

Необходимые консольные команды:

nano /etc/network/interfaces  - открыть в текстовом редакторе "nano" фаил "interfaces", "/etc/network/" - путь к файлу. Если файл не существует - он будет создан.
cat /etc/network/interfaces  - просмотреть содержимое файла "interfaces".
ifconfig  - вывод информации об активных интерфейсах.
route -n - вывод информарции об активных маршрутах.

Замечание: Все описанные действия выполняем с правами супер пользователя (от root или через sudo).

Приступим к практике:

Создаём /etc/ppp/peers/d-net - конфиг для внешней сети.

noipdefault
defaultroute
replacedefaultroute
hide-password
noauth
persist
plugin rp-pppoe.so eth0
user "MyUserName@realm"

Создаём /etc/ppp/peers/d-local - конфиг для локальной сети.

noipdefault
hide-password
noauth
persist
plugin rp-pppoe.so eth0
user "MyUserName@realm_local"

Редактируем /etc/ppp/chap-secrets и /etc/ppp/pap-secrets. Добавляем имя пользователя и пароль для каждого подключения.

"MyUserName@realm_local" * "MyPassword"

"MyUserName@realm" * "MyPassword"

Добавляем в /etc/network/interfaces информацию о наших подключениях. Теперь при старте системы будут последовательно созданы два интерфейса ppp0 и ppp1.

auto d-net
iface d-net inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider d-net

auto d-local
iface d-local inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider d-local

Итак, теперь мы имеем два pppoE интерфейса, ppp0 - для интернета и ppp1 - для локалки, соответсвующие подключениям d-net и d-local, контролируются и управляются они демоном pppd. Теперь осталось обеспечить доступ к любому IP локальной сети через интерфейс ppp1, для этого необходимо добавить маршрут в таблицу маршрутизации:

route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp1

Для того, что бы маршрут добавлялся автоматически нужно добавить в /etc/ppp/ip-up строки:

if [ $4 = "ХХХ.ХХХ.ХХХ.ХХХ" ]; then
      route add -net 10.0.0.0/8 $1
fi

где вместо ХХХ.XXX.XXX.XXX вписываем свой локальный IP-адрес.

Убедитесь, что в /etc/resolv.conf указан адрес DNS-сервера.

nameserver 10.0.0.10

Вуаля!

Команды управления соединениями:

poff d-net  - отключить соединение "d-net"
pon d-net  - подключить соединение "d-net"
plog  - статус подключения
killall pppd  - жестоко убить все подключения (не рекомендуется, будьте гуманны)

Подробнее некоторые моменты освещены будут позже, пока читаем

man route
man ifconfig
шаблоны конфигов и комменты в конфигах
Личные инструменты