1 (07.07.2010 04:15:42 отредактировано Nikita)

Здравствуйте. Коротко опишу свою ситуацию, есть ноут с Wi Fi, рядом есть несколько компьютеров с разными ОС, и нужно, чтобы этот ноут раздавал им интернет. Короче говоря ноут должен работать роутером.

Настраиваю по вот этой инструкции:
http://www.gentoo.org/doc/en/home-router-howto.xml

Да, есть один нюанс, использую Wicd, это вызывает ряд проблем. Например когда поднимаю сеть:
ifconfig eth0 up
Wicd пишет, что я подключен к проводной сети, а от Wi Fi отключен. Хотя интернет продолжает работать. В самом Wicd если переключится на проводную сеть, интернет обрубается. Да собственно не суть.

Все отлично пингуется, но интернета на клиентских машинах нет. Причем без разница использовать ли DHCP сервер, либо настраивать вручную.

У меня это первый опыт настройки сети в Linux и я чего то даже не знаю куда копать...
Пробовал обнулять правила iptables, все разрешать, но это ничего не меняет.
Сейчас стоят правила, как в howto.

2

Вот эту часть вы не пропустили?

# nano /etc/sysctl.conf
Tell the kernel that ip forwarding is OK
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

А еще попробуйте попинговать внешний хост по ip. Например днс гугла 8.8.8.8.

3

Вот эту часть вы не пропустили?

Нет. Дважды уже все проверил.  smile

А еще попробуйте попинговать внешний хост по ip. Например днс гугла 8.8.8.8.

Пробовал, пинг не идет. Я и сторонние DNS пробовал выставлять, никакой реакции.
hint: Если запустить диагностику в Windows 7, он говорит, что роутер не исправен и его надо перезапустить. Я даже попробовал перезапустить, но это ничего не дало.

Я думаю, что проблема либо в wicd сегодня вечером попробую без него. Либо с тем, что я не включил вот эти опции ядра:

QoS and/or fair queueing  --->
      [s ] QoS and/or fair queueing
         [s ] HTB packet scheduler
         [s ] Ingress Qdisc

Кстати, что значит буква s в данном случае? Не включил по той простой причине, что в ядре ничего похожего нет. Поиск по крайней мере, ничего не показывает.

4

Подождите включать все и вся. Давайте сначала связь наладим =).

Если я правильно понял, то интернет вы получаете по кабелю на ноутбук и раздаете его по wi-fi? Или наоборот?

Дайте сюда вывод команд ip route, ip addr

5

elve пишет:

Подождите включать все и вся. Давайте сначала связь наладим =).

Если я правильно понял, то интернет вы получаете по кабелю на ноутбук и раздаете его по wi-fi? Или наоборот?

Наоборот. Ноутбук получает интернет по Wi Fi.
Интерфейс для этого у меня wlan0.
Т.е если следовать руководству с офф. сайта:
eth0 - это локальная сеть.
eth1 - это wlan0(В правилах я естественно заменил название интерфейса на wlan0), который выходит в интернет.

elve пишет:

Дайте сюда вывод команд ip route, ip addr

ip addr:

1: lo: <LOOPBACK> mtu 16436 qdisc noop state DOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:24:54:05:89:fe brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:16:eb:0f:b2:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global wlan0

ip route:

192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.2
default via 192.168.1.1 dev wlan0

6

Из вывода команд я вижу, что сетевая карта у вас не настроена.

Добавьте в /etc/conf.d/net следующие строки:

config_eth0=("192.168.5.1/24")

После этого, если файл /etc/init.d/net.eth0 существует, то скомандовать

/etc/init.d/net.eth0 restart

Если же его не существует, то надо его предварительно создать

ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Когда интерфейс поднимется (ему будет присвоен ip-адрес 192.168.5.1), выполните следующую команду

iptables -t NAT -A POSTROUTING -o wlan0 -j MASQUERADE

и

echo 1 > /proc/sys/net/ipv4/ip_forward

После этого одному из компьтеров в сети назначьте адрес 192.168.5.2/255.255.255.0  и шлюз 192.168.5.1
Теперь попробуйте попинговать какой-нибудь ip из интернета (хотя бы тот же 8.8.8.8).

Если внешние адреса пингуются, то будем настраивать дальше (уже по человечески). Если нет, то будем дальше искать проблему )

7 (06.07.2010 17:53:00 отредактировано Nikita)

Ничего не поменялось. Да и все пункты уже были выполнены кроме первого.
Да и собственно не смотря на это, все ровно компьютеру присваивался адрес 192.168.0.1, которые и был шлюзом на других машинах.
Т.е все внешние компьютеры видят сеть, но интернета на них нет. Никакие внешние ip не пингуются. ac
Только в команде:

iptables -t NAT -A POSTROUTING -o wlan0 -j MASQUERADE

NET должна быть набрана в нижнем регистре. Иначе у меня пишет, что нет модуля ядра ip_tables.


UPD: Проблема решилась. В чем она конкретно была, я затрудняюсь сказать. Вероятно, что то не то с правилами ip_tables, т.к интернет появился после удаления ВСЕХ правил и создания новых. Вероятно, я что то неправильно ввел когда создавал правила в первый раз. Теперь буду сложные команды копировать в консоль, а не вводить вручную. Ибо чревато.
Всем спасибо!

8

Не надо копировать. Надо разбираться что они делают =). Тогда точно будет без ошибок =)

Можно помечать тему как решенную?