私は3台のマシンを持っています:
- LANカードがあるサーバー1台、インターネットに直接接続する必要はありません
- インターネット用のWiFi接続と1つのLANポートを持つ1つのWindowsホスト
- Windowsホストには1つのLinux仮想マシンがあります。
[インターネットレスサーバー]---[Linux_VM]---[Windows_host]
- server_none_internet:eth0 -> 192.168.1.1
- Linux_VM_WiFi_NAT: wlan0 -> 10.0.2.15
- Linux_VM_LAN_bridge_card: eth0 -> 192.168.1.254
- Windows_LAN: 192.168.1.2
- Windows_WiFi: 172.16.1.1/10.0.2.1(NAT Linux ~ 10.0.2.15)
[Server_without_Internet]にアクセスするためにiptables転送を使用したいと思います。
路線:
- Server_without_internet, Linux_VM_LAN_bridge_card, Windows_LAN: 192.168.1.0/24 (192.168.1.254経由)
- Linux_VM_WiFi_NAT: 0.0.0.0~10.0.2.1(172.16.1.1)
IPv4転送を有効にします。
sysctl -w net.ipv4.ip_forward=1
次のようにLinux_VMにiptablesを設定しました。
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0-o wlan0 -j ACCEPT
フラット:
- ピングトップ:192.168.1.1〜1.2
- ping成功:192.168.1.1〜1.254
- ピングトップ:192.168.1.2〜1.1
- ping成功:192.168.1.2〜1.254
- ピングトップ:192.168.1.254から1.1
- ピングトップ:192.168.1.254から1.2
- ピングトップ:10.0.2.15〜8.8.8.8
- ping成功:172.16.1.1 / 10.0.2.1〜8.8.8.8
- ガオフ:192.168.1.1〜8.8.8.8
[Linux_VM]経由で[Server_without_server]からインターネットにアクセスしようとする通知
Linux_VMでtcpdumpを確認するとき:
- tcpdump -i eth0 -vvnn: 8.8.8.8 のエコー要求が表示されます。
- tcpdump -i wlan0 -vvnn: 8.8.8.8 のエコー要求が表示されますが、エコー応答はありません。
したがって、iptablesを使用してwlan0に渡すeth0は機能しますが、何も返しません。
誰にもアイデアがありますか?
ありがとう
編集する
conntrack iptables cliとIPパブリックicmpテストタスクを追加しました。
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
これでDNSリゾルバーは機能しません。 server/etc/resolv.confにはGoogle DNSとOpenDNS DNSがあります。
アイデア?
ありがとう