2 votes

Connecté avec Open V Switch, problème de connexion entre le conteneur Docker et les autres machines

J'utilise open vSwitch (avec DPDK) pour faire communiquer mes machines. J'ai 2 PC physiques. Nginx fonctionne sur l'un d'eux et son ip=10.10.10.6/24. Open vSwitch et Docker fonctionnent sur l'autre machine. Je crée un pont via cette commande :

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

Et j'ajoute un port au port physique via cette commande qui utilise le pilote DPDK et est connecté à la machine Ngnix avec un câble :

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

Et assignez une IP au br0 :

ifconfig br0 10.10.10.11 netmask 255.255.255.0 up

Après cela, je crée un conteneur en utilisant mon image :

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 

Et lancez le conteneur en utilisant la commande suivante :

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

Après cela, j'attribue un port au conteneur en utilisant la commande suivante :

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

Après toutes ces étapes, ma machine nginx envoie un message au conteneur et le conteneur envoie un message à nginx.

Mais quand j'essaie de wget 10.10.10.6:80 le conteneur ne peut pas se connecter. Mais d'un autre côté, ma machine physique (ip:10.10.10.11) peut le faire. Lorsque je lance la même commande (wget), il obtient la page de 10.10.10.6:80.

Qu'est-ce que je fais de mal ?

0voto

Zekeriya Akgül Points 21

J'ai finalement trouvé le problème, le problème est le déchargement tcp sur le conteneur docker, lorsque je ferme le déchargement tcp via cette commande :

ethtool -K eth6 tx off rx off

Tout fonctionne bien.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X