Чтобы найти интерфейс
В моем случае получать значение из контейнера было как (проверьте eth0
к):
$ docker exec -it my-container cat /sys/class/net/eth1/iflink
123
А потом:
$ ip ad | grep 123
123: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker_gwbridge state UP group default
Проверить с tcpdump -i vethd3234u4
Ссылка на mysteriou s iflink
из http://lxr.free-electrons.com/source/Documentation/ABI/testing/sysfs-class-net:
150 What: /sys/class/net/<iface>/iflink
151 Date: April 2005
152 KernelVersion: 2.6.12
153 Contact: [email protected]
154 Description:
155 Indicates the system-wide interface unique index identifier a
156 the interface is linked to. Format is decimal. This attribute is
157 used to resolve interfaces chaining, linking and stacking.
158 Physical interfaces have the same 'ifindex' and 'iflink' values.
Похоже, это открытый вопрос здесь https://github.com/docker/docker/issues/14666 и есть некоторые обходные пути. Я не очень хорошо разбираюсь в сетевом взаимодействии, и я не совсем понимаю эти обходные пути, поэтому я решил просто фильтровать хост при использовании tcpdump. Работает на меня. Возможно, будет работать для вас, если вы также используете tcpdump или если ваш инструмент имеет схожие фильтры. –