編集:2つのマシン設定があり、マシンAにはインターネット接続のみがあり、マシンBのens192インターフェースはマシンAのインターフェースens192に直接接続されています。
したがって、マシンAにもiptablesを設定して、マシンBにも接続があることを確認してください。 IP アドレスに対する ping は機能しますが、ドメイン名に対する ping は失敗します。各システムのネットワーク構成の詳細を以下に示します。
機械A:
ネットワーク構成:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:11:8a:1a brd ff:ff:ff:ff:ff:ff
inet 20.1.1.27/24 brd 20.1.1.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::88f2:48b:daef:7b0d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:1a:4b:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.67/24 brd 192.168.43.127 scope global noprefixroute ens224
valid_lft forever preferred_lft forever
inet6 fe80::65cb:5a44:210b:1ef3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
インターネット接続用にプライベートネットワークインターフェイス(ens192)のパケットが別のインターフェイス(ens224)に到達できるようにiptables NATを設定しました。以下は使用される構成です。
iptables --table nat --flush
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface ens224 -j MASQUERADE
iptables --append FORWARD --in-interface ens192 -j ACCEPT
機械B:
マシンAでNATルールを設定した後、マシンBで8.8.8.8またはすべてのIPアドレスをpingできますが、ホスト名を解決することはできません。
[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=1.78 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=56 time=1.90 ms
[root@localhost ~]# ping google.com
ping: google.com: Name or service not known
ネットワーク構成:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:11:23:3a brd ff:ff:ff:ff:ff:ff
inet 20.1.1.201/24 brd 20.1.1.255 scope global noprefixroute dynamic ens192
valid_lft 15108sec preferred_lft 15108sec
inet6 fe80::250:56ff:fe11:233a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
IPルーティング:
[root@localhost ~]# ip route
default via 20.1.1.27 dev ens192 proto dhcp metric 100
20.1.1.0/24 dev ens192 proto kernel scope link src 20.1.1.201 metric 100
構成ファイルの解析
[root@localhost ~]# more /etc/resolv.conf
# Generated by NetworkManager
nameserver 9.9.9.9
nameserver 20.1.1.27
この問題をどのように解決しますか?
答え1
IP接続マシンBうまくいくようです。
DNSサーバーをテストして機能していることを確認しますresolf.conf
。
fping 9.9.9.9
fping 20.1.1.27
DNSがデータを返すことを確認してください。
nslookup google.com 9.9.9.9
nslookup google.com 20.1.1.27
nslookup google.com 8.8.8.8
host google.com 8.8.8.8
また確認iptables:
/sbin/iptables -t nat -A POSTROUTING -o ens224 -j MASQUERADE
/sbin/iptables -A FORWARD -i ens224 -o ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i ens192 -o ens224 -j ACCEPT