โทโพโลยีระบบของฉัน:
บนเครื่องอูบุนตูที่มีพอร์ตอีเธอร์เน็ต 2 พอร์ต (eth0, eth1) ฉันได้เชื่อมต่อเครื่องอูบุนตูอีกเครื่องเป็นไคลเอ็นต์และ OCRCamera (เช่นไคลเอ็นต์ด้วย)
ข้อกำหนดคือเครื่องอูบุนตูหลักจะเป็นเซิร์ฟเวอร์และเราเตอร์ DHCP ดังนั้นไคลเอนต์อูบุนตูและกล้องจะได้รับที่อยู่ IP จากเครื่องอูบุนตูหลัก
ไคลเอนต์ Ubuntu และกล้องต้องสามารถ ping/ssh กันได้
ด้วยคำสั่ง nmcli และไฟล์กำหนดค่าใน "/etc/dnsmasq.d/X" ฉันได้กำหนดค่าทั้ง eth0 และ eth1 บนเครื่อง Ubuntu หลักในโหมดแชร์:
ไฟล์กำหนดค่า "/etc/dnsmasq.d/XXX":
ไม่มีการแก้ไข
พอร์ต = 53
ปลอม-priv
คำสั่งที่เข้มงวด
ขยายโฮสต์
โดเมน=wombat.pixellot.com
# ตั้งฟังที่อยู่
ฟังที่อยู่ = 192.168.101.1
dhcp-range=set:group1,192.168.101.10,192.168.101.100,24ชม.
dhcp-option=แท็ก:group1,ตัวเลือก:เราเตอร์,192.168.101.1
dhcp-option=tag:group1,option:dns-server,192.168.101.1
dhcp-option=แท็ก:group1,ตัวเลือก:netmask,255.255.255.0
ฟังที่อยู่ = 192.168.102.1
dhcp-range=ชุด:group2,192.168.102.10,192.168.102.100,24ชม.
dhcp-option=แท็ก:group2,ตัวเลือก:เราเตอร์,192.168.102.1
dhcp-option=tag:group2,option:dns-server,192.168.102.1
dhcp-option=แท็ก:group2,ตัวเลือก:netmask,255.255.255.0
คำสั่ง nmcli:
การเชื่อมต่อ sudo nmcli เพิ่มประเภทอีเธอร์เน็ต ifname eth0 ipv4.method แชร์ con-name EthCon0
การเชื่อมต่อ sudo nmcli เพิ่มประเภทอีเธอร์เน็ต ifname eth1 ipv4.method แชร์ con-name EthCon1
การเชื่อมต่อ sudo nmcli แก้ไข EthCon0 ipv4.addresses 169.254.101.1/24
การเชื่อมต่อ sudo nmcli แก้ไข EthCon1 ipv4.addresses 169.254.101.2/24
การเชื่อมต่อ sudo nmcli ขึ้น EthCon0
การเชื่อมต่อ sudo nmcli ขึ้น EthCon1
นี่คือลักษณะของ ifconfig บนเครื่อง Ubuntu หลัก:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.101.1 netmask 255.255.255.0 ออกอากาศ 192.168.101.255
inet6 fe80::c706:5a57:f51d:a8b0 คำนำหน้า 64 scopeid 0x20<link>
อีเธอร์ 48:b0:2d:3b:6d:0b txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 76802 ไบต์ 6700303 (6.7 MB)
ข้อผิดพลาด RX 0 ลดลง 8 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 73153 ไบต์ 7426646 (7.4 MB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
อุปกรณ์ขัดจังหวะ 37
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.102.1 netmask 255.255.255.0 ออกอากาศ 192.168.102.255
inet6 fe80::cf74:51de:1317:fe42 คำนำหน้า 64 scopeid 0x20<ลิงค์>
อีเธอร์ ae:aa:82:3c:08:6c txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 41 ไบต์ 4289 (4.2 KB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 187 ไบต์ 29743 (29.7 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
ไคลเอนต์ ubuntu และกล้องที่เชื่อมต่อกับ eth0 และ eth1 ตามลำดับ ได้รับที่อยู่ IP และการส่ง Ping พร้อมใช้งาน:
pixellot@wombat:~$ sudo ปิง 192.168.101.98
PING 192.168.101.98 (192.168.101.98) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 192.168.101.98: icmp_seq=1 ttl=64 เวลา=0.581 ms
64 ไบต์จาก 192.168.101.98: icmp_seq=2 ttl=64 เวลา=0.569 ms
pixellot@wombat:~$ sudo ปิง 192.168.102.32
PING 192.168.102.32 (192.168.102.32) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 192.168.102.32: icmp_seq=1 ttl=64 เวลา=0.451 ms
64 ไบต์จาก 192.168.102.32: icmp_seq=2 ttl=64 เวลา=0.508 ms
แต่เมื่อฉันพยายาม ping จากไคลเอนต์ Ubuntu ไปยังกล้อง มันจะไม่ทำงาน:
yvesh@yvesh-XPS-15-9510:~$ ปิง 192.168.102.32
PING 192.168.102.32 (192.168.102.32) 56(84) ไบต์ของข้อมูล
จาก 192.168.101.98 icmp_seq=1 ไม่สามารถเข้าถึงโฮสต์ปลายทางได้
จาก 192.168.101.98 icmp_seq=2 ไม่สามารถเข้าถึงโฮสต์ปลายทางได้
ฉันจะทำให้ลูกค้าทั้งสองสื่อสารกันได้อย่างไร
มีวิธีแก้ปัญหาการกำหนดเส้นทางสำหรับปัญหานี้หรือไม่? (ไม่ใช่ ssh-tunneling)
ฉันได้ลองหลายสิ่งหลายอย่าง แต่ฉันติดอยู่ที่แย่มากและไม่พัฒนาต่อไป :-(
กรุณาช่วย! <3