jool(8)

NAME
jool - Interact with NAT64 Jool (the kernel module).

DESCRIPTION
Sends commands and requests to NAT64 Jool.
NAT64 Jool is a kernel module you load into a Linux kernel. It implements RFC 6146.

AVAILABILITY
Linux is the only OS in which this program makes sense.
Kernels 3.2.0 and up.

SYNTAX
jool_siit --instance (
    [--add]
    | --remove
)

jool --pool6 (
    [--display] [--csv]
    | --count
| --add <IPv6-prefix> [--force]
| --remove <IPv6-prefix>
| --flush
)

jool --pool4 (
    [--display] [--csv]
    | --count
| --add [<PROTOCOLS>] <IPv4-prefix> <port-range> [--mark <mark>] [--force]
| --remove [<PROTOCOLS>] <IPv4-prefix> <port-range> [--mark <mark>] [--quick]
    | --flush [--quick]
)

jool --bib [<PROTOCOLS>] (
    [--display] [--numeric] [--csv]
    | --count
| --add <IPv4-transport-address> <IPv6-transport-address>
| --remove <IPv4-transport-address> <IPv6-transport-address>
)

jool --session [<PROTOCOLS>] (
    [--display] [--numeric] [--csv]
    | --count
)

jool [--global] (
    [--display]
| [--update] FLAG_KEY=FLAG_VALUE
)

jool [--file] (
    /path/to/json/file
)

OPTIONS

  Operations

--display
    Print the table as output.

--count
    Count and print the number of entries in the table.

--add
    Create a new row using the rest of the arguments.

--update
    Change a configuration value based on the rest of the arguments.

--remove
    Delete the row described by the rest of the arguments.

--flush
    Empty the table.

  <PROTOCOLS>
They are not mutually exclusive. If you provide no protocol, the default is all protocols. If you provide at least one protocol, the rest will be turned off.

--udp
    Apply the operation on the UDP table.

--tcp
    Apply the operation on the TCP table.

--icmp
    Apply the operation on the ICMP table.

  Others

<IPv6-prefix>
    IPv6 prefix to add to or remove from Jool's IPv6 pool.
    The format is IPV6_ADDRESS[/PREFIX_LENGTH].
    PREFIX_LENGTH defaults to 128.
    Exampĺe: 64:ff9b::/96

<IPv4-prefix>
    IPv4 addresses to add to or remove from Jool's IPv4 pool.
    The format is IPV4_ADDRESS[/PREFIX_LENGTH].
    PREFIX_LENGTH defaults to 32.
    Exampĺe: 1.2.3.4/30 (Means 1.2.3.4, 1.2.3.5, 1.2.3.6 and 1.2.3.7)

<port-range>
    Range of ports (or ICMP ids) of the <IPv4-prefix> addresses which are being added or removed from Jool's IPv4 pool.
    The format is LOWER[-UPPER].
    If you omit the upper port, you're only inserting port LOWER.
    If you omit this argument entirely, Jool will insert or remove all existing ports/ids.
    Exampĺe: 61001-65535

<IPv4-transport-address>
    IPv4 field of the BIB entry being added or removed.
    The format is IPV4_ADDRESS#PORT.
    Exampĺe: 10.20.30.40#5000

<IPv6-transport-address>
    IPv6 field of the BIB entry being added or removed.
    The format is IPV6_ADDRESS#PORT.
    Exampĺe: 1::2#5000

--quick
    Do not remove orphaned BIB and session entries.

--numeric
    Do not try to resolve hostnames.

--csv
    Output the table in Comma/Character-Separated Values (.csv) format.

  --global's FLAG_KEYs

--disable
    Pause translation of packets.

--enable
    Resume translation of packets.

--zeroize-traffic-class=BOOL
    Always set the IPv6 header's 'Traffic Class' field as zero?
    Otherwise copy from IPv4 header's 'TOS'.

