Bagaimana cara memisahkan antarmuka secara logis pada sebuah host?

0

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.

Grafik Topologi Jaringan

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?

karobar
sumber

Jawaban:

0

Saya dapat mengatasi kesalahan ini dengan mulai dari awal, lalu memisahkan antarmuka saya dengan subnet.

Untuk menggunakan diagram dalam pertanyaan saya sebagai contoh, saya mengubah alamat IP untuk Container2 menjadi dalam subnet 10.0.0.0/24, jadi 10.0.1.100, misalnya. Saya mengubah alamat untuk Container1 menjadi pada subnet 192.168.30 / 24.

Saya juga menghapus alamat IP dari enp35s0dan enp9s0, karena saya menganggap bahwa ini tidak perlu, karena jembatan dalam contoh saya hanya boleh beroperasi pada OSI Layer 2.

karobar
sumber