Преамбула
Це питання може розглядатися як подальше посилання
Налаштування
- Система: Вбудована система Linux із запуском ядра з підтримкою netfilter та iptables.
- Кількість інтерфейсів: 2
- eth0: Підключено до NAT, який має доступ до Інтернету.
- wlan0: Режим AP, налаштований на статичний IP (192.168.10.1), до якого клієнти можуть підключитися
Об'єктивна
Забезпечити доступ до Інтернету (через eth0) для бездротових клієнтів, що підключаються до AP (через wlan0).
Конфігурація IP та вихід маршруту
wlan0
inet addr:192.168.10.1
Bcast:192.168.10.255
Mask:255.255.255.0
eth0:
inet addr:10.102.8.93
Bcast:10.102.11.255
Mask:255.255.252.0
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.102.8.1 0.0.0.0 UG 0 0 0 eth0
10.102.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Спробувані кроки (за допомогою сценарію, посиланого на посилання )
EXTIF="eth0"
INTIF="wlan0"
echo " External Interface: $EXTIF"
echo " Internal Interface: $INTIF"
echo " Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " Clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
echo " FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
#$IPTABLES -A FORWARD -j LOG
echo " Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
Спостереження
З допомогою вищезазначених кроків я можу пінг-вузол, підключений до мережі, 10.102.X.X
від будь-якого з бездротових клієнтів, підключених до AP (через wlan0, який знаходиться в 192.168.X.X
діапазоні), але бездротові клієнти не мають підключення до Інтернету.
Питання
Щодо питання про відсутність Інтернету, я здогадуюсь, що система пересилає пакети, що дістаються до wlan0, з адресою призначення в діапазоні 10.102.X.X
до eth0, але вона не пересилає пакети, що дістаються до wlan0 з адресою призначення, будь-яку іншу, ніж 10.102.X.X
до eth0. Будь ласка, дайте нам знати ваші міркування, якщо я повинен додати якесь інше правило, щоб досягти цього.
eth0