Можно ли отправлять пакеты между пространствами имен сети, используя только интерфейсы Tun / Tap?

1966 г. Ответ Мустанга правильный.

  1. Обычно это происходит из-за того, что ваш пароль Postgres слишком слабый.
  2. Проверьте свой pg_hba.conf , если вы доверяли всем IP-адресам для подключения к серверу.
1
15.11.2018, 17:43
1 ответ

Интерфейс tun/tap всегда принадлежит некоторому приложению. :Пакеты, отправляемые на интерфейс, считываются приложением, и пакеты, написанные приложением, поступают в сетевой стек ядра через этот интерфейс.

Как правило, пространство имен сети подключается к виртуальным парам Ethernet (veth ). Они просто пересылают пакеты на другой интерфейс пары.

Ничто не мешает вам написать приложение, которое делает именно это. :Откройте два интерфейса tun/tap, считывайте пакеты с одного и пересылайте их на другой, и наоборот. Существуют также готовые -приложения, которые можно использовать для этого, например. socat.

Вы даже можете написать два приложения, где каждое приложение открывает один интерфейс tun/tap, и приложения взаимодействуют друг с другом, используя другие средства, и реализуют таким образом переадресацию. В основном все VPN-приложения работают таким образом (, хотя для VPN-приложений «другими способами» обычно используется «по существующему сетевому соединению», поэтому на самом деле это не считается ).

Итак, да, с правильным приложением (s )вы можете соединять пространства имен с интерфейсами tun/tap. Однако в общем случае делать это не имеет большого смысла, потому что вам придется писать такое приложение, и это будет менее эффективно, чем просто использование пары veth -.

Редактировать

Я попытался переместить один интерфейс tun из socatв созданное мной сетевое пространство имен ns0, и он работает нормально, как я и ожидал, несмотря на то, что socatработает в основном сетевом пространстве имен:

socat TUN:10.1.0.254/24,tun-name=tun0a,iff-up TUN:10.1.0.1/24,tun-name=tun0b
ip link set tun0b netns ns0

, а затем вам снова нужно установить адрес для tun0bпосле перемещения.

Таким образом, "пересечение" происходит при наличии одного (или обоих )сетевых интерфейсов tun/tap (с )в пространстве имен, отличном от пространства имен процесса.

2
27.01.2020, 23:42

Теги

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