Домашний сервер + PCI Wi-Fi (Hostapd) [solved]
Ку! Есть задачка, прошу куда нить посоветовать :)
Имеется домашний сервер (файлопомойка, раздача тырнету и почты)
eth1 - 192.168.0.10, получает по DHCP от другого сервера(локалка соседа, имеем интернет)
eth2 - 10.0.0.1, прибит гвоздями (моя локалка, так же есть NAT)
Прикупил неделю назад D-Link DWA-520 (00:0a.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)), смёржил madwifi-ng, hostapd, настроил как ath0 (за эту неделю перерыл тучу форумов и манов) и получил:
При коннекте к точке доступа из винды, dnsmasq(судя по логам) не получает запроса на выделение адреса. Если в соединении(клиентском) прописать ip, mask, dns, то беспроводное соединение отлично пашет. Под линуксом (клиент на интеловской вайфае) постоянные auth-deauth с ризоном "плохой сигнал". Игры с частотами ничего не дали.
Собственно главный вопрос: где и с чем приседать на сервере, чтобы объединить проводную мою локалку (eth2) с беспроводной (ath0) и желательно(но не обязательно), чтобы обе подсети были одним диапазоном адресов(в 10.0.0.0).
Пробовал http://www.linux.com/articles/55617, но после поднятия br0 херится роутинг, а тяму в этих сетевых премудростях у меня не хватает.
#/etc/conf.d/net
config_eth1=("dhcp")
config_eth2=("10.0.0.1 netmask 255.255.255.0")
#/etc/hostapd/hostapd.conf
interface=ath0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
own_ip_addr=10.0.1.1
accept_mac_file=/etc/hostapd/hostapd.accept
wpa_psk_file=/etc/hostapd/hostapd.wpa_psk
macaddr_acl=1
eap_message=hello
ssid=MyNet
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
auth_algs=2
eapol_version=2
eapol_key_index_workaround=0
use_pae_group_addr=1
eap_server=0
wpa_group_rekey=600
wpa_gmk_rekey=86400
#iptables скрипт. спёрт где-то на gentoo.org
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
export WAN=eth1
export HOMELAN=eth2
export HOMEWF=ath0
iptables -I INPUT 1 -i ${HOMELAN} -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i ! ${HOMELAN} -j REJECT
iptables -A INPUT -p UDP --dport domain -i ! ${HOMELAN} -j REJECT
iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
iptables -t nat -A PREROUTING -i ${HOMELAN} -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -I FORWARD -i ${HOMELAN} -d 10.0.0.0/255.255.255.0 -j DROP
iptables -A FORWARD -i ${HOMELAN} -s 10.0.0.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i ${WAN} -d 10.0.0.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
iptables -I FORWARD -i ${HOMEWF} -d 10.0.1.0/255.255.255.0 -j DROP
iptables -A FORWARD -i ${HOMEWF} -s 10.0.1.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i ${WAN} -d 10.0.1.0/255.255.255.0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
- Для комментирования войдите или зарегистрируйтесь
У меня похожая
У меня похожая конфигурайия стоит.
Уберите dnsmasq. Поставьте dhcpd и bind.
Если вы хотите объединить проводную и беспроводную сеть то надо делать мост br0. Если его правилтно настроить он отосительно нормально работает, но опыт показал что это усложняет систему и уменьшает надежность. Лучше сделайте разные диапозоны на проводную и беспроводную сеть и iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE для {WAN}, {LAN} и {WIFI}
..................................................................
Unix - дружественная система, но своих друзей она хорошо выбирает.
Конфиги
Да мне самому как то бридж поднимать не охота.
Поделитесь конфигами dhcpd и bind? ;)
Если в первом я ещё что то соображаю, то во втором я полный ноль :)
Заменил
А что это даст собственно? Заменил, всё равно нет запроса :(
Почему менять! :)
Топик поставил в [solved], но на будущее - зачем менять.
dnsmasq при старте проверяет наличие интерфейсов, и если интерфейс ещё не поднят, то dnsmasq не будет слушать запросы после поднятия интерфейса, вот в этом и была загвоздка.
dhcpd, как я понял, пофигу, он полагается на конфиг, в котором описаны подсети.
dhcpd + bind более
dhcpd + bind более серьезные програмы чем dnsmasq. Она игрушка для домашнего гейтвея.
Да. Забыл имеено это сказать.
у меня так прописано в /etc/init.d/dhcpd
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcp/files/dhcpd.init,v 1.5 2007/04/02 12:34:01 uberlord Exp $
DHCPD_CONF=${DHCPD_CONF:-/etc/dhcp/dhcpd.conf}
depend() {
need net.eth0 net.ath0
use logger dns
}
чтобы dhcp запускался после сетей.
Конфиг DNS вполне подойдет дефолтный. Надо только зону создать. Но это - тема отдельной книги "DNS и BIND"
..................................................................
Unix - дружественная система, но своих друзей она хорошо выбирает.
Решено
Вопрос закрыт. dhcpd стартовал раньше, чем поднимался сетевой интерфейс => dhcp не знал, что на ath0 нужно слушать. :)