Tôi có 2 mạng con trong mạng cục bộ của mình (192.168.4.0/24, 192.168.5.0/24), nhưng chỉ có 1 máy chủ cổng (192.168.4.223) có 2 kết nối OpenVPN (10.100.2.6/24, 10.100.3.6/24) . Cấu trúc liên kết giống như:
nhập mô tả hình ảnh ở đây
Tôi muốn các máy tính ở 192.168.4.0/24 (chẳng hạn như Máy tính B) kết nối Internet qua máy chủ OpenVPN 2 và các máy tính ở 192.168.5.0/24 (chẳng hạn như Máy tính A) kết nối Internet qua máy chủ OpenVPN 1.
Trên MỞ
bộ định tuyến:
## Tôi đã làm gì:
vi /etc/iproute2/rt_tables
...
110 myovp # Thêm bảng cho 192.168.5.0/24
...
# Sau đó thêm quy tắc cho iproute2 và iptables:
quy tắc ip thêm bảng fwmark 110 110
quy tắc ip thêm vào bảng 192.168.4.0/24 chính
tuyến ip thêm mặc định qua 192.168.4.223 dev br-lan_1 bảng 110
iptables -t mangle -A PREROUTING -i br-lan_2 -j MARK --set-mark 110
## Một số đầu ra:
# Đầu ra của `quy tắc ip`:
0: từ tất cả tra cứu cục bộ
32764: từ tất cả đến tra cứu chính 192.168.4.0/24
32765: từ tất cả tra cứu fwmark 0x6e myovp
32766: từ tất cả tra cứu chính
32767: từ tất cả tra cứu mặc định
# Đầu ra của `ip route show`:
192.168.4.0/24 dev br-lan_1 liên kết phạm vi hạt nhân proto src 192.168.4.1
192.168.5.0/24 dev br-lan_2 liên kết phạm vi hạt nhân proto src 192.168.5.1
# Đầu ra của `ip route show table 110`:
mặc định qua 192.168.4.223 dev br-lan_1
# Đầu ra của `iptables -t mangle -L PREROUTING -v`
PREROUTING chuỗi (chính sách CHẤP NHẬN 871K gói, 177M byte)
pkts byte đích prot chọn không tham gia đích nguồn
28030 1954K ĐÁNH DẤU tất cả -- br-lan_2 mọi nơi mọi nơi ĐÁNH DẤU đặt 0x6e
Trên Máy chủ cổng Debian
:
## Tôi đã làm gì:
vi /etc/iproute2/rt_tables
...
110 myovp # Thêm bảng cho 192.168.5.0/24
...
# Sau đó thêm quy tắc cho iproute2 và iptables:
quy tắc ip thêm bảng fwmark 110 110
quy tắc ip thêm vào bảng 192.168.4.0/24 chính
quy tắc ip thêm vào bảng 192.168.5.0/24 chính
tuyến ip thêm mặc định qua 10.100.2.1 dev tun0 bảng 110
tuyến ip thêm 192.168.5.0/24 qua 192.168.4.1 dev enp4s0
iptables -t mangle -A PREROUTING -i enp4s0 -s 192.168.5.0/24 -j MARK --set-mark 110
# Sau đó, thêm quy tắc cho NAT và FORWARD:
iptables -A FORWARD -i enp4s0 -j CHẤP NHẬN
iptables -A FORWARD -i tun1 -o enp4s0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
iptables -A FORWARD -i enp4s0 -o tun1 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
iptables -A FORWARD -i tun0 -o enp4s0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
iptables -A FORWARD -i enp4s0 -o tun0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
iptables -A OUTPUT -o tun1 -j CHẤP NHẬN
iptables -A OUTPUT -o tun0 -j CHẤP NHẬN
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o tun1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o tun0 -j MASQUERADE
## Một số đầu ra:
# Đầu ra của `ip addr`:
...
4: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 trạng thái qdisc pfifo_fast nhóm UNKNOWN mặc định qlen 500
liên kết/không có
inet 10.100.3.6/24 phạm vi toàn cầu tun1
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
inet6 fe80::fd55:444a:552a:a454/64 phạm vi liên kết ổn định-riêng tư
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 trạng thái qdisc pfifo_fast nhóm UNKNOWN mặc định qlen 500
liên kết/không có
inet 10.100.2.6/24 phạm vi toàn cầu tun0
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
inet6 fe80::af61:acf1:4e9c:b1a8/64 liên kết phạm vi quyền riêng tư ổn định
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
...
# Đầu ra của `ip route show`:
0.0.0.0/1 đến 10.100.3.1 nhà phát triển tun1
mặc định qua 192.168.4.1 dev enp4s0 chỉ số tĩnh proto 100
10.100.2.0/24 dev tun0 liên kết phạm vi kernel proto src 10.100.2.5
10.100.3.0/24 dev tun1 liên kết phạm vi kernel proto src 10.100.3.5
128.0.0.0/1 qua 10.100.3.1 nhà phát triển tun1
192.168.4.0/24 dev enp4s0 liên kết phạm vi kernel proto src 192.168.4.223 số liệu 100
192.168.5.0/24 qua 192.168.4.1 dev enp4s0
# Đầu ra của `ip route show table 110`:
mặc định qua 10.100.2.1 dev tun0
# Đầu ra của `quy tắc ip`:
0: từ tất cả tra cứu cục bộ
32763: từ tất cả đến tra cứu chính 192.168.5.0/24
32764: từ tất cả đến tra cứu chính 192.168.4.0/24
32765: từ tất cả tra cứu fwmark 0x6e 110
32766: từ tất cả tra cứu chính
32767: từ tất cả tra cứu mặc định
# Đầu ra của `iptables -t filter -L -v`:
Chuỗi INPUT (chính sách CHẤP NHẬN 30661 gói, 3126K byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi FORWARD (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
2117K 194M CHẤP NHẬN tất cả -- enp4s0 mọi nơi mọi nơi
3394K 4191M CHẤP NHẬN tất cả -- tun1 enp4s0 mọi nơi mọi nơi trạng thái LIÊN QUAN, ĐÃ THÀNH LẬP
0 0 CHẤP NHẬN tất cả -- enp4s0 tun1 mọi nơi mọi nơi trạng thái LIÊN QUAN,THÀNH LẬP
1541 133K CHẤP NHẬN tất cả -- tun0 enp4s0 mọi nơi mọi nơi trạng thái LIÊN QUAN,THÀNH LẬP
0 0 CHẤP NHẬN tất cả -- enp4s0 tun0 mọi nơi mọi nơi trạng thái LIÊN QUAN,THÀNH LẬP
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 35596 gói, 22M byte)
pkts byte đích prot chọn không tham gia đích nguồn
1044 108K CHẤP NHẬN tất cả -- mọi tun1 mọi nơi mọi nơi
0 0 CHẤP NHẬN tất cả -- mọi tun0 mọi nơi mọi nơi
# Đầu ra của `iptables -t nat -L -v`:
PREROUTING chuỗi (chính sách CHẤP NHẬN 208K gói, 34M byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi INPUT (chính sách CHẤP NHẬN 266 gói, 46150 byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi POSTROUTING (chính sách CHẤP NHẬN 98 gói, 5876 byte)
pkts byte đích prot chọn không tham gia đích nguồn
27638 2036K MASQUERADE tất cả -- bất kỳ tun1 192.168.4.0/24 ở bất kỳ đâu
347 19186 MASQUERADE all -- bất kỳ tun0 192.168.5.0/24 ở mọi nơi
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 95 gói, 5636 byte)
pkts byte đích prot chọn không tham gia đích nguồn
# Đầu ra của `iptables -t mangle -L PREROUTING -v`:
Chuỗi PREROUTING (chính sách CHẤP NHẬN 0 gói, 0 byte)
pkts byte đích prot chọn không tham gia đích nguồn
2829 215K MARK tất cả -- enp4s0 mọi 192.168.5.0/24 mọi nơi MARK được đặt 0x6e
Và trên cả hai máy chủ OpenVPN (Chúng gần như giống nhau ngoại trừ địa chỉ IP mạng con và địa chỉ Internet):
## Tôi đã làm gì:
# Đầu tiên thiết lập máy chủ OpenVPN
# Sau đó, thêm quy tắc cho NAT và FORWARD:
iptables -A FORWARD -i tun0 -j CHẤP NHẬN
iptables -A FORWARD -i tun0 -o eth0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
iptables -A FORWARD -i eth0 -o tun0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
iptables -A OUTPUT -o tun0 -j CHẤP NHẬN
iptables -t nat -A POSTROUTING -s 10.100.2.0/24 -o eth0 -j MASQUERADE
## Một số đầu ra
# Đầu ra của `ip addr`:
...
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 trạng thái qdisc pfifo_fast nhóm UNKNOWN mặc định qlen 500
liên kết/không có
inet 10.100.2.1/24 phạm vi toàn cầu tun0
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
inet6 fe80::c31e:ba42:4cb5:d887/64 liên kết phạm vi quyền riêng tư ổn định
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
...
# Đầu ra của `iptables -t filter -L -v`:
Chuỗi INPUT (chính sách CHẤP NHẬN 16M gói, 1026M byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi FORWARD (chính sách CHẤP NHẬN 1522K gói, 114M byte)
pkts byte đích prot chọn không tham gia đích nguồn
247M 192G CHẤP NHẬN tất cả -- tun0 mọi nơi mọi nơi
0 0 CHẤP NHẬN tất cả -- tun0 eth0 mọi nơi mọi nơi trạng thái LIÊN QUAN,THÀNH LẬP
178M 106G CHẤP NHẬN tất cả -- eth0 tun0 mọi nơi mọi nơi trạng thái LIÊN QUAN,THÀNH LẬP
0 0 CHẤP NHẬN tất cả -- tun0 bất kỳ 10.100.2.0/24 bất kỳ đâu
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 16M gói, 1047M byte)
pkts byte đích prot chọn không tham gia đích nguồn
55959 7717K CHẤP NHẬN tất cả -- mọi tun0 mọi nơi mọi nơi
# Đầu ra của `iptables -t nat -L -v`:
PREROUTING chuỗi (chính sách CHẤP NHẬN 27M gói, 1809M byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi INPUT (chính sách CHẤP NHẬN 11M gói, 605M byte)
pkts byte đích prot chọn không tham gia đích nguồn
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 5047 gói, 386K byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi POSTROUTING (chính sách CHẤP NHẬN 996K gói, 83M byte)
pkts byte đích prot chọn không tham gia đích nguồn
16M 1063M MẶT MẠO tất cả -- mọi eth0 10.100.2.0/24 mọi nơi
Giờ đây, các máy tính ở 192.168.4.0/24 (chẳng hạn như Máy tính B) có thể kết nối Internet thông qua máy chủ OpenVPN 2 một cách hoàn hảo.
Nhưng trong 192.168.5.0/24, máy tính không thể giải quyết bất kỳ tên máy chủ nào.Trên máy tính A, ping 8.8.8.8
hoạt động tốt, và tracert 8.8.8.8
cho thấy nó có thể truy cập máy chủ 8.8.8.8 thông qua máy chủ OpenVPN 1, nhưng nslookup google.com 8.8.8.8
lợi nhuận Truy vấn bị từ chối
.
Thực sự xin lỗi vì một bài viết dài như vậy, nhưng tôi thực sự không biết phải làm gì hoặc tôi đã bỏ sót điều gì. Tôi không phải là chuyên gia về mạng, vì vậy mọi đề xuất và trợ giúp cụ thể đều được đánh giá cao. Cảm ơn!