ЕСТЬ: amd k7 2500+ 1Gb + 3CRDAG675B-->AR 5414; Debian lenny i386 2.6.26.x ; madwifi-dfs 0.10.3.x + dhcp3-server+ hospapd 0.5.10 + NAT + iproute2--> tc --> htb; инет от прова - pptp 5Mbit/5Mbit;
В общем-то функционал есть, НО:
1) скорость оставляеет желать лучшего - лишь раз промелькнула скорость >4 Mbit , иногда 1,5 Mbit, в остальных случаях ~500-800kbps, можно, отчасти грешить на прова, но даже если от него есть честные 5Mbit, то на клиента ~1300 идет, а то и меньше, ssh даже подтормаживает порой
2) не все клиенты получают адрес по dhcp - некоторым пришлось прописывать ручками, корреляции никакой не заметил, разве что с картами intel у клиентов все ок, а вот с broadcom и atheros проблемы - ос у всех виста
вот конфиги, буду признателен, если поможете советом.
interfaces
Код:
auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 hw ether 0x:20:3x:1x:xx:47
###
auto ath1
iface ath1 inet static
address 192.168.2.1
netmask 255.255.255.0
wireless-essid my_essid
wireless-channel 11
madwifi-mode ap
madwifi-base wifi0
#pre-up wlanconfig ath1 destroy
#pre-up wlanconfig ath1 create wlandev wifi0 wlanmode ap
post-up echo "1" > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -F
post-up iptables -t nat -F
post-up iptables -t mangle -F
post-up iptables -X
post-up iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
post-up iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
post-up iptables -A FORWARD -i ppp0 -o ath1 -m state --state ESTABLISHED,RELATED -j ACCEPT
post-up iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
post-up iptables -A FORWARD -i ath1 -o ppp0 -j ACCEPT
post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
post-up iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
post-up /etc/init.d/hostapd restart
post-up /etc/init.d/dhcp3-server restart
post-up pon my_prov
###
pre-up route add -net 172.16.0.0 netmask 255.255.0.0 gw 10.50.0.7
hostapd
Код:
interface=ath1
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ssid=my_essid
hw_mode=g
channel=11
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wme_enabled=1
wme_ac_bk_cwmin=4
wme_ac_bk_cwmax=10
wme_ac_bk_aifs=7
wme_ac_bk_txop_limit=0
wme_ac_bk_acm=0
wme_ac_be_aifs=3
wme_ac_be_cwmin=4
wme_ac_be_cwmax=10
wme_ac_be_txop_limit=0
wme_ac_be_acm=0
wme_ac_vi_aifs=2
wme_ac_vi_cwmin=3
wme_ac_vi_cwmax=4
wme_ac_vi_txop_limit=94
wme_ac_vi_acm=0
wme_ac_vo_aifs=2
wme_ac_vo_cwmin=2
wme_ac_vo_cwmax=3
wme_ac_vo_txop_limit=47
wme_ac_vo_acm=0
ieee8021x=1
eap_reauth_period=3600
eap_server=1
own_ip_addr=127.0.0.1
wpa=1
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
wpa_strict_rekey=1
wpa_gmk_rekey=86400
psk=cxxx6e506xxxf86ba38a7cxxx7eab4ce8e7a3ea388xxx294d5dxxxd117xxx5f
dhcpd.conf
Код:
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.2.0 netmask 255.255.255.0{
option domain-name "try";
option domain-name-servers 1xx.xx.xx.xx , 156.154.70.1;
option subnet-mask 255.255.255.0;
default-lease-time 60000;
max-lease-time 720000;
range 192.168.2.2 192.168.2.254;
option routers 192.168.2.1;
}
ну и для примера одно из правил для tc
Код:
#!/bin/bash
tc qdisc del dev ath1 root
tc qdisc add dev ath1 root handle 1:0 htb default 50 r2q 100
tc class add dev ath1 parent 1:0 classid 1:2 htb rate 54Mbit ceil 54Mbit
tc class add dev ath1 parent 1:2 classid 1:10 htb rate 11Mbit ceil 11Mbit prio 10
tc qdisc add dev ath1 parent 1:10 handle 10 sfq perturb 10
tc filter add dev ath1 parent 1:0 protocol ip prio 100 u32 match ip sport 22 0xFFFF classid 1:10
tc class add dev ath1 parent 1:2 classid 1:20 htb rate 1300kbit ceil 1300kbit burst 51200 prio 20
tc qdisc add dev ath1 parent 1:20 handle 20 sfq perturb 10
tc filter add dev ath1 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.2.14 classid 1:20
exit