Я работаю над одной Linux-машиной. Хочу что-то вроде этого.
сеть--->wlan0---->eth0-->другой сервер.
Интерфейсы wlan0 и eth0 находятся внутри одного и того же Linux-компьютера. Я использую dhcp, который назначает что-то вроде 192.168.3.21 моему интерфейсу wlan0. Я назначаю статический IP, скажем, 192.168.3.101 моему интерфейсу eth0 и 192.168.3.102 другому серверу. Теперь я хочу отправить ping из сети (192.168.3.XX) на другой сервер по адресу 192.168.3.102 и мой eth0 по адресу 192.168.3.101. Я не могу этого сделать.
Я даже не могу пропинговать свой другой сервер по адресу 192.168.3.102 со своего Linux-компьютера.
Я включил переадресацию IP с помощью команды «echo 1 > /proc/sys/net/ipv4/ip_forward».
Я также использовал следующую команду для включения NAT-переадресации.
iptables -A FORWARD -i wlan0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Я все еще не могу выполнить пинг.
Пожалуйста, дайте мне знать, что я упускаю. Любая помощь будет оценена по достоинству.
Вот вывод iptables-save:-
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*raw
:PREROUTING ACCEPT [481:39595]
:OUTPUT ACCEPT [325:24634]
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*nat
:PREROUTING ACCEPT [1:229]
:INPUT ACCEPT [1:229]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o wlan0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*mangle
:PREROUTING ACCEPT [482:39927]
:INPUT ACCEPT [474:38801]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [325:24634]
:POSTROUTING ACCEPT [325:24634]
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*filter
:INPUT ACCEPT [63:6229]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:76]
-A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
Вот мой вывод для ip route:-
по умолчанию через 192.168.0.1 dev wlan0 metric 10 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.190 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.235
решение1
Если вы хотите иметьмаршрутизаторс двумя интерфейсами они должны быть в разных подсетях (например, 192.168.0.0/24 отделен от 192.168.5.0/24). У вас здесь конфликт, видимый в вашем ip route
, это не будет работать.
Если вы хотите использовать одну и ту же подсеть на обоих интерфейсах, то это не маршрутизатор, а двухпортовый коммутатор, который обычно называютмост.
- Вы можете создать один мостовой интерфейс и назначить ему один IP-адрес, возможно, через DHCP.
- Wlan0 и eth0 следует оставить без IP-адресов, они станут прозрачными членами моста.
решение2
Чтобы соединить две разные сети, необходимо использовать мост, как показано ниже:
Создать интерфейс моста
brctl addbr br0
Добавить интерфейсы к мосту
brctl addif eth0
brctl addif wan0
Интерфейсы без IP.
ifconfig eth0 0.0.0.0 promisc up
ifconfig wan0 0.0.0.0 promisc up
Включить интерфейс моста
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255