Kết nối mạng với nhiều Nics


16

Tôi có một máy chủ Ubuntu 12.04 với 4 bộ điều hợp mạng. Tôi cần sử dụng mỗi NIC cho một chức năng riêng biệt. Dưới đây là một mô tả về thiết lập của tôi:

etho = 10.234.0.2 netmask = 255.255.255.252 gw = 10.234.0.1 This is on vlan 234
eth1 = 10.235.0.2 netmask = 255.255.255.252 gw = 10.235.0.1 This is on vlan 235
eth2 = 10.236.0.2 netmask = 255.255.255.252 gw = 10.236.0.1 This is on vlan 236
eth3 = 10.237.0.2 netmask = 255.255.255.252 gw = 10.237.0.1 This is on vlan 237

Tôi cần có khả năng hướng lưu lượng truy cập đến và từ các địa chỉ IP riêng cho các dịch vụ web riêng biệt. tức là 10.235.0.2 là một trang web, 10.236.0.2 là một trang web khác và 10.237.0.2 là một trang web thứ ba. IP đầu tiên là để quản lý máy chủ.

Tôi nghĩ vấn đề này là một vấn đề định tuyến, nhưng tôi đủ mới để Linux không có sự hiểu biết đầy đủ về các khả năng định tuyến.

Đây là những gì trong /etc/network/interfacestập tin của tôi :

auto lo
iface lo inet loopback

# WWW Management
auto eth0
iface eth0 inet static
address 10.234.0.2
netmask 255.255.255.252
gateway 10.234.0.1
nameseervers 10.230.1.103, 10.230.70.70

# WWW
auto eth1
iface eth1 inet static
address 10.235.0.2
netmask 255.255.255.252
gateway 10.235.0.1

# WTB
#auto eth2
#iface eth2 inet static
#address 10.236.0.2
#netmask 255.255.255.252
#gateway 10.236.0.1

# Moodle
#auto eth3
#iface eth3 inet static
#address 10.237.0.2
#netmask 255.255.255.252
#gateway 10.237.0.1

Tôi đã vô hiệu hóa hai mạng cuối cùng chỉ để giảm bớt sự nhầm lẫn.

Cảm ơn trước tất cả sự giúp đỡ và ý kiến ​​và đề xuất.

Câu trả lời:


15

Sau khi thực hiện cấu hình bình thường chỉ eth0, tôi quay lại và thêm cấu hình cho eth1. Chỉ với eth0 trở lên, bảng lộ trình là:

# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100

Nhưng một khi tôi đưa ra eth1, thứ tự của các câu lệnh tuyến mặc định đã xác định giao diện nào luôn được sử dụng. Như được hiển thị bên dưới, tình cờ chọn tuyến eth1 đến cổng 192.168.1,65.

# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.1.65 dev eth1 metric 100
default via 192.168.0.97 dev eth0 metric 100

chỉ có một tuyên bố cổng

Vấn đề đầu tiên có thể là tuyến đường mặc định 'qua 192.168.1,65'. Nó xuất hiện ở đó nếu định nghĩa eth1 trong / etc / network / interface có câu lệnh "gateway 192.168.1.60". Vì vậy, loại bỏ bất kỳ câu lệnh cổng bổ sung và thoát giao diện:

# ifdown eth1
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100

thiết lập bảng định tuyến mới

Tạo một bảng định tuyến mới, riêng biệt chứa một tuyến mặc định phù hợp cho tất cả lưu lượng truy cập ra khỏi eth1. Số bảng ở đây không quan trọng; 101 đơn giản không phải là bảng định tuyến chính. Thực hiện việc này bằng lệnh 'post-up' trên cấu hình eth1 trong / etc / network / interface. Chỉ thêm một bài đăng lên eth1; Không thêm nó vào bất kỳ giao diện phụ eth1 :.

post-up ip route add default via 192.168.1.65 dev eth1 table 101

Bounce eth1. Bảng định tuyến chính không thay đổi và bảng 101 sẽ chứa tuyến đường mặc định 192.168.1,65 nếu eth1 hoạt động.

# ifdown eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100

# ip route show table 101   (ie, table is empty, no output)
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100

# ip route show table 101
default via 192.168.1.65 dev eth1

quy tắc định tuyến mới

Thêm quy tắc định tuyến để sử dụng bảng 101 để chọn tuyến mặc định cho các gói đi ra eth1.

# ip rule add from 192.168.1.64/27 lookup 101
# ip rule show
0:     from all lookup local
32765: from 192.168.1.64/27 lookup 101
32766: from all lookup main
32767: from all lookup default

Thêm quy tắc vào /etc/network/interfacestệp là tốt:

post-up ip rule add from 192.168.1.64/27 lookup 101

Bây giờ hãy đảm bảo thêm dọn dẹp để xóa tuyến đường và quy tắc khi giao diện không hoạt động:

post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101

[EDIT cho ubfox 16.04+] Giống như được chỉ ra ở đây và từ thử nghiệm tôi đã thực hiện từ trợ giúp này, ip route2 đã thay đổi cấu trúc lệnh của anh ấy. Để thực hiện công việc, bạn sẽ phải điều chỉnh chỉ một chút để làm theo thứ tự các man ip điểm .

up ip route add default table 101 dev eth1 via 192.168.1.65
up ip rule add from 192.168.1.64/27 lookup 101
down ip rule del from 192.168.1.64/27
down ip route del default table 101 via 192.168.1.65

Hoặc bạn sẽ kết thúc sau lệnh ifdown - ifup với lệnh thông báo lỗi @ifdown (thông báo chuẩn để nói rằng các thiết bị ngoại vi không được cấu hình đúng) và @ifup không có tuyến đường trong bảng 101.


Đẹp, nhưng tôi không thích sử dụng RC.local .. tìm kiếm bước cuối cùng thanh lịch hơn ..
drAlberT

Nó đã được chỉnh sửa Tôi cho rằng :) ..
drAlberT

Có thực sự là một tập tin / etc / giao diện, hoặc đó là một lỗi đánh máy?
100464

@ user100464/etc/network/interfaces
Zenexer

Có một ref cho người trước trong câu trả lời. Tôi không thể chỉnh sửa nó.
100464
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.