Host_A
eth0: 192.168.1.3
wlan0: 192.168.43.84
Оба интерфейса имеют доступ в Интернет. eth0 через маршрутизатор DSL 192.168.1.1 и wlan0 через точку доступа android, 192.168.43.1. Шлюз по умолчанию - 192.168.1.1, но я могу легко переключить его на другой, используя следующие команды как root:
ip route delete default
ip route add default via 192.168.43.1
После этого Host_A успешно использует точку доступа Android к Интернету.
Host_B
eth0: 192.168.1.14
Это идет в Интернет через маршрутизатор DSL 192.168.1.1. Я хочу, чтобы он проходил через точку беспроводного доступа, что по сути означает, что он должен проходить через 192.168.1.3. С этой целью я сделал следующее
ip route delete default
ip route add default via 192.168.1.3
Также я включил пересылку пакетов в Host_A, используя:
sysctl -w net.ipv4.ip_forward=1
После этого cat / proc / sys / net / ipv4 / ip_forward возвращает 1
Дело в том, что Host_B не может попасть в Интернет. Я хотел бы, чтобы Host_B имел подключение к Интернету через интерфейс Host_A wlan0. Брандмауэры отключены на обоих хостах, и я убежден, что мне не придется связываться с iptables, чтобы добиться этого. Оба хоста - Debian. Host_A и Host_B находятся в одной физической сети с использованием интерфейса коммутации маршрутизатора DSL.
Если кто-нибудь знает, что может быть не так, я буду обязан.
Вы должны включить NAT в Host_A, указав ему маршрутизировать пакеты через wlan0, это должно помочь:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE