Không thể thiết lập tuyến máy chủ tĩnh - SI SIADADDRT: Không có quy trình như vậy


11

Tại văn phòng của tôi, có một bộ định tuyến Windows Server 2008, 192.168.16.1, là cổng mặc định của chúng tôi. Điều này sẽ gửi dữ liệu thông qua kết nối internet chính của chúng tôi. Điều này hoạt động hoàn hảo.

192.168.16.1 cũng có một kết nối internet khác hiện không được sử dụng. Điều này kết nối với bộ định tuyến, 192.168.1.254, sau đó kết nối với kết nối internet thứ cấp của chúng tôi.

Tôi đã thiết lập Truy cập từ xa và định tuyến để định tuyến phạm vi 192.168.1. * Đến mạng nội bộ của chúng tôi và tôi có thể ping 192.168.1.254 từ máy tính để bàn có địa chỉ IP 192.168.16.22.

Tôi có một nhiệm vụ tải lên và tải xuống rất chuyên sâu cho một hộp linux trong cùng một văn phòng, vì vậy tôi muốn thiết lập một tuyến tĩnh để tôi không kết nối internet chính của chúng tôi và ảnh hưởng đến đồng nghiệp của tôi. Vì vậy, kế hoạch của tôi là thiết lập hộp này với một tuyến tĩnh.

Từ hộp linux, tôi có thể ping 192.168.1.254, nhưng tôi không thể thêm tuyến tĩnh đến máy chủ đích trong trung tâm dữ liệu của chúng tôi:

$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0
SIOCADDRT: No such process

Từ việc mở rộng, thông báo lỗi này dường như cho thấy rằng tôi không thể truy cập 192.168.1.254 để thiết lập tuyến đường, nhưng tôi có thể ping nó. Tôi đã cố gắng thêm một tuyến tĩnh vào 192.168.1.254, hoạt động hoàn hảo, nhưng điều này không giải quyết được vấn đề (như mong đợi).

Tôi không đủ tiến bộ về mạng để chẩn đoán vấn đề này hơn nữa vì nền tảng của tôi là phát triển phần mềm, không phải quản trị hệ thống. Tôi sẽ rất biết ơn về bất kỳ lời khuyên nào.

Cảm ơn bạn đã dành thời gian.

Câu trả lời:


8

Là máy tính để bàn trên 192.168.16.0/24?

Bạn không thể thêm một tuyến đường (đến bất kỳ mục tiêu nào) thông qua một cổng mà bạn không được kết nối trực tiếp, bởi vì máy tính của bạn không biết cách tìm đường đến bộ định tuyến mà không đi qua tuyến đường mặc định.


Đúng, quyết định định tuyến cần được đặt trên 192.168.16.1.
Đánh dấu Wagner

2

Bạn có thể gặp lỗi "SIOCADDRT: Không có quá trình như vậy" nếu "Bạn đã cố gắng đặt tuyến cho mạng trước khi đặt tuyến máy chủ cho cổng xử lý lưu lượng cho mạng đó."

ví dụ: đối với cục bộ -> 172.19.0.1 -> 172.19.0.xx

[root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0
SIOCADDRT: No such process

TRẢ LỜI: Đầu tiên tạo một tuyến máy chủ, sau đó tạo một tuyến mạng.

ví dụ: đối với mạng đang được đề cập: cục bộ -> 192.168.1.254 -> 123.123.123.123

sudo route add -host 192.168.1.254 dev eth0

sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0

Một tuyến tĩnh sẽ vẫn tải mạng , tôi đoán nó phụ thuộc;). Lưu lượng tải lên / tải xuống phải qua mạng. Vì vậy, nó sẽ ảnh hưởng đến người dùng khác của mạng. Bạn có thể giới hạn băng thông hoặc chuyển lưu lượng đó sang giờ yên tĩnh hơn nếu bạn muốn giảm ảnh hưởng đến những người dùng mạng khác. ví dụ rsync có các tùy chọn giới hạn băng thông tốt.

Tôi gặp vấn đề tương tự với định tuyến và SIOCADDRT. cục bộ -> dockerserver -> dockercontainer. Thêm tuyến máy chủ sau đó tuyến mạng làm cho việc định tuyến hoạt động theo một hướng.

Điều này đã giúp tôi https://support.symantec.com/en_US/article.TECH142841.html

Ví dụ định tuyến đầy đủ, định tuyến làm việc theo cả hai cách:

dockerserver=172.19.0.1
dockerservernet=172.19.0.0
dockercontainer=172.19.0.25
local=192.168.111.23
localnet=192.168.111.0

### 0. create host route for gw and net route local->docker
[root@local]# route add -host $dockerservernet dev eth0
[root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0

### 1. route on dockerserver to local
[root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[root@dockerserver ~]# ping $local

### 2. route FROM dockercontainer to local (via gateway dockerserver)
[root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[root@dockercontainer /]# ping $local

0

Về phần câu hỏi về việc đặt các tuyến liên tục trong phiên bản AWS EC2 chạy Ubuntu, vị trí chính xác để đặt các tuyến tĩnh để duy trì thông qua khởi động lại AWS, dừng và bắt đầu là /etc/rc.local.

Trong tệp đó, bạn cần đặt các tuyến đường của mình ở dòng phía trên dòng cuối cùng. Các dòng của bạn sẽ trông giống như thế này:

route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX

Chạy sudolệnh sẽ bị mất khi khởi động lại.

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.