パケットをルーティングするためにcentOS6.4をセットアップする方法について困惑しています。
|ローカルネットワーク| -eth0- | CentOS6.4ボックス| -eth1- |インターネット|
CentOSボックスでは、dhcpサーバーが実行されています。現在、192.168.3.0/24でIPアドレスを配布していますが、DNSも正しく機能していないと思います。一日中相互にpingできる2つのボックス192.168.3.5と192.168.3.6がありますが、nslookupraid_arrayは機能しません。これが私のセットアップです。
すべての192.168.3.0/24トラフィックをeth0経由で転送したい。インターネットに向かうトラフィックは、eth1を介して172.16.0.72になりすます必要があります。 DNSはこれにどこに適合しますか?
/ etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=ETHERNET
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.3.1
NETMASK=255.255.255.0
/ etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
TYPE=ETHERNET
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=192.16.0.72
GATEWAY=172.16.0.1
/ etc/sysconfig/network
NETWORKING=yes
GATEWAY=192.168.3.1
NOZEROCONF=true
ルート-n
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth1
iptables
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
また、これを/etc/sysctl.conf
に追加する必要があります。
net.ipv4.ip_forward = 1
次に実行します:
sysctl -p /etc/sysctl.conf
Red Hatのデフォルトの動作は、パケットを転送することではなく、エンドポイントになることです。
また、ボックスを通過するトラフィックを受け入れたいと思うでしょう(またはルーターとしてはうまく機能しません)
iptables -A FORWARD -i eth1 -j ACCEPT
また、トラフィックのルーティング後のマスカレードルールを追加することもできます。
ところで、ifcfg-eth1
ファイルでデバイス名をeth1
に変更してください。そうしないと、問題が発生する可能性があります。
DNSはドメイン名<=> IPアドレスを提供するためにあります。192.168.3.Xネットワーク内にサーバーがある場合は、独自のDNSサーバーが必要になる場合があります。そのため、IPアドレスを覚えておく必要はありませんが、覚えておく必要があります。これらのマシンを静的IPで構成するか、DHCPを設定して常に同じIPを割り当てます。ただし、内部DNSが必要ない場合は、ISPが提供するDNSまたはGoogle(8.8.8.8)を使用してください。