Tôi đọc trang người đàn ông ip
và vẫn không hiểu gì src
và tôi không thể tìm thấy nhiều tài liệu.
Xin vui lòng, nếu bạn có thể giải thích kỹ lưỡng hoặc chỉ ra một số liên kết đó là một câu trả lời tốt.
Tôi đọc trang người đàn ông ip
và vẫn không hiểu gì src
và tôi không thể tìm thấy nhiều tài liệu.
Xin vui lòng, nếu bạn có thể giải thích kỹ lưỡng hoặc chỉ ra một số liên kết đó là một câu trả lời tốt.
Câu trả lời:
Khi thêm một tuyến đường vào một máy chủ đa năng, bạn có thể muốn kiểm soát địa chỉ IP nguồn mà máy chủ của bạn đang gửi từ khi bắt đầu liên lạc bằng cách sử dụng tuyến đường này. Đây là những gì src dành cho.
Một ví dụ ngắn: bạn có một máy chủ có hai giao diện và địa chỉ IP 192.168.1.123/24 và 10.45.22.12/24. Bạn đang thêm một tuyến đến 78,22,45.0 / 24 qua 10,45,22.1 và muốn đảm bảo rằng bạn không gửi đến 78,22,45.0 / 24 bằng cách sử dụng địa chỉ 192.168.1.123 (có thể vì mạng 78,22,45.0 / 24 không có đường quay lại đến 192.168.1.0/24 hoặc vì bạn không muốn lưu lượng truy cập của mình đi theo tuyến này vì lý do này hay lý do khác):
ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12
Lưu ý rằng src bạn đang cung cấp sẽ chỉ ảnh hưởng đến lưu lượng truy cập bắt nguồn từ chính máy chủ của bạn. Nếu một gói nước ngoài đang được định tuyến, rõ ràng nó đã có một địa chỉ IP nguồn nên nó sẽ được chuyển qua không thay đổi (tất nhiên trừ khi bạn đang sử dụng NAT, nhưng đây là một vấn đề hoàn toàn khác). Ngoài ra, cài đặt này có thể bị ghi đè bởi một quy trình cụ thể chọn liên kết với một địa chỉ cụ thể thay vì sử dụng mặc định khi bắt đầu kết nối (khá hiếm).
Các src
thuộc tính là một gợi ý được sử dụng bởi các thuật toán lựa chọn địa chỉ . Điều này rất quan trọng khi một máy chủ có nhiều địa chỉ IP, thường là vậy, nhưng không phải lúc nào cũng vậy, khi nó có nhiều giao diện. Mặc dù có các quy tắc khác ảnh hưởng đến lựa chọn địa chỉ và ứng dụng mạng cũng có thể ghi đè thuật toán lựa chọn bằng cách sử dụng các cuộc gọi hệ thống như thế bind()
, src
thuộc tính là cách sử dụng tra cứu bảng định tuyến để trả lời câu hỏi: "Nếu tôi muốn bắt đầu một câu hỏi kết nối với máy chủ X, tôi nên sử dụng địa chỉ nào? "
Dưới đây là một ví dụ để minh họa việc sử dụng và tác dụng của src
thuộc tính. Để xác định rằng điều này có liên quan đến địa chỉ và tuyến đường, không hoàn toàn đúng với các giao diện, máy chủ ví dụ này chỉ có một giao diện mạng nhưng có hai địa chỉ. Hơn nữa, cả hai địa chỉ đều nằm trên cùng một mạng con để nhấn mạnh thực tế rằng không có cách rõ ràng nào khác để chọn sử dụng địa chỉ nào.
$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 10.1.0.2/24 brd 10.1.0.255 scope global eth0
inet 10.1.0.16/24 scope global secondary eth0
$ ip route list dev eth0
10.1.0.32/27 scope link src 10.1.0.16
10.1.0.0/24 proto kernel scope link src 10.1.0.2
Máy chủ này có thể giao tiếp với bất kỳ địa chỉ nào trong số 252 địa chỉ khác trên mạng con / 24 này từ một trong hai địa chỉ, nhưng theo mặc định, nó sẽ sử dụng 10.1.0.16 khi bắt đầu kết nối với 10.1.0.32 đến 10.1.0.63 và sử dụng 10.1.0.2 cho tất cả nghỉ ngơi.
Nếu máy chủ đang trả lời, thay vì bắt đầu, thì nó sẽ trả lời từ địa chỉ đích của yêu cầu. Ví dụ: nếu một máy chủ khác tại 10.1.0.32 kết nối với máy chủ này tại 10.1.0.2, phản hồi sẽ đến từ 10.1.0.2 mặc dù điều đó không khớp với src
thuộc tính của tuyến trả về.