ipv4

Bash script to calculate summarize IP address ranges

眉间皱痕 提交于 2019-12-03 21:44:14
I need to write a bash script that when I enter two ip addresses, it will calculate summarize address for them. Examlpe: 192.168.1.27/25 192.168.1.129/25 Result will be: 192.168.1.0/24 Can you help me with this script? I know you will say to me “What did you try?” I tried to find something in Google, but what I found that I must to convert to binary then calculate it, and it will be very hard. I even don’t know how to start with it. Any idea or hint please? Calculation of common netmask with bash: #!/bin/bash D2B=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}) declare -i c=0 # set integer

Use of IN6ADDR_SETV4MAPPED and dual stack sockets

五迷三道 提交于 2019-12-03 21:08:33
This is a continuation of Connecting IPv4 client to IPv6 server: connection refused . I am experimenting with dual stack sockets and trying to understand what setsockopt with IPV6_V6ONLY is useful for. On the linked question I was advised that "Setting IPV6_V6ONLY to 0 can be useful if you also bind the server to an IPv6-mapped IPv4 address". I have done this below, and was expecting my server to be able to accept connections from both an IPv6 and an IPv4 client. But shockingly when I run my client with a V4 and a V6 socket, neither can connect! Can someone please tell me what I am doing wrong

IPv4-构造超网

倖福魔咒の 提交于 2019-12-03 17:00:30
  5台PC和两个路由器 PC 设置 IP地址 子网掩码 默认网关 路由器设置 端口的IP地址 子网掩码 static PC1 ping PC3 PC1 ping PC5 PC3 ping PC5 来源: https://www.cnblogs.com/songxiaoke/p/11803751.html

nginx优化 突破十万并发

柔情痞子 提交于 2019-12-03 15:12:05
nginx优化 突破十万并发 一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。 2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一 个进程分配到多个cpu。 3. worker_rlimit_nofile 65535; 这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文 件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。 查看linux系统文件描述符的方法: [root@web001 ~]# sysctl -a

NAT(地址转换技术)详解

寵の児 提交于 2019-12-03 13:57:48
https://blog.csdn.net/gui951753/article/details/79593307 NAT产生背景 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,Internet在给亿万用户带来便利的同时,自身却面临一个致命的问题:构建这个无所不能的Internet的基础IPv4协议已经不能再提供新的网络地址了。 2011年2月3日中国农历新年, IANA对外宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会。2011年4月15日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域所有的IPv4地址基本耗尽。一时之间,IPv4地址作为一种濒危资源身价陡增,各大网络公司出巨资收购剩余的空闲地址。其实,IPv4地址不足问题已不是新问题,早在20年以前,IPv4地址即将耗尽的问题就已经摆在Internet先驱们面前。这不禁让我们想去了解,是什么技术使这一危机延缓了尽20年。 要找到问题的答案,让我们先来简略回顾一下IPv4协议。 IPv4即网际网协议第4版——Internet Protocol Version 4的缩写。IPv4定义一个跨越异种网络互连的超级网

 ipv4指令优化以及Invalid argument错误解析

有些话、适合烂在心里 提交于 2019-12-03 11:31:00
ipv4指令优化以及Invalid argument错误解析 2017年08月11日 11:34:05 阅读数:399 为了使nginx中ipv4优化参数长久生效,可以将参数设置追加到/etc/sysctl.conf文件中。 net.core.netdev_max_backlog参数 net.core.netdev_max_backlog = 262144 1 用于设置内核无法及时处理网络接口收到的数据包时允许发送到队列的最大数据包数目,默认为128(不同linux系统会存在差异)。 net.core.somaxconn参数 net.core.somaxconn = 262144 1 用于设置系统同时发起的TCP连接数,数值较小时,无法应付高并发情形,导致连接超时、重传等问题。 net.ipv4.tcp_max_orphans参数 net.ipv4.tcp_max_orphans = 262144 1 用于设置最多允许多少TCP套接字不被关联到用户文件句柄。一旦超过该数值,没有关联到文件句柄的TCP套接字将会被复位,同时给出警告信息。在系统内存充足的情况下可增大该值。 net.ipv4.tcp_max_syn_backlog参数 net.ipv4.tcp_max_syn_backlog = 262144 1 用于设置尚未收到客户端确认信息的连接请求的最大值

