Дано:
Шлюз на Ubuntu 10.04 с pppoe подключением и wifi адаптером D-Link DWA-140
Ноутбук с чипом atheros.
Надо:
чтобы на ноуте был интернет по wifi.
Что делаю:
На шлюзе поднимаю iptables с единственным правилом:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
(SNAT тоже пробовал...)
Задаю параметры сети (именно с такими параметрами работает сеть в Вин7, но пробовал и другие подсети, в том числе 0):
шлюз:
IP: 192.168.8.1
Маска: 255.255.255.0
ноутбук:
IP: 192.168.8.2
Маска: 255.255.255.0
Шлюз: 192.168.8.1
DNS: 192.168.8.1 (dnsmasq есть и работает, другие dns пробовал тоже, что впрочем не важно, почему - понятно будет дальше)
iptables на ноутбуке девственно чист.
Форвардинг на шлюзе включен.
ipv6 выключен
С ноутбука пингуются:
192.168.8.1 и мой внешний IP
При этом судя по трассировке пакеты уходят в правильном направлении, а судя по статистике, ещё и возвращаются на головную машину-шлюз.
Ставлю WireShark.
Смотрю:
Пакеты идут вроде бы правильно и даже доходят до 192.168.8.2, но такое ощущение, что не попадают в юзерспэйс, при этом в ЭТОЙ же сети, но когда шлюз win7 - всё нормально.
Смотрю пакет ICMP (пинг яндекса на всех интерфейсах) - при входе на ppp0 он 100 байт, данные 58 байт, на wlan0 шлюза он 98 байт, данные 58 байт и идентичны пришедшим на ppp0. Чексуммы верны.
На ноуте на wlan0 пакет уже 96 байт, данные 56 байт - два последних байта потеряны, в остальном идентичны. Чексумма небьётся и пакет выбрасывается, недоходя до юзерспейс.
В итоге инета нет.
Напомню, что пакеты генеримые на шлюзе (например пинг 192.168.8.1) проходят нормально.
Загруженные модули драйвера:
# lsmod | grep rt28
Код:
rt2870sta 461811 0
rt2800usb 31531 0
rt2x00usb 9703 1 rt2800usb
rt2x00lib 27509 2 rt2800usb,rt2x00usb
crc_ccitt 1339 1 rt2800usb
Пробовал оставлять только rt2870sta - после горячей выгрузки модуля rt2800usb не пашет соединение вообще, хотя лампочка мигает, после перезагрузки работает с тем же эффектом.
Пробовал оставлять только rt2800usb - после горячей выгрузки модуля rt2870sta или после перезагрузки работает с тем же эффектом.
frag[mentation_threshold] стоит в off, но пробовал 746,750,1500.
MTU ppp0 - 1492
MTU wlan0 - 1500, но пробовал 1492, 1532, 1572
# iwconfig
Код:
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11bgn ESSID:"alex-home-network"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: 42:1A:40:DB:86:DF
Tx-Power=1 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
ppp0 no wireless extensions.
# ifconfig
Код:
eth0 Link encap:Ethernet HWaddr 00:18:f3:fb:34:42
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1289238 errors:0 dropped:0 overruns:0 frame:0
TX packets:1814045 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:220326001 (220.3 MB) TX bytes:2090110135 (2.0 GB)
Interrupt:25 Base address:0x4000
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4714 errors:0 dropped:0 overruns:0 frame:0
TX packets:4714 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:702100 (702.1 KB) TX bytes:702100 (702.1 KB)
ppp0 Link encap:Протокол PPP (Point-to-Point Protocol)
inet addr:77.66.146.126 P-t-P:80.80.111.68 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:904719 errors:0 dropped:0 overruns:0 frame:0
TX packets:1244988 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:162007120 (162.0 MB) TX bytes:1367376813 (1.3 GB)
wlan0 Link encap:Ethernet HWaddr 00:1e:58:ad:c1:08
inet addr:192.168.8.1 Bcast:192.168.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21856 errors:0 dropped:0 overruns:0 frame:0
TX packets:33813 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1731766 (1.7 MB) TX bytes:3543916 (3.5 MB)
Есть идеи?
Может быть виновен драйвер?