2015-11-01 3 views
1

я увидел следующую строку кода в код репо я работаю:Каков глобальный атрибут сетевого интерфейса?

ip addr | grep 'inet .*global' | cut -f 6 -d ' ' | cut -f1 -d '/' | head -n 1 

Я хочу, чтобы понять, что делает «глобальный» атрибут означает, как часть атрибута сетевого интерфейса?

Я надеюсь, что я прошу его в нужном месте ...

Спасибо большое, Матан

ответ

1

ip addr просто преобразующие ifa_scope из struct ifaddrmsg в строку, struct ifaddrmsg является информация о том, как команда ip получить из ядра (http://man7.org/linux/man-pages/man7/rtnetlink.7.html).

О ifa_scope:

Область адреса. Значение по умолчанию: RT_SCOPE_UNIVERSE (что соответствует значению 0), и поле обычно устанавливается на это значение ifconfig/ip, , хотя может быть выбрано другое значение. Основным исключением является адрес в reange 127.x.x.x, которому присваивается команда RT_SCOPE_HOST. Подробнее см. Главу 30.

(C) Понимание Linux Network Internals

и фактически RT_SCOPE_UNIVERSE преобразованный ip в строку со значением "глобальной".

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

к деталям понимания я советую книгу, из которой я дайте цитату.

+0

Хорошо, я вижу, откуда это происходит, но что на самом деле означает «область действия»? – slashms

+0

Я обновляю свой ответ. – fghj