Hy vọng đây là đúng nơi - Ban đầu tôi đã đăng trên Kỹ thuật mạng nhưng nó đã bị đóng và tôi được chỉ đến Lỗi máy chủ.
Tôi hiện đang cố gắng thiết lập cầu nối L2 giữa hai trang web bằng VXLAN để cung cấp kết nối L2 và Wireguard dưới dạng vận chuyển/L3. Trước đây tôi đã thực hiện một cây cầu Lớp 2 như thế này bằng cách sử dụng GRE qua Wireguard và nó rất chắc chắn, nhưng hiện tại tôi đang cố gắng hiểu rõ hơn về VXLAN và đang tìm cách thay thế đường hầm GRE bằng VXLAN.
Tôi đã cố gắng tận dụng cả thông tin đây và đây nhưng đối với cuộc sống của tôi, tôi không thể có lưu lượng truy cập vượt qua các IP không có dây bảo vệ giữa các trang web.
Tôi có hai máy Debian được cài đặt bridge-utils. Họ cũng đang chạy nftables với các quy tắc để loại bỏ tất cả lưu lượng DHCP vì khi tôi thiết lập đường hầm GRE lần đầu tiên, tôi đã kết thúc với việc các máy nhận IP được chỉ định từ mạng từ xa. Nhưng mọi thứ khác được thiết lập để cho phép và nó chỉ hiển thị bên ngoài thông qua cổng Wireguard
Máy chủ A được thiết lập với:
Bảo vệ dây wg0 - 172.30.100.1/24
Cầu br0 - 10.0.0.160/24
Máy chủ B được thiết lập với:
Bảo vệ dây wg0 - 172.30.100.2/24
Cầu br0 - 10.1.0.160/24
Các IP được phép
trên cấu hình Wireguard chỉ dành cho mạng con Wireguard 172.30.100.0/24
. Điều này đã hoạt động với cấu hình GRE và tôi cho rằng nó cũng sẽ hoạt động với VXLAN, vì lưu lượng VXLAN được gói gọn trong đường hầm Wireguard.
Các máy chủ có thể ping và ssh lẫn nhau trên IP Wireguard của họ, vì vậy bit đó hoạt động tốt.
Cả hai cây cầu đều có cổng vi18
, cầu-vlan-nhận biết có
và cầu-vids 1-4096
Trong /etc/mạng/giao diện
Tôi có một tập lệnh dựa trên 'Công thức 2' từ liên kết đầu tiên tôi đã đăng ở trên, tức là một đường hầm có nhiều VNI. Ý tưởng là script thêm giao diện VXLAN vx0
đến anh trai
, đợi đến sau wg0
đang hoạt động (sử dụng dịch vụ systemd), sau đó lặp lại để thực hiện ánh xạ VLAN/VNI.
#!/bin/bash
# Nhận địa chỉ IP của giao diện Wireguard.
wgip=`ip a s wg0 | egrep -o 'inet [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3 }' | cắt -d' ' -f2`
liên kết ip thêm vx0 gõ vxlan dstport 4789 bên ngoài cục bộ $wgip dev wg0 # Tạo vxlan với wg0 IP làm cục bộ
#Đây là chỗ tôi có thể sai nhưng tôi đã thử nhiều cách kết hợp khác nhau ^^^
ngủ 1
ip link set dev vx0 master br0 # Thêm vxlan vào bridge
liên kết cầu đặt dev vx0 vlan_tunnel trên # Cho phép đường hầm vlan trên vxlan
# Ánh xạ từng VLAN sang VNI qua đường hầm.
cho vlan trong 10 20 30; làm
cầu vlan thêm vid $vlan dev vx0
cầu nối vlan thêm vid $vlan dev ens18
cầu vlan thêm dev vx0 vid $vlan tunnel_info id $vlan
# Bạn nghĩ rằng tôi có thể xóa dòng dưới đây nếu tôi chuyển sang BGP-EVPN để tìm hiểu sau?
cầu nối thêm fdb 00:00:00:00:00:00 dev vx0 vni $vlan dst 10.1.0.160
xong
đặt liên kết ip dev vx0 lên
Tôi có thể hoàn toàn đi sai hướng ở đây, nhưng nếu có bất kỳ điều gì sai lệch ở trên, bất kỳ hướng dẫn nào đi đúng hướng sẽ được đánh giá rất cao!
(Nó thậm chí có thể chỉ là định tuyến chứ không phải cấu hình. Cấu hình Wireguard được đặt thành Table=off mà tôi đã làm trong cấu hình GRE/WG)
CẬP NHẬT
Hình như bên ngoài
cờ trong vx0
setup line đang gây drama.
Nếu tôi thay đổi nó thành bên dưới, đồng thời thay đổi mục FDB tĩnh thành điều khiển từ xa wg0
IP thay vì điều khiển từ xa vi18
IP, tôi có thể ping máy chủ đến máy chủ:
liên kết ip add vx0 type vxlan dstport 4789 vni 1000 local $wgip dev wg0
Sau đó, có vẻ như lưu lượng truy cập không được gắn thẻ đi qua VNI 1000 và các VID 10, 20 và 30 được ánh xạ tới các VNI tương ứng của chúng.
những gì làm bên ngoài
làm điều đó sẽ ngăn cấu hình ban đầu hoạt động? Có phải do thiếu ánh xạ rõ ràng của VID 1?