Интранет в Интернет через хост, имеющий 2 сетевых интерфейса, с использованием беспроводного

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.

Если кто-нибудь знает, что может быть не так, я буду обязан.

Before Desired after

0
задан 10 December 2016 в 17:48
1 ответ

Вы должны включить NAT в Host_A, указав ему маршрутизировать пакеты через wlan0, это должно помочь:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
1
ответ дан 4 December 2019 в 16:24

Теги

Похожие вопросы