Здравствуйте. Коротко опишу свою ситуацию, есть ноут с Wi Fi, рядом есть несколько компьютеров с разными ОС, и нужно, чтобы этот ноут раздавал им интернет. Короче говоря ноут должен работать роутером.
Настраиваю по вот этой инструкции:
http://www.gentoo.org/doc/en/home-router-howto.xml
Да, есть один нюанс, использую Wicd, это вызывает ряд проблем. Например когда поднимаю сеть:
ifconfig eth0 up
Wicd пишет, что я подключен к проводной сети, а от Wi Fi отключен. Хотя интернет продолжает работать. В самом Wicd если переключится на проводную сеть, интернет обрубается. Да собственно не суть.
Все отлично пингуется, но интернета на клиентских машинах нет. Причем без разница использовать ли DHCP сервер, либо настраивать вручную.
У меня это первый опыт настройки сети в Linux и я чего то даже не знаю куда копать...
Пробовал обнулять правила iptables, все разрешать, но это ничего не меняет.
Сейчас стоят правила, как в howto.
[Решено]Раздача интернета Gentoo
Вот эту часть вы не пропустили?
# 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.
Вот эту часть вы не пропустили?Нет. Дважды уже все проверил. 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 в данном случае? Не включил по той простой причине, что в ядре ничего похожего нет. Поиск по крайней мере, ничего не показывает.
Подождите включать все и вся. Давайте сначала связь наладим =).
Если я правильно понял, то интернет вы получаете по кабелю на ноутбук и раздаете его по wi-fi? Или наоборот?
Дайте сюда вывод команд ip route, ip addr
Наоборот. Ноутбук получает интернет по Wi Fi.Подождите включать все и вся. Давайте сначала связь наладим =).
Если я правильно понял, то интернет вы получаете по кабелю на ноутбук и раздаете его по wi-fi? Или наоборот?
Интерфейс для этого у меня wlan0.
Т.е если следовать руководству с офф. сайта:
eth0 - это локальная сеть.
eth1 - это wlan0(В правилах я естественно заменил название интерфейса на wlan0), который выходит в интернет.
Дайте сюда вывод команд 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
Из вывода команд я вижу, что сетевая карта у вас не настроена.
Добавьте в /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).
Если внешние адреса пингуются, то будем настраивать дальше (уже по человечески). Если нет, то будем дальше искать проблему )
Ничего не поменялось. Да и все пункты уже были выполнены кроме первого.
Да и собственно не смотря на это, все ровно компьютеру присваивался адрес 192.168.0.1, которые и был шлюзом на других машинах.
Т.е все внешние компьютеры видят сеть, но интернета на них нет. Никакие внешние ip не пингуются. :(
Только в команде:
iptables -t NAT -A POSTROUTING -o wlan0 -j MASQUERADE
NET должна быть набрана в нижнем регистре. Иначе у меня пишет, что нет модуля ядра ip_tables.
UPD: Проблема решилась. В чем она конкретно была, я затрудняюсь сказать. Вероятно, что то не то с правилами ip_tables, т.к интернет появился после удаления ВСЕХ правил и создания новых. Вероятно, я что то неправильно ввел когда создавал правила в первый раз. Теперь буду сложные команды копировать в консоль, а не вводить вручную. Ибо чревато.
Всем спасибо!
Не надо копировать. Надо разбираться что они делают =). Тогда точно будет без ошибок =)
Можно помечать тему как решенную?