iproute: change|replace address

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

iproute: change|replace address

Сообщение IMB »

Доброго дня!
Не могу понять назначения команд change и replace и поиск в сети ничего не дал. По моим наблюдениям их поведение ничем не отличавается от команды add - при добавлении адреса в новой сети добавляется первичный адрес, при добавлении адреса в существующей сети - добавление вторичного адреса.
Хотя их названия намекают на возможнось измения существующего адреса.
Может кто-нибудь мог бы привести примеры использования или ссылки с описанием?
Спасибо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: iproute: change|replace address

Сообщение sash-kan »

согласно man ip, у "ip addr" нет под-команд change или replace·
только add, del, show и flush·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: iproute: change|replace address

Сообщение IMB »

Код: Выделить всё

$ ip addr help
Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip addr del IFADDR dev STRING
       ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]

iproute-20100519/ip/ipaddress.c

Код: Выделить всё

int do_ipaddr(int argc, char **argv)
{
        if (argc < 1)
                return ipaddr_list_or_flush(0, NULL, 0);
        if (matches(*argv, "add") == 0)
                return ipaddr_modify(RTM_NEWADDR, NLM_F_CREATE|NLM_F_EXCL, argc-1, argv+1);
        if (matches(*argv, "change") == 0 ||
                strcmp(*argv, "chg") == 0)
                return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);
        if (matches(*argv, "replace") == 0)
                return ipaddr_modify(RTM_NEWADDR, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1);
        if (matches(*argv, "delete") == 0)
                return ipaddr_modify(RTM_DELADDR, 0, argc-1, argv+1);
        if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
            || matches(*argv, "lst") == 0)
                return ipaddr_list_or_flush(argc-1, argv+1, 0);
        if (matches(*argv, "flush") == 0)
                return ipaddr_list_or_flush(argc-1, argv+1, 1);
        if (matches(*argv, "help") == 0)
                usage();
        fprintf(stderr, "Command \"%s\" is unknown, try \"ip addr help\".\n", *argv);
        exit(-1);
}
Спасибо сказали: