Tôi đã cố gắng tìm ra điều này trong một thời gian khá lâu. Vì vậy, tôi đang thử vận may của mình ở đây ngay bây giờ ...
Tôi có một số máy ảo nên giao tiếp với các máy ảo không phải. Có 2 trường hợp sử dụng.
Đầu tiên là các Máy BareMetal trên mạng con mà bộ định tuyến bên ngoài đang đặt. Thứ hai là các máy bên ngoài và phía sau cổng được trỏ đến bởi bộ định tuyến bên ngoài.
Vì vậy, chúng tôi có hai đường dẫn kết nối:
VM -> cổng bộ định tuyến bên ngoài -> cổng internet -> cổng ở một nơi khác -> máy khác trên mạng con này
VM -> cổng bộ định tuyến bên ngoài -> cổng internet -> máy baremetal trên mạng con này
Vì vậy, để làm cho nó trực quan hơn: Bộ định tuyến bên ngoài sẽ có cổng của nó, chẳng hạn như 10.5.1.10 và Máy chủ cần tiếp cận đang ở 10.5.1.80.
Vì vậy, mọi thứ vẫn ổn cho đến bây giờ, các gói đang chảy, nhưng không phải tất cả chúng. Và ở đây nó trở nên kỳ lạ và tôi đang tìm kiếm lý do.
Vì vậy, các máy ảo này chạy kubernetes và sẽ kết nối với các máy baremetal khác trên mạng con đó. Mạng đang chạy là calico, vì vậy các gói BGP đang được chuyển.Điều kỳ lạ là, những gói đó không bao giờ đến được các máy baremetal, nhưng chúng chỉ hoạt động tốt với các máy bên ngoài mạng con của bộ định tuyến bên ngoài. Vì vậy, tôi đã xem xét dữ liệu và nhận thấy, các gói đã biến mất trên trình ảo hóa của máy ảo. Chúng vẫn hiển thị trên thiết bị nhấn nhưng sau đó chúng sẽ bị mất.
Vì vậy, rõ ràng là có thứ gì đó đang lọc các gói tin đó ra. Câu hỏi còn lại bây giờ là: Tại sao? Tôi có một số cấu hình sai, tôi có hiểu sai điều gì không? Hoặc có cách nào để làm cho toàn bộ thiết lập nuốt các gói đó không? Tôi đã có vấn đề này btw. cũng với các gói vxlan flannel ... .
Nói chung, thiết lập của tôi là: openstack qua kolla, openvswitch, mạng bên ngoài được thiết lập dưới dạng mạng phẳng.
Tôi đã kiểm tra các quy tắc iptable, nhưng không có quy tắc nào cho mạng con. Và như đã mô tả trước đó, các gói được định tuyến không phải đến mạng 10.5.0.0/16, mà là mạng 10.50.0.0/16 chẳng hạn nằm ngoài trung tâm dữ liệu này và openvswitch/openstack không xác định. Vì vậy, điều này phải liên quan đến mạng bên ngoài được định cấu hình trên 10.5.0.0/16, mạng này đang loại bỏ các gói đó một cách bất hợp pháp.
Một số thông tin thêm:
Đây là giao diện của VM được hiển thị bởi ovs-vctl.
Cổng qvo503122c8-15
thẻ: 1
Giao diện qvo503122c8-15
Đặt tcpdump trên đó
tcpdump -i qvo503122c8-15 -vvv | grep bgp
tcpdump: lắng nghe trên qvo503122c8-15, loại liên kết EN10MB (Ethernet), kích thước chụp 262144 byte
Kết quả trong hoàn toàn không có gì. Nhưng giao tiếp nói chung là có thể nhìn thấy ở đó. Nhìn vào thiết bị chính, chúng vẫn ở đó
tcpdump -i qbr503122c8-15 -vvv | grep bgp
tcpdump: lắng nghe trên qbr503122c8-15, loại liên kết EN10MB (Ethernet), kích thước chụp 262144 byte
10.5.3.44.53969 > 10.15.0.91.bgp: Flags [S], cksum 0x17b7 (sai -> 0x0748), seq 607368, win 64860, tùy chọn [mss 1410,sackOK,TS val 2138674293 ecr 0,nop,wscale 7] , chiều dài 0
10.5.3.44.41505 > 10.15.0.92.bgp: Flags [S], cksum 0x17b8 (sai -> 0x572f), seq 103292561, win 64860, tùy chọn [mss 1410,sackOK,TS val 2567404423 ecr 0,nop,wscale 7] , chiều dài 0
10.5.3.44.53969 > 10.15.0.91.bgp: Flags [S], cksum 0x17b7 (sai -> 0xff67), seq 607368, win 64860, tùy chọn [mss 1410,sackOK,TS val 2138676309 ecr 0,nop,wscale 7] , chiều dài 0
10.5.3.44.49645 > 10.15.0.91.bgp: Flags [S], cksum 0x17b7 (sai -> 0xb20c), seq 137205467, win 64860, tùy chọn [mss 1410,sackOK,TS val 2138677277 ecr 0,nop,wscale 7] , chiều dài 0
10.5.3.44.49787 > 10.15.0.92.bgp: Flags [S], cksum 0x17b8 (sai -> 0x9dee), seq 608997803, win 64860, tùy chọn [mss 1410,sackOK,TS val 2567406383 ecr 0,nop,wscale 7] , chiều dài 0
Để so sánh, cùng một máy, VM khác, cũng có cùng một vấn đề và các gói đó biến mất, nhưng trong trường hợp này có một số máy bên ngoài cùng một trung tâm dữ liệu. Và những thứ đó đạt được tốt trên mạng con của họ. Các gói đăng nhập ở đây sẽ không biến mất:
tcpdump -i qbr2d9b68d1-b7: -vvv | grep bgp
tcpdump: lắng nghe trên qbr2d9b68d1-b7:, loại liên kết EN10MB (Ethernet), kích thước chụp 262144 byte
192.168.1.3.58395 > 10.5.0.177.bgp: Flags [P.], cksum 0x0961 (đúng), seq 2080765188:2080765207, ack 2634444892, win 505, tùy chọn [nop,nop,TS val 38716747869 ecr length,16 21939 ecr : BGP
10.5.0.177.bgp > 192.168.1.3.58395: Flags [.], cksum 0xcc82 (sai -> 0x44c4), seq 1, ack 19, win 502, tùy chọn [nop,nop,TS val 2568187609 ecr 3871674789], độ dài 0
Tuy nhiên, một điều tôi có thể thấy bây giờ: tcpdump thứ hai cho thấy VM giao tiếp với bên ngoài thông qua địa chỉ của chính nó. Trong khi những người khác cố gắng liên lạc với ip nổi. Các gói ip trôi nổi dường như đã được lọc ra.