これらの手順 に従って、iptablesとの共有インターネット接続をセットアップしました。具体的には、I:
/ etc/network/interfacesの2番目のNICにネットワークインターフェースを追加しました。
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に追加しました
/ proc/sys/net/ipv4/ip_forwardの値を1に変更してIP転送を有効にしました
/etc/sysctl.confのnet.ipv4.ip_forward=1
行のコメントを外しました
再起動しました
今、ラップトップをeth1インターフェイスに接続すると、IPアドレスを取得してゲートウェイにpingを実行できますが、それ以外のものには到達できません。つまり、8.8.8.8をpingできません。
関連する場合、他のインターフェイスは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がネームサーバーを割り当てていなかったためだと思ったので、/ etc/network/interfacesの両方のインターフェースにdns-nameservers 8.8.8.8 8.8.8.4
を追加しました。それは役に立たなかったので、ネームサーバーを/etc/resolv.confに追加してみました。そこに助けはありません。最後に、それらを/etc/dnsmasq.confに追加してみました:
no-resolv
server=8.8.8.8
server=8.8.4.4
これも助けにはなりませんでした。しかし、私の問題が本当にネームサーバーと関係があるのか、それとも単に古くて価値のないドキュメントの別のケースなのかはわかりません。
ある時点でNetwork Managerでこれを機能させることができましたが、Network Managerで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
#openwrtのg0rdonに再び感謝します:)