Điểm:2

Lưu lượng truy cập Vlan định tuyến trên máy chủ Linux không thể nhận hoặc tạo kết nối mạng

lá cờ bs

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.

A.B avatar
lá cờ cl
A.B
Bạn cũng có thể cung cấp các tuyến đường? `ip route; quy tắc ip`? Và cả các quy tắc iptables gửi đi (bộ lọc/OUTPUT, v.v.). Khi chạy `ss -atn | grep ^SYN` nhiều lần, có bất kỳ SYN-RECV nào ngay tại thời điểm xảy ra nhật ký không?
A.B avatar
lá cờ cl
A.B
1/ Đầu vào đang hoạt động, SYN-RECV có nghĩa là SYN đã được nhận, vấn đề là ở đầu ra 2/ Giao diện `if378475780` là gì, tại sao nó không xuất hiện trong đầu ra của `ip addr show`? Và tại sao nó sẽ được sử dụng ở tất cả? nó không được mô tả ở bất cứ đâu. Bạn có đang sử dụng cơ chế LD_PRELOAD trên sshd không? Tôi không nghĩ rằng nó có tùy chọn để liên kết với thiết bị (SO_BINDTODEVICE). Đó có phải là quá trình sshd giống nhau không? thử lại `ss` nhưng cũng thêm tùy chọn `-p`. Tất nhiên, hãy thêm tất cả thông tin hữu ích mà bạn dường như đã bỏ qua.
A.B avatar
lá cờ cl
A.B
Tôi rất ngạc nhiên với đầu ra của lệnh `ss` nhưng vì tôi không thể giải thích được... xin lỗi.
djdomi avatar
lá cờ za
tôi đọc trang này hàng ngày và hàng ngày tôi học được nhiều lệnh hơn cho bản thân mình.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.