# Зоопарк подключений к сети.

## fedukoff

Здравствуйте!

Дело в том, что с ноутбуком возникает необходимость подключаться к сети дома, со статическим IP, по витой паре, на работе по витой паре, но с DHCP. В дороге - по gprs через мобильный телефон (bluetooth). Иногда по WiFi с различными конфигурациями.

В общем такой вот зоопарк.

Как бы все это настроить, чтобы потом переключаться между профилями простыми кликами мышкой. Например, иконки на десктопе поставить...

Скриптики, поднимающие/опускающие различные интерфейсы и настройки написать не проблема, но может есть к.н. стандартный и более красивый-простой путь?Last edited by fedukoff on Wed May 03, 2006 1:50 pm; edited 3 times in total

----------

## Laitr Keiows

Все уже предусмотрено, см тут:

http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=4&chap=2

----------

## fedukoff

Хм. Если у меня возможны несколько вариантов подключения к eth0. Один из них DHCP, другие несколько - статические адреса. Это можно настроить при помощи /etc/conf.d/net ?

Ведь получается, что у каждого профиля есть свой gw, свои DNS-сервера.

Или тут без программульки типа NetGo не обойтись?

----------

## Laitr Keiows

 *fedukoff wrote:*   

> Хм. Если у меня возможны несколько вариантов подключения к eth0. Один из них DHCP, другие несколько - статические адреса. Это можно настроить при помощи /etc/conf.d/net ?
> 
> Ведь получается, что у каждого профиля есть свой gw, свои DNS-сервера.
> 
> Или тут без программульки типа NetGo не обойтись?

 

Попробуй копнуть в сторону рописанного в разделе «2.c. Имена и значения переменных»

Расскажи, пожалуйста, что найдешь.

Вот такое еще есть:

```
# Automatic Private IP Addressing (APIPA)

# For APIPA support, emerge net-misc/iputils or net-analyzer/arping

# APIPA is a module that tries to find a free address in the range

# 169.254.0.0-169.254.255.255 by arping a random address in that range on the

# interface. If no reply is found then we assign that address to the interface

# This is only useful for LANs where there is no DHCP server and you don't

# connect directly to the internet.

#config_eth0=( "dhcp" )

#fallback_eth0=( "apipa" ) 
```

https://forums.gentoo.org/viewtopic-t-379682-highlight-variable+essid+names.html

----------

## fedukoff

Я читал этот раздел.

Сделал config_blablabla=("xxx.xx.............") в /etc/conf.d/net

создал симлинк /etc/init.d/net.blablabla на /etc/init.d/net.lo

При попытке запуска /etc/init.d/net.blablabla start ругалось, что такого интерфейса blablabla не существует.

Правда, как говориться, хорошая мысля приходит опосля. Я вот вспомнил, что в net.example есть возможность переименовывать интерфейсы... Т.е. сделать так:

```

config_home1=(".........")

config_home2=(".........")

config_work1=("..........")

```

А затем при помощи переименования интерфейсов сказать, что и home1, и home2, и work1 являются не чем иным, как eth0.

Теоритически должно сработать. Вечером доберусь до дому - проверю.

----------

## fedukoff

С полпинка не получилось. Вышеизложенное переименование не проходит.

Правда, таки изловчиться удалось - используя preup() изменять udev rules для переименования интерфейса. Беда в том, что у интерфейса может быть только одно имя в один момент времени.

С udev, это конечно изврат, хоть и работает.

Я вот подумал попричесать скриптик /etc/init.d/net.lo. Добавить к нему еще одну фичу, чтобы в конфиге было так

```

iface_home="eth0"

config_home=("bla.bla.bla.bla netmask bla.bla.bla.bla")

iface_work="eth0"

config_work=("xxx.xxx.xx.x")

```

По идее это не должно быть архисложно.

----------

## fedukoff

Когда читал доки не совсем понимал принцип работы ifplugd. Оказалось, практически то, что надо!

В  общем, ifplugd запускает-перезапускает интерфейс, если он становится доступным.. ээээ.. ну если кабель воткнуть, то запустится eth0, если WiFi включить, то запустится eth1. Ну и соответственно, выключаются, когда отсоединяешь...

Правда, чтобы добиться такого повдения необходимо несколько подкрутить конфиги

В /etc/conf.d/rc 

```
RC_NET_STRICT_CHECKING="lo"
```

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

И, к тому же я поменял /etc/conf.d/ifplugd

```
WIRELESS_INTERFACES="yes"
```

для того, чтобы он следил и за безпроводным интерфейсом.

Вначале пытался пользоваться netplug но, оно предназначается явно для других целей, а именно перезапускать интерфейс, т.е. чтобы эта механизьма работала, нужно обязательно чтобы интерфейс был поднят. А безпроводной интерфейс не может быть поднят до тех пор пока не нажата кнопочка, включающая радио.

А по поводу профилей все сказано в /etc/init.d/rc

 *Quote:*   

> 
> 
> # RC_USE_CONFIG_PROFILE allows you to have different /etc/conf.d files
> 
> # based on your runlevel - if a conf.d file for your profile does not exist
> ...

 

Т.е. как раз то что нужно на все 100%

----------

## fedukoff

Вспомнил что забыл (с) добавить немного секурити в безпроводное соединение. WPA в wireless-tools  не работают, поэтому пришлось настраивать wpa_supplicant. Оно настроилось без проблем, но ifplugd перестал реагировать на включение девайса...

После нескольких экспериментов удалось победить и это.

в конфиге /etc/conf.d/ifplugd указал

```
API_MODE_eth1="iff"
```

и все заработало.

----------

## Graf

Посмотрел Русский раздел.

Fedukoff'у надо вместо "tux's lil' helper" поставить "Победитель"  :Smile: 

----------

## fedukoff

Да нифига не победитель...  :Sad:  к сожалению... 

При дальшейшем рассмотрении оказалось, что ни netplug, ни ifplugd безпроводное подключение ну ни как не хотят обрабатывать. 

Т.е. если при включенном безпроводном девайсе запустить net.eth1, то при выключении/включении сам драйвер или wpa_supplicant обрабатывает эту ситуацию, но ни как не *plug.

При выключенном девайсе запустить net.eth1 не возможно - ругается, что мол, радио вырублено... Ни какими флажками победить это не удается пока....

----------

## ba

Кстати по крайней мере для ~x86 в сетевых стартовых скриптах сделана модульная система, где есть модули и для ifplugd и для wpa_supplicant, причем при использовании wpa_supplicant интерфейс поднимается и опускается при помощи wpa_cli вместо ifplugd...

----------

## fedukoff

Похоже на то.. но wpa_cli в таком случае не хочет запускаться при выключенном девайсе и ждать когда он включится....

[добавлено]: В /etc/conf.d/net указано, что wpa_supplicant должен запускаться с флагами -B и -w, что, судя по справке, значит "запустить как демона" и "ждать добавления интерфейса" соотвественно.

Не представляю какие ему еще флаги указать можно....

----------

## fedukoff

Конечно, это пляска с бубном, но....

Оказалось, что при нажатии на кнопочку, включающей безпроводной девайс, генерируется нажатие клавиши. Хочу перехватывать это нажатие и проверять, запущен интерфейс или нет, если нет - запустить...

----------

