Skip to content
Smarter by Design.Simpler for Business

network namespace ​

The network namespace command manages the routing tables on the virtual device. The table carries not only the routing but also its own DNS servers, the dynamic routing services and the network layer protection settings. Its panel equivalent is the routing table screen in the network configuration.

Command Summary ​

TR7 WEB-CLI · network namespace
# Tab after the command
admin@TR7LBWAF01> network namespace
add delete list show update
 
admin@TR7LBWAF01> network namespace list v-device <device> # list them all
admin@TR7LBWAF01> network namespace show v-device <device> <id> # show one
admin@TR7LBWAF01> network namespace add v-device <device> name <name> …
admin@TR7LBWAF01> network namespace update v-device <device> id <id> … # change
admin@TR7LBWAF01> network namespace delete v-device <device> <id> # delete
admin@TR7LBWAF01>  

Required Fields ​

OrderFieldStatusWhat it doesWhat is written after it
1v-deviceRequiredSelects on which virtual device the table will be definedThe virtual device
2nameRequiredGives a name to the routing tableThe name of the table

The list, show, update and delete commands also ask for v-device first: in the show and delete commands the identifier is written after this without the field name, and in the update command it is in the id <id> form.

All the remaining fields are optional; the ones that are not given are applied with their default values.

The Common Value Set of the Protection Switches ​

All of the network layer protections take one of the same six values. This gives more than the "on/off" pair: it is possible to monitor a protection first and then to take it into application.

ValueWhat it does
FalseThe protection is off (the default)
monitorIt only records the matching traffic, it does not block
TrueIt applies the protection with its default behavior
dropIt drops the matching packet
quarantineIt takes the source into quarantine
addToBlacklistIt adds the source to the blacklist

Monitor first, apply afterwards

Instead of making a new protection True directly, turning it on with monitor and looking at the records produced prevents the ordinary traffic from being blocked by mistake.

Name Resolution and Dynamic Routing ​

The routing table can have its own DNS servers and local name records.

FieldWhat it doesWhat is written after it
--dns.NDetermines the DNS servers to be used in this routing tableThe IP address; each of them with its own index
--hosts.N.ipDetermines the address to be added to the local name resolutionThe IP address
--hosts.N.domainDetermines the domain name that corresponds to that addressThe domain name
--isDynamicTurns on the routing table being fed by the dynamic routing protocolstrue · false (the default is false)

The Routing Services ​

The options of the services to be run when the dynamic routing is turned on are given from here. The default of the ospf6d and ripngd fields is -A ::1, the others are empty.

FieldWhat it doesWhat is written after it
--bgpdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--ospfdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--ospf6dCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--ripdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--ripngdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--isisdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--pimdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--ldpdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--nhrpdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--eigrpdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--babeldCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--sharpdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--pbrdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--bfddCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--fabricdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--vrrpdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run
--pathdCarries the start options of this routing serviceThe option text to be given to the service. When it is left empty, the service is not run

The Protection Switches ​

All of the protections use the same value set; in the ones that have a threshold field the threshold is written separately.

