Документация по ОС FreeBSD Понедельник, 06.05.2024, 04:08
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Канал Yota (WiMax) и NAT на FreeBSD [2011]
Задача

Обеспечить функционирование второго канала (backup) в Интернет для офиса при использовании канала от Yota.

Для обеспечения NAT`а возьмем ng_nat.

Железо
  • USB-модем Samsung SWC-U200
  • Сервер FreeBSD 8.2-STABLE
Реализация

Для USB-модемов Samsung SWC-U200 и Samsung SWC-E100 в портах появились userland-драйвер, находящийся в /usr/ports/net/lvwimax.

Инсталлируем их обычным способом:

# cd /usr/ports/net/lvwimax/
# make install clean

Перезапускаем демон отслеживания изменения состояния устройств:

# /etc/rc.d/devd restart

Для автостарта драйвера при загрузке системы добавим в /etc/rc.conf:

lvwimax_mac_address=»60:D0:A9:XX:YY:ZZ»
lvwimax_enable=»YES»

где 60:D0:A9:XX:YY:ZZ – MAC адрес USB-модема (его можно посмотреть либо на коробочке либо в личном кабинете).

Для логгирования отладочной инфы в отдельные файлы в начало /etc/syslog.conf следует добавить:

local6.err              /var/log/lvwimax_err.log
local6.info             /var/log/lvwimax_info.log
local6.debug            /var/log/lvwimax_debug.log

Создать файлы лога:

# touch /var/log/lvwimax_err.log
# touch /var/log/lvwimax_info.log
# touch /var/log/lvwimax_debug.log

и перезапустить syslogd:

# /etc/rc.d/syslogd restart

Загружаем модули ядра для работы NAT:

# kldload ng_ipfw
# kldload ng_nat

Для загрузки модулей при старте системы добавим в /boot/loader.conf:

ng_ipfw_load=»YES»
ng_nat_load=»YES»

dhclient вызывает скрипт конфигурации сетевых параметров - dhclient-script, который после конфигурирования сетевого интерфейса смотрит, есть ли файл с именем /etc/dhclient-exit-hooks. Если файл находится, то он запускается на исполнение.

Этим мы и воспользуемся для изменения конфигурации NAT после получения IP-адреса по DHCP от провайдера.

Создадим файл /etc/dhclient-exit-hooks с содержанием:

#!/bin/sh

if [ "$reason" = "REBOOT" -o "$reason" = "BOUND" -o "$reason" = "RENEW" -o "$reason" = "REBIND" ]; then

ipfw -q delete 410
ipfw -q delete 420
ipfw -q delete 430

if ngctl show Yota_nat: >/dev/null 2>&1; then

/usr/sbin/ngctl shutdown Yota_nat:
echo "Destroy old nat config was complete" >>/var/log/dhc.log

fi

/usr/sbin/ngctl mkpeer ipfw: nat 70 out
/usr/sbin/ngctl name ipfw:70 Yota_nat
/usr/sbin/ngctl connect ipfw: Yota_nat: 80 in
/usr/sbin/ngctl msg Yota_nat: setaliasaddr $new_ip_address

echo "Create nat config was complete" >>/var/log/dhc.log

ipfw -q add 410 netgraph 80 ip from any to $new_ip_address via tap0 in
ipfw -q add 420 netgraph 70 ip from table"(99)" to any via vlan10 in
ipfw -q add 430 fwd $new_routers ip from $new_ip_address to any

echo "Apply ipfw rules for nat was complete" >>/var/log/dhc.log

fi

Сделаем скрипт исполняемым:

# chmod a+x /etc/dhclient-exit-hooks

В нем вся «магия» по управлению конфигурацией NAT при изменении адреса после работы dhclient’a:

удаление старых правил ipfw, удаление старой конфигурации NAT, создание новой конфигурации NAT, применение новых правил ipfw.

При этом маршрут по умолчанию не изменяется.

Вставляем USB-модем в сервер и в путь:

# /usr/local/etc/rc.d/lvwimax start

Смотрим в ifconfig для проверки наличия интерфейса и полученного по DHCP IP-адреса:

tap0: flags=8843 metric 0 mtu 1386
        options=80000
        ether 60:d0:a9:f9:4a:74
        inet6 fe80::62d0:a9ff:fef9:4a74%tap0 prefixlen 64 scopeid 0x12
        inet 10.184.244.147 netmask 0xfffffc00 broadcast 10.184.247.255
        nd6 options=3
        Opened by PID 63322

Осталось в table(99)  поместить хосты или подсети для доступа в интернет через Yota.


Источник: http://subnets.ru/blog/?p=1997
Категория: Net | Добавил: oleg (14.09.2011) | Автор: Панфилов Алексей (lehis (at)
Просмотров: 849 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024