Qugaa bgpd와 nsm 바이너리를 우분투 3.13.0-36- 제네릭 커널을 기반으로 한 도커에 번들했습니다. 이제 저는 리눅스 서버에서 여러 개의 이러한 고정 장치를 실행합니다. 이 docker는 docker-py를 사용하여 인스턴스화됩니다.도커 & Quagga BGP
저는 배관공을 사용하고 각 도커에 이더넷 인터페이스를 만들고 172.17.xx.xx 종류의 주소를 할당했습니다. 내 BGP 구성은 모든 dockers가 BGP와 완전히 맞물 리도록 구성됩니다. 즉, 도커의 각 BGP는 다른 도커에서 실행되는 모든 다른 BGP에 연결됩니다.
BGP 세션이 설정되고 BGP 경로 등이 절대적으로 좋습니다. 이제 도커의 수가 30 개를 초과하면 bgp에 연결할 수 없습니다. "top"명령은 많은 CPU 사용량을 나타내지 않으며, 메모리는 한계에 있으며, 많은 네트워크 활동이 아니며 BGP 프로세스 내에서 많은 프로세싱을 기대하지도 않습니다.
컨테이너에서 tcpdump를 가져 왔을 때의 모습입니다.
9 2014-09-26 18 : 17 : 54.997861 0a : 60 : 4a : 3b : 56 : 31 ARP 44 누가 172.17.1.32입니까? 내가 40 대의 도커를 돌릴 때 172.17.1.6
에게 말해라. 나는 위에 나온 것처럼 40 개의 그런 ARP 요청과 하나의 ARP 응답을 본다.
그러나 이것은 계속 발생하며 약 1600 (40 * 40) 개의 메시지가 짧은 시간 내에 발생합니다. 나는 이것이 "telnet localhost bgpd"명령을 사용하여 로컬 bgp 모듈에 연결하는 것을 허용하지 않는 것이라고 생각합니다.
나는 이것이 Quagga 나 BGP와 관련이 있다고 생각하지 않습니다. 나는 docker 네트워킹과 관련이 있다고 생각한다. 누구나 이런 문제를 해결할 방법이나 아이디어가 있습니까? 아니면이 문제의 근본 원인이 무엇입니까?