Đã hỏi điều này trong kỹ thuật mạng trong trao đổi ngăn xếp và đã được chuyển hướng đến đây.
Tôi có một vài máy chủ với cấu hình bên dưới
máy chủ 1:
eno1: 127.15.0.1/16 phạm vi toàn cầu
eno2: 5.0.0.1/24
máy chủ2:
lo: 127.0.0.1/16 (nó có /8. Tôi đã thay đổi mặt nạ mạng con bằng 'ip addr del 127.0.0.1/8 dev lo; ip addr add 127.0.0.1/16 dev lo')
eno2: 5.0.0.2/24
eno1 của server1 được kết nối với một mạng L2 hoàn toàn khác và hoàn toàn bị cô lập.
giao diện eno2 của cả hai máy chủ được kết nối với cùng một mạng L2. Bây giờ tôi phải truy cập 127.15.0.1 từ server2.
Server1 đã được triển khai từ lâu và tôi không có quyền thay đổi bất kỳ loại cấu hình nào. Tôi không biết tại sao một số người sử dụng mạng con 127.x.x.x với phạm vi toàn cầu. Không chắc đó có phải là một cấu hình hợp lệ hay không nhưng tôi phải sống với nó. Tôi có toàn quyền kiểm soát trên server2 và tôi có thể thay đổi mọi thứ.
Cả hai máy chủ đều dựa trên linux.
kết nối giữa 5.0.0.1 <-> 5.0.0.2 là tốt.
Lần thử đầu tiên của tôi là thêm một tuyến đường trong server2 như bên dưới
ip r thêm 127.15.0.1/32 qua 5.0.0.1
ping 127.15.0.1 từ máy chủ2. Tôi thấy các yêu cầu ping và trả lời trong tcpdump trên server2, nhưng lệnh ping bị mất 100%.
Tôi đã tắt rp_filters
sysctl.cnf:
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.lo.rp_filter=0
net.ipv4.conf.eno2.rp_filter=0
khởi động lại sau khi cập nhật sysctl.conf
Và tôi đã xóa iptables. (iptables -F)
Cùng một kết quả. Tôi nghĩ có thể server2 không thích sử dụng sê-ri 127.x.x.x. Vì vậy, tôi đã thêm quy tắc dưới đây vào máy chủ 2
iptables -t nat -A OUTPUT -d 5.0.0.1 -j DNAT --to-destination 127.15.0.1
quy tắc này được cho là thay thế ip đích thành 127.15.0.1 nếu gói được định sẵn là 5.0.0.1.
ping 5.0.0.1 từ máy chủ2. Iptables đã thay thế ip đích bằng 127.15.0.1 (đã xác nhận điều này trên server1 tcpdump). Server1 đã trả lời nhưng các câu trả lời lại bị hủy.
Tôi đã hết ý tưởng vào thời điểm này. Tôi đã gỡ server1 xuống để bảo trì và thay thế 127.15.0.1/26 bằng 192.168.1.1/16. Kết nối hoạt động tốt trong trường hợp này (có và không có iptables). Bây giờ câu hỏi đặt ra là vấn đề có phải do sử dụng 127.x.x.x không? Nếu có, có cách nào thoát khỏi nó không ?? Nếu không, tôi có thể thử cái gì khác?
Lưu ý: Cấu hình này đã hoạt động trước đây. Gần đây chúng tôi đã mất server2 (có Linux cũ) và tôi đang xây dựng nó từ đầu. Ngoài ra, các cửa sổ không cho phép sử dụng 127.x.x.x cho các giao diện khác ngoài vòng lặp. Không chắc tại sao Linux lại cho phép nó trên các giao diện không lo. có thể có một lý do!
Để tóm tắt tôi có những câu hỏi sau:
- Windows hoàn toàn từ chối cấu hình khi chúng tôi cố gắng định cấu hình 127.x.x.x nhưng Linux cho phép điều đó và điều đó cũng xảy ra với phạm vi toàn cầu. Có một trường hợp sử dụng cho việc này?
- Trong trường hợp này, server2 gửi các yêu cầu đến 127.x.x.x và server1 thực sự đang gửi trả lời lại. Nếu chỉ 127.x.x.x máy chủ nội bộ, tại sao họ thậm chí gửi các gói trên liên kết ??