LINUX.ORG.RU

dhclient не присваивает ip интерфейсу

 


1

1

есть паравирт. linux с rootfs собранным в buildroot. dhclient всё получает (что я вижу по lease файлу), но интерфейсу всё это не присваивается(«ip a» до и после dhclient'a одинаковый). Запускал dhclient через strace, смутили эти строчки:

ioctl(4, SIOCGIFNETMASK, {ifr_name="eth0", ???}) = -1 EADDRNOTAVAIL (Cannot assign requested address) 

Вобщем, прошу помощи


Ответ на: комментарий от true_admin

руками назначается, но wget не пашет. Запускается всё это в qemu, в качетсве хоста выступает L4

tim91
() автор топика
Ответ на: комментарий от true_admin

думаю, что это просто ванильное ядро немного дописанное для использования в L4. Мне кажется, не нужно заострять на этом внимания, а считать, что используется ванильное ядро линукса в котором наблюдается вышеописанная проблема

tim91
() автор топика
Ответ на: комментарий от tim91

ну тогда

1) убедиться что адрес которые назначает dhcp валиден

2) вот это посмотри http://www.linuxquestions.org/questions/linux-networking-3/bind-fails-with-ea...

2) обновить ведро до 3.0.31?

ну и strace бы целиком увидеть и сравнить со strace на ifconfig eth0 ...

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

1) валиден (назначается 10.0.2.15, а это стандартный для qemu ip) 2) нет такой директории/proc/sys/net/ipv6, а в ip4 нет такого пункта 3) это будет далеко непросто, не хочу это пробывать

strace сейчас только в таком виде, извините :) http://ompldr.org/vZHBhdw в ifconfig всё выполняется без ошибок кроме

ioctl(4, SIOCGIFNETMASK, {ifr_name="eth0", ???}) = -1 EADDRNOTAVAIL (Cannot assign requested address) 

tim91
() автор топика
Ответ на: комментарий от tim91

какой-то неправильный линукс. Моё мнение - проблема в несовместимости ABI dhclient и ядра раз оно возвращает эту ошибку. Косвенно я вижу это по тому что делается SIOCGIFADDR для установки адреса и то что strace не может распарсить аргументы, в то же время должно быть SIOCSIFADDR (оно присутствует при вызове ifconfig?).

Короче, у тебя пиратский линукс, поставь что-нить нормальное.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

SIOCSIFADDR в ifconfig'e нет, я ошибся когда написал ошибку, которая есть в ifconfig, там такая

 ioctl(3, SIOCGIFADDR, {ifr_name="eth0", ???}) = -1 EADDRNOTAVAIL (Cannot assign requested address)  

я rootfs использую не тот который рекомендован( в рекомендованном я что-то не смог найти dhcp ), может из-за этого появилась такая несовместимость?

tim91
() автор топика
Ответ на: комментарий от tim91

SIOCSIFADDR в ifconfig'e нет

в смысле нет даже когда делаешь ifconfig eth0 192.168.0.1?? Ну значит root точно не подходит для этого ядра. Я щас сделал, у мну всё работает:

ioctl(4, SIOCSIFADDR, {ifr_name=«wlan0», ifr_addr={AF_INET, inet_addr(«192.168.1.4»)}}) = 0

Так что выкинь этот образ.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

когда статически присваиваю есть и тоже 0

tim91
() автор топика
Ответ на: комментарий от tim91

да, по логике должно быть. лень проверять на своей тачке, проверь у себя.

Кстати, сеть-то появляется если руками адреса назначать?

true_admin ★★★★★
()
Ответ на: комментарий от tim91

Я думаю ты что-то неправильно настраиваешь, сети не важно кто настраивает интерфейсы - dhclient или ifconfig. Я ещё могу допустить что при запросе по dhcp оно там что-то особенное делает, но тогда при подъёме интерфейса руками после dhcp всё должно работать.

true_admin ★★★★★
()
Ответ на: комментарий от tim91

У меня, правда, запуск сети идёт через -net nic,model=virtio,macaddr=52:54:22:36:34:62 -net tap,script=/etc/kvm-ifup.sh

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.