ฉันใช้ DO เพื่อโฮสต์เซิร์ฟเวอร์ที่ใช้งานจริง ขณะนี้ฉันกำลังสร้าง DR env และมีปัญหาเกี่ยวกับการส่งต่อทราฟฟิก ฉันใช้การกำหนดค่าประเภทเดียวกันจาก Production env และใช้งานได้ดี (ฉันพยายามโคลน VM เปลี่ยน IP และมีปัญหาเหมือนกับการติดตั้งใหม่)
เซิร์ฟเวอร์ได้รับแพ็คเก็ตบน eth1 แต่ไม่ส่งออก (ตามที่ควรจะเป็นบน eth0 ตามนโยบาย IPsec)
ข้อมูลเซิร์ฟเวอร์ DR-VPN อยู่ด้านล่าง (โปรดทราบว่าข้อมูลได้รับการฆ่าเชื้อแล้ว)
user@vpn-DR:~# ไอพี
eth0: 20.99.90.5/20
eth1: 10.10.0.2/20
user@vpn-DR:~# สถานะ ipsec
สมาคมความปลอดภัย (1 ขึ้น 0 เชื่อมต่อ):
vpn-to-DR[1]: ก่อตั้งเมื่อ 46 นาทีที่แล้ว 20.99.90.5[20.99.90.5]...x1.xx3.x.xx4[x1.xx3.x.xx4]
vpn-to-env{1}: ติดตั้ง, TUNNEL, reqid 1, ESP SPI: c0ac5230_i 0b8674b3_o
vpn-to-env{1}: 10.10.0.3/32 === x1.xx3.x.x9/32
นี่คือการตั้งค่า iptable
ser@vpn-DR:~# iptables-บันทึก
*กรอง
: ยอมรับอินพุต [3881983:1293276786]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [3858285:672322166]
-A FORWARD -s 10.10.0.0/16 -d x1.xx3.x.x9/32 -i นโยบาย eth0 -m --dir in --pol ipsec --proto esp -j ACCEPT
-A FORWARD -s x1.xx3.x.x9/32 -d 10.10.0.0/16 -o นโยบาย eth0 -m --dir out --pol ipsec --proto esp -j ACCEPT
-A FORWARD -s 10.10.0.0/16 -i eth1 -j ยอมรับ
-A FORWARD -d 10.10.0.0/16 -o eth1 -m state --state RELATED,ESTABLISHED -j ยอมรับ
ให้สัญญา
*แนท
: ยอมรับ [1266750:71807552]
: ยอมรับอินพุต [1259384:71241122]
: ยอมรับเอาต์พุต [38114:4106963]
: ยอมรับภายหลัง [38115:4107047]
-A POSTROUTING -m นโยบาย --dir ออก --pol ipsec -j ยอมรับ
-A Postrouting -s 10.10.0.0/16 ! -d 10.10.0.0/16 -p tcp -j MASQUERADE --to-พอร์ต 1024-65535
-A Postrouting -s 10.10.0.0/16 ! -d 10.10.0.0/16 -p udp -j MASQUERADE --to-พอร์ต 1024-65535
-A Postrouting -s 10.10.0.0/16 ! -d 10.10.0.0/16 -p tcp -j สวมหน้ากาก
-A โพสต์ -s 10.10.0.0/16 -o eth1 -j MASQUERADE
ฉันได้กำหนดค่าให้ทำการส่งต่อ
sudo sysctl -a | grep net.ipv4.conf.*.forwarding
net.ipv4.conf.all.bc_forwarding = 0
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.bc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.eth0.bc_forwarding = 0
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth1.bc_forwarding = 0
net.ipv4.conf.eth1.forwarding = 1
net.ipv4.conf.eth1.mc_forwarding = 0
net.ipv4.conf.lo.bc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
ข้อมูลเพิ่มเติมโดยการติดตามบน IPtables
########## การผลิต
[6814683.211912] TRACE: raw:PREROUTING:policy:2 IN=eth1 OUT= MAC=52:68:7d SRC=10.13.0.4 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=30853 DF PROTO=ประเภท ICMP=8 รหัส=0 ID=19134 SEQ=1
[6814683.211979] TRACE: nat:PREROUTING:policy:1 IN=eth1 OUT= MAC=52:68:7d SRC=10.13.0.4 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=30853 DF PROTO=ประเภท ICMP=8 รหัส=0 ID=19134 SEQ=1
[6814683.212037] TRACE: filter:FORWARD:rule:3 IN=eth1 OUT=eth0 MAC=52:68: SRC=10.13.0.4 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=30853 DF PROTO=ประเภท ICMP=8 รหัส=0 ID=19134 SEQ=1
[6814683.212053] TRACE: nat:POSTROUTING:rule:1 IN= OUT=eth0 SRC=10.132.0.4 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=30853 DF PROTO=ICMP TYPE=8 รหัส=0 ID=19134 SEQ=1
root@VPN_PROD:~# iptables -L -t nat --line-numbers -n
ห่วงโซ่ PREROUTING (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
เชนอินพุท (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
Chain OUTPUT (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
ห่วงโซ่โพสต์ (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
1 ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ตรงกับนโยบาย dir out pol ipsec
2 MASQUERADE tcp -- 10.13.0.0/16 !10.13.0.0/16 พอร์ต masq: 1024-65535
3 MASQUERADE udp -- 10.13.0.0/16 !10.13.0.0/16 พอร์ต masq: 1024-65535
4 สวมหน้ากาก tcp -- 10.13.0.0/16 !10.13.0.0/16
5 สวมหน้ากาก ทั้งหมด -- 10.13.0.0/16 0.0.0.0/0
root@VPN_PROD:~# iptables -L -t filter --line-numbers -n
เชนอินพุท (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
ส่งต่อไปข้างหน้า (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
1 ยอมรับทั้งหมด -- 10.13.0.0/16 x1.xx3.0.0/16 ตรงกับนโยบาย dir ใน pol ipsec proto 50
2 ยอมรับทั้งหมด -- x1.xx3.0.0/16 10.13.0.0/16 ตรงกับนโยบาย dir out pol ipsec proto 50
3 ยอมรับทั้งหมด -- 10.13.0.0/16 0.0.0.0/0
4 ยอมรับทั้งหมด -- 0.0.0.0/0 10.13.0.0/16 สถานะที่เกี่ยวข้อง จัดตั้งขึ้น
Chain OUTPUT (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
รูท@VPN_PROD:~#
และร่องรอยจากดร
########ดร
[ 3152.620125] TRACE: raw:PREROUTING:policy:2 IN=eth1 OUT= MAC=c2:62:51: SRC=10.10.0.3 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL= 64 ID=31401 DF PROTO=ICMP TYPE=8 รหัส=0 ID=71 SEQ=1
[ 3152.620202] TRACE: nat:PREROUTING:policy:1 IN=eth1 OUT= MAC=c2:62:51: SRC=10.10.0.3 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL= 64 ID=31401 DF PROTO=ICMP TYPE=8 รหัส=0 ID=71 SEQ=1
[ 3152.620265] TRACE: filter:FORWARD:policy:1 IN=eth1 OUT=eth0 MAC=c2:6251: SRC=10.10.0.3 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=31401 DF PROTO=ประเภท ICMP=8 รหัส=0 ID=71 SEQ=1
[ 3152.620283] TRACE: nat:POSTROUTING:rule:1 IN= OUT=eth0 SRC=10.108.0.3 DST=x1.xx3.x.x9 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=31401 DF PROTO=ICMP ประเภท=8 รหัส=0 ID=71 SEQ=1
root@vpn-DR:~# iptables -L -t nat --line-numbers -n
ห่วงโซ่ PREROUTING (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
เชนอินพุท (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
Chain OUTPUT (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
ห่วงโซ่โพสต์ (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
1 ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ตรงกับนโยบาย dir out pol ipsec
2 MASQUERADE tcp -- 10.10.0.0/20 !10.10.0.0/20 พอร์ต masq: 1024-65535
3 MASQUERADE udp -- 10.10.0.0/20 !10.10.0.0/20 พอร์ต masq: 1024-65535
4 สวมหน้ากาก ทั้งหมด -- 10.10.0.0/20 0.0.0.0/0
root@vpn-DR:~# iptables -L -t filter --line-numbers -n
เชนอินพุท (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
ส่งต่อไปข้างหน้า (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
1 ยอมรับทั้งหมด -- 10.10.0.0/20 x1.xx3.0.0/16 ตรงกับนโยบาย dir ใน pol ipsec proto 50
2 ยอมรับทั้งหมด -- x1.xx3.0.0/16 10.10.0.0/20 ตรงกับนโยบาย dir out pol ipsec proto 50
3 ยอมรับทั้งหมด -- 10.10.0.0/20 0.0.0.0/0
4 ยอมรับทั้งหมด -- 0.0.0.0/0 10.10.0.0/20 สถานะที่เกี่ยวข้อง จัดตั้งขึ้น
Chain OUTPUT (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง