古いSOHOルーターを使用していますwl500gP(v1ですがそれは重要ではないと思います)オレクファームウェア。私のトポロジーは次のとおりです。
192.168.3.3 192.168.3.2 NAT 192.168.2.1 192.168.2.170 (DHCP)
PC1<--------------------------->(WAN)wl500gP(LAN)<-------------------------------->PC2
Webインターフェースによると、ルーターでNATを有効にしました(以下はいくつかの出力です。カスタムファームウェアを使用すると、ルーターはLinuxボックスであるため、これを確認できます)。
これで、PC1からルーターのLANインターフェイスにアクセスできますが、PC1ではPC2にアクセスできないことがわかりました。外部から内部ネットワークにアクセスすること(その一部でも)が正常なNAT動作であるかどうかはわかりません。変換されたアドレスはすべてNATの後に隠されていませんか?私が知っている限り、まだ仮想サーバー、ポートフォワーディング、DMZなどは設定していません。私の実験は次のとおりです。
# PC1:
└──> ping 192.168.2.1
connect: Network is unreachable
└──> sudo route add -net 192.168.2.0 netmask 255.255.255.0 dev eth0
└──> ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_req=1 ttl=64 time=0.873 ms
64 bytes from 192.168.2.1: icmp_req=2 ttl=64 time=0.405 ms
64 bytes from 192.168.2.1: icmp_req=3 ttl=64 time=0.415 ms
64 bytes from 192.168.2.1: icmp_req=4 ttl=64 time=0.399 ms
^C
--- 192.168.2.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.399/0.523/0.873/0.202 ms
└──> ping 192.168.2.170
PING 192.168.2.170 (192.168.2.170) 56(84) bytes of data.
From 192.168.3.3 icmp_seq=1 Destination Host Unreachable
From 192.168.3.3 icmp_seq=2 Destination Host Unreachable
From 192.168.3.3 icmp_seq=3 Destination Host Unreachable
From 192.168.3.3 icmp_seq=4 Destination Host Unreachable
From 192.168.3.3 icmp_seq=5 Destination Host Unreachable
From 192.168.3.3 icmp_seq=6 Destination Host Unreachable
# PC2:
# Both pings to 192.168.3.2 and 192.168.3.3 are working. Also simple communication with 192.168.3.3 using netcat is possible.
これは私のルーターの最も重要な出力の静かで複雑なリストでもあります。これは主にデフォルトです(IPアドレスと他のいくつかの点を変更しましたが、NAT、ルーティング、ブリッジング、転送などに関する問題が原因で上記のNAT動作が発生しないことを願っています)。説明しIP Tables
てIP Tables NAT
部分を説明したらとても感謝します。dnsmasq
デーモンが実行されているのを見ると、NAT DNSが有効になっているようです。
wl500gP:
Interfaces
##########
br0 Link encap:Ethernet HWaddr 00:1B:FC:6B:81:02
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:77202 (75.3 KiB)
eth0 Link encap:Ethernet HWaddr 00:1B:FC:6B:81:02
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2561 errors:0 dropped:0 overruns:0 frame:0
TX packets:3101 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:264691 (258.4 KiB) TX bytes:2594967 (2.4 MiB)
Interrupt:4 Base address:0x1000
eth1 Link encap:Ethernet HWaddr 00:1B:FC:6B:81:02
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:14
TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:78826 (76.9 KiB)
Interrupt:12 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
vlan0 Link encap:Ethernet HWaddr 00:1B:FC:6B:81:02
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:78014 (76.1 KiB)
vlan1 Link encap:Ethernet HWaddr 00:1B:FC:6B:81:02
inet addr:192.168.3.2 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2561 errors:0 dropped:0 overruns:0 frame:0
TX packets:2898 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:218593 (213.4 KiB) TX bytes:2516953 (2.3 MiB)
Routing Table
#############
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.3 0.0.0.0 255.255.255.255 UH 0 0 0 vlan1
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.3.3 0.0.0.0 UG 0 0 0 vlan1
IP Tables
#########
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
2366 197K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
170 63047 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 flags:0x17/0x02
188 11280 ACCEPT tcp -- * * 0.0.0.0/0 192.168.2.1 tcp dpt:80
4 336 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:33434:33534
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT
0 0 DROP all -- * br0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 3069 packets, 2528K bytes)
pkts bytes target prot opt in out source destination
Chain BRUTE (0 references)
pkts bytes target prot opt in out source destination
Chain MACS (0 references)
pkts bytes target prot opt in out source destination
Chain SECURITY (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 1/sec burst 5
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain logaccept (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `ACCEPT '
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
IP Tables NAT
#############
Chain PREROUTING (policy ACCEPT 4 packets, 336 bytes)
pkts bytes target prot opt in out source destination
189 11340 VSERVER all -- * * 0.0.0.0/0 192.168.3.2
Chain POSTROUTING (policy ACCEPT 13 packets, 4303 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * vlan1 !192.168.3.2 0.0.0.0/0
0 0 MASQUERADE all -- * br0 192.168.2.0/24 192.168.2.0/24
Chain OUTPUT (policy ACCEPT 13 packets, 4303 bytes)
pkts bytes target prot opt in out source destination
Chain VSERVER (1 references)
pkts bytes target prot opt in out source destination
189 11340 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 to:192.168.2.1:80
Process List
############
PID USER VSZ STAT COMMAND
1 admin 1484 S /sbin/init
2 admin 0 SW [keventd]
3 admin 0 SWN [ksoftirqd_CPU0]
4 admin 0 SW [kswapd]
5 admin 0 SW [bdflush]
6 admin 0 SW [kupdated]
7 admin 0 SW [mtdblockd]
54 admin 1484 S syslogd -m 0 -O /tmp/syslog.log -S -D -l 7 -b 1
58 admin 1480 S klogd
59 admin 1480 S telnetd
64 admin 1120 S httpd vlan1
70 nobody 852 S dnsmasq
73 admin 964 S lld2d br0 eth1
74 admin 0 SW [khubd]
83 admin 656 S p9100d -f /dev/usb/lp0 0
85 admin 1480 S rcamdmain
99 admin 1480 S watchdog
101 admin 1040 S upnp -D -L br0 -W vlan1
150 admin 1484 S sh -c /tmp/../usr/sbin/sysinfo > /tmp/sysinfo.htm
151 admin 1480 S /bin/sh /tmp/../usr/sbin/sysinfo
167 admin 1480 R ps
brctl show
##########
bridge name bridge id STP enabled interfaces
br0 8000.001bfc6b8102 no vlan0
eth1
答え1
これは正常な現象であり、NATとは何の関係もありません。デフォルトでは、LinuxはIPアドレスを次のものとして扱います。機械1. 特定のインターフェイスをターゲティングしません。したがって、LANインターフェイスだけでなく、すべてのインターフェイスで192.168.2.1のパケットに応答します。
つまり、NATはいいえファイアウォールを意味し、その逆も同様です。たとえば、内部ホスト 192.168.0.2–254 をパブリック IP XYZ2–254 にマッピングし、XYZ253 に向かうすべてのトラフィックを 192.168.0.253 に転送できます。それでもNATです。
サブネット全体を単一の外部 IP アドレスにマッピングすると、接続が本質的に出るだけに制限されるファイアウォールと同様の動作が発生するという副作用があります。ただし、そのような場合でも、ファイアウォールルールは依然としてこれらのパケットをブロックする必要があります。 NATコードは意図しないポートをマッピングするように欺くことができますが、ファイアウォールはそうすることはできません。そしてもっと柔軟になりました。 (あなたのISPが破損した場合、あなたの個人的なLANアドレスにトラフィックを送ることができ、あなたのコンピュータはそれを喜んで転送します。)
PS:NATルールを表示するには、iptables -t nat -L
ルーター/ファイアウォールを介して何が転送されるのかを確認するには、チェーンではFORWARD
なくINPUT
チェーンを確認する必要があります。
脚注
1 またはより正確には、コンピュータの特定のネットワーク名前空間です。一部の仮想サーバー技術を使用しない限り、おそらく1つしかありません。そしてファイルはこの動作を設定しますarp_ignore
。arp_announce
/proc/net/ipv4/conf/*/
答え2
いくつかの注意点があります。
- Iptables NATは接続ベースです。一般的に言えば(NATヘルパーを持つftpなどのプロトコルにはいくつかの複雑な問題があります)、接続の最初のパケットだけがNATテーブルを通過し、残りの接続に対して何をするかを決定します。
- NATはファイアウォールを意味せず、その逆も同様です。 NATルールのみを設定すると、すべての内部ホストにpingを送信できます。
- パケットが実際に転送されると、FORWARDチェーンを介してのみ流れます。宛先がローカルコンピュータのアドレスである場合は、INPUTチェーンに移動します。
INPUT チェーンのルールはすべての ICMP パケットを受け入れるため、ルータの「内部 IP」への ping が成功します。
一方、内部ネットワーク内のデバイスへのpingは、ファイアウォールルールに従って削除される転送チェーンを通過します。