Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: Karlitos 11. 08. 2014, 15:48:03
-
Zdravim,
kvuli projektu pro jeden vyzkumny ustav jsem se ted snazil rozchodit AP mod na bezdratove karte na pandaboardu. Bezi na nem Debian jessie. Postuoval jsem podle instrukci, ktere jsem nasel tady (http://wiki.debianforum.de/WLAN-Access-Point_mit_hostapd_und_USB-Stick) a uspesne. Nyni se muzu pripojit na Pandaboard pomoci Wifi z libovolneho pocitace bez nutnosti pouzivat router.
Problem je, ze prestalo fungovat pripojeni na internet, ktere fungovalo prez dratovou sit. Pandaboard stale dostane pridelenou IP adresu kdyz pripojim LAN kabel a muzu se na nej pripojit pomoci ssh, ping na nejakou webovou stranku uz ale neprojde. Predpokladam, ze se to deje kvuli zmenam ktere jsem provadel pri nastavovani toho AP modu. Take bych rad, aby zarizeni, pripojena prez Wifi k tomu pandaboardu mohla sdilet pripojeni k internetu.
Konfigurace by mela byt nastavena tak, ze dratova sit na zarizeni eth0 dostava adresy prez DHCP a bezdratova sitova karta wlan0 je v AP modu a s pomoci dnsmasq prideluje adresy v rozsahu 192.168.4.10 ... 50. Abych se priznal ne zcela chapu nastaveni v /etc/network/interfaces. Puvodne stacilo strcit LAN kabel do sitovky na Pandaboardu a baliky jsem tahal normalne prez apt-get bez dalsiho nutneho nastavovani.
Moc bych poprosil, kdyby se nekdo zkuseny mohl podivat na ty konfiguraky a rict mi,kde je co spatne.
/etc/dnsmasq.conf
# set dhcp configuration for wireless interface
interface=wlan0
# exclude wired network from DHCP server
no-dhcp-interface=eth0
# assigne IP adresses in range 192.168.4.10 ... 50. The first 10 adresses will be reserved for static use. Lease time is set to infinite.
dhcp-range=interface:wlan0,192.168.4.10,192.168.4.50,infinite
/etc/init.d/hostapd
#!/bin/sh
### BEGIN INIT INFO
# Provides: hostapd
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Should-Start: $network
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Advanced IEEE 802.11 management daemon
# Description: Userspace IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP
# Authenticator
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON_SBIN=/usr/sbin/hostapd
DAEMON_DEFS=/etc/default/hostapd
DAEMON_CONF=/etc/hostapd.conf
NAME=hostapd
DESC="advanced IEEE 802.11 management"
PIDFILE=/var/run/hostapd.pid
[ -x "$DAEMON_SBIN" ] || exit 0
[ -s "$DAEMON_DEFS" ] && . /etc/default/hostapd
[ -n "$DAEMON_CONF" ] || exit 0
DAEMON_OPTS="-B -P $PIDFILE $DAEMON_OPTS $DAEMON_CONF"
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE" -- $DAEMON_OPTS >/dev/null
log_end_msg "$?"
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE"
log_end_msg "$?"
;;
reload)
log_daemon_msg "Reloading $DESC" "$NAME"
start-stop-daemon --stop --signal HUP --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE"
log_end_msg "$?"
;;
restart|force-reload)
$0 stop
sleep 8
$0 start
;;
status)
status_of_proc "$DAEMON_SBIN" "$NAME"
exit $?
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|reload|status}" >&2
exit 1
;;
esac
exit 0
/etc/hostapd.conf
# Wireless device
interface=wlan0
# Netlink-Treiber laden
driver=nl80211
# AP-Name
ssid=pandaboard_AP
# Channel
channel=5
# pandaboard doesn't support 802.11a
hw_mode=g
# Authentication mode "Open System Authentication"
auth_algs=1
# Use only WPA-2 connenctions
wpa=2
# Pre-Shared-Key (PSK) in plain-text
wpa_passphrase=pandaboard_wlan_key
# Pre-shared-Key Management
wpa_key_mgmt=WPA-PSK
# Offer WPA2 encryption
rsn_pairwise=CCMP
/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# Wireless network with fixed IP for hostapd
auto wlan0
iface wlan0 inet static
address 192.168.4.1
netmask 255.255.255.0
broadcast 192.168.4.255
# Reset firewall, clear tables
up /sbin/iptables -F
up /sbin/iptables -X
up /sbin/iptables -t nat -F
# Mask wired network, enable Port-Forwarding and NAT
up iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.4.0/24 -m conntrack --ctstate NEW -j ACCEPT
up iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
up sysctl -w net.ipv4.ip_forward=1
# (re) start hostapd unAd dnsmasq
up service hostapd restart
up service dnsmasq restart
-
Zkuste ping 8.8.8.8 . Pokud to projde, mozna mate blbe DNS. Pokud ne, zkuste route. Mozna nemate nastavenou gateway.
-
Dekuju za odpoved. Ta DNS/Gateway by byla spatne nastavena u dratoveho pripojeni (eth0) nebo u Wifi (wlan0) ?
Moje - mozna blba a naivni predstava - byla, ze nastaveni eth0 se bude realizovat prez dhcp.
-
Dekuju za odpoved. Ta DNS/Gateway by byla spatne nastavena u dratoveho pripojeni (eth0) nebo u Wifi (wlan0) ?
Moje - mozna blba a naivni predstava - byla, ze nastaveni eth0 se bude realizovat prez dhcp.
Gateway byste mel mit nastavenou pro eth0.
Ted je otazka, jak si pak predstavujete to sdileni internetu. Mate asi dve moznosti:
1) Wifi bude delat akorat AP, o vse ostatni se bude starat nekdo jiny jinde - DHCP server bude sypat adresy vsem klientum na wifi. Zde musite mit eth0 a wlan0 v bridge modu.
2) Wifi bude mit vlastni adresovy rowsah, vlastni DHCP server a bude klientum pridelovat adresy ze sveho rozsahu, nasledne" bude jejich trafic prekladat maskaradou/NATem na eth0 a posilat dal. Zde musite mit skript, ktery vhodne nastavi iptables na maskaradu wlan0->eth0. Doporucuji si nejaky vygooglovat a upravit, neni to takova sranda.
Varianta 1 by byla mene prace, pokud situace nevynucuje delat na tom maskaradu/NAT, tak bych se do toho nenutil. Varianta 1 by eventuelne mohla mit vlastni DHCP server, ktery by prideloval adresy pro klienty na wlan0, eventuelne i eth0. V obou pripadech je nutno zajistit, aby mel vlastni pool adres, ktery neni v konfliktu s poolem jiz existujiciho DHCP serveru a samozrejme eventuelnimi statickymi adresami, ktere mohou na siti existovat.
Nicmene bych zacal tim pingem a route, ktere jste nejak nezkousel.
-
Diky. Ty povely vyzkousim hned jak se zitra dostanu do vyzkumaku, stejne sem z toho Pandaboardu vytahnul zastrcku nez sem odesel.
Podle toho navodu, podle ktereho jsem nastavoval ten AP mod by to melo fungovat podle schematu 2)
Bezdratova sit ma mit vlastni zozsah IP, o jejich pridelovani se stara dnsmasq.
Bohuzel nevim co to ma byt s tou maskaradou, ale predpokladam ze by se melo jednat o radky v /etc/network/interfaces
# Mask wired network, enable Port-Forwarding and NAT
up iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.4.0/24 -m conntrack --ctstate NEW -j ACCEPT
up iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
up sysctl -w net.ipv4.ip_forward=1
Tehle casti bohuzel zrovna nerozumim, zkusim si pred spanim o tom neco precist.
-
Maskarada: up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Ja zas nevim, co je to up. To nak na Debianu ani Ubuntu nemam.
-
Nemáš up na Debianu? Při perzistentní konfiguraci interface je to docela běžná věc - https://wiki.debian.org/NetworkConfiguration
-
Vsem dekuji za pomoc, ale ono se to nejak vyresilo samo. Proste sem rano prisel, zapnul Pandaboard a voila ... AP mod funguje a navic se chova jako router, z pripojenych zarizeni se dostanu na internet. Mozna me napada ze jsem znovu prepsal konfiguraky podle navodu a jediny rozdil ktery si uvedomuju je v /etc/network/interfaces je ze misto
up iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.4.0/24 -m conntrack --ctstate NEW -j ACCEPT
jsem tam zadal (podle navodu)
up iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
Musim se podivat so presne znamena ten parametr -s
-
To je source... zdrojová síť.. :) Teď už je jasné, proč to nefungovalo ;)