Создание простейшего роутера из компьютера с 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, канал в интернет не очень широкий В следующий раз расскажу о подсчете траффика для клиентов, я еще сам разобраюсь с данной темой. Если вдруг вы увидите какую-то ошибку в статье или выполняя все инструкции вы не получили желаемого результата, пишите, я постараюсь помочь.
loading...
10.11.2010
· Сергей · 22 комментария (-ев)
Метки: DHCP, DNS, Named, NAT, SuSEfirewall2 · Рубрики: Новости
22 комментария (-ев)
demir - 11.11.2010
Спасибо!
Для меня Ваши статьи очень полезны.
Спасибо, никак не мог найти, как именно это реализовать в openSuSE!
KaLif - 13.11.2010
Я так понимаю собственные DNS и DHCP серверы необязательны?!
Естественно нет, если вы не хотите получать IP автоматически. Вообще это лишь пример конфигурации.
Намного проще в «простейшем роутере» для DNS и DHCP сервисов использовать dnsmasq, простой конфиг в одном файле и ресурсы намного меньше жрёт, а с named и dhcpd стрельба из пушки по воробьям получается, imho.
Как бы вам сказать по-мягче, это статья для начинающих, и эту конфигурацию можно дальше развивать, усложнять. А замечание насчет ресурсов, это вообще мне кажется смешным. Плюс ко всему, люди уже могут самостоятельно поднять DNS или DHCP. Этот блог не для профессионалов, это для тех, кто хочет научится азам OpenSuSE.
Денис - 01.12.2010
Может здесь кто подскажет.
Проблема вот какая: стоит сервер под opensuse, на бух. компе есть банк-клиент, как сделать чтоб банк клиент мог работать через сервер opensuse
Ну все зависит от того, какие требования предъявляет банк-клиент к работе с сетью. Бухгалтерский компьютер, я так понял, на Windows?
Николай - 07.12.2010
Я поклонник убунту,но настроив компьютер по вашей статье решил получше изучить сюсю,Спасибо!
андрей - 14.12.2010
сергей у меня open suse 11.3помогите пожалуйста подключить usb модем ZTE НУЖНА ЧЕТКАЯ ИНСТРУКЦИЯ Я НОВИЧОК
Sovremenik - 18.12.2010
Незадолго до пу6ликации статьи поднял НАТ дома по мануалу из сети
[...] вы можете настроить NAT и пользоваться VPN повсеместно(Настройку NAT я описывал ранее). Однако, не забываем о проблемах, которые существуют у [...]
VoVan - 06.01.2011
Доброго времени суток. Мож я чего не понимаю, но у меня пишет «sudo: mcedit: command not found» где мне взять mcedit или надо писать mc edit?
Необходимо установить пакет mc. Я всегда ставлю его первым, сразу после установки системы.
zypper install mc
На картинке интерфейсы нужно местами поменять ))
по описанию текста eth0 — внутренний, должен быть справа, а eth1 — внешний слева.
denmarino - 14.03.2011
Приветик Сергей, пропустил одну строчку в настройке /etc/sysconfig/dhcpd нужно указать интерфейс на котором будет работать dhcp, а конкретно DHCPD_INTERFACE=»ethX». Но мне не совсем понятно роль здесь dns сервера, без него не получиться ?, например обойтись одной настройкой nat а???
Спасибо!!!
Да 100% забыл, спасибо за напоминание
smithy - 28.03.2011
denmarino,http://jeder.ru/?p=6 )
Конечно можно только nat настроить (точнее здесь описывается MASQUERADE, но разница не велика). У меня так и было в начале — dhs+dhcp поднял потом «в догонку». Причем MASQUERADE я настраивал в YaST. (
n2b - 29.03.2011
Не работает, dhcp не выдает ip. Пробовал разные конфиги, писал свои — ничего не выходит… =\ В чем проблема?
n2b - 30.03.2011
Теперь ип выдает, но интернета нет… В чем проблема не знаю, тупо Подключение ограничено выдает…
smithy - 31.07.2011
n2b,
конфиги дай посмотреть.
smithy - 01.09.2011
Сергей, я с товарищами столкнулся с тем, что в 11.4 некорректно работает модуль nf_nat_ftp (в 11.3 в норме, ее и используем). Поэтому 11.4 для создания роутера не подходит. Надеюсь в 12.3 это пофиксят.