Hi, Julian, We have test and confirmed successful about your suggestion. Thanks very much. And I have submited a patch , please see https://www.mail-archive.com/netdev@xxxxxxxxxxxxxxx/msg196160.html Regards, Ye On Thu, Oct 26, 2017 at 3:01 AM, Julian Anastasov <ja@xxxxxx> wrote: > > Hello, > > On Wed, 25 Oct 2017, Ye Yin wrote: > >> Hi, all, >> >> We run ipvs at host and container in the same host at the same time, >> and ipvs at host will transport network traffic to ipvs in the >> container. Then some problem happended to us, the detail is as >> follows: >> >> >> ________________ _____________ >> | ___|___ |container1 | >> | host bridge |_vethA_|----|192.168.1.232 | >> |192.168.1.193/26 | |____________| >> | ___|___ _____________ >> | |_vethB_|----|container2 | >> |________________| |192.168.1.233 | >> |_____________| >> >> container1 and container2 connected each other by bridge on the host, >> which is the gateway of the two containers. Run ipvs on the host with >> VIP 172.17.169.208. >> >> host: >> $ ipvsadm -l -n >> IP Virtual Server version 1.2.1 (size=4096) >> Prot LocalAddress:Port Scheduler Flags >> -> RemoteAddress:Port Forward Weight ActiveConn InActConn >> TCP 172.17.169.208:80 rr >> -> 192.168.1.233:80 Masq 1 0 0 >> >> container2: >> $ ipvsadm -l -n >> IP Virtual Server version 1.2.1 (size=4096) >> Prot LocalAddress:Port Scheduler Flags >> -> RemoteAddress:Port Forward Weight ActiveConn InActConn >> TCP 192.168.1.233:80 rr >> -> 14.17.xx.yyy:80 Masq 0 0 0 >> >> telnet from container1 to container2: >> >> access by ipvs at host will failed: >> >> $ telnet 172.17.169.208 80 >> Trying 172.17.169.208... >> telnet: connect to address 172.17.169.208: Connection refused >> >> direct access ipvs in container will success: >> $ telnet 192.168.1.233 80 >> Trying 192.168.1.233... >> Connected to 192.168.1.233. >> Escape character is '^]'. >> ^] >> telnet quit >> Connection closed. >> >> >> I think it's the ipvs_property flag make ipvs in container return >> NF_ACCEPT for network traffic, which make traffic go up to tcp layer. >> Please see ip_vs_in. >> >> We should clear this flag when SKB's netns has changed, Any idea? > > Good idea. Are you able to test after adding such line to > net/core/skbuff.c:skb_scrub_packet()?: > > skb->ipvs_property = 0; > > Just after nf_reset_trace(skb); > > On success we should provide a patch instead that adds > some ipvs_property_reset(skb) func in include/linux/skbuff.h that > depends on the IS_ENABLED(CONFIG_IP_VS), just like it is done > for nf_reset(). > > Regards > > -- > Julian Anastasov <ja@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html