よろしくお願いします!
状況は次のとおりです。
1。 domain0には2つのNICがあります(LAN = enp1s0f0、WAN = enp1s0f1)
2。 domain0のvm0にはIP = 10.4.4.10があります
3。 ip_forward = 1ANDすべてのインターフェースforwarding = 1
4。 WAN(ISPからのdhcp)の事前ルーティング->インターフェイス<-10.4.4.10へのDNAT
5。 WANの事前ルーティング(ISPからのdhcp)-> IP <-DNAT to 10.4.4.10
問題は!LANです! domain.comへのHTTPトラフィックは、上記の(4)で失敗します。
そして!LAN! domain.comへのHTTPトラフィックは、上記の(5)で成功します。
次のことがあればいいでしょう:
$ {IPTABLES} -t nat -A PREROUTING $ {STATE_NEW_TCP} -p tcp -i $ {if_WAN} --dport 80 -j DNAT --to-destination $ {ip_VM0}:80 $ {IPTABLES} -t nat -A PREROUTING $ {STATE_NEW_UDP} -p udp -i $ {if_WAN} --dport 80 -j DNAT --to-destination $ {ip_VM0}:80
しかし、これは機能するだけです:
MY_IP = 22.22.222.22/24
$ {IPTABLES} -t nat -A PREROUTING $ {STATE_NEW_TCP} -p tcp -d $ {MY_IP} --dport 80 -j DNAT --to-destination $ {ip_VM0}:80 $ {IPTABLES} -t nat -A PREROUTING $ {STATE_NEW_UDP} -p udp -d $ {MY_IP} --dport 80 -j DNAT --to-destination $ {ip_VM0}:80
Q。 !LANトラフィックを取得する正しい方法は何ですか! domain.com(VM0でホストされているWebサイト)へ?
現在、iptablesは(ISPから割り当てられたdhcp)WANインターフェイスから仮想マシンへのDNAT転送をPREROUTINGしています。
助けていただければ幸いです。 :)
注:CentOS 7(1611)の使用
((RESULTS FILTERED))=質問に関連する情報のみを提供します。
Chain INPUT(policy DROP 2 packet、120 bytes)((RESULTS FILTERED)) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp --enp1s0f1 * 0.0 .0.0/0 0.0.0.0/0 state NEW tcp dpt:80 0 0 ACCEPT udp --enp1s0f1 * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:80 0 0 ACCEPT tcp- * * 0.0.0.0/010.4.4.10状態NEWtcp dpt:80 0 0 ACCEPT udp- * * 0.0.0.0/010.4.4.10状態NEWudp dpt:80 Chain FORWARD(policy DROP 0 packet、0 bytes)((RESULTS FILTERED)) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp- enp1s0f1 * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 0 0 ACCEPT udp --enp1s0f1 * 0.0.0.0/0 0.0.0.0/0状態NEWudp dpt:80 0 0 ACCEPT tcp- * * 0.0.0.0/010.4.4.10状態NEWtcp dpt:80 0 0 ACCEPT udp- * * 0.0.0.0/0 10.4.4.10 state NEW udp dpt:80 Chain PREROUTING(policy ACCEPT 7 packet、689 bytes)((RESULTS FILTERED)) pkts bytes target prot opt in out source destination 0 0 DNAT tcp --enp1s0f1 * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 to:10.4.4.10:80 0 0 DNAT udp --enp1s0f1 * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:80 to:10.4.4.10:80 1 60 DNAT tcp- * * 0.0.0.0/022.22.222.22状態NEW tcp dpt:80 to:10.4.4.10:80 0 0 DNAT udp- * * 0.0.0.0/022.22.222.22状態NEWudp dpt:80 to:10.4.4.10:80 [._ ___。] Chain POSTROUTING(policy ACCEPT 22181 packet、1435K bytes) pkts bytes target prot opt in out source destination 338K 73M MASQUERADE all- * enp1s0f1 10.2.2.0/24 0.0.0.0/ 0 16549 1086K MASQUERADE all- * enp1s0f1 10.4.4.0/24 0.0.0.0/0 domain0$ ip a((RESULTS FILTERED)) 2 :enp1s0f0:mtu 1500 qdisc mq state UP qlen 1000 link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff inet10.2。 2.1/24 brd10.2.2.255スコープグローバルenp1s0f0 valid_lft forever Preferred_lft forever 3:enp1s0f1:mtu 1500 qdisc mq state UP qlen 1000 link/ether XX:XX:XX: XX:XX:XX brd ff:ff:ff:ff:ff:ff inet 22.22.222.22/24 brd255.255.255.255スコープグローバルダイナミックenp1s0f1 valid_lft 87813sec Preferred_lft 87813sec 4:xenbr0:mtu 1500 qdisc noqueue state UP qlen 1000 link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff inet 10.4.4.1/24 brd 10.4.4.255 scope global xenbr0 valid_lft forever Preferred_lftforever 9:vm0-emu:mtu 1500 qdisc pfifo_fast master xenbr0 state UNKNOWN qlen 1000 link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff 10:vm0:mtu 1500 qdisc mq master xenbr0 state UP qlen 32 link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff domain0 $ brctl show bridge name bridge id STP有効なインターフェイス xenbr08000.feffffffffff no vm0 vm0-emu domain0 $ cat/proc/sys/net /ipv4/ip_forward 1 domain0$ cat/proc/sys/net/ipv4/conf/*/forwarding((RESULTS FILTERED)) 1 1 1 1 1 1 1 domain0 $ ls/proc/sys/net/ipv4/conf/-l((RESULTS FILTERED)) dr-xr-xr-x。 1ルートルート05月2日15:31すべて dr-xr-xr-x。 1ルートルート05月2日15:31デフォルト dr-xr-xr-x。 1ルートルート05月2日18:08vm0 dr-xr-xr-x。 1ルートルート05月2日18:08vm0-emu dr-xr-xr-x。 1ルートルート05月2日15:31enp1s0f0 dr-xr-xr-x。 1ルートルート05月2日15:31enp1s0f1 dr-xr-xr-x。 1ルートルート05月2日15:31xenbr0 domain0 $ uname -a((RESULTS FILTERED)) Linuxホスト名4.9.13-22.el7.x86_64#1 SMP Sun Feb 26 22:15:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux vm0 $ ip a 2:eth0:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 10.4.4.10/24 brd10.4.4.255スコープグローバルeth0
これは予想される動作です。
「-i $ {if_WAN}」は、「WAN」インターフェースのボックスに入るパケットにのみ一致します。 LANホストからのパケットはそのインターフェイスに入らないため、ルールに一致することはありません。
残念ながら、iptablesは「$ {if_WAN}のIPアドレス宛てのパケット」と一致するとは思わないため、iptablesルールにWAN IP)をハードコーディングする必要があります。