FieldWhat it doesWhat is written after it
--limitTr7SshLimits the connections coming to the SSH service of the deviceFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--tr7SshLimitDetermines the threshold value of the protection aboveA number (the default is 5)
--limitTr7HttpLimits the requests coming to the HTTP service of the deviceFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--tr7HttpLimitDetermines the threshold value of the protection aboveA number (the default is 100)
--limitTr7HttpsLimits the requests coming to the HTTPS service of the deviceFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--tr7HttpsLimitDetermines the threshold value of the protection aboveA number (the default is 100)
--blockIpRepBlacklistBlocks the traffic coming from the addresses in the reputation blacklistFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--allowIcmpDetermines whether the ICMP traffic will be allowed or notFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--limitIcmpPacketsLimits the ICMP packet rateFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--icmpPacketsLimitDetermines the threshold value of the protection aboveA number (the default is 100)
--limitTotalConnPerSrcLimits the total number of connections per source addressFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--totalConnPerSrcLimitDetermines the threshold value of the protection aboveA number (the default is 1000)
--limitSynFloodLimits the connection opening rate against a SYN flood attackFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--synFloodLimitDetermines the threshold value of the protection aboveA number (the default is 500)
--dropNewNotSynDrops the new connection packets that do not carry the SYN flagFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropSynWithSuspiciousMssDrops the SYN packets that carry a suspicious MSS valueFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--synCookiesProtects the connection queue with SYN cookiesFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--synBacklogDetermines the threshold value of the protection aboveA number (the default is 4096)
--limitUdpFloodLimits the packet rate against a UDP flood attackFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--udpFloodLimitDetermines the threshold value of the protection aboveA number (the default is 500)
--limitDnsUdpFloodPerSrcLimits the DNS UDP packet rate per source addressFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dnsUdpFloodPerSrcLimitDetermines the threshold value of the protection aboveA number (the default is 200)
--limitReflectedUdpLimits the UDP traffic used in the reflection attacksFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--reflectedUdpLimitDetermines the threshold value of the protection aboveA number (the default is 100)
--blockZeroByteUdpBlocks the UDP packets with an empty bodyFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropInvalidPacketsDrops the invalid packets that do not fit the connection stateFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropLandAttackDrops the LAND attack packets whose source and target are the sameFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropMartiansDrops the packets with a spoofed source address that cannot be routedFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropSourceRouteDrops the packets that carry the source routing optionFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropBogusDrops the packets that carry an invalid flag combinationFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropNullScanDrops the scan packets that carry no flagFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropChristmasTreeDrops the scan packets with all the flags onFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropPortScanDrops the port scanning behaviorFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--dropSmbNukeDrops the attack packets directed at the SMB serviceFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--smbNukeLimitDetermines the threshold value of the protection aboveA number (the default is 10)
--limitZombieTcpLimits the half-open TCP connectionsFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--limitTcpResetLimits the rate of the TCP reset packetsFalse off (the default) · monitor only monitors · True on · drop drops the packet · quarantine takes the source into quarantine · addToBlacklist adds the source to the blacklist
--tcpResetLimitDetermines the threshold value of the protection aboveA number (the default is 20)
--zombieTcpFinTimeoutDetermines the related timeout in the half-open TCP connectionsThe second (the default is 10)
--zombieTcpKeepaliveTimeDetermines the related timeout in the half-open TCP connectionsThe second (the default is 30)
--zombieTcpEstablishedTimeoutDetermines the related timeout in the half-open TCP connectionsThe second (the default is 14400)

The Quarantine and the Exemptions ​

In the protections for which the quarantine action is selected, it determines how long the source will stay in quarantine and who will be kept exempt.

FieldWhat it doesWhat is written after it
--quarantineTurns on the quarantine behaviortrue · false (the default is false)
--quarantineTime.valDetermines how long the quarantine will lastA number
--quarantineTime.unitDetermines the unit of the quarantine durationThe unit (the default is s)
--quarantineWhitelistDetermines the ones to be kept exempt from the quarantine (the old form)The exemption list text
--ddosTrustKnownPeersKeeps the traffic coming from the known peers exempt from the protectionstrue · false (the default is false)
--ddosWhitelist.N.typeSelects the type of the exemption entryip the address · network the network · country the country
--ddosWhitelist.N.valueDetermines the value to be kept exemptThe address, network or country value
--ddosWhitelist.N.noteWrites an explanation for the entryFree text
--ddosWhitelist.N.sourceStates where the entry comes frommanual added manually (the default) · advisor from a suggestion · system-default the system default
--ddosWhitelist.N.addedAtCarries the time at which the entry was addedThe time stamp

The Learning Mode ​

By observing the traffic, it produces suggestions for the protection thresholds.

FieldWhat it doesWhat is written after it
--learningModeSelects the learning modeFalse off · suggest it only produces suggestions (the default) · auto it applies the suggestions by itself
--learningLookback.valDetermines how far back the learning will lookA number (the default is 1)
--learningLookback.unitDetermines the unit of the look-back durationThe unit (the default is M)
--learningModePromotionAllows the learned rule to be promoted from the monitoring mode to the application modetrue · false (the default is false)
--learningIntervalDetermines with which interval the learning evaluation will be done1sa · 6sa · 12sa · 1g (the default) · 1ha

The Field Locks ​

Every protection field has a lock: when the lock is turned on, that field is not changed by the learning and the suggestion, the manually given value is preserved.

