Я следовал этим инструкциям для установки общего интернет-соединения с iptables. А именно, я:
Добавленный сетевой интерфейс для моего второго NIC в/etc/network/interfaces как так:
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
Вводимый эти правила точно:
sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Сохраненный мои правила в файл и добавил его к/etc/rc.local
Включенная передача IP путем изменения значения/proc/sys/net/ipv4/ip_forward к 1
Непрокомментированный строка net.ipv4.ip_forward=1
в/etc/sysctl.conf
Перезапущенный
Теперь, когда я включаю свой ноутбук в интерфейс eth1, я получаю IP-адрес и могу проверить с помощью ping-запросов шлюз, но я ничего не могу достигнуть за пределами этого. т.е. я не могу проверить с помощью ping-запросов 8.8.8.8.
В случае, если это релевантно, мой другой интерфейс является соединением PPPoE. Это похоже на это:
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up
provider dsl-provider
auto eth0
iface eth0 inet manual
Я думал, возможно, что проблема состояла в том, что dnsmasq не присваивал серверы имен, таким образом, я добавил dns-nameservers 8.8.8.8 8.8.8.4
под обоими интерфейсами в/etc/network/interfaces. Это не помогло, таким образом, я пытался добавить серверы имен к/etc/resolv.conf. Никакая справка там. Наконец, я пытался добавить их к/etc/dnsmasq.conf:
no-resolv
server=8.8.8.8
server=8.8.4.4
Это не помогло также. Я не уверен однако, если моя проблема действительно имеет какое-либо отношение к серверам имен или если это - просто другой случай устаревшей, бесполезной документации.
Я смог получить эту работу с Администратором сети однажды, но мне не нравилось, как Администратор сети не позволял мне присвоить диапазон DHCP. Таким образом, я хотел бы постараться не возвращаться к этому.
Исправлено:
sudo iptables -A FORWARD -o ppp0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Еще раз спасибо g0rdon в #openwrt:)