The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Rejected - packet swallowed
  • Inspected - packet contents passed onto the next stage of inspection
  • Ignored - packet forwarded without any further inspection


OSI LayerRejected Inspected Ignored
DataLink [2]QinQEthernet, VLANeverything else
Network [3]IPv6, IPv4JUMBOIPv4everything else
Transport [4]-TCPeverything else
Application [7]everything elseFIXBGP


Warning
titleMessage Size Restrictions
  • Ethernet
frames are limited to 1540 bytes in size.
  • MTU is set to 1500 bytes.
  • TCP Max Segment Size is enforced to be at or below
1424
  • 1448.


TCP Whitelists & Network Address Translation

...

The message parsers must consume complete messages one at a time, and in order. However, the TCP protocol delivers only a stream of bytes, possibly segmented differently from the messages. This mismatch in segmentation means that sometimes, Reflector is required to store packets containing partial messages while manufacturing/manipulating TCP ACKs. TCP frames manufactured by
Reflector can be identified by their unusual IPv4ID and TTL values.


Session Termination

Reflector's parser can return error for a variety of reasons: logon fail, wrong protocol, sanity checks, etc. Some exogenous factors can also call for immediate termination: session timeout, disabled credential, UNPLUG mode, etc. The session store executes this directive by generating a pair of TCP RST frames for each affected session.

Session Drop ReasonSourceExecutorRST GeneratedDescription
TCP_FIN_ACKwireSessionStoreNNormal bilateral TCP termination
TCP_RESETwireSessionStoreNUnilateral (client) TCP reset
LOGIN_FAILwireRisk InstanceYLogon credential check failed
PARSE_ERRORwireFIX Message ParserYMessage syntax error
EXPIREDmetronomeSessionStoreYSession heartbeat expired
SEND_FAIL_LIMITwireSessionStoreNsend() failed too many times 
TRADER_IP_REMOVEDweb serverSessionStoreYAssociated trader IP removed
VENUE_IP_REMOVEDweb serverSessionStoreYAssociated venue IP removed
CREDENTIAL_DISABLEDweb serverRisk InstanceYAssociated credential disabled
GROUP_DISABLEDweb serverRisk InstanceYAssociated risk pool disabled
DEAD_MAN_SWITCHmetronomeRisk InstanceYRisk pool DMS heartbeat expired
SHUTDOWNweb serverRisk InstanceYShutdown command received


Broken Session

If Reflector receives a TCP packet that fits the following requirements, it swallows the packet and generates a TCP RST packet in the reverse direction

  • TCP packet is not part of a BGP session
  • TCP packet cannot be matched to an existing session
  • TCP packet is not an outbound SYN packet


Ethernet Loop Detection

Reflector periodically emits a packet with a custom EtherType and other unique identications. If Reflector captures a packet it has emitted in the opposite direction, it will schedule an orderly shutdown.