lkml.org 
[lkml]   [2017]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 066/178] netfilter: ipvs: Fix inappropriate output of procfs
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: KUWAZAWA Takuya <albatross0@gmail.com>


    [ Upstream commit c5504f724c86ee925e7ffb80aa342cfd57959b13 ]

    Information about ipvs in different network namespace can be seen via procfs.

    How to reproduce:

    # ip netns add ns01
    # ip netns add ns02
    # ip netns exec ns01 ip a add dev lo 127.0.0.1/8
    # ip netns exec ns02 ip a add dev lo 127.0.0.1/8
    # ip netns exec ns01 ipvsadm -A -t 10.1.1.1:80
    # ip netns exec ns02 ipvsadm -A -t 10.1.1.2:80

    The ipvsadm displays information about its own network namespace only.

    # ip netns exec ns01 ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 10.1.1.1:80 wlc

    # ip netns exec ns02 ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 10.1.1.2:80 wlc

    But I can see information about other network namespace via procfs.

    # ip netns exec ns01 cat /proc/net/ip_vs
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 0A010101:0050 wlc
    TCP 0A010102:0050 wlc

    # ip netns exec ns02 cat /proc/net/ip_vs
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 0A010102:0050 wlc

    Signed-off-by: KUWAZAWA Takuya <albatross0@gmail.com>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/netfilter/ipvs/ip_vs_ctl.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/net/netfilter/ipvs/ip_vs_ctl.c
    +++ b/net/netfilter/ipvs/ip_vs_ctl.c
    @@ -2034,12 +2034,16 @@ static int ip_vs_info_seq_show(struct se
    seq_puts(seq,
    " -> RemoteAddress:Port Forward Weight ActiveConn InActConn\n");
    } else {
    + struct net *net = seq_file_net(seq);
    + struct netns_ipvs *ipvs = net_ipvs(net);
    const struct ip_vs_service *svc = v;
    const struct ip_vs_iter *iter = seq->private;
    const struct ip_vs_dest *dest;
    struct ip_vs_scheduler *sched = rcu_dereference(svc->scheduler);
    char *sched_name = sched ? sched->name : "none";

    + if (svc->ipvs != ipvs)
    + return 0;
    if (iter->table == ip_vs_svc_table) {
    #ifdef CONFIG_IP_VS_IPV6
    if (svc->af == AF_INET6)

    \
     
     \ /
      Last update: 2017-12-18 17:14    [W:4.322 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site