Создание простейшего роутера из компьютера с openSUSE на борту



Сегодня хочу показать как сделать простейший роутер из компьютера с ОС openSUSE в течении нескольких минут. Сделать это сможет каждый, кто хоть немного знаком с консолью и понимает для чего нужны IP адреса :) . На моей машине внутренним интерфейсом является eth0(192.168.1.1), а внешним eth1.

Начнем по порядку:

I) Настройка сервера DNS:

Устанавливаем:
user@opensuse:~> sudo zypper install bind
Теперь просто правим конфигурационный файл. Здесь я хочу сказать, что я изменил всего несколько строк в стандартном файле, привожу их здесь:
user@opensuse:~>sudo mcedit /etc/named.conf
# Слушаем на порту 53 на интерфейсах 127.0.0.1 и 192.168.1.1
listen-on port 53 { 127.0.0.1; 192.168.1.1; };
# Не слушаем на ipv6
listen-on-v6 { none; };
# Уменьшаем уровень логирования ошибок:
logging {
channel syslog_errors {
syslog user;
severity error;
};
category default { syslog_errors; };
};

Готово! Теперь ставим named в автозапуск:
user@opensuse:~>sudo chkconfig named on
Ставим права на рабочую директорию named
user@opensuse:~>sudo chown -R named:named /var/lib/named/
Запускаем DNS сервер
user@opensuse:~>sudo /etc/init.d/named start
Можно прописать его в resolv.conf для использования по умолчанию, но, мне кажется, лучше оставить DNS провайдера на сервере.

II) Настройка сервера DHCP

Устанавливаем его в систему
user@opensuse:~> sudo zypper install dhcp-server
Убираем текущий /etc/dhcpd.conf и создаем его заново
user@opensuse:~> sudo mv /etc/dhcpd.conf /etc/dhcpd.conf.old && sudo touch /etc/dhcpd.conf
В него вписываем следующие строки:
user@opensuse:~> sudo mcedit /etc/dhcpd.conf
# IP сервера указано тут потому что мы подняли собственный DNS. Вы можете использовать тут DNS провайдера.
option domain-name-servers 192.168.1.1;
# Отключаем динамические обновления DNS
ddns-update-style none;
ddns-updates off;
log-facility local7;
# Наша подсеть
subnet 192.168.1.0 netmask 255.255.255.0 {
# Диапазон выдаваемых IP адресов.
range 192.168.1.2 192.168.1.254;
# Дефолтный gateway
option routers 192.168.1.1;
# Время обновления адресов(12 часов).
default-lease-time 43200;
max-lease-time 86400;
}

*UPDATE*
Необходимо указать интерфейс, на котором будет слушать DHCPD - в /etc/sysconfig/dhcpd:
DHCPD_INTERFACE=»ethX»

Все, теперь запускаем сервис
user@opensuse:~>sudo /etc/init.d/dhcpd start
И добавляем его в автозагрузку.
user@opensuse:~>sudo chkconfig dhcpd on

III) Настройка NAT

Все необходимые настройки заключены в одном файле /etc/sysconfig/SuSEfirewall2. Открываем его с помощью любимого текстового редактора и начинаем править ( в моем случае - mcedit ):
user@opensuse:~> sudo mcedit /etc/sysconfig/SuSEfirewall2

В секции 2 вам нужно указать ваши интерфейсы, какие из них будут внешними, какие внутренними:
# Внешние ( в принципе можно не указывать, по умолчанию все интерфейсы являются внешними):
FW_DEV_EXT="any eth1"
# Внутренние:
FW_DEV_INT="eth0"

В секции 5 находятся еще два нужных нам параметра:
# Включаем роутинг в ядре
FW_ROUTE="yes"
# Разрешаем маскардинг
FW_MASQUERADE="yes"

В секции 6 указываем вашу подсеть, в моем случае - это 192.168.1.0/24:
FW_MASQ_NETS="192.168.1.0/24"

Готово! Теперь осталось применить правила и насладиться результатом:
user@opensuse:~> sudo /etc/init.d/SuSEfirewall2_setup restart

После выполнения данных действий все ваши компьютеры в сети смогут получать автоматический IP адрес, будут использовать ваш собственный DNS сервер и иметь доступ в интернет. В принципе, я потратил на это все минут 20, канал в интернет не очень широкий :-) В следующий раз расскажу о подсчете траффика для клиентов, я еще сам разобраюсь с данной темой. Если вдруг вы увидите какую-то ошибку в статье или выполняя все инструкции вы не получили желаемого результата, пишите, я постараюсь помочь.

