Docker와 OVS를 통한 세그먼트 간 통신(서버에 있음)
3302 단어 LinuxDockerBridgeOpenVSwitch
하고 싶은 일
기본적으로 상술한 그림과 같다
배경
완성된 구성
간략하게 설명하다
만화지만
*1층: 세그먼트 간 경로설정을 위해 OVS(Open vSwitch)를 맨 위에 놓습니다.
*2층: 브리지를 생성합니다.L3 역할(실제 라우팅 OVS 결정)
*3층: 용기에 직접 연결된 프레임을 만듭니다.여기서 bridge는 VLAN(Fake bridge)을 설정합니다.bridge의 IP는 각 섹션의 Gateway IP가 됩니다.
*4 레이어: 컨테이너가 VLAN 레이블을 설정하는 bridge에 연결됩니다.여기는 하나밖에 없지만 실제로는 한 용기에서 여러 단락으로 발을 뻗는다
많은 것을 조사해 보았지만 VyOS와quagga로 이루어진 구성을 보았지만 어쩔 수 없이 NW 주위의 지식이 부족하여 가능한 한 간단하게 실현하기 위해 노력한 결과가 바로 이것이다.
생성 과정
마지막으로 원자재를 넣다.
Linux, Docker, OVS의 설치 단계는 생략됩니다.
운영 체제는 CentOS7.3입니다.
구조틀
# ovs-vsctl add-br ovs-docker
# ovs-vsctl add-br b-v100 ovs-docker 100
# ovs-vsctl add-br b-v200 ovs-docker 200
2, 3 명령은 Fake bridge 제작 명령입니다.마지막 매개 변수는 VLAN ID이므로 환경에 따라 변경됩니다.
bridge에서 IP 설정
ip addr add 192.168.100.1/24 dev b-v100
ip addr add 192.168.200.1/24 dev b-v200
ip link set b-v100 up
ip link set b-v200 up
Fake bridge에 IP 설정하여 bridge 링크 향상
컨테이너 생성 및 네트워크 주위 설정
docker run -d --name ContainerA --privileged --net=none baseimage /sbin/init
docker run -d --name ContainerB --privileged --net=none baseimage /sbin/init
라우팅 설정, --privileged 옵션 포함
네트워크는 당분간 아무것도 하지 않습니다. - net=none 만들기 용기 지정ovs-docker add-port b-v100 eth0 ContainerA --ipaddress=192.168.100.2/24
ovs-docker add-port b-v200 eth0 ContainerB --ipaddress=192.168.200.2/24
docker exec ContainerA ip route add default via 192.168.100.1
docker exec ContainerB ip route add default via 192.168.200.1
각 컨테이너의 eth0에 IP 할당eth0은 임의의 문자열을 지정할 수 있습니다. 마음대로 하세요
IP 설정 후 컨테이너에 기본 게이트웨이를 설정합니다.Gateway IP는 Fake bridge(b-v100 or b-v200)에 할당된 IP입니다.
이렇게 하면 분단을 뛰어넘는 환경을 순조롭게 완성할 수 있다.
이 구성의 단점
마지막으로 원자재를 넣다.
Linux, Docker, OVS의 설치 단계는 생략됩니다.
운영 체제는 CentOS7.3입니다.
구조틀
# ovs-vsctl add-br ovs-docker
# ovs-vsctl add-br b-v100 ovs-docker 100
# ovs-vsctl add-br b-v200 ovs-docker 200
2, 3 명령은 Fake bridge 제작 명령입니다.마지막 매개 변수는 VLAN ID이므로 환경에 따라 변경됩니다.bridge에서 IP 설정
ip addr add 192.168.100.1/24 dev b-v100
ip addr add 192.168.200.1/24 dev b-v200
ip link set b-v100 up
ip link set b-v200 up
Fake bridge에 IP 설정하여 bridge 링크 향상컨테이너 생성 및 네트워크 주위 설정
docker run -d --name ContainerA --privileged --net=none baseimage /sbin/init
docker run -d --name ContainerB --privileged --net=none baseimage /sbin/init
라우팅 설정, --privileged 옵션 포함네트워크는 당분간 아무것도 하지 않습니다. - net=none 만들기 용기 지정
ovs-docker add-port b-v100 eth0 ContainerA --ipaddress=192.168.100.2/24
ovs-docker add-port b-v200 eth0 ContainerB --ipaddress=192.168.200.2/24
docker exec ContainerA ip route add default via 192.168.100.1
docker exec ContainerB ip route add default via 192.168.200.1
각 컨테이너의 eth0에 IP 할당eth0은 임의의 문자열을 지정할 수 있습니다. 마음대로 하세요IP 설정 후 컨테이너에 기본 게이트웨이를 설정합니다.Gateway IP는 Fake bridge(b-v100 or b-v200)에 할당된 IP입니다.
이렇게 하면 분단을 뛰어넘는 환경을 순조롭게 완성할 수 있다.
이 구성의 단점
원재료
https://blog.scottlowe.org/2012/10/31/layer-3-routing-with-open-vswitch/
https://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/
마지막
더 쉽게 할 수 있어요.
원래 OVS가 필요 없어요. Bridge만 하면 돼요.
만약 이렇게 된다면 당신의 의견과 평론을 얻을 수 있다면 저는 매우 기쁠 것입니다
Reference
이 문제에 관하여(Docker와 OVS를 통한 세그먼트 간 통신(서버에 있음)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/summer/items/bc92737451a3dd8b1ee2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
더 쉽게 할 수 있어요.
원래 OVS가 필요 없어요. Bridge만 하면 돼요.
만약 이렇게 된다면 당신의 의견과 평론을 얻을 수 있다면 저는 매우 기쁠 것입니다
Reference
이 문제에 관하여(Docker와 OVS를 통한 세그먼트 간 통신(서버에 있음)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/summer/items/bc92737451a3dd8b1ee2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)