Tôi đang gặp sự cố khi nhận các cổng để chuyển tiếp tới VM thông qua các quy tắc iptable MASQUERADE. Tôi đã làm việc này trên cùng một máy chủ với Proxmox. Nhưng bây giờ với XCP-NG, tôi không thể làm việc này được. Trước đây tôi đã làm một lần trên một trong những máy chủ này. Nhưng tôi đã không thể sao chép nó một lần nữa. Kết nối mạng để gửi đi và nhận các bản cập nhật cũng như yêu cầu http/https trên VM đang hoạt động tốt.Tôi không thể lấy các cổng để chuyển tiếp tới máy ảo VoyOs/Pfsense để tôi có thể chuyển chúng tới máy ảo nội bộ.
Nói tóm lại, tôi có thể kết nối mạng với máy ảo nhưng tôi không thể chuyển tiếp các cổng.
Tôi có hai máy chủ đều chạy XCP-NG nhưng một máy chủ đang chạy VoyOS và máy chủ còn lại là OPNsense:
- XCP-NG : 8.2
- OPNsense : 21.7.1
- VoyOS : Mới nhất
Tôi đã làm theo các hướng dẫn sau:
xenserver-single-ip-howto
thiết lập-cổng-sử dụng-iptables-and-route-on-linux
tạo-riêng-mạng-cầu-proxmox-với-nat
xen-host-and-guest-shared-same-ip
Bản đồ mạng
- Giao diện quản lý
NIC 0 -> xenbr0
- MASQUERADE thành xenbr1 (10.0.0.254) -> Wan- VoyOs/Pfsense (10.0.0.2) -> Lan Internal (10.0.1.1) -> VM's (10.0.1.x)
Cố gắng:
iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o xenbr0 -j MASQUERADE
iptables -A PREROUTING -t nat -p tcp -i xenbr0 -d XXX.XXX.XXX.XX --dport 2727 -j DNAT --to 10.0.0.2:2727
và xóa -d XXX.XXX.XXX.XX IPaddress bên ngoài
iptables -A PREROUTING -t nat -p tcp -i xenbr0 --dport 2727 -j DNAT --to 10.0.0.2:2727
Sau đó, tôi đã xóa các quy tắc đó và thử:
iptables -I CHUYỂN ĐI 1 -i xenbr1 -j CHẤP NHẬN
iptables -t nat -A POSTROUTING -o xenbr0 -j MASQUERADE
Và cuối cùng đã thử:
iptables --append FORWARD --in-interface xenbr1 -j CHẤP NHẬN
iptables -D FORWARD --in-interface xenbr1 -j CHẤP NHẬN
Quy tắc bảng IP
# iptables --list-quy tắc
-P CHẤP NHẬN ĐẦU VÀO
-P CHẤP NHẬN VỀ PHÍA TRƯỚC
-P CHẤP NHẬN ĐẦU RA
-N RH-Tường lửa-1-INPUT
-N xapi_nbd_input_chain
-N xapi_nbd_output_chain
-A INPUT -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
-A INPUT -p gre -j CHẤP NHẬN
-A INPUT -j RH-Tường lửa-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A OUTPUT -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
-A RH-Tường lửa-1-INPUT -i lo -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j CHẤP NHẬN
-A RH-Tường lửa-1-INPUT -i xenapi -p udp -m udp --dport 67 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 694 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 80 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 443 -j CHẤP NHẬN
-A RH-Tường lửa-1-INPUT -p tcp -m tcp --dport 21064 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p udp -m multiport --dports 5404,5405 -j CHẤP NHẬN
-A RH-Tường lửa-1-INPUT -j TỪ CHỐI --từ chối-với icmp-host-bị cấm
-A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
-A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable
bảng IP
# iptables -L && iptables -t nat -L
ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
xapi_nbd_input_chain tcp -- bất cứ nơi đâu tcp dpt:nbd
CHẤP NHẬN gre -- mọi nơi mọi nơi
RH-Firewall-1-INPUT all -- mọi nơi mọi nơi
Chuỗi FORWARD (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
RH-Firewall-1-INPUT all -- mọi nơi mọi nơi
ĐẦU RA chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
xapi_nbd_output_chain tcp -- bất cứ đâu tcp spt:nbd
Chuỗi RH-Tường lửa-1-INPUT (2 tài liệu tham khảo)
đích prot opt nguồn đích
CHẤP NHẬN tất cả -- mọi nơi mọi nơi
CHẤP NHẬN icmp -- mọi nơi mọi nơi icmp bất kỳ
CHẤP NHẬN udp -- mọi nơi mọi nơi udp dpt:bootps
CHẤP NHẬN tất cả -- mọi nơi mọi nơi ctstate LIÊN QUAN, THÀNH LẬP
CHẤP NHẬN udp -- mọi nơi mọi nơi ctstate MỚI udp dpt:ha-cluster
CHẤP NHẬN tcp -- mọi nơi mọi nơi ctstate MỚI tcp dpt:ssh
CHẤP NHẬN tcp -- mọi nơi mọi nơi ctstate MỚI tcp dpt:http
CHẤP NHẬN tcp -- mọi nơi mọi nơi ctstate MỚI tcp dpt:https
CHẤP NHẬN tcp -- mọi nơi mọi lúc mọi nơi tcp dpt:21064
CHẤP NHẬN udp -- mọi nơi mọi nơi đa cổng dports hpoms-dps-lstn,netsupport
TỪ CHỐI tất cả -- mọi nơi mọi nơi từ chối-với icmp-host-bị cấm
Chuỗi xapi_nbd_input_chain (1 tài liệu tham khảo)
đích prot opt nguồn đích
TỪ CHỐI tất cả -- mọi nơi mọi nơi từ chối-với icmp-port-không truy cập được
Chuỗi xapi_nbd_output_chain (1 tài liệu tham khảo)
đích prot opt nguồn đích
TỪ CHỐI tất cả -- mọi nơi mọi nơi từ chối-với icmp-port-không truy cập được
PREROUTING chuỗi (CHẤP NHẬN chính sách)
đích prot opt nguồn đích
DNAT tcp -- bất cứ đâu bất cứ đâu tcp dpt:mgcp-callagent tới:10.0.0.2:2727
ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
ĐẦU RA chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
Chuỗi POSTROUTING (CHẤP NHẬN chính sách)
đích prot opt nguồn đích
MASQUERADE tất cả -- 10.0.0.0/24 mọi nơi
/etc/sysconfig/iptables
# mèo /etc/sysconfig/iptables
# Được tạo bởi iptables-save v1.4.21 vào Thứ Hai ngày 16 tháng 8 20:14:40 năm 2021
*lọc
:INPUT CHẤP NHẬN [0:0]
:CHẤP NHẬN VỀ PHÍA TRƯỚC [0:0]
:CHẤP NHẬN ĐẦU RA [6179:9587238]
:RH-Tường lửa-1-INPUT - [0:0]
:xapi_nbd_input_chain - [0:0]
:xapi_nbd_output_chain - [0:0]
-A INPUT -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
-A INPUT -p gre -j CHẤP NHẬN
-A INPUT -j RH-Tường lửa-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A OUTPUT -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
-A RH-Tường lửa-1-INPUT -i lo -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j CHẤP NHẬN
-A RH-Tường lửa-1-INPUT -i xenapi -p udp -m udp --dport 67 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 694 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 80 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 443 -j CHẤP NHẬN
-A RH-Tường lửa-1-INPUT -p tcp -m tcp --dport 21064 -j CHẤP NHẬN
-A RH-Firewall-1-INPUT -p udp -m multiport --dports 5404,5405 -j CHẤP NHẬN
-A RH-Tường lửa-1-INPUT -j TỪ CHỐI --từ chối-với icmp-host-bị cấm
-A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
-A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable
LÀM
# Hoàn thành vào Thứ 2 ngày 16 tháng 8 20:14:40 2021
# Được tạo bởi iptables-save v1.4.21 vào Thứ Hai ngày 16 tháng 8 20:14:40 năm 2021
*tự nhiên
: CHẤP NHẬN TRƯỚC [5:322]
:INPUT CHẤP NHẬN [3:164]
:CHẤP NHẬN ĐẦU RA [1:73]
:CHẤP NHẬN SAU ĐÓ [1:73]
-A PREROUTING -i xenbr0 -p tcp -m tcp --dport 2727 -j DNAT --to-destination 10.0.0.2:2727
-A POSTROUTING -s 10.0.0.0/24 -o xenbr0 -j MASQUERADE
LÀM
# Hoàn thành vào Thứ 2 ngày 16 tháng 8 20:14:40 2021
ifconfig
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 78:2b:cb:3c:81:65 txqueuelen 1000 (Ethernet)
Gói RX 24705 byte 3641727 (3,4 MiB)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 47612 byte 37970921 (36,2 MiB)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
eth1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 78:2b:cb:3c:81:66 txqueuelen 1000 (Ethernet)
Gói RX 0 byte 0 (0,0 B)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 0 byte 0 (0,0 B)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 mặt nạ mạng 255.0.0.0
vòng lặp txqueuelen 1000 (Local Loopback)
Gói RX 5951 byte 33860750 (32,2 MiB)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 5951 byte 33860750 (32,2 MiB)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
vif1.0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
ether fe:ff:ff:ff:ff:ff txqueuelen 32 (Ethernet)
Gói RX 6 byte 444 (444,0 B)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 0 byte 0 (0,0 B)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
vif1.1: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
ether fe:ff:ff:ff:ff:ff txqueuelen 32 (Ethernet)
Gói RX 1442 byte 95984 (93,7 KiB)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 1336 byte 143058 (139,7 KiB)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
xapi0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether be:16:43:65:a2:4f txqueuelen 1000 (Ethernet)
Gói RX 6 byte 444 (444,0 B)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 0 byte 0 (0,0 B)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet XXX.XXX.XXX.XX netmask 255.255.255.252 phát sóng XXX.XXX.XXX.XX
ether 78:2b:cb:3c:81:65 txqueuelen 1000 (Ethernet)
Gói RX 23841 byte 3101836 (2,9 MiB)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 33197 byte 36975647 (35,2 MiB)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
xenbr1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.254 mặt nạ mạng 255.255.255.0 phát sóng 10.0.0.255
ether 78:2b:cb:3c:81:66 txqueuelen 1000 (Ethernet)
Gói RX 1442 byte 95984 (93,7 KiB)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 1336 byte 143058 (139,7 KiB)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
/etc/sysctl.conf
# cài đặt sysctl được xác định thông qua các tệp trong
# /usr/lib/sysctl.d/, /run/sysctl.d/ và /etc/sysctl.d/.
#
# Cài đặt nhà cung cấp trực tiếp trong /usr/lib/sysctl.d/.
# Để ghi đè lên toàn bộ tệp, hãy tạo một tệp mới có cùng tên trong
# /etc/sysctl.d/ và đặt cài đặt mới ở đó. để ghi đè
# chỉ cài đặt cụ thể, thêm tệp có từ vựng sau
# tên trong /etc/sysctl.d/ và đặt cài đặt mới ở đó.
#
# Để biết thêm thông tin, hãy xem sysctl.conf(5) và sysctl.d(5).
net.ipv4.ip_forward = 1