FieldWhat it doesWhat is written after it
--ddosFieldLocks.allowIcmpPrevents the allowIcmp field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.blockIpRepBlacklistPrevents the blockIpRepBlacklist field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.blockZeroByteUdpPrevents the blockZeroByteUdp field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.ddosTrustKnownPeersPrevents the ddosTrustKnownPeers field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.ddosWhitelistPrevents the ddosWhitelist field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropBogusPrevents the dropBogus field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropChristmasTreePrevents the dropChristmasTree field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropInvalidPacketsPrevents the dropInvalidPackets field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropLandAttackPrevents the dropLandAttack field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropMartiansPrevents the dropMartians field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropNewNotSynPrevents the dropNewNotSyn field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropNullScanPrevents the dropNullScan field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropPortScanPrevents the dropPortScan field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropSmbNukePrevents the dropSmbNuke field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropSourceRoutePrevents the dropSourceRoute field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.dropSynWithSuspiciousMssPrevents the dropSynWithSuspiciousMss field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitDnsUdpFloodPerSrcPrevents the limitDnsUdpFloodPerSrc field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitIcmpPacketsPrevents the limitIcmpPackets field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitReflectedUdpPrevents the limitReflectedUdp field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitSynFloodPrevents the limitSynFlood field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitTcpResetPrevents the limitTcpReset field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitTotalConnPerSrcPrevents the limitTotalConnPerSrc field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitTr7HttpPrevents the limitTr7Http field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitTr7HttpsPrevents the limitTr7Https field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitTr7SshPrevents the limitTr7Ssh field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitUdpFloodPrevents the limitUdpFlood field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.limitZombieTcpPrevents the limitZombieTcp field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.quarantinePrevents the quarantine field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.quarantineTimePrevents the quarantineTime field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.quarantineWhitelistPrevents the quarantineWhitelist field from being changed by the learning or the suggestiontrue · false (the default is false)
--ddosFieldLocks.synCookiesPrevents the synCookies field from being changed by the learning or the suggestiontrue · false (the default is false)

Examples ​

TR7 WEB-CLI · A) Creating a table and name resolution
admin@TR7LBWAF01> network namespace add v-device Host name DMZ \
--dns.0 10.0.1.53 --dns.1 10.0.1.54 \
--hosts.0.ip 10.0.10.21 --hosts.0.domain portal.kurum.local
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) Turning the protections on in the monitoring mode first
admin@TR7LBWAF01> network namespace update v-device Host id <id> \
--limitSynFlood monitor --synFloodLimit 800 \
--limitTotalConnPerSrc monitor --totalConnPerSrcLimit 2000 \
--dropInvalidPackets True --dropMartians True
 
# taking it into application after the records are looked at
admin@TR7LBWAF01> network namespace update v-device Host id <id> --limitSynFlood drop
admin@TR7LBWAF01>  
TR7 WEB-CLI · C) The quarantine, the exemption and the field lock
admin@TR7LBWAF01> network namespace update v-device Host id <id> \
--limitTr7Ssh quarantine --tr7SshLimit 3 \
--quarantine true --quarantineTime.val 30 --quarantineTime.unit m \
--ddosWhitelist.0.type network --ddosWhitelist.0.value 10.0.0.0/8 --ddosWhitelist.0.note "internal network"
 
# let the learning not change this field
admin@TR7LBWAF01> network namespace update v-device Host id <id> --ddosFieldLocks.limitTr7Ssh true
admin@TR7LBWAF01>  
TR7 WEB-CLI · D) Dynamic routing and the learning
admin@TR7LBWAF01> network namespace update v-device Host id <id> --isDynamic true --bgpd <options>
 
admin@TR7LBWAF01> network namespace update v-device Host id <id> \
--learningMode suggest --learningInterval 1g --learningLookback.val 2 --learningLookback.unit M
admin@TR7LBWAF01>  

Things to Know ​

  • The table does not carry only the routing. The DNS servers, the local name records, the dynamic routing services and the network layer protections are in the same record.
  • The protections have six values. Instead of on/off there are also the monitoring, dropping, quarantine and blacklist options; a new protection should be turned on with monitor first.
  • The threshold field is separate from the protection. The --limitSynFlood determines the protection and the --synFloodLimit the threshold; writing a threshold while the protection is off does not create an effect.
  • The lock is against the learning. When --ddosFieldLocks.<field> true is written, that field is not changed by the learning and the suggestion.
  • The dynamic routing services work with an option text. When the field of a service is left empty, that service is not run.
  • The routing table is used by other records. Before it is deleted, the interface, address, firewall rule and backend records bound to it should be reviewed.