Пара veth и сетевые пространства имён
Пара veth — два виртуальных интерфейса, соединённых как кабель; ими связывают сетевые пространства имён.
Шпаргалка
9 команд Версия для печати-
sudo ip netns add lab-clientновое пространство имён -
ip netns listкакие пространства есть -
sudo ip link add lab1 type veth peer lab0пара veth: lab1 <-> lab0 -
sudo ip link set lab0 netns lab-clientконец — в пространство -
sudo ip -n lab-client address add 192.0.3.10/24 dev lab0 -
sudo ip -n lab-client link set lab0 upip внутри пространства -
sudo ip netns exec lab-client ping -c 2 192.0.2.1программа там -
sudo ip -n lab-client -br linkинтерфейсы пространства -
sudo ip netns delete lab-clientудалить с концом пары
Обзор
Сетевое пространство имён — отдельный набор интерфейсов, адресов, маршрутов и правил межсетевого экрана внутри одного ядра. Программа, запущенная в пространстве, видит только его сеть. На этом построены контейнеры (см. cgroups-namespaces) и учебная сеть тренажёра.
Пара veth — два виртуальных интерфейса, соединённых друг с другом: пакет, ушедший в один конец, выходит из другого. Концы кладут в разные пространства — получается кабель между двумя «машинами» внутри одной.
@if2 в имени значит: у lab0 есть парный конец, его номер в другом пространстве —
2. Работают с пространством двумя способами: ip -n имя … — команда ip в нём,
ip netns exec имя команда — любая программа в нём. Без sudo обе печатают
Operation not permitted.
Рецепты
3Найти второй конец пары
Убрать учебную сеть
Пара veth не живёт поодиночке: удалишь один конец или его пространство — исчезнет и второй.
Неполадки
5Cannot find device "lab0"
Команда выполняется не в том пространстве. Интерфейс lab0 лежит в lab-client, и
в сети самой машины его нет: пиши sudo ip -n lab-client ….
Cannot open network namespace: No such file or directory
Пространства с таким именем нет. Список — ip netns list.
RTNETLINK answers: File exists
Интерфейс или адрес с таким именем уже есть. Посмотри ip -n имя -br link и
ip -n имя -br address; лишнее убери (ip link delete, ip address del).
Интерфейс UP, а ping не идёт
Operation not permitted
Пространства имён меняет и просматривает изнутри только root. Добавь sudo.
Термины
2- сетевое пространство имён network namespace
- Изолированное сетевое окружение Linux с собственными интерфейсами, маршрутами и рядом сетевых настроек. Ещё встречается в: cgroups и namespaces, ip, nmap: какие порты видны снаружи, ping
- пара veth veth pair
- Два виртуальных интерфейса, соединённых как кабель: что ушло в один конец, выходит из другого. Ими связывают сетевые пространства имён. Ещё встречается в: ping, cgroups и namespaces, Docker, ip
См. также
- ip — адреса, подсети и маршруты, в том числе внутри пространства.
- ping — проверить связь между концами пары.
- cgroups-namespaces — пространства имён и cgroups в целом, контейнеры.
- network-diagnostics — лесенка проверки связи.
- firewall — у каждого пространства свои правила nftables.
Есть неточность? Сообщить об ошибке в статье