--override-tos=BOOL
    Override the IPv4 header's 'TOS' field as --tos?
    Otherwise copy from IPv6 header's 'Traffic Class'.

--tos=INT
    Value to override TOS as (only when --override-tos is ON)

--mtu-plateaus=INT[,INT]*
    Set the list of plateaus for ICMPv4 Fragmentation Neededs with MTU unset.

--maximum-simultaneous-opens=INT
    Set the maximum allowable 'simultaneous' Simultaneos Opens of TCP connections.

--source-icmpv6-errors-better=BOOL
    Translate source addresses directly on 4-to-6 ICMP errors?

--handle-rst-during-fin-rcv=BOOL
    Use transitory timer when RST is received during the V6 FIN RCV or V4 FIN RCV states?

--f-args=INT
    Defines the arguments that will be sent to F().
    (F() is defined by algorithm 3 of RFC 6056.)
    - First (leftmost) bit is source address.
    - Second bit is source port.
    - Third bit is destination address.
    - Fourth (rightmost) bit is destination port.

--logging-bib=BOOL
    Log BIBs as they are created and destroyed?

--logging-session=BOOL
    Log sessions as they are created and destroyed?

--address-dependent-filtering=BOOL
    Use Address-Dependent Filtering?
    ON is (address)-restricted-cone NAT, OFF is full-cone NAT.

--drop-icmpv6-info=BOOL
    Filter ICMPv6 Informational packets?

--drop-externally-initiated-tcp=BOOL
    Drop externally initiated TCP connections?

--udp-timeout=INT
    Set the UDP session lifetime (in seconds).

--tcp-est-timeout=INT
    Set the TCP established session lifetime (in seconds).

--tcp-trans-timeout=INT
    Set the TCP transitory session lifetime (in seconds).

--icmp-timeout=INT
    Set the ICMP session lifetime (in seconds).

--fragment-arrival-timeout=INT
    Set the timeout for arrival of fragments.

--ss-enabled=BOOL
    Enable Session Synchronization?

--ss-flush-asap=BOOL
    Try to synchronize sessions as soon as possible?

--ss-flush-deadline=NUM
    Inactive milliseconds after which to force a session sync.

--ss-capacity=NUM
    Maximim number of queuable entries.

--ss-max-payload=NUM
    Maximum amount of bytes joold should send per packet.

EXAMPLES
Print the IPv6 pool:
    jool --pool6 --display
Add prefix 2001:db8::/96 to the IPv6 pool:
    jool --pool6 --add 2001:db8::/96
Remove prefix 2001:db8::/96 from the IPv6 pool:
    jool --pool6 --remove 2001:db8::/96

Print the number of IPv4 addresses in the pool:
    jool --pool4 --count
Add address 192.0.2.10 to the IPv4 pool:
    jool --pool4 --add 192.0.2.10
Remove address 192.0.2.10 from the IPv4 pool:
    jool --pool4 --remove 192.0.2.10

Print the Binding Information Base (BIB):
    jool --bib
Add a binding to the BIB:
    jool --bib --add 192.0.2.1#11 1::1#22
Remove a binding from the BIB:
    jool --bib --remove 192.0.2.1#11 1::1#22

Print the session table:
    jool --session

Print the global configuration values:
    jool
Update some global configuration value:
    jool --address-dependent-filtering ON

NOTES
TRUE, FALSE, 1, 0, YES, NO, ON and OFF are all valid booleans. You can mix case too.

EXIT STATUS
Zero on success, non-zero on failure.

AUTHOR
NIC Mexico & ITESM

REPORTING BUGS
Our issue tracker is https://github.com/NICMx/Jool/issues. If you want to mail us instead, use jool@nic.mx.

COPYRIGHT
Copyright 2016 NIC Mexico.
License: GPLv3+ (GNU GPL version 3 or later)
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
https://www.jool.mx
https://www.jool.mx/en/documentation.html