เครือข่ายท้องถิ่นของฉันมีสองเครือข่ายย่อยที่เกี่ยวข้อง: 192.168.1.0/24
และ 192.168.72.0/24
. สิ่งเหล่านี้ถูกกำหนดผ่านเราเตอร์ของฉัน
มีเซิร์ฟเวอร์ท้องถิ่นทำงานอยู่ที่ 192.168.1.10
. เซิร์ฟเวอร์เรียกใช้ Home Assistant Supervisor (ซึ่งทำงานผ่าน Docker)
เซิร์ฟเวอร์ภายในจะต้องสามารถเชื่อมต่อกับโฮสต์ต่างๆ บน 192.168.72.0/24
เครือข่ายย่อย
สิ่งนี้ทำงานได้อย่างถูกต้องภายใต้สภาวะปกติ แต่หยุดทำงานเมื่อฉันแนะนำ นอร์ดวีพีเอ็น
ยูทิลิตี้ซึ่งกรองทราฟฟิกทั้งหมดผ่าน NordVPN
เมื่อไร นอร์ดวีพีเอ็น
กำลังทำงานและเชื่อมต่ออยู่ เซิร์ฟเวอร์ภายในเครื่องไม่สามารถส่งหรือรับจากโฮสต์บนซับเน็ตได้ 192.168.72.0/24
.
ฉันได้ลองวิ่งแล้ว รายการที่อนุญาตพิเศษของ Nordvpn เพิ่มเครือข่ายย่อย 192.168.72.0/24
(หรือคำสั่งเดียวกันกับ 192.168.0.0/16
) แต่ดูเหมือนจะไม่ช่วยอะไร
ตัวอย่างเช่น ส่ง Ping ไปยังที่อยู่ที่รู้จักบนเครือข่ายย่อยนั้น:
serv@serv:~$ ปิง 192.168.72.48
PING 192.168.72.48 (192.168.72.48) 56(84) ไบต์ของข้อมูล
จาก 10.8.0.1 icmp_seq=1 โฮสต์ปลายทางไม่สามารถเข้าถึงได้
ถ้าฉันวิ่ง ที่อยู่ IP
ฉันแสดงต่อไปนี้:
serv@serv:~$ ที่อยู่ไอพี
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
valid_lft ตลอดไป reserved_lft ตลอดไป
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ 00:23:24:a6:68:56 brd ff:ff:ff:ff:ff:ff
ชื่ออื่น enp0s25
inet 192.168.1.10/24 brd 192.168.1.255 ขอบเขต global dynamic noprefixroute eno1
valid_lft 82326วินาทีที่ต้องการ_lft 82326วินาที
3: นักเทียบท่า 0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ 02:42:2b:ff:27:b8 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 ขอบเขต global docker0
valid_lft ตลอดไป reserved_lft ตลอดไป
4: hassio: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue สถานะเริ่มต้นของกลุ่ม UP
ลิงค์/อีเธอร์ 02:42:7d:ba:7c:5b brd ff:ff:ff:ff:ff:ff
inet 172.35.32.1/23 brd 172.35.33.255 ขอบเขต global hassio
valid_lft ตลอดไป reserved_lft ตลอดไป
6: veth0fc757e@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ 16:00:e7:0d:c1:37 brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 0
9: vetha95aaa0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 สถานะเริ่มต้นของกลุ่ม UP
ลิงค์/อีเธอร์ 62:38:5f:f9:c3:f5 brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 1
11: vethcf2e4fa@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ 8e:4b:83:34:3a:d6 brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 1
13: veth6df409c@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue มาสเตอร์ hassio สถานะเริ่มต้นของกลุ่ม
ลิงค์/อีเธอร์ 8a:79:2e:f8:dd:8f brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 2
15: veth82e25ea@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ ae:eb:57:d3:d0:e0 brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 3
17: veth29b3afc@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ 66:4c:55:ca:b4:62 brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 4
19: veth3377d0e@if18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ e2:3d:8f:67:d9:57 brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 5
21: veth2c850be@if20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP กลุ่มเริ่มต้น
ลิงค์/อีเธอร์ 92:2b:6e:06:51:6d brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 6
23: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN กลุ่มเริ่มต้น qlen 500
ลิงค์/ไม่มี
inet 10.8.0.4/24 ขอบเขต global tun0
valid_lft ตลอดไป reserved_lft ตลอดไป
ฉันเชื่อว่า จูน0
อินเทอร์เฟซจัดทำโดย nordvpn ซับเน็ตตรงกับ IP ที่ฉันเห็นจากการพยายาม ping ที่ล้มเหลว
ความเข้าใจเกี่ยวกับระบบเครือข่ายของฉันมีจำกัดมาก ดังนั้นฉันจึงไม่สามารถสรุปได้ว่าเหตุใดแพ็กเก็ตของฉันจึงลงเอยด้วย 10.8.0.1
แทนที่จะส่งไปยังเราเตอร์ที่ 192.168.1.1
.
หากเป็นความช่วยเหลือใด ๆ นี่คือผลลัพธ์ของ เส้นทางไอพี
:
serv@serv:~$ เส้นทาง ip
0.0.0.0/1 ผ่าน 10.8.0.4 dev tun0
ค่าเริ่มต้นผ่าน 192.168.1.1 dev eno1 proto dhcp metric 100
1.0.0.1 ผ่าน 192.168.1.1 dev eno1
1.1.1.1 ผ่าน 192.168.1.1 dev eno1
10.8.0.0/24 dev tun0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.8.0.4
128.0.0.0/1 ผ่าน 10.8.0.4 dev tun0
172.17.0.0/16 dev docker0 proto kernel ขอบเขตลิงค์ src 172.17.0.1
172.35.32.0/23 dev hassio proto kernel ขอบเขตลิงค์ src 172.35.32.1
192.168.1.0/24 dev eno1 โปรโตเคอร์เนลขอบเขตลิงก์ src 192.168.1.10 เมตริก 100
213.232.87.204 ผ่าน 192.168.1.1 dev eno1
และ iptables -S
:
serv@serv:~$ sudo iptables -S
-P อินพุตยอมรับ
-P ไปข้างหน้าลดลง
-P เอาต์พุตยอมรับ
-N นักเทียบท่า
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N นักเทียบท่า-ผู้ใช้
-A อินพุต -s 1.1.1.1/32 -i eno1 -j ยอมรับ
-อินพุต -s 192.168.0.0/16 -i eno1 -j ยอมรับ
-A อินพุต -s 172.35.0.0/16 -i eno1 -j ยอมรับ
-A อินพุต -s 1.0.0.1/32 -i eno1 -j ยอมรับ
-A อินพุต -s 213.232.87.204/32 -i eno1 -j ยอมรับ
-A อินพุต -i eno1 -j DROP
-A ไปข้างหน้า -j นักเทียบท่า-ผู้ใช้
-A ส่งต่อ -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ไปข้างหน้า -o นักเทียบท่า 0 -j นักเทียบท่า
-A ไปข้างหน้า -i docker0 ! -o นักเทียบท่า 0 -j ยอมรับ
-A ไปข้างหน้า -i docker0 -o docker0 -j ยอมรับ
-A FORWARD -o hassio -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A FORWARD -o hassio -j นักเทียบท่า
-ไปข้างหน้า -ฉัน hassio ! -o hassio -j ยอมรับ
-A FORWARD -i hassio -o hassio -j ยอมรับ
-A OUTPUT -d 1.1.1.1/32 -o eno1 -j ยอมรับ
-A OUTPUT -d 192.168.0.0/16 -o eno1 -j ยอมรับ
-A OUTPUT -d 172.35.0.0/16 -o eno1 -j ยอมรับ
-A OUTPUT -d 1.0.0.1/32 -o eno1 -j ยอมรับ
-A OUTPUT -d 213.232.87.204/32 -o eno1 -j ยอมรับ
-A OUTPUT -o eno1 -j DROP
-นักเทียบท่า -d 172.35.32.6/32 ! -i hassio -o hassio -p tcp -m tcp --dport 80 -j ยอมรับ
-นักเทียบท่า -d 172.35.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 8884 -j ยอมรับ
-นักเทียบท่า -d 172.35.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 8883 -j ยอมรับ
-นักเทียบท่า -d 172.35.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1884 -j ยอมรับ
-นักเทียบท่า -d 172.35.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1883 -j ยอมรับ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i hassio ! -o hassio -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j ผลตอบแทน
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o hassio -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ผลตอบแทน
-A นักเทียบท่า-ผู้ใช้ -j ผลตอบแทน
ฉันจะแน่ใจได้อย่างไรว่าแพ็กเก็ตถูกส่งไปยัง 192.168.72.0/24
อย่างที่คาดไว้?