Tôi có hệ thống CentOS 7 có ba giao diện. tôi gần đây
đã chuyển đổi một trên các giao diện đó sang sử dụng Vlan. Hệ thống máy chủ này
như một tường lửa và bộ định tuyến giữa các mạng khác nhau. Mọi thứ
dường như đang hoạt động như mong đợi, ngoại trừ một mục. Tôi không thể kết nối
vào hoặc ra khỏi hệ thống CentOS từ/đến bất kỳ máy chủ nào trên VLAN.
Ví dụ: nếu tôi ssh từ 192.168.32.95 (máy chủ trên VLAN 32) sang
192.168.32.1 (giao diện VLAN 32 trên máy chủ CentOS), tôi có thể thấy
các gói có tcpdump đến trên giao diện enp3s0, được gắn thẻ
vlan 32. Chuỗi iptables INPUT ghi nhật ký và CHẤP NHẬN gói.
Sau đó, gói tin biến mất. Không gửi SYN-ACK, không gửi RST.
Tương tự, đối với những thứ như NTP từ 192.168.32.1 đến 192.168.32.3,
nhật ký tường lửa và CHẤP NHẬN gói NTP gửi đi, nhưng sau đó không
gói được nhìn thấy bởi tcpdump để lại trên enp3s0 (tức là enp3s0.32)
Ping từ VLAN 32 hoạt động...Tôi có thể ping máy chủ CentOS từ VLAN 32 và
nhận được trả lời.
Hệ thống CentOS đang chuyển tiếp các gói giữa tất cả các kết hợp của
giao diện VLAN và non-VLAN.
Mọi suy nghĩ về những gì có thể giải thích cho các vấn đề kết nối này, hoặc
thậm chí là một cách để theo dõi thêm những gì đang xảy ra?
# hiển thị địa chỉ ip
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 trạng thái qdisc noqueue nhóm UNKNOWN mặc định qlen 1000
liên kết/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
máy chủ phạm vi inet 127.0.0.1/8 lo
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000
liên kết/ether c0:25:e9:0e:cb:a1 brd ff:ff:ff:ff:ff:ff
inet 10.20.30.177/28 brd 10.20.30.191 phạm vi toàn cầu enp1s0
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000
liên kết/ether 84:16:f9:05:3a:fb brd ff:ff:ff:ff:ff:ff
inet 192.168.16.1/24 brd 192.168.16.255 phạm vi toàn cầu enp2s0
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
4: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 trạng thái qdisc pfifo_fast UP nhóm mặc định qlen 1000
liên kết/ether 6c:f0:49:42:5b:fa brd ff:ff:ff:ff:ff:ff
5: enp3s0.32@enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc trạng thái noqueue UP nhóm mặc định qlen 1000
liên kết/ether 6c:f0:49:42:5b:fa brd ff:ff:ff:ff:ff:ff
inet 192.168.32.1/24 brd 192.168.32.255 phạm vi toàn cầu enp3s0.32
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
6: enp3s0.50@enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc trạng thái noqueue UP nhóm mặc định qlen 1000
liên kết/ether 6c:f0:49:42:5b:fa brd ff:ff:ff:ff:ff:ff
inet 192.168.50.1/24 brd 192.168.50.255 phạm vi toàn cầu enp3s0.50
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
Đây là chuỗi INPUT nơi tôi đặt quy tắc ghi nhật ký và CHẤP NHẬN ngay tại
bắt đầu.
# iptables -t bộ lọc -S INPUT
-P ĐẦU VÀO THẢ
-A INPUT -i lo -j CHẤP NHẬN
-A INPUT -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A INPUT -s 192.168.32.95/32 -d 192.168.32.1/32 -p tcp -m tcp --dport 22 -j LOG --log-prefix "KIỂM TRA TRONG: "
-A INPUT -s 192.168.32.95/32 -d 192.168.32.1/32 -p tcp -m tcp --dport 22 -j CHẤP NHẬN
-A INPUT -m state --state INVALID -j INVALID
-A INPUT -m state --state UNTRACKED -j UNTRACKED
-A INPUT -i enp1s0 -j INPUT-EXT
-A INPUT -i enp2s0 -j INPUT-MID
-A INPUT -i enp3s0.32 -j INPUT-V32
-A INPUT -i enp3s0.50 -j INPUT-V50
-A INPUT -j LOG --log-prefix "DROP EOC INPUT: " --log-tcp-options --log-ip-options
-A INPUT -j DROP
Tường lửa ghi nhật ký gói SYN.
Ngày 4 tháng 7 14:21:49 nhân bên ngoài: [112380.489332] TEST IN: IN=enp3s0.32 OUT= MAC=6c:f0:49:42:5b:fa:52:54:00:35:f4:e4:08 :00:45:00:00:3c SRC=192.168.32.95 DST=192.168.32.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=17731 DF PROTO=TCP SPT=51926 DPT=22 WINDOW=29200 RES= 0x00 TỔNG HỢP URGP=0
Đầu ra của tcpdump hiển thị nhiều bản sao của gói SYN đang đến.
# tcpdump -e -nn -i enp3s0 máy chủ 192.168.32.95 và máy chủ 192.168.32.1
14:21:49.516122 52:54:00:35:f4:e4 > 6c:f0:49:42:5b:fa, ethertype 802.1Q (0x8100), độ dài 78: vlan 32, p 0, ethertype IPv4, 192.168. 32.95.51926 > 192.168.32.1.22: Flags [S], seq 3631520692, win 29200, tùy chọn [mss 1460,sackOK,TS val 69303507 ecr 0,nop,wscale 7], độ dài 0
14:21:50.529043 52:54:00:35:f4:e4 > 6c:f0:49:42:5b:fa, ethertype 802.1Q (0x8100), độ dài 78: vlan 32, p 0, ethertype IPv4, 192.168. 32.95.51926 > 192.168.32.1.22: Flags [S], seq 3631520692, win 29200, tùy chọn [mss 1460,sackOK,TS val 69303760 ecr 0,nop,wscale 7], độ dài 0
14:21:52.543926 52:54:00:35:f4:e4 > 6c:f0:49:42:5b:fa, ethertype 802.1Q (0x8100), độ dài 78: vlan 32, p 0, ethertype IPv4, 192.168. 32.95.51926 > 192.168.32.1.22: Flags [S], seq 3631520692, win 29200, tùy chọn [mss 1460,sackOK,TS val 69304264 ecr 0,nop,wscale 7], độ dài 0
14:21:56.607938 52:54:00:35:f4:e4 > 6c:f0:49:42:5b:fa, ethertype 802.1Q (0x8100), độ dài 78: vlan 32, p 0, ethertype IPv4, 192.168. 32.95.51926 > 192.168.32.1.22: Flags [S], seq 3631520692, win 29200, tùy chọn [mss 1460,sackOK,TS val 69305280 ecr 0,nop,wscale 7], độ dài 0
14:22:04.799936 52:54:00:35:f4:e4 > 6c:f0:49:42:5b:fa, ethertype 802.1Q (0x8100), độ dài 78: vlan 32, p 0, ethertype IPv4, 192.168. 32.95.51926 > 192.168.32.1.22: Flags [S], seq 3631520692, win 29200, tùy chọn [mss 1460,sackOK,TS val 69307328 ecr 0,nop,wscale 7], độ dài 0
Thông tin yêu cầu bổ sung:
# lộ trình ip
mặc định qua 50.196.138.190 dev enp1s0
10.20.30.176/28 dev enp1s0 liên kết phạm vi kernel proto src 10.20.30.177
192.168.16.0/24 dev enp2s0 liên kết phạm vi kernel proto src 192.168.16.1
192.168.32.0/24 dev enp3s0.32 liên kết phạm vi kernel proto src 192.168.32.1
192.168.50.0/24 dev enp3s0.50 liên kết phạm vi kernel proto src 192.168.50.1
# quy tắc ip
0: từ tất cả tra cứu cục bộ
32766: từ tất cả tra cứu chính
32767: từ tất cả tra cứu mặc định
# ip route hiển thị bảng cục bộ
phát sóng 10.20.30.176 dev enp1s0 liên kết phạm vi kernel proto src 10.20.30.177
local 10.20.30.177 dev enp1s0 proto phạm vi kernel máy chủ src 10.20.30.177
phát sóng 10.20.30.191 liên kết phạm vi hạt nhân proto dev enp1s0 src 10.20.30.177
phát 127.0.0.0 dev lo liên kết phạm vi kernel proto src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel phạm vi máy chủ src 127.0.0.1
local 127.0.0.1 dev lo proto kernel phạm vi máy chủ src 127.0.0.1
phát 127.255.255.255 dev lo liên kết phạm vi kernel proto src 127.0.0.1
phát 192.168.16.0 dev enp2s0 liên kết phạm vi kernel proto src 192.168.16.1
local 192.168.16.1 dev enp2s0 proto phạm vi kernel máy chủ src 192.168.16.1
phát 192.168.16.255 dev enp2s0 liên kết phạm vi kernel proto src 192.168.16.1
phát 192.168.32.0 dev enp3s0.32 liên kết phạm vi kernel proto src 192.168.32.1
local 192.168.32.1 dev enp3s0.32 máy chủ phạm vi kernel proto src 192.168.32.1
phát 192.168.32.255 dev enp3s0.32 liên kết phạm vi kernel proto src 192.168.32.1
phát 192.168.50.0 dev enp3s0.50 liên kết phạm vi kernel proto src 192.168.50.1
local 192.168.50.1 dev enp3s0.50 máy chủ phạm vi kernel proto src 192.168.50.1
phát 192.168.50.255 dev enp3s0.50 liên kết phạm vi kernel proto src 192.168.50.1
Tôi đã thêm một quy tắc ghi nhật ký và CHẤP NHẬN cụ thể trong chuỗi OUTPUT, nhưng không có gì được ghi lại từ đó.
# iptables -S ĐẦU RA
-P ĐẦU RA THẢ
-A ĐẦU RA -o lo -j CHẤP NHẬN
-A OUTPUT -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A OUTPUT -s 192.168.32.1/32 -d 192.168.32.95/32 -p tcp -m tcp --sport 22 -j LOG --log-prefix "KIỂM TRA RA: "
-A OUTPUT -s 192.168.32.1/32 -d 192.168.32.95/32 -p tcp -m tcp --sport 22 -j CHẤP NHẬN
-A OUTPUT -m state --state INVALID -j INVALID
-A OUTPUT -m state --state UNTRACKED -j UNTRACKED
-A OUTPUT -o enp1s0 -j OUTPUT-EXT
-A OUTPUT -o enp2s0 -j OUTPUT-MID
-A ĐẦU RA -o enp3s0.32 -j OUTPUT-V32
-A ĐẦU RA -o enp3s0.50 -j OUTPUT-V50
-A OUTPUT -j LOG --log-prefix "DROP EOC OUTPUT: " --log-tcp-options --log-ip-options
-A ĐẦU RA -j DROP
# ss -atn
State Recv-Q Send-Q Địa chỉ cục bộ:Cổng Địa chỉ ngang hàng:Cổng
NGHE 0 128 127.0.0.1:199 *:*
NGHE 0 128 *:22 *:*
SYN-RECV 0 0 192.168.32.1%if378475780:22 192.168.32.95:36778
NGHE 0 100 127.0.0.1:25 *:*
ESTAB 0 292 192.168.16.1:22 192.168.16.61:49618
# mèo /etc/sysconfig/network-scripts/ifcfg-enp3s0.32
THIẾT BỊ=enp3s0.32
LOẠI=Ethernet
BẬT = có
Vlan = có
KHỞI ĐỘNG=tĩnh
IPADDR=192.168.32.1
MẠNG=255.255.255.0
IPV6INIT=không
# mèo /etc/sysconfig/network-scripts/ifcfg-enp3s0
THIẾT BỊ=enp3s0
LOẠI=Ethernet
BẬT = có
KHỞI ĐỘNG=tĩnh
IPV6INIT=không
Đây là ba nỗ lực để ssh vào máy chủ này. Mỗi danh sách bên dưới là sau khi ssh trước đó đã thoát với Kết nối đã hết thời gian và sau khi SYN-RECV trước đó biến mất. Tôi đã xóa các dòng LISTEN và ESTAB ra khỏi đầu ra vì chúng về cơ bản giống với đầu ra trước đó. Ngoài ra, các
Các dòng SYN-RECV trống trong cột quy trình.
# ss -atnp
State Recv-Q Send-Q Địa chỉ cục bộ:Cổng Địa chỉ ngang hàng:Cổng
SYN-RECV 0 0 192.168.32.1%if-8096:22 192.168.32.95:47290
# ss -atnp
State Recv-Q Send-Q Địa chỉ cục bộ:Cổng Địa chỉ ngang hàng:Cổng
SYN-RECV 0 0 192.168.32.1%if378479604:22 192.168.32.95:47440
# ss -atnp
State Recv-Q Send-Q Địa chỉ cục bộ:Cổng Địa chỉ ngang hàng:Cổng
SYN-RECV 0 0 192.168.32.1%if378479648:22 192.168.32.95:47580
Một thử nghiệm khác, tôi đã thử bắt đầu nhiều kết nối ssh, cách nhau 1 giây:
cho x trong 1 2 3 4 5 6 7 8 9 10 ; làm ssh -n 192.168.32.1 ngày & ngủ 1; xong
và sau khi tất cả quá trình ssh đang chạy, đầu ra ss như bên dưới. Không có gói SYN-ACK nào được báo cáo bởi tcpdump. đầu ra ss giữ nguyên cho đến khi hết thời gian kết nối.
# ss -atn
State Recv-Q Send-Q Địa chỉ cục bộ:Cổng Địa chỉ ngang hàng:Cổng
SYN-RECV 0 0 192.168.32.1%if378480635:22 192.168.32.95:50492
SYN-RECV 0 0 192.168.32.1%if378480636:22 192.168.32.95:50502
SYN-RECV 0 0 192.168.32.1%if378480636:22 192.168.32.95:50498
SYN-RECV 0 0 192.168.32.1%if378480635:22 192.168.32.95:50494
SYN-RECV 0 0 192.168.32.1:22 192.168.32.95:50488
SYN-RECV 0 0 192.168.32.1%if378480634:22 192.168.32.95:50486
SYN-RECV 0 0 192.168.32.1%if378480634:22 192.168.32.95:50490
SYN-RECV 0 0 192.168.32.1:22 192.168.32.95:50504
SYN-RECV 0 0 192.168.32.1%if378480636:22 192.168.32.95:50496
SYN-RECV 0 0 192.168.32.1%if378480636:22 192.168.32.95:50500
Thiết lập hệ thống là cấu hình khá chuẩn. Trước khi thay đổi gần đây, giao diện enp3s0 là mạng 192.168.32.0/24. Những thay đổi thực sự duy nhất là các tệp ifcfg-enp3s0* trong sysconfig và cập nhật các quy tắc tường lửa. Hầu hết các máy chủ đã chuyển không thay đổi từ mạng con cũ sang vlan 32.