MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "arvcontinue": "20160713200526|51",
        "continue": "-||"
    },
    "query": {
        "allrevisions": [
            {
                "pageid": 1,
                "revisions": [
                    {
                        "revid": 1,
                        "parentid": 0,
                        "user": "MediaWiki default",
                        "anon": "",
                        "timestamp": "2016-07-13T17:20:28Z",
                        "comment": ""
                    },
                    {
                        "revid": 2,
                        "parentid": 1,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:27:43Z",
                        "comment": "initial page"
                    },
                    {
                        "revid": 47,
                        "parentid": 2,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T18:16:38Z",
                        "comment": "/* Videos */"
                    },
                    {
                        "revid": 48,
                        "parentid": 47,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T18:18:03Z",
                        "comment": "/* Advanced data structures for performance packet classification */"
                    }
                ],
                "ns": 0,
                "title": "Main Page"
            },
            {
                "pageid": 2,
                "revisions": [
                    {
                        "revid": 3,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:31:39Z",
                        "comment": "initial page"
                    }
                ],
                "ns": 0,
                "title": "What is nftables?"
            },
            {
                "pageid": 3,
                "revisions": [
                    {
                        "revid": 4,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:33:50Z",
                        "comment": "Created page with \"We like iptables after all, this tool has been serving us (and will likely keep serving still for a while in many deployments) to filter out traffic on both per-packet and per...\""
                    },
                    {
                        "revid": 5,
                        "parentid": 4,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:34:17Z",
                        "comment": ""
                    }
                ],
                "ns": 0,
                "title": "Why nftables?"
            },
            {
                "pageid": 4,
                "revisions": [
                    {
                        "revid": 6,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:36:16Z",
                        "comment": "Created page with \"Find below some basic concepts to know before using nftables.  '''table''' refers to a container of [[Configuring chains|chains]] with no specific semantics.  '''chain''' with...\""
                    }
                ],
                "ns": 0,
                "title": "Quick reference-nftables in 10 minutes"
            },
            {
                "pageid": 5,
                "revisions": [
                    {
                        "revid": 7,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:36:51Z",
                        "comment": "Created page with \"In this section, you can find frequently asked questions that has been posted on the [http://www.netfilter.org/mailinglists.html Netfilter mailing list].  == Question 1: Addre...\""
                    }
                ],
                "ns": 0,
                "title": "Troubleshooting"
            },
            {
                "pageid": 6,
                "revisions": [
                    {
                        "revid": 8,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:37:26Z",
                        "comment": "Created page with \"Most major Linux distributions have support for nftables: * they include a kernel with nf_tables support * they include userspace support  Normally, you can get nftables worki...\""
                    }
                ],
                "ns": 0,
                "title": "Nftables from distributions"
            },
            {
                "pageid": 7,
                "revisions": [
                    {
                        "revid": 9,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:37:54Z",
                        "comment": "Created page with \"nftables requires several userspace libraries, the 'nft' userspace command line utility and the kernel modules.  If you are using a major linux distribution, you may consider...\""
                    }
                ],
                "ns": 0,
                "title": "Building and installing nftables from sources"
            },
            {
                "pageid": 8,
                "revisions": [
                    {
                        "revid": 10,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:38:16Z",
                        "comment": "Created page with \"If you are familiar with Netfilter, don't worry, most of the infrastructure remains the same. ''nftables'' reuses the existing hook infrastructure, [http://people.netfilter.or...\""
                    },
                    {
                        "revid": 50,
                        "parentid": 10,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T20:04:44Z",
                        "comment": ""
                    }
                ],
                "ns": 0,
                "title": "Netfilter hooks"
            },
            {
                "pageid": 9,
                "revisions": [
                    {
                        "revid": 11,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:38:38Z",
                        "comment": "Created page with \"The main differences between ''nftables'' and ''iptables'' from the user point of view are:  * The '''syntax'''. The ''iptables'' command line tool uses a getopt_long()-based...\""
                    }
                ],
                "ns": 0,
                "title": "Main differences with iptables"
            },
            {
                "pageid": 10,
                "revisions": [
                    {
                        "revid": 12,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:44:59Z",
                        "comment": "Created page with \"You can ratelimit traffic through ''limit''.  The following example shows how to accept a maximum of 10 ICMP echo-request packets per second:  <source lang=\"bash\"> % nft add r...\""
                    }
                ],
                "ns": 0,
                "title": "Rate limiting matchings"
            },
            {
                "pageid": 11,
                "revisions": [
                    {
                        "revid": 13,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:45:33Z",
                        "comment": "Created page with \"= Dropping packets =  You can use the ''drop'' option to drop packets. Note that drop is a '''terminating''' action, so you cannot add any other action after it.  <source lang...\""
                    }
                ],
                "ns": 0,
                "title": "Accepting and dropping packets"
            },
            {
                "pageid": 12,
                "revisions": [
                    {
                        "revid": 14,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:46:18Z",
                        "comment": "Created page with \"As in ''iptables'', you can match the state tracking information (sometimes refered as ''conntrack'' or ''ct'' information) that Netfilter collects through the ''Connection Tr...\""
                    }
                ],
                "ns": 0,
                "title": "Matching connection tracking stateful metainformation"
            },
            {
                "pageid": 13,
                "revisions": [
                    {
                        "revid": 15,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:46:45Z",
                        "comment": "Created page with \"''nftables'' comes with the packet metainformation selectors that you can use to match information that is stored in the network packet.   = The meta selectors =  The current...\""
                    }
                ],
                "ns": 0,
                "title": "Matching packet metainformation"
            },
            {
                "pageid": 14,
                "revisions": [
                    {
                        "revid": 16,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:47:20Z",
                        "comment": "Created page with \"The ''nft'' command line utility supports the following layer 4 protocols: AH, ESP, UDP, UDPlite, TCP, DCCP, SCTP and IPComp.  = Matching transport protocol =  The following r...\""
                    }
                ],
                "ns": 0,
                "title": "Matching packet headers"
            },
            {
                "pageid": 15,
                "revisions": [
                    {
                        "revid": 17,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:47:42Z",
                        "comment": "Created page with \"Since nftables v0.6 and linux kernel 4.6, ruleset debug/tracing is supported.  This is an equivalent of the old iptables method -J TRACE, but with some great improvements.  Th...\""
                    }
                ],
                "ns": 0,
                "title": "Ruleset debug/tracing"
            },
            {
                "pageid": 16,
                "revisions": [
                    {
                        "revid": 18,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:48:03Z",
                        "comment": "Created page with \"Many people like to maintain their ruleset in shell scripts, this allows them to add comments and arrange rules in more human-friendly way. This is problematic though since sh...\""
                    }
                ],
                "ns": 0,
                "title": "Scripting"
            },
            {
                "pageid": 17,
                "revisions": [
                    {
                        "revid": 19,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:48:27Z",
                        "comment": "Created page with \"nft can display notifications of ruleset updates through:  <source lang=\"bash\">  % nft monitor </source>  This subscribes ''nft'' to any kind of ruleset update.  You can filte...\""
                    }
                ],
                "ns": 0,
                "title": "Monitoring ruleset updates"
            },
            {
                "pageid": 18,
                "revisions": [
                    {
                        "revid": 20,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:48:49Z",
                        "comment": "Created page with \"== Using native nft syntax ==  Linux Kernel 3.18 includes some improvements regarding the available operations to manage your ruleset as a whole.  === listing ===  Listing the...\""
                    }
                ],
                "ns": 0,
                "title": "Operations at ruleset level"
            },
            {
                "pageid": 19,
                "revisions": [
                    {
                        "revid": 21,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:49:13Z",
                        "comment": "Created page with \"''nftables'' provides the following built-in operations:  * '''ne''' which stands for non equal. Alternatively you can use '''!='''. * '''lt''' means ''less than''. Alternativ...\""
                    }
                ],
                "ns": 0,
                "title": "Building rules through expressions"
            },
            {
                "pageid": 20,
                "revisions": [
                    {
                        "revid": 22,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:49:44Z",
                        "comment": "Created page with \"The ''nft'' command line utility tries to help you when you use a wrong datatype.  The following examples shows the error output if you pass an IPv4 address as a TCP port.  <s...\""
                    }
                ],
                "ns": 0,
                "title": "Error reporting from the command line"
            },
            {
                "pageid": 21,
                "revisions": [
                    {
                        "revid": 23,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:50:05Z",
                        "comment": "Created page with \"You can use the ''-f'' option to atomically update your rule-set:  <source lang=\"bash\"> % nft -f file </source>  Where ''file'' contains your rule-set.  You can save your rule...\""
                    }
                ],
                "ns": 0,
                "title": "Atomic rule replacement"
            },
            {
                "pageid": 22,
                "revisions": [
                    {
                        "revid": 24,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:50:51Z",
                        "comment": "Created page with \"= Appending new rules =  To add new rules, you have to specify the corresponding table and the chain that you want to use, eg.  <source lang=\"bash\"> % nft add rule filter outp...\""
                    }
                ],
                "ns": 0,
                "title": "Simple rule management"
            },
            {
                "pageid": 23,
                "revisions": [
                    {
                        "revid": 25,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:51:13Z",
                        "comment": "Created page with \"As in ''iptables'', you attach your [[Rule management|rules]] to chains. However, contrary to the ''iptables'' modus operandi, the ''nftables'' infrastructure comes with no pr...\""
                    },
                    {
                        "revid": 49,
                        "parentid": 25,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T20:03:33Z",
                        "comment": ""
                    }
                ],
                "ns": 0,
                "title": "Configuring chains"
            },
            {
                "pageid": 24,
                "revisions": [
                    {
                        "revid": 26,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:51:38Z",
                        "comment": "Created page with \"You can also delete tables with the following command:  <source lang=\"bash\"> % nft delete table ip foo </source>  '''Troubleshooting''': Since Linux kernel 3.18, you can delet...\""
                    }
                ],
                "ns": 0,
                "title": "Configuring tables"
            },
            {
                "pageid": 25,
                "revisions": [
                    {
                        "revid": 27,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:52:21Z",
                        "comment": "Created page with \"Last update: 2016/Jan/11                                                                                                                                           This page tr...\""
                    }
                ],
                "ns": 0,
                "title": "Supported features compared to xtables"
            },
            {
                "pageid": 26,
                "revisions": [
                    {
                        "revid": 28,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:52:44Z",
                        "comment": "Created page with \"A listing of the development progress.  == 3.13 ==  * nf_tables merged mainstream.  == 3.14 ==  * set packet mark support. * nfqueue support (only for ip and ip6 families). *...\""
                    }
                ],
                "ns": 0,
                "title": "List of updates since Linux kernel 3.13"
            },
            {
                "pageid": 27,
                "revisions": [
                    {
                        "revid": 29,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:53:15Z",
                        "comment": "Created page with \"Thanks to nftables [[Maps]], if you have a previous iptables NAT (destination NAT) ruleset like this:  <source lang=\"bash\"> % iptables -t nat -A PREROUTING -p tcp --dport 1000...\""
                    }
                ],
                "ns": 0,
                "title": "Multiple NATs using nftables maps"
            },
            {
                "pageid": 28,
                "revisions": [
                    {
                        "revid": 30,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:53:36Z",
                        "comment": "Created page with \"== Limitation ==  There is currently no connection tracking available for bridge filtering.  == Examples ==  Filter on TCP destination port:  <source lang=\"bash\"> nft add rule...\""
                    }
                ],
                "ns": 0,
                "title": "Bridge filtering"
            },
            {
                "pageid": 29,
                "revisions": [
                    {
                        "revid": 31,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:54:01Z",
                        "comment": "Created page with \"= fw.basic =  <source lang=\"bash\"> table ip filter {      chain input {           type filter hook input priority 0;            # accept traffic originated from us           c...\""
                    }
                ],
                "ns": 0,
                "title": "Simple ruleset for a workstation"
            },
            {
                "pageid": 30,
                "revisions": [
                    {
                        "revid": 32,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:54:40Z",
                        "comment": "Created page with \"Since Linux kernel 4.1, nftables supports concatenations.  This new feature allows you to put two or more selectors together to perform very fast lookups by combining them wit...\""
                    }
                ],
                "ns": 0,
                "title": "Concatenations"
            },
            {
                "pageid": 31,
                "revisions": [
                    {
                        "revid": 33,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:55:34Z",
                        "comment": "Created page with \"Maps are yet another interesting feature that has been in ''nftables'' since the very beginning. You can use a map to look up for data based on some specific key that is used...\""
                    }
                ],
                "ns": 0,
                "title": "Maps"
            },
            {
                "pageid": 32,
                "revisions": [
                    {
                        "revid": 34,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:56:00Z",
                        "comment": "Created page with \"Intervals are expressed as value-value.  The following example show how to drop the traffic coming the range 192.168.0.1 to 192.168.0.250:  <source lang=\"bash\"> % nft add rule...\""
                    }
                ],
                "ns": 0,
                "title": "Intervals"
            },
            {
                "pageid": 33,
                "revisions": [
                    {
                        "revid": 35,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:56:25Z",
                        "comment": "Created page with \"The ''dictionaries'', also known as ''verdict maps'', are one of the most interesting features available in ''nftables''. Basically, they allow you to attach an action to an e...\""
                    }
                ],
                "ns": 0,
                "title": "Verdict Maps (vmaps)"
            },
            {
                "pageid": 34,
                "revisions": [
                    {
                        "revid": 36,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:56:41Z",
                        "comment": "Created page with \"''nftables'' comes with a built-in generic set infrastructure that allows you to use '''any''' supported selector to build sets. This infrastructure makes possible the represe...\""
                    }
                ],
                "ns": 0,
                "title": "Sets"
            },
            {
                "pageid": 35,
                "revisions": [
                    {
                        "revid": 37,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:57:05Z",
                        "comment": "Created page with \"Counters are optional in ''nftables'', thus, you need to explicitly specify them in the rule if you want them.  The following example allows you to account all tcp traffic tha...\""
                    }
                ],
                "ns": 0,
                "title": "Counters"
            },
            {
                "pageid": 36,
                "revisions": [
                    {
                        "revid": 38,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:57:24Z",
                        "comment": "Created page with \"Since Linux kernel 4.3, you can duplicate packets to another destination from the ''ip'' and ''ip6'' families. You may want to use this feature to address this traffic to anot...\""
                    }
                ],
                "ns": 0,
                "title": "Duplicating packets"
            },
            {
                "pageid": 37,
                "revisions": [
                    {
                        "revid": 39,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:57:43Z",
                        "comment": "Created page with \"= Basic operation =  '''Important note''': You require a Linux kernel 3.14 to enqueue packets to userspace using nftables.  Like in ''iptables'', you can use the nfqueue infra...\""
                    }
                ],
                "ns": 0,
                "title": "Queueing to userspace"
            },
            {
                "pageid": 38,
                "revisions": [
                    {
                        "revid": 40,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:58:00Z",
                        "comment": "Created page with \"You can set some metainformation in a packet: one of mark, priority or nftrace.  Please note that you require a Linux kernel >= 3.14 to use these features.  == mark == The fol...\""
                    }
                ],
                "ns": 0,
                "title": "Setting packet metainformation"
            },
            {
                "pageid": 39,
                "revisions": [
                    {
                        "revid": 41,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:58:17Z",
                        "comment": "Created page with \"The ''nat'' chain type allows you to perform NAT. This chain type comes with special semantics:  * The first packet of a flow is used to look up for a matching rule which sets...\""
                    }
                ],
                "ns": 0,
                "title": "Performing Network Address Translation (NAT)"
            },
            {
                "pageid": 40,
                "revisions": [
                    {
                        "revid": 42,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:58:36Z",
                        "comment": "Created page with \"'''Note''': Full logging support is available starting Linux kernel 3.17. If you run an older kernel, you have to modprobe ipt_LOG to enable logging.  You can log packets usin...\""
                    }
                ],
                "ns": 0,
                "title": "Logging traffic"
            },
            {
                "pageid": 41,
                "revisions": [
                    {
                        "revid": 43,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:58:56Z",
                        "comment": "Created page with \"'''Note''': Full reject support is available since Linux kernel 3.18.  The following rule shows how to reject any traffic from the network:  <source lang=\"bash\"> % nft add rul...\""
                    }
                ],
                "ns": 0,
                "title": "Rejecting traffic"
            },
            {
                "pageid": 42,
                "revisions": [
                    {
                        "revid": 44,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T17:59:16Z",
                        "comment": "Created page with \"Like in ''iptables'', you can structure your rule-set in using a tree of [[Configuring chains|chains]]. To do so, you first need to create the custom chain via:  <source lang=...\""
                    }
                ],
                "ns": 0,
                "title": "Jumping to chain"
            },
            {
                "pageid": 43,
                "revisions": [
                    {
                        "revid": 45,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T18:00:42Z",
                        "comment": "Created page with \"[http://ipset.netfilter.org/ IPSet] is an extension to allow packet classification based on sets. It is currently maintained and actively developed by the Netfilter coreteam d...\""
                    }
                ],
                "ns": 0,
                "title": "Ipset"
            },
            {
                "pageid": 44,
                "revisions": [
                    {
                        "revid": 46,
                        "parentid": 0,
                        "user": "Pablo",
                        "timestamp": "2016-07-13T18:14:49Z",
                        "comment": "Created page with \"The following '''matches and targets''' (in alphabetic order) can be fully translated via iptables-translate tool: == Translatable extensions == === Matches ===  ====xt====  *...\""
                    }
                ],
                "ns": 0,
                "title": "List of available translations via iptables-translate tool"
            }
        ]
    }
}