Отчитываюсь по проделанной работе.
Ubuntu 10.04. (извините, я - консерватор)
Воткнул шнурок, перевёл зверька в режим USB-модема, как и писал выше.
Зрим в терминалку ББ. Вчера немного ошибся с адресом полученным ББ, но это не критично, для достижения цели - просто на роботе нужно указать правильный шлюз.
~$ tail /var/log/messages
Jan 18 22:59:46 sergey-desktop kernel: [ 410.270766] usb 2-1: USB disconnect, address 6
Jan 18 22:59:47 sergey-desktop kernel: [ 410.552030] usb 2-1: new high speed USB device using ehci_hcd and address 7
Jan 18 22:59:47 sergey-desktop kernel: [ 410.686719] usb 2-1: configuration #1 chosen from 1 choice
Jan 18 22:59:47 sergey-desktop kernel: [ 410.687785] cdc_acm 2-1:1.3: ttyACM0: USB ACM device
Jan 18 22:59:47 sergey-desktop kernel: [ 410.689338] scsi5 : SCSI emulation for USB Mass Storage devices
Jan 18 22:59:47 sergey-desktop kernel: [ 410.740521] usb0: register 'cdc_ether' at usb-0000:00:1d.7-1, CDC Ethernet Device, 5e:ab:06:68:b3:bb
Jan 18 22:59:47 sergey-desktop kernel: [ 410.740546] usbcore: registered new interface driver cdc_ether
Jan 18 22:59:52 sergey-desktop kernel: [ 415.697039] scsi 5:0:0:0: Direct-Access LGE Android Platform 0100 PQ: 0 ANSI: 2
Jan 18 22:59:52 sergey-desktop kernel: [ 415.697514] sd 5:0:0:0: Attached scsi generic sg4 type 0
Jan 18 22:59:52 sergey-desktop kernel: [ 415.702469] sd 5:0:0:0: [sdd] Attached SCSI removable disk
~$ ifconfig usb0
usb0 Link encap:Ethernet HWaddr 5e:ab:06:68:b3:bb
inet addr:192.168.42.21 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::5cab:6ff:fe68:b3bb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:776 (776.0 B) TX bytes:4292 (4.2 KB)
~$ route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.42.0 0.0.0.0 255.255.255.0 U 1 0 0 usb0
...
~$ ping 192.168.42.129
PING 192.168.42.129 (192.168.42.129) 56(84) bytes of data.
64 bytes from 192.168.42.129: icmp_seq=1 ttl=64 time=0.540 ms
64 bytes from 192.168.42.129: icmp_seq=2 ttl=64 time=0.399 ms
^C
--- 192.168.42.129 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.399/0.469/0.540/0.073 ms
~$ sudo sysctl net.ipv4.ip_forward=1
[sudo] password for sergey:
net.ipv4.ip_forward = 1
~$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
~$ []bsudo iptables -t nat -A POSTROUTING -s 192.168.42.0/24 ! -d 192.168.42.0/24 -j MASQUERADE[/b]
WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release. (ерунда, к делу не относится)
~$ sudo iptables-save
# Generated by iptables-save v1.4.4 on Fri Jan 18 23:05:13 2013
*nat
:PREROUTING ACCEPT [1:81]
:POSTROUTING ACCEPT [3:411]
:OUTPUT ACCEPT [3:411]
-A POSTROUTING -s 192.168.42.0/24 ! -d 192.168.42.0/24 -j MASQUERADE
COMMIT
# Completed on Fri Jan 18 23:05:13 2013
Ка ни странно, роботу не понадобилось указывать DNS-сервера. Не знаю, правильно это или нет, но с него всё начало пингваться по доменам.
Скриншоты со зверька делать лень, так что придётся поверить на слово.
А теперь... тадаааам... бонус.
То есть NM тоже всё это прекрасно воспринял. Остаётся только поставить галочку в маршрутах, разрешить ядру форвард пакетов и добавить правило маскарада.
Так же проверено. Работает.
P.S. Повторюсь: пока проверено только на Android 2.3
------ Продолжил тут я свою мыслю и деяния-----
Дело было вечером. Делать было нечего (интернет опять глчит и кортавит). Ну чтож, подоткнём 4-ого андроила, пусть пока и без рута.
Jan 18 23:48:12 sergey-desktop kernel: [ 3315.694612] usb 2-1: USB disconnect, address 11
Jan 18 23:48:12 sergey-desktop kernel: [ 3316.080029] usb 2-1: new high speed USB device using ehci_hcd and address 12
Jan 18 23:48:12 sergey-desktop kernel: [ 3316.213069] usb 2-1: configuration #1 chosen from 1 choice
Jan 18 23:48:12 sergey-desktop kernel: [ 3316.256362] usb0: register 'rndis_host' at usb-0000:00:1d.7-1, RNDIS device, 62:36:99:25:dc:e7
Jan 18 23:48:12 sergey-desktop kernel: [ 3316.256386] usbcore: registered new interface driver rndis_host
Как и предпологалось, ядро не подвело и нашло таки нужный модуль.
Но...
~$ifconfig usb0
usb0 Link encap:Ethernet HWaddr 62:36:99:25:dc:e7
inet6 addr: fe80::6036:99ff:fe25:dce7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1132 (1.1 KB) TX bytes:5326 (5.3 KB)
Засада... Почему-то 4-ый андроид отказался адрес выдавать.
Не беда. Попробуем ещё раз его толкнуть и ...
~$ sudo dhclient usb0
[sudo] password for sergey:
Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/usb0/62:36:99:25:dc:e7
Sending on LPF/usb0/62:36:99:25:dc:e7
Sending on Socket/fallback
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 4
DHCPOFFER of 192.168.42.191 from 192.168.42.129
DHCPREQUEST of 192.168.42.191 on usb0 to 255.255.255.255 port 67
DHCPACK of 192.168.42.191 from 192.168.42.129
bound to 192.168.42.191 -- renewal in 18758 seconds.
~$ ifconfig usb0
usb0 Link encap:Ethernet HWaddr 62:36:99:25:dc:e7
inet addr:192.168.42.191 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::6036:99ff:fe25:dce7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1824 (1.8 KB) TX bytes:9621 (9.6 KB)
... можем идти за пирожком на полке.
Как ни странно, повторное подключение провода уже не потребовало принудительного запроса адреса и всё прошло гладко.
NM также отработал безукоризненно.
Теперь дело за Ubuntu 12.04 и 12.10, но это сложнее. Нужно устанавливать, а я c Lucid пока не хочу расставаться.