Làm thế nào tôi có thể ping thông qua một cổng thay thế?


19

Mạng của chúng tôi có hai modem, mỗi modem ẩn sau một bộ định tuyến. Bộ định tuyến chính nằm trên 10.1.1.1, bộ định tuyến sao lưu nằm trên 10.1.1.2 và cả hai đều được cấu hình cho mạng con 10.1.1.0/24. Cả hai bộ định tuyến có cổng được cấu hình thành 192.168.0.1. Tuy nhiên, 192.168.0.1 mà bạn thấy nếu cổng của bạn là 10.1.1.1 là một máy khác với 192.168.0.1 mà bạn thấy nếu cổng của bạn là 10.1.1.2.

Máy chủ Nagios của tôi được thiết lập tương ứng:

auto eth0
iface eth0 inet static
address 10.1.1.10
netmask 255.255.255.0
gateway 10.1.1.1

Vì vậy, để rõ ràng: có bốn cổng ở đây. Bộ định tuyến1 (10.1.1.1) Bộ định tuyến2 (10.1.1.2) Modem1 (192.168.0.1) Modem2 (192.168.0.1)

Dưới đây là một minh họa về những gì tôi có thể làm thủ công để kiểm tra trạng thái của hai modem:

ping -c4 192.168.0.1 # Is Modem1 up? 
ip route add via 10.1.1.2
ip route change default via 10.1.1.2
ping -c4 192.168.0.1 # Is Modem2 up?
wget 192.168.0.1 # yields expected control webpage for Modem2
ip route change default via 10.1.1.1
ip route del default via 10.1.1.2
wget 192.168.0.1 # Connection refused; Modem1 has no web interface
ssh adminuser@192.168.0.1 # I can log in to Modem1 and check status

Tôi muốn ở mức tối thiểu để có thể ping Modem2.

* Đã chỉnh sửa để sửa lỗi lạm dụng ký hiệu CIDR đáng ghê tởm của tôi và cung cấp chi tiết rõ ràng. (Tôi không nghĩ cái này thuộc về superuser.)


Cấu hình IP mà bạn đang bắt đầu ping từ đâu?

Câu trả lời:


12

man ping

ping [hop ...] đích

Vì vậy, bạn có thể cung cấp cho ping một số IP được phân tách bằng khoảng trắng làm tham số. Địa chỉ cuối cùng sẽ được "pinged"; các tham số trước đó xác định tuyến đường mà ping sẽ đi.

Vì vậy, trong trường hợp của bạn:

  • "modem ping 10.1.1.2" để sử dụng rõ ràng cổng đầu tiên,
  • "Modem ping 10.1.1.1" để sử dụng rõ ràng cổng thứ hai.

Nếu bạn gặp phải vấn đề tương tự với Windows: ping /? -klà tùy chọn bạn có thể muốn.

BTW: ping trên không yêu cầu bất kỳ quyền root. Thông tin định tuyến (trong trường hợp của bạn: "whishlist") là một phần của giao thức ICMP.


1
Điều đó không đưa tôi đến đó. ping -c4 10.1.1.2 192.168.0.1mang lại mất gói 100%. Tôi đã làm rõ tình huống trên.
Luke Schlather

4
Điều này thực sự không hoạt động gì cả, ngay cả với root. Tôi đã thử nghiệm điều này trong khi xem tcpdump, và nó không làm những gì bạn nghĩ nó làm.
bahamat

Điều gì xảy ra nếu bạn loại bỏ hoàn toàn cổng mặc định? Tôi vẫn không hiểu thiết lập của bạn. Tại sao bạn sử dụng địa chỉ "bộ định tuyến" giống hệt nhau trên cả hai modem?
Nils

Cả hai modem được điều khiển bởi các ISP khác nhau của tôi.
Luke Schlather

Ok - Bây giờ tôi hiểu cùng một IP của các bộ định tuyến. Đây có phải là một kết nối theo yêu cầu và bạn muốn chuyển đổi dự phòng?
Nils

11

Không ping -Nphải cũng không arpinglàm việc cho tôi, cuối cùng tôi đã giải quyết với giải pháp từ câu trả lời này :

Bạn có thể sử dụng công cụ nping từ gói nmap :

# nping --icmp --dest-mac [gateway mac] [target ip]

Bạn có thể tìm thấy mac của bộ định tuyến trong bộ đệm ARP cục bộ của mình:

$ arp -v [gateway ip]

Công cụ này cũng hỗ trợ các loại ping khác nhau, như --tcphoặc --udp.


Cảm ơn vì điều đó. Đề xuất của bạn về việc sử dụng nping là phương pháp duy nhất tôi đã tìm thấy (ngoài việc thêm vào một tuyến cụ thể và sử dụng nhị phân ping thông thường) để gửi yêu cầu echo ICMP (ping) tới bộ định tuyến sao lưu 3G theo yêu cầu (cho mục đích thử nghiệm , để đảm bảo rằng nó kết nối và có kết nối internet thực sự sau khi được kết nối), đạt được bằng cách nhắm mục tiêu địa chỉ MAC của bộ định tuyến khi gửi các gói ICMP, mà nping cho phép bạn thực hiện. Tiện ích nhỏ rất hữu ích!
parkamark

2

Xin lỗi, bạn chỉ có thể có một cổng mặc định . Bạn có thể có nhiều cổng, nhưng chỉ có một cổng cho mỗi mạng.

Vấn đề là, cả hai IP được đề cập đều nằm trong cùng một mạng. Ngoài ra, bạn đã chỉ định sai CIDR của mình: Ý bạn là 10.1.1.0/24 là có mạng con 255.255.255.0; hoặc thậm chí có một mạng con lớn hơn, ví dụ 10.0.0.0/8 là 255.0.0.0.

Do đó, bạn có thể ping bất kỳ máy chủ nào trong mạng của mình (10.0.0.0/8) hoặc bất kỳ máy chủ nào có thể truy cập thông qua một cổng (hoặc). Nhưng có hai cổng cho cùng một mạng là không thể.


1
Ý tôi là 10.1.1.1/24 như một cách viết tắt cho 10.1.1.1 trên mạng con 10.1.1.0/24. Xin lỗi, tôi sẽ không sử dụng tốc ký đó một lần nữa, rõ ràng là sai. Tôi vẫn có một vấn đề giám sát - Tôi đã thêm chi tiết ở trên. Tôi không thể giải quyết vấn đề này mà không đặt một bộ định tuyến tốt hơn tại 10.1.1.2?
Luke Schlather

2

Sử dụng arping :

# arping -c 1 -S [source_ip] -T [target_remote_ip] [gateway_mac_address]

Ở đâu:

  • source_ip là một IP được gán cục bộ trên máy chủ của bạn
  • target_remote_ip là địa chỉ IP bạn muốn ping
  • gateway_mac_address là địa chỉ ether lớp 2 của cổng thay thế bạn muốn sử dụng

Ngoài ra, nếu bạn đang sử dụng một số dạng Solaris, bạn có thể sử dụng:

ping -N [gateway_ip] [target_remote_ip]

Điều đó có vẻ đầy hứa hẹn, mặc dù tôi đoán rằng arpr của iproute2 sẽ không cắt nó ... có lẽ tôi chỉ cần thay thế bộ định tuyến bằng thứ gì đó tôi có thể ssh vào.
Luke Schlather

1
iproute2's arpinglà khác nhau. Nếu bạn đang sử dụng arping từ iproute2để làm arps vô cớ, tôi sẽ đề nghị sử dụng send_arptừ fakethay thế. Ngoài ra, cổng phải là thứ sẽ chuyển tiếp các gói IP.
bahamat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.