1. 23 7月, 2010 4 次提交
    • E
      netfilter: add xt_cpu match · e8648a1f
      Eric Dumazet 提交于
      In some situations a CPU match permits a better spreading of
      connections, or select targets only for a given cpu.
      
      With Remote Packet Steering or multiqueue NIC and appropriate IRQ
      affinities, we can distribute trafic on available cpus, per session.
      (all RX packets for a given flow is handled by a given cpu)
      
      Some legacy applications being not SMP friendly, one way to scale a
      server is to run multiple copies of them.
      
      Instead of randomly choosing an instance, we can use the cpu number as a
      key so that softirq handler for a whole instance is running on a single
      cpu, maximizing cache effects in TCP/UDP stacks.
      
      Using NAT for example, a four ways machine might run four copies of
      server application, using a separate listening port for each instance,
      but still presenting an unique external port :
      
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 \
              -j REDIRECT --to-port 8080
      
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 1 \
              -j REDIRECT --to-port 8081
      
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 2 \
              -j REDIRECT --to-port 8082
      
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 3 \
              -j REDIRECT --to-port 8083
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      e8648a1f
    • H
      IPVS: make FTP work with full NAT support · 7f1c4075
      Hannes Eder 提交于
      Use nf_conntrack/nf_nat code to do the packet mangling and the TCP
      sequence adjusting.  The function 'ip_vs_skb_replace' is now dead
      code, so it is removed.
      
      To SNAT FTP, use something like:
      
      % iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.100.30/32 \
          --vport 21 -j SNAT --to-source 192.168.10.10
      and for the data connections in passive mode:
      
      % iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.100.30/32 \
          --vportctl 21 -j SNAT --to-source 192.168.10.10
      using '-m state --state RELATED' would also works.
      
      Make sure the kernel modules ip_vs_ftp, nf_conntrack_ftp, and
      nf_nat_ftp are loaded.
      
      [ up-port and minor fixes by Simon Horman <horms@verge.net.au> ]
      Signed-off-by: NHannes Eder <heder@google.com>
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      7f1c4075
    • H
      IPVS: make friends with nf_conntrack · 7b215ffc
      Hannes Eder 提交于
      Update the nf_conntrack tuple in reply direction, as we will see
      traffic from the real server (RIP) to the client (CIP).  Once this is
      done we can use netfilters SNAT in POSTROUTING, especially with
      xt_ipvs, to do source NAT, e.g.:
      
      % iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.100.30/32 --vport 80 \
      		  -j SNAT --to-source 192.168.10.10
      
      [ minor fixes by Simon Horman <horms@verge.net.au> ]
      Signed-off-by: NHannes Eder <heder@google.com>
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      7b215ffc
    • H
      netfilter: xt_ipvs (netfilter matcher for IPVS) · 9c3e1c39
      Hannes Eder 提交于
      This implements the kernel-space side of the netfilter matcher xt_ipvs.
      
      [ minor fixes by Simon Horman <horms@verge.net.au> ]
      Signed-off-by: NHannes Eder <heder@google.com>
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      [ Patrick: added xt_ipvs.h to Kbuild ]
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      9c3e1c39
  2. 15 7月, 2010 2 次提交
    • M
      netfilter: add CHECKSUM target · edf0e1fb
      Michael S. Tsirkin 提交于
      This adds a `CHECKSUM' target, which can be used in the iptables mangle
      table.
      
      You can use this target to compute and fill in the checksum in
      a packet that lacks a checksum.  This is particularly useful,
      if you need to work around old applications such as dhcp clients,
      that do not work well with checksum offloads, but don't want to
      disable checksum offload in your device.
      
      The problem happens in the field with virtualized applications.
      For reference, see Red Hat bz 605555, as well as
      http://www.spinics.net/lists/kvm/msg37660.html
      
      Typical expected use (helps old dhclient binary running in a VM):
      iptables -A POSTROUTING -t mangle -p udp --dport bootpc \
      	-j CHECKSUM --checksum-fill
      
      Includes fixes by Jan Engelhardt <jengelh@medozas.de>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      edf0e1fb
    • P
      netfilter: nf_ct_tcp: fix flow recovery with TCP window tracking enabled · fac42a9a
      Pablo Neira Ayuso 提交于
      This patch adds the missing bits to support the recovery of TCP flows
      without disabling window tracking (aka be_liberal). To ensure a
      successful recovery, we have to inject the window scale factor via
      ctnetlink.
      
      This patch has been tested with a development snapshot of conntrackd
      and the new clause `TCPWindowTracking' that allows to perform strict
      TCP window tracking recovery across fail-overs.
      
      With this patch, we don't update the receiver's window until it's not
      initiated. We require this to perform a successful recovery. Jozsef
      confirmed in a private email that this spotted a real issue since that
      should not happen.
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      Acked-by: NJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      fac42a9a
  3. 09 7月, 2010 2 次提交
  4. 05 7月, 2010 5 次提交
  5. 02 7月, 2010 1 次提交
  6. 01 7月, 2010 10 次提交
  7. 30 6月, 2010 3 次提交
  8. 29 6月, 2010 8 次提交
  9. 28 6月, 2010 2 次提交
  10. 27 6月, 2010 2 次提交
  11. 26 6月, 2010 1 次提交