Conectado com o Open V Switch, problema de conexão entre o contêiner do Docker e outras máquinas

2

Estou usando o vSwitch aberto (com DPDK) para comunicar minhas máquinas. Eu tenho 2 PC físicos. O Nginx está trabalhando em um deles e seu ip = 10.10.10.6 / 24. Abra o vSwitch e o Docker está trabalhando na outra máquina. Eu crio uma ponte através deste comando:

ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev

E eu adiciono uma porta à porta física através deste comando que está usando o driver DPDK e conectado à máquina Ngnix com um cabo:

ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 \
        type=dpdk options:dpdk-devargs=0000:05:00.1

E atribua um IP ao br0:

ifconfig br0 10.10.10.11 netmask 255.255.255.0 up

Depois disso, eu crio um contêiner usando minha imagem:

Dockerfile:

FROM ubuntu:latest
MAINTAINER Zekeriya Akgul


RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get install -y apache2 iputils-ping iputils-tracepath iproute2 net-tools wget

EXPOSE 80 443 444 

E execute o contêiner usando o seguinte comando:

docker run --rm -P -it --cap-add NET_ADMIN --name ubuntu1 zkryakgul/ubuntu /bin/bash

Depois disso, atribuo uma porta ao contêiner usando o seguinte comando:

ovs-docker add-port br0 eth1 ubuntu1 --ipaddress=10.10.10.12/24

Depois de todos esses passos, minha máquina nginx faz ping no container e no ping do contêiner nginx.

Mas quando tento wget 10.10.10.6:80 , o contêiner não pode se conectar. Mas por outro lado, minha máquina física (ip: 10.10.10.11) pode fazer. Quando eu executo o mesmo comando (wget), ele obtém a página 10.10.10.6:80.

O que estou fazendo de errado?

    
por Zekeriya Akgül 18.07.2017 / 23:30

1 resposta

0

Eu finalmente entendi o problema. O problema é o descarregamento de TCP no contêiner docker. Quando eu fecho o descarregamento de tcp através deste comando:

ethtool -K eth6 tx off rx off

Tudo funciona bem.

    
por 22.07.2017 / 13:33

Tags