Соединяюсь с роутером через eth0 - работает, внешняя сеть роутера есть.
ifconfig eth0 down
через wlan0 доступен роутер, внешняя сеть недоступна.
ifconfig wlan0 down
ifconfig eth0 up
через eth0 доступен роутер, внешняя сеть недоступна.
После перезагрузки на исходную.
Где может быть причина?
eth0 - инет есть, а wlan0 - нету
Попробуйте как-то так:
# dhcpcd eth0Нет, DHCP не использую.
Кажется мне, нет маршрута к внешней сети роутера, после перезагрузки возвращается.
Маршрутизация задается один раз при загрузке?
Возможно, действительно нет маршрута. А еще, проверьте, что происходит с /etc/resolv.conf. Вообще, если после поднятия wlan0 публичный DNS Google (8.8.8.8) не пингуется, то смотрите маршрутизацию (route). И NetworkManager, как я понимаю, не используете?
Нашел отличия в routing table до и после перезагрузки.
Кто добавляет строки в таблицу при загрузке?
Если не ошибаюсь, то /etc/rc.d/rc.inet*
resolv без изменений,
внешние ip не пингуются,
настраиваю в консоли.
Интересно то как.
При загрузке компа все маршруты присутствуют, а после выключения интерфейса один из маршрутов пропадает. Разкажыте но как у вас сеть настроена. И покажите таблицу маршрутизации после загрузки ОС и после
ifconfig eth0 down
ifconfig eth0 up
Нашел в файле /etc/rc.d/rc.inet1 код изменяющий таблицу маршрутизации:
Показать
# GATEWAY FUNCTIONS #
#####################
# Function to bring up the gateway if there is not yet a default route:
gateway_up() {
if ! /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then
if [ ! "$GATEWAY" = "" ]; then
echo "/etc/rc.d/rc.inet1: /sbin/route add default gw ${GATEWAY} metric 1" | $LOGGER
/sbin/route add default gw ${GATEWAY} metric 1 2>&1 | $LOGGER
fi
fi
}
# Function to take down an existing default gateway:
gateway_down() {
if /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/route del default" | $LOGGER
/sbin/route del default
fi
}
# Function to start the network:
start() {
lo_up
for i in ${IFNAME[@]} ; do
if_up $i
done
gateway_up
}
# Function to stop the network:
stop() {
gateway_down
for i in ${IFNAME[@]} ; do
if_down $i
done
lo_down
}
А вот таблица после загрузки (вывод route):
Показать
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.255.255.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 1 0 0 eth0
И после перезагрузки eth0:
Показать
localnet * 255.255.255.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
Файл rc.inet1 вгоняет строку default.... в таблицу, если там этой строки нету. (насколько я понял:)
Gateway берется из rc.inet1.conf и правильно.
Не могу добавить в таблицу строку route add default gw 192.168.1.1 dev wlan0
SIOCADDRT: No such process
route add default gw 192.168.1.1 dev eth0 - прекрасно добавляется.
С файлом rc.inet1 непонятно, при каких условиях производится удаление строки default....
И что это за переменная LOGGER?
rc.inet1 править не нужно, у него есть одноименный конфиг, rc.inet1.conf. Разберитесь с ним.
ifconfig eth0 down
ifconfig wlan0 down
ifconfig eth0 up
через eth0 доступен роутер, внешняя сеть недоступна.
# /etc/rc.d/rc.inet1 eth0_stop
# /etc/rc.d/rc.inet1 wlan0_stop
# /etc/rc.d/rc.inet1 eth0_start
Если с "ifconfig ... down" всё в порядке, ядро само удалит маршрут через интерфейс из таблицы маршрутов, то при "ifconfig ... up" добавить маршрут некому. Использование "/etc/rc.d/rc.inet1 интерфейс_start" способно помочь в этом вопросе.
Внешняя сеть недоступна из-за отсутствия маршрута по умолчанию. Роутер доступен из-за принадлежности его локальной сети. Вот этой записи в таблице маршрутов вполне достаточно для такого поведения:
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.255.255.0 U 0 0 0 eth0
Предположу, что причина в том, что адрес wlan0 не принадлежит сети 192.168.1.0/24.Не могу добавить в таблицу строку
route add default gw 192.168.1.1 dev wlan0
SIOCADDRT: No such process
ps. Задача-то какая стояла?
да, удобно inet1 выполняет все...
"Предположу, что причина в том, что адрес wlan0 не принадлежит сети 192.168.1.0/24."
В точку! - в inet1.conf указал ip и маску для wlan0, небыло.
Работает.
Спасибо!
Задача была - подключиться к роутеру WiFi, кроме провода.
А где задать wlan0 по-умолчанию при загрузке вместо eth0?
Не совсем понятен вопрос. Нужно использовать для подключения к сети wlan0? Тогда оставьте в /etc/rc.d/rc.inet1.conf параметры только в отношении него, что-то вроде:
IFNAME[4]="wlan0"
USE_DHCP[4]="yes"
...
остальные параметры, специфичные для WiFi -- по потребности, они там ниже в комментариях присутствуют.
Да, именно это.
Просто закомментировать строки?
Лучше, если оба активны,
но это мне надо с таблицей разобраться.
Адаптеры должны работать попеременно, скажем, при наличии соединения по eth0 -- используется проводной вариант, а при отсутствии -- wlan0, или как-то ещё (хотя какой смысл в случае одной сети использовать WiFi при наличии проводного соединения)?Лучше, если оба активны
Оба адаптера используют адреса из одной сети или из разных (от этого также зависит настройка шлюза по умолчанию)? Судя по сообщению #9, из разных. В таком варианте мог быть плюс от использования DHCP -- в виде получения от него правильного шлюза по умолчанию при активации адаптера. В противном случае, это придётся делать руками.
Допустим,
eth0: 192.168.1.11, gw 192.168.1.254
wlan0: 192.168.2.11, gw 192.168.2.254
Тогда при обоих активных адаптерах переключение шлюза с одного на другой будет выглядеть как-то наподобие:
# route del default ; route add default gw 192.168.1.254
# route del default ; route add default gw 192.168.2.254
Если имелось в виду, чтобы трафик шёл через wlan0 по умолчанию, укажите его шлюз в качестве основного GATEWAY="192.168.2.254" (только если wlan0 и eth0 из разных сетей). Если указать шлюз так:А где задать wlan0 по-умолчанию при загрузке вместо eth0?
GATEWAY="${GATEWAY:-192.168.2.254}"
сможете явно указывать иной желаемый шлюз при запуске /etc/rc.d/rc.init1, например так:
# /etc/rc.d/rc.inet1 wlan0_stop
# GATEWAY="192.168.1.254" /etc/rc.d/rc.inet1 eth0_start
Всем привет! Имеется ноутбук с осью Slax - в режиме лайв, с двумя карточками (Wlan, Lan) и стационарный комп (винда ХР). На ноуте приходит интернет (Wlan), нужно его раздавать в Lan карточку (к lan подключен стационар).
на стационаре (windows XP) прописал LAN
192.168.1.3
255.255.255.0
192.168.1.2 шлюз
8.8.8.8 DNS
route add 0.0.0.0 192.168.1.2
на ноуте (Slax) прописал LAN
ifconfig etho 192.168.1.2
ifconfig netmask 255.255.255.0
sysctl -w net.ipv4.ip_forward=1
компы друг друга видят а инета нет на стационаре! Подскажите что далее нужно сделать? третий день бьюсь.
на ноуте wlan0 - 192.168.0.*
P.S. на ноуте нет винта поэтому гружусь с самого шустрого по железу линуха в режиме лайв! Конфиг конечно не сохранится нужно будет если получится пробросить инет прописывать после каждого старта оси. Всем заранее спасибо!
Объясните по порядку что писать в терминале! Я еще новичек в линухе но слакс понравился! Шустрее убунты!
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j MASQUERADE
Если адрес ip известен и не меняется, можно использовать более дешевый по ресурсам
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j SNAT --to-source ip_от_wlan0
Подробнее: http://www.opennet.ru/docs/RUS/iptables/
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j MASQUERADE
Если адрес ip известен и не меняется, можно использовать более дешевый по ресурсам
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j SNAT --to-source ip_от_wlan0
Подробнее: http://www.opennet.ru/docs/RUS/iptables/
на ноуте (вафля) IP постоянный, сейчас проверю оба способа спасибо.
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j SNAT --to-source ip_от_wlan0
iptables v1.4.14: Bad IP address "ip_от_wlan0"
Try `iptables -h' or 'iptables --help' for more information.
ошибка!
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j MASQUERADE
iptables v1.4.14: Can't use -i with POSTROUTING
Kernel IP routing table (ноут)
Destination Gateway Genmask Flags MSS Window irtt Iface
default Dlink-Router.Dl 0.0.0.0 UG 0 0 0 wlan0
loopback * 255.0.0.0 U 0 0 0 lo
192.168.0.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
инета нету на стационаре (lan карточка)