Ubuntu 16.04 を使用してプロキシ サーバーを準備しようとしています。私のサーバーには次の NIC があります。
enp4s0 Link encap:Ethernet HWaddr 00:15:c5:f6:c0:36
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:c5ff:fef6:c036/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5118 errors:0 dropped:0 overruns:0 frame:0
TX packets:3065 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7474529 (7.4 MB) TX bytes:254689 (254.6 KB)
Interrupt:16
enp6s0 Link encap:Ethernet HWaddr 00:08:54:31:8f:79
inet addr:172.24.3.19 Bcast:172.24.3.255 Mask:255.255.252.0
inet6 addr: fe80::208:54ff:fe31:8f79/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7573 errors:0 dropped:334 overruns:0 frame:0
TX packets:2756 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:756664 (756.6 KB) TX bytes:881724 (881.7 KB)
enp4s0 はインターネットに接続された WAN NIC です。enp6s0 は LAN NIC です。
以下のように設定しました/etc/network/interfaces
:
allow-hotplug enp4s0
iface enp4s0 inet dhcp
allow-hotplug enp6s0
iface enp6s0 inet static
address 172.24.3.19
netmask 255.255.252.0
gateway 172.24.0.1
dns-nameservers 172.24.3.1
enp4s0 は次のように IP を受信しました (抜粋) /var/lib/dhcp/dhclient.enp4s0.leases
:
lease {
interface "enp4s0";
fixed-address 192.168.0.101;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option dhcp-lease-time 7200;
option dhcp-message-type 5;
option domain-name-servers 192.168.0.1,8.8.8.8;
option dhcp-server-identifier 192.168.0.1;
renew 5 2018/06/08 16:03:17;
rebind 5 2018/06/08 16:59:19;
expire 5 2018/06/08 17:14:19;
}
続くナイラバイト次のようにいくつかの iptables ルールを適用しました。
iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
iptables -A FORWARD -i enp4s0 -o enp6s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i enp6s0 -o enp4s0 -j ACCEPT
したがって、iptables ルールは次のようになります。
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
しかし、理解できないのは、なぜ一度に 2 つの NIC のうち 1 つだけが正常に動作するのかということです。このサーバーは enp6s0 によって LAN と通信できますが、インターネットに接続できません。
そこで、このルートを適用します。
sudo /sbin/route add -net 0.0.0.0 gw 192.168.0.1 enp4s0
そして、状況は元に戻ってしまいました。これでサーバーはインターネットに接続できるようになりましたが、LAN にはアクセスできなくなりました。
私の最初の質問はゲートウェイを設定しようとするしかし、enp6s0 は LAN NIC であり、VLAN に接続されているため、不可能と思われます。より正確に言うと、この VLAN にはすでにゲートウェイ (172.24.0.1) があり、このサーバーを他のすべてのサブネット (172.24.0.1 だけでなく、他の 12 個のサブネットがあります。それらはすべて 172.24.0.0 ネットマスクにリンクされています) から見えるようにしたいのです。
そこで、ゲートウェイではなくプロキシを立ち上げることにしました。Squid をインストールしましたが、Squid の設定を完了する前に接続を確立する必要があります。私のネットワーク スキームは次の図のようになります。 何が間違っているのでしょうか?