web-dev-qa-db-ja.com

DHCP /ゲートウェイサーバー経由でローカルネットワークへのインターネットアクセスを許可するにはどうすればよいですか?

私は今、認知的過負荷と森の中で失われた可愛い人の間のどこかに自分自身を見つけると思います。したがって、誰かが私を助けてくれることを願っています! :)

ホームローカルネットワークにUbuntu 12.04サーバーをセットアップします。これは、 チュートリアル での一般的な考え方のように見えるDHCP /ゲートウェイのセットアップです。ボックスには2つのネットワークカードがあります。インターネット接続は、ブリッジADSLルーターを介したPPPOE経由です。 Eth0はサーバーのインターネットへの接続であり、eth1はLANへのインターフェースです。

サーバーがインターネットにアクセスする(URLとIPが機能する)という非常に一般的な問題に苦しんでいるようです。LAN上のクライアントはサーバーの両方のネットワークインターフェイスにpingできますが、URLまたはIPにはpingできません。インターネットにアクセスできません。

したがって、サーバーの詳細に基づいてさらに下に私の要求:私のサーバーを介してローカルネットワークへのインターネットアクセスを与えることができますか?または、セットアップで見逃した小さなセミコロンエラーは何ですか? :P

1。/etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8 192.168.1.1
        dns-search crowdControl.com
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
auto eth1
iface eth1 inet static
        address 172.22.22.1
        network 172.22.22.0
        netmask 255.255.255.0

2。 /etc/rc.local

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth1 -j ACCEPT
exit 0

3。 /etc/dhcp/dhcp.conf

ddns-update-style none;
option domain-name "crowdControl.com";
option domain-name-servers 8.8.8.8, 192.168.1.1;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 172.22.22.0 netmask 255.255.255.0 {
  range 172.22.22.21 172.22.22.250;
  option routers 172.22.22.1;
  option domain-name-servers 8.8.8.8, 192.168.1.1, 196.220.59.188;
}

4。ルート-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
172.22.22.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

5。「watch -n 1 -d iptables -nvL」は、インターネット上で何かをpingしようとすると、FORWARD CHAINのパケットアクティビティを表示しますローカルマシン。

6。ローカルネットワーク上のマシンから8.8.8.8にpingを実行すると、次の結果になります:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=3 Destination Net Unreachable
From 192.168.1.1 icmp_seq=4 Destination Net Unreachable
From 192.168.1.1 icmp_seq=5 Destination Net Unreachable
From 192.168.1.1 icmp_seq=7 Destination Net Unreachable
etc...

PS:私は多くの似たようなQ&Aに出くわしましたが、ソリューションを試しても設定を機能させることができません。私が見つけたいくつかの例:

3
ddtpoison777

転送が有効になっていることを確認してください:

sysctl -n net.ipv4.ip_forward 

これにより、「1」が得られます。そうでない場合は、net.ipv4.ip_forward = 1/etc/sysctl.confを設定してパケット転送を有効にします。次のように入力して、新しい設定を適用します。

sysctl -p 

これにより、固定アドレスを実際に使用せずに、マシン上でDHCPサーバーまたはクライアントを実行できます。

1
far4d

net.ipv4.ip_forwardに関するfar4dのアドバイスに従う必要があります...ただし、net.ipv4.ip_dynaddrについても同じことを行う必要があります。

編集するように言ったsamreファイル(/etc/sysctl.conf)に移動し、単にnet.ipv4.ip_forward = 1を挿入する代わりに、以下を挿入します。

net.ipv4.ip_forward = 1
net.ipv4.ip_dynaddrn = 1  

その後、sysctl -pを推奨どおりに実行します。

1
Victor