Маршрутизация между двумя сетями в Linux
Топология моей системы:
На машине с Ubuntu с двумя портами Ethernet (eth0, eth1) я подключил другую машину с Ubuntu в качестве клиента и OCRCamera (также клиент).
требование состоит в том, чтобы основной компьютер с Ubuntu был DHCP-сервером и маршрутизатором, чтобы клиент Ubuntu и камера получали IP-адрес от основного компьютера с Ubuntu. Клиент Ubuntu и камера должны иметь возможность пинговать/ssh друг друга.
с помощью команд nmcli и файла конфигурации в «/etc/dnsmasq.d/X» я настроил как eth0, так и eth1 на основной машине Ubuntu в общем режиме:
Конфигурационный файл «/etc/dnsmasq.d/XXX»:
no-resolv
port=53
bogus-priv
strict-order
expand-hosts
domain=wombat.pixellot.com
# Set Listen address
listen-address=192.168.101.1
dhcp-range=set:group1,192.168.101.10,192.168.101.100,24h
dhcp-option=tag:group1,option:router,192.168.101.1
dhcp-option=tag:group1,option:dns-server,192.168.101.1
dhcp-option=tag:group1,option:netmask,255.255.255.0
listen-address=192.168.102.1
dhcp-range=set:group2,192.168.102.10,192.168.102.100,24h
dhcp-option=tag:group2,option:router,192.168.102.1
dhcp-option=tag:group2,option:dns-server,192.168.102.1
dhcp-option=tag:group2,option:netmask,255.255.255.0
команды nmcli:
sudo nmcli connection add type ethernet ifname eth0 ipv4.method shared con-name EthCon0
sudo nmcli connection add type ethernet ifname eth1 ipv4.method shared con-name EthCon1
sudo nmcli connection modify EthCon0 ipv4.addresses 169.254.101.1/24
sudo nmcli connection modify EthCon1 ipv4.addresses 169.254.101.2/24
sudo nmcli connection up EthCon0
sudo nmcli connection up EthCon1
Вот как выглядит ifconfig на основной машине с Ubuntu:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.101.1 netmask 255.255.255.0 broadcast 192.168.101.255
inet6 fe80::c706:5a57:f51d:a8b0 prefixlen 64 scopeid 0x20<link>
ether 48:b0:2d:3b:6d:0b txqueuelen 1000 (Ethernet)
RX packets 76802 bytes 6700303 (6.7 MB)
RX errors 0 dropped 8 overruns 0 frame 0
TX packets 73153 bytes 7426646 (7.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 37
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.102.1 netmask 255.255.255.0 broadcast 192.168.102.255
inet6 fe80::cf74:51de:1317:fe42 prefixlen 64 scopeid 0x20<link>
ether ae:aa:82:3c:08:6c txqueuelen 1000 (Ethernet)
RX packets 41 bytes 4289 (4.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 187 bytes 29743 (29.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Клиент Ubuntu и камера, подключенная к eth0 и eth1 соответственно, получили IP-адрес и доступен пинг:
pixellot@wombat:~$ sudo ping 192.168.101.98
PING 192.168.101.98 (192.168.101.98) 56(84) bytes of data.
64 bytes from 192.168.101.98: icmp_seq=1 ttl=64 time=0.581 ms
64 bytes from 192.168.101.98: icmp_seq=2 ttl=64 time=0.569 ms
pixellot@wombat:~$ sudo ping 192.168.102.32
PING 192.168.102.32 (192.168.102.32) 56(84) bytes of data.
64 bytes from 192.168.102.32: icmp_seq=1 ttl=64 time=0.451 ms
64 bytes from 192.168.102.32: icmp_seq=2 ttl=64 time=0.508 ms
но когда я пытаюсь выполнить пинг от клиента Ubuntu к камере, это не сработает:
yvesh@yvesh-XPS-15-9510:~$ ping 192.168.102.32
PING 192.168.102.32 (192.168.102.32) 56(84) bytes of data.
From 192.168.101.98 icmp_seq=1 Destination Host Unreachable
From 192.168.101.98 icmp_seq=2 Destination Host Unreachable
Как я могу заставить обоих клиентов общаться друг с другом? Есть ли какое-либо решение этой проблемы с маршрутизацией? (Не ssh-туннелирование) Я пробовал много вещей, но я очень застрял в этом и не могу развиваться дальше :-( Пожалуйста, помогите! <3