GD Star Rating
loading...
Создание простейшего роутера из компьютера с openSUSE на борту, 10.0 out of 10 based on 18 ratings

10.11.2010 · Сергей · 22 комментария (-ев)
Метки: , , , ,  · Рубрики: Новости

22 комментария (-ев)

  1. demir - 11.11.2010

    Спасибо!
    Для меня Ваши статьи очень полезны.

  2. Aviv - 13.11.2010

    Спасибо, никак не мог найти, как именно это реализовать в openSuSE!

  3. KaLif - 13.11.2010

    Я так понимаю собственные DNS и DHCP серверы необязательны?!

  4. Сергей - 14.11.2010

    Естественно нет, если вы не хотите получать IP автоматически. Вообще это лишь пример конфигурации.

  5. Дмитрий - 27.11.2010

    Намного проще в «простейшем роутере» для DNS и DHCP сервисов использовать dnsmasq, простой конфиг в одном файле и ресурсы намного меньше жрёт, а с named и dhcpd стрельба из пушки по воробьям получается, imho.

  6. Сергей - 28.11.2010

    Как бы вам сказать по-мягче, это статья для начинающих, и эту конфигурацию можно дальше развивать, усложнять. А замечание насчет ресурсов, это вообще мне кажется смешным. Плюс ко всему, люди уже могут самостоятельно поднять DNS или DHCP. Этот блог не для профессионалов, это для тех, кто хочет научится азам OpenSuSE.

  7. Денис - 01.12.2010

    Может здесь кто подскажет.
    Проблема вот какая: стоит сервер под opensuse, на бух. компе есть банк-клиент, как сделать чтоб банк клиент мог работать через сервер opensuse

  8. Сергей - 02.12.2010

    Ну все зависит от того, какие требования предъявляет банк-клиент к работе с сетью. Бухгалтерский компьютер, я так понял, на Windows?

  9. Николай - 07.12.2010

    Я поклонник убунту,но настроив компьютер по вашей статье решил получше изучить сюсю,Спасибо!

  10. андрей - 14.12.2010

    сергей у меня open suse 11.3помогите пожалуйста подключить usb модем ZTE НУЖНА ЧЕТКАЯ ИНСТРУКЦИЯ Я НОВИЧОК

  11. Sovremenik - 18.12.2010

    Незадолго до пу6ликации статьи поднял НАТ дома по мануалу из сети

  12. Блог об openSUSE » Настройка PPTP VPN в OpenSUSE. - 30.12.2010

    [...] вы можете настроить NAT и пользоваться VPN повсеместно(Настройку NAT я описывал ранее). Однако, не забываем о проблемах, которые существуют у [...]

  13. VoVan - 06.01.2011

    Доброго времени суток. Мож я чего не понимаю, но у меня пишет «sudo: mcedit: command not found» где мне взять mcedit или надо писать mc edit?

  14. Сергей - 07.01.2011

    Необходимо установить пакет mc. Я всегда ставлю его первым, сразу после установки системы.

    zypper install mc

  15. dannik - 06.02.2011

    На картинке интерфейсы нужно местами поменять ))
    по описанию текста eth0 — внутренний, должен быть справа, а eth1 — внешний слева.

  16. denmarino - 14.03.2011

    Приветик Сергей, пропустил одну строчку в настройке /etc/sysconfig/dhcpd нужно указать интерфейс на котором будет работать dhcp, а конкретно DHCPD_INTERFACE=»ethX». Но мне не совсем понятно роль здесь dns сервера, без него не получиться ?, например обойтись одной настройкой nat а???
    Спасибо!!!

  17. Сергей - 15.03.2011

    Да :) 100% забыл, спасибо за напоминание :)

  18. smithy - 28.03.2011

    denmarino,
    Конечно можно только nat настроить (точнее здесь описывается MASQUERADE, но разница не велика). У меня так и было в начале — dhs+dhcp поднял потом «в догонку». Причем MASQUERADE я настраивал в YaST. (http://jeder.ru/?p=6)

  19. n2b - 29.03.2011

    Не работает, dhcp не выдает ip. Пробовал разные конфиги, писал свои — ничего не выходит… =\ В чем проблема?

  20. n2b - 30.03.2011

    Теперь ип выдает, но интернета нет… В чем проблема не знаю, тупо Подключение ограничено выдает…

  21. smithy - 31.07.2011

    n2b,
    конфиги дай посмотреть.

  22. smithy - 01.09.2011

    Сергей, я с товарищами столкнулся с тем, что в 11.4 некорректно работает модуль nf_nat_ftp (в 11.3 в норме, ее и используем). Поэтому 11.4 для создания роутера не подходит. Надеюсь в 12.3 это пофиксят.