[ 
https://issues.apache.org/jira/browse/IGNITE-16741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523000#comment-17523000
 ] 

biandeqiang commented on IGNITE-16741:
--------------------------------------

IgniteConfiguration igniteCfg = new IgniteConfiguration();
igniteCfg.setDiscoverySpi(buildTcpDiscoverySpi())
.setCommunicationSpi(buildTcpCommunicationSpi())
.setDataStorageConfiguration(buildDataStorageConfiguration())
.setClientConnectorConfiguration(null)
.setConnectorConfiguration(null)
.setNetworkTimeout(getTimeOut())
.setGridLogger(new IgniteErrorLoggerImp())
.setSslContextFactory(new IgniteSslFactory())
.setLocalHost(igniteManager.getLocalHost())
.setDefaultQueryTimeout(30000);

 

private TcpDiscoverySpi buildTcpDiscoverySpi() {
addressList = "xxx.xx.xxx.xxx";
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
ipFinder.setAddresses(addressList).setShared(false);
TcpDiscoverySpi spi = new TcpDiscoverySpi();
spi.setLocalPort("8100")      //DoS attacks occur on this port.

.setLocalPortRange(1)
.setLocalAddress(addressList )
.setIpFinder(ipFinder)
.setAckTimeout(getTimeOut())
.setNetworkTimeout(getTimeOut())
.setJoinTimeout(getTimeOut())
.setSocketTimeout(getTimeOut())
.setMaxAckTimeout(getTimeOut() + 5000);
return spi;
}

 

private TcpCommunicationSpi buildTcpCommunicationSpi() {
TcpCommunicationSpi ipCom = new TcpCommunicationSpi();
ipCom.setLocalPort("8200")  //DoS attacks occur on this port.
.setLocalPortRange(0)
.setMessageQueueLimit(MAX_MESSAGE_QUEUE)
.setUsePairedConnections(true)
.setDirectSendBuffer(true)
.setConnectionsPerNode(MAX_CONNECTIONS)
.setConnectTimeout(getTimeOut())
.setSocketWriteTimeout(getTimeOut())
.setLocalAddress(igniteManager.getLocalHost())
.setSocketSendBuffer(IGNITE_SOCKET_BUFFER)
.setSocketReceiveBuffer(IGNITE_SOCKET_BUFFER);
return ipCom;
}

 

private DataStorageConfiguration buildDataStorageConfiguration() {
DataStorageConfiguration dsCfg = new DataStorageConfiguration();
DataRegionConfiguration dataRegionConfiguration = new DataRegionConfiguration();
dataRegionConfiguration.setPersistenceEnabled(false);
return dsCfg.setDefaultDataRegionConfiguration(dataRegionConfiguration);
}

 

CacheConfiguration cacheCfg = new CacheConfiguration<>(cacheName);
// Creating the affinity function with custom setting.
cacheCfg.setCacheMode(CacheMode.PARTITIONED)
.setBackups(0)
.setIndexedTypes(Integer.class, AlarmRecord.class)
.setSqlFunctionClasses(ExtIgniteFunctions.class)
.setOnheapCacheEnabled(false)
.setSqlOnheapCacheEnabled(false)
.setQueryParallelism(2);

 

The JVM is not set.

> DoS attacks on ignite ports
> ---------------------------
>
>                 Key: IGNITE-16741
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16741
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.11.1
>            Reporter: biandeqiang
>            Assignee: Aleksandr Polovtcev
>            Priority: Critical
>              Labels: ise
>
> DoS attacks on ignite's TcpCommunicationSpi and TcpDiscoverySpi's ports
> The ignite I use is embedded,ignite uses two ports, When I was testing a dos 
> attack on the port, ignite had java.lang.OutOfMemoryError: Direct buffer 
> memory.
> TcpDiscoverySpi spi = new TcpDiscoverySpi();
> spi.setLocalPort("port")
> TcpCommunicationSpi ipCom = new TcpCommunicationSpi();
> ipCom.setLocalPort("port")
>  
> {{[2021-12-01 14:12:59,056][WARN 
> ][0][0][grid-nio-worker-tcp-comm-4-#43%TcpCommunicationSpi%][ROOT][IgniteLoggerImp][88]
>  Caught unhandled exception in NIO worker thread (restart the node). 
> java.lang.OutOfMemoryError: Direct buffer memory
> at java.nio.Bits.reserveMemory(Bits.java:695)
> at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
> at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.register(GridNioServer.java:2672)
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2089)
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
> at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
> at java.lang.Thread.run(Thread.java:748)}}
>  
> I hope Ignite can also add MaxConnect as Tomcat and set a counter. If the 
> counter exceeds the value, wait for several seconds.{{{}{}}}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to