Giải pháp thực sự khó khăn hơn một chút.
Bỏ qua iptables
lệnh trên máy A
bây giờ vì đó là về việc ẩn mạng con của bạn 192.168.2.0/24
đằng sau một NAT.
Thay vào đó, hãy tập trung vào những gì đang thực sự diễn ra khi bạn thực hiện lệnh ping.
Khi bạn gửi ping tới một ip từ xa, bạn thực sự cần thông báo cho cả hai máy A
và máy B
làm thế nào để có được các mạng tương ứng 192.168.0.0/24
và 192.168.2.0/24
.
Bạn đã nói đúng phần đầu tiên về việc kể máy B
điều đó để ping bất cứ thứ gì trên 192.168.2.0/24
nó phải đi qua 25.61.150.71
.
Đó là những gì bạn đã làm trong lệnh:
machineB> sudo ip route thêm 192.168.2.0/24 qua 25.61.150.71
Điều này là có thể kể từ khi máy A
và máy B
nằm trên cùng một mạng con do Hamachi cung cấp.
Nhưng bất kỳ lệnh ping nào cũng cần gửi trả lời lại, vậy làm thế nào để máy A
biết mạng ở đâu 192.168.0.0/24
nằm ở đâu?
Bạn có thể nói máy A
rằng mạng con 192.168.0.0/24
nằm phía sau 25.72.151.72
.
Điều này dẫn đến lệnh sau:
machineA> Sudo ip route thêm 192.168.0.0/24 qua 25.72.151.72
Tuy nhiên, chúng tôi vẫn chưa hoàn toàn ra khỏi rừng, vì mặc dù máy A
và máy B
biết nơi gửi lưu lượng truy cập đến bất kỳ máy chủ nào thuộc một trong hai mạng, chúng tôi vẫn có thách thức về cách thực hiện bất kỳ máy chủ nào khác thuộc về 192.168.0.0/24
biết cách liên hệ 192.168.2.0/24
?
Nếu máy A
và máy B
không phải là cổng mặc định cho mạng của họ, thì chúng ta cần thêm một tuyến tĩnh vào cổng mặc định trên cả hai mạng.
Vì máy A
bộ định tuyến mặc định của chúng tôi cần nói rằng 192.168.0.0/24
có thể truy cập thông qua 192.168.2.160
.
Tương tự chúng ta cần nói máy B
bộ định tuyến mặc định của 192.168.2.0/24
có thể truy cập thông qua 192.168.0.103
.
Sau khi tất cả những điều này được thực hiện, bạn sẽ có thể ping từ bất kỳ máy chủ nào thuộc một trong hai mạng tới bất kỳ máy chủ nào thuộc mạng kia.