Как соединить два экземпляра netcat через пару устройств veth?

Чтобы программное обеспечение было бесплатным, все, что необходимо, — это распространять его (легально )в соответствии с лицензией на свободное программное обеспечение. Какое программное обеспечение делает не имеет значения.

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

0
18.12.2020, 21:07
1 ответ

I see they are meant to be put in different network namespaces, but can you tell me why it doesn’t work in a single namespace, when both veth pairs have been assigned IP addresses?

Следующие вещи, скорее всего, пойдут не так:

  • Приложение, прослушивающее адрес, будет обрабатывать любой входящий пакет для этого адреса, независимо от того, откуда он пришел. Таким образом, пакет может прийти с любого конца или даже с совершенно другого сетевого интерфейса (, например.eth0).
  • Если ядро ​​Linux обнаружит локальный адрес назначения, оно обработает его как локальный пакет и никогда не пройдет через пару veth -.
  • Если пакет ядра Linux обнаруживает входящий пакет с локальным исходным адресом, который не является локальным (, т. е. проходит через пару veth -), он считает это ошибкой маршрутизации, поскольку при нормальных обстоятельствах это означает, что где-то в сети есть петля маршрутизации. Чтобы избежать переполнения сети, этот пакет отбрасывается.

То же самое произойдет, если ваш компьютер имеет два сетевых интерфейса LAN(eth0иeth1)и вы соедините их кабелем LAN -.

Итак, если вы хотите поиграть с парами veth -, создайте сетевые пространства имен.

1
18.03.2021, 22:42

Теги

Похожие вопросы