Why does IPAddress.MapToIPv4() throw ArgumentOutOfRangeException?

独自空忆成欢 提交于 2019-12-03 11:03:02
This code throws an ArgumentOutOfRangeException on the last line var initAddress = IPAddress.Parse("1.65.128.190"); var ipv6Address = initAddress.MapToIPv6(); Assert.IsTrue(ipv6Address.IsIPv4MappedToIPv6); var ipv4Address = ipv6Address.MapToIPv4(); Can anyone explain why MapToIPv6() and MapToIPv4() are not round trip compatible? edit: The exception originates from the IPAddress constructor, called by MapToIPv4(). Also, when the first line is var initAddress = IPAddress.Parse("1.65.128.90"); no exceptions are thrown anymore edit2: as @Luaan reproduced this, I added the tag [bug-reporting]. Also

cast from sockaddr * to sockaddr_in * increases required alignment

匿名 (未验证) 提交于 2019-12-03 09:02:45
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: The compiler produces this warning when I'm working with some code which looks like - .... for(p = res; p != NULL; p = p->ai_next) { void *addr; std::string ipVer = "IPv0"; if(p->ai_family == AF_INET) { ipVer = "IPv4"; struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr; addr = &(ipv4->sin_addr); } else { ipVer = "IPv6"; struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; addr = &(ipv6->sin6_addr); } .... } where p = res are of type struct addrinfo and the types producing warnings are sockaddr_in and sockaddr_in6 . The

Linux防火墙firewalld安全设置

99封情书 提交于 2019-12-03 08:59:28
背景描述 防火墙是具有很好的保护作用。***者必须首先穿越防火墙的安全防线,才能接触目标计算机。在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙设置,有效避免安全隐患等问题,建议大家还是花个十多分钟好好看一下防火墙的理论,这样便于后期问题排查,最后一小节有常用命令操作。 主要内容 1 详细了解防火墙相关配置; 2 详细解读相关安全配置方法; 3 详细解读firewalld防火墙的基础知识; 4 了解firewalld防火墙的配置; 5 了解firewalld防火墙相关命令的使用。 1.Linux防火墙概述 防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性。它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务。它可以根据网络传输的类型决定IP包是否可以传进或传出内部网。 防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序进行一一比较,直到满足其中的一条规则为止,然后依据控制机制做出相应的动作。如果都不满足,则将数据包丢弃,从而保护网络的安全。 Linux系统的防火墙功能是由内核实现的。在2.4 版及以后的内核中,包过滤机制是netfilter.CentOS 6管理工具是iptables,CentOS

Linux 半连接队列,全连接队列

橙三吉。 提交于 2019-12-03 06:52:06
socket 中 listen api中参数backlog指定的是 全队列大小 accept api是从全队列中获取, 没有就阻塞了, 直到有新连接进来. listen中指定的值大小,有一个最大上限, 这个上限是系统内核中设定的. 在配置文件中: /proc/sys/net/core/somaxconn 这个值默认是128. 三次握手: 客户端发一个syn包, 服务器发一个包(syn+ack), 客户端发一个ack确认包. 至此连接完成 半连接是是未完成队列: /proc/sys/net/ipv4/tcp_syncookies 是否缓存syn 这个值操作系统内部设定的, 在 /proc/sys/net/ipv4/tcp_max_syn_backlog 文件中. 默认是1024 [root@118 ipv4]# cat tcp_timestamps 1 [root@118 ipv4]# cat tcp_thin_linear_timeouts 0 [root@118 ipv4]# cat tcp_fin_timeout 60 [root@118 ipv4]# cat /proc/sys/net/ipv4/tcp_syncookies 1 [root@118 ipv4]# cat tcp_synack_retries 2 [root@118 ipv4]# cat tcp_syn