Masalah Pendahuluan
Saya memiliki topologi jaringan yang terlihat seperti diagram di bawah ini. Semua host menjalankan distribusi Linux yang berbeda, dan semua konfigurasi saya (semoga) dilakukan pada Host A, yaitu RHEL7.
dengan tabel routing ini:
Destination Gateway Genmask Flags Metric Ref Use
Iface
default fw.gatename. 0.0.0.0 UG 100 0 0 enp34s0
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp9s0
10.0.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 bridge1
10.12.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0f1
10.14.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0f0
10.17.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp7s0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 bridge2
172.18.0.3 0.0.0.0 255.255.255.255 UH 0 0 0 bridge0
172.18.0.4 0.0.0.0 255.255.255.255 UH 0 0 0 bridge1
192.168.3.0 0.0.0.0 255.255.255.0 U 100 0 0 enp34s0
192.168.30.0 0.0.0.0 255.255.255.0 U 0 0 0 enp35s0
192.168.30.91 0.0.0.0 255.255.255.255 UH 0 0 0 bridge2
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Tujuan utama saya adalah untuk memiliki setiap antarmuka fisik peta Host A ke wadah Docker, sehingga lalu lintas dapat mengalir secara bebas hanya antara kedua ujung pemetaan ini (dan tidak ada lalu lintas ke atau dari antarmuka di luar pemetaan ini).
Misalnya, Container1 harus dapat (hanya) berkomunikasi dengan Host B (sepanjang tautan merah diagram), dan Container2 harus dapat (hanya) berkomunikasi dengan Host C (di sepanjang tautan hijau diagram).
Upaya awal
Secara default, buruh pelabuhan membuat jembatan br-97707d67f97c
(misalnya), yang telah saya hapus (karena menghubungkan semua wadah satu sama lain). Aku menciptakan tiga jembatan ( bridge0
, bridge1
, bridge2
), karena saya pikir mungkin ada beberapa harapan untuk beberapa cara untuk membuat jembatan 'pribadi'.
Seperti berdiri sekarang, saya dapat melakukan ping dari wadah apa saja ke antarmuka apa pun di Host A, B, atau C; Saya tidak bisa ping dari satu wadah ke wadah lain, yang saya asumsikan karena mereka berada di subnet yang sama dan membingungkan jembatan.
Pertanyaan
Bagaimana saya bisa secara terpisah memisahkan antarmuka pada host sehingga mereka hanya dapat berinteraksi dengan hanya antarmuka yang saya inginkan?