iNet

Qemu-4.1 桥接网络设置

北慕城南 提交于 2020-11-09 17:30:04
参考: [qemu] qemu旧的net参数已经不再可用了,新的这样用。 QEMU's new -nic command line option 用Qemu模拟vexpress-a9 --- 配置 qemu 的网络功能 http://www.360doc.com/content/12/0611/14/7982302_217438857.shtml Qemu版本: 4.1.0 从3.0开始,不再支持vlan,需要改为如下的方式。 1、设置添加桥接br0,修改 /etc/network/interfaces # interfaces( 5 ) file used by ifup( 8 ) and ifdown( 8 ) auto lo iface lo inet loopback auto br0 iface br0 inet dhcp bridge_ports enp3s0 2、增加/etc/qemu-ifup和/etc/qemu-ifdown qemu-ifup: #!/bin/ bash # up tapx sudo ifconfig $ 1 0.0 . 0.0 promisc up # add tapx to br0 sudo brctl addif br0 $ 1 # show sudo brctl show qemu-ifdown: #在4.1版本上啥也不用做

Kubernetes容器网络

坚强是说给别人听的谎言 提交于 2020-11-09 08:51:51
在Kubernetes中要保证容器之间网络互通,网络至关重要。而Kubernetes本身并没有自己实现容器网络,而是通过插件化的方式自由接入进来。在容器网络接入进来需要满足如下基本原则: Pod无论运行在任何节点都可以互相直接通信,而不需要借助NAT地址转换实现。 Node与Pod可以互相通信,在不限制的前提下,Pod可以访问任意网络。 Pod拥有独立的网络栈,Pod看到自己的地址和外部看见的地址应该是一样的,并且同个Pod内所有的容器共享同个网络栈。 容器网络基础 一个Linux容器的网络栈是被隔离在它自己的Network Namespace中,Network Namespace包括了:网卡(Network Interface),回环设备(Lookback Device),路由表(Routing Table)和iptables规则,对于服务进程来讲这些就构建了它发起请求和相应的基本环境。而要实现一个容器网络,离不开以下Linux网络功能: 网络命名空间:将独立的网络协议栈隔离到不同的命令空间中,彼此间无法通信 Veth Pair:Veth设备对的引入是为了实现在不同网络命名空间的通信,总是以两张虚拟网卡(veth peer)的形式成对出现的。并且,从其中一端发出的数据,总是能在另外一端收到 Iptables/Netfilter:Netfilter负责在内核中执行各种挂接的规则

Keepalived+LVS实现高可用负载均衡Web集群

…衆ロ難τιáo~ 提交于 2020-11-06 02:27:58
一 、原理及简介: 1.1 Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案。Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。 后来Keepalived又加入了VRRP的功能,VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,实现高可用性,因此Keepalvied 一方面具有服务器状态检测和故障隔离功能,另外一方面也有HA cluster功能,下面介绍一下VRRP协议实现的过程。 上图是Keepalived的功能体系结构,大致分两层:用户空间(user space)和内核空间(kernel space)。 内核空间:主要包括IPVS(IP虚拟服务器,用于实现网络服务的负载均衡)和NETLINK(提供高级路由及其他相关的网络功能)两个部份。 用户空间: WatchDog

(转)图解Linux网络包接收过程

一曲冷凌霜 提交于 2020-11-02 18:37:07
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。 我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我们用udp来举例,如下: int main (){ int serverSocketFd = socket ( AF_INET , SOCK_DGRAM , 0 ); bind ( serverSocketFd , ...); char buff [ BUFFSIZE ]; int readCount = recvfrom ( serverSocketFd , buff , BUFFSIZE , 0 , ...); buff [ readCount ] = '\0' ; printf ( "Receive from client:%s \n " , buff ); } 上面代码是一段udp server接收收据的逻辑。 当在开发视角看的时候,只要客户端有对应的数据发送过来,服务器端执行 recv_from 后就能收到它,并把它打印出来。我们现在想知道的是,当网络包达到网卡,直到我们的

linux配置禁用启用IPv6

谁都会走 提交于 2020-11-02 15:20:18
IPv6被认为是IPv4的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题。 但目前,开启IPv6可能会导致一些问题。因此有时我们需要关闭IPv6。 下面是IPv6的关闭方法应该适用于所有主流的Linux发行版包括Ubuntu、Debian、CentOS。 IPv6在CentOS6.5系统中默认是启用状态,通过以下方式可以确认IPv6的状态 1.1.查看系统IPv6的启用状态 以下命令返回值为0表示IPv6启用,1表示禁用 cat /proc/sys/net/ipv6/conf/all/ disable_ipv6 cat /proc/sys/net/ipv6/conf/default/disable_ipv6 ifconfig ip address list netstat -anptl 1.2.查看内核模块调用 # 有返回结果,说明IPv6模块已启用,可以看出那些程序进行了调用,反之没有启用 lsmod | grep ipv6 2.禁用IPv6 2.1.临时禁用IPv6 # 命令行调整内核参数,临时禁用IPv6 echo 1 >/proc/sys/net/ipv6/conf/all/ disable_ipv6 echo 1 >/proc/sys/net/ipv6/conf/default/ disable_ipv6 # 或着 sysctl - w net.ipv6.conf

linux socket编程,不限于linux,一切皆socket

此生再无相见时 提交于 2020-10-31 14:48:18
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下: 1、网络中进程之间如何通信? 2、Socket是什么? 3、socket的基本操作 3.1、socket()函数 3.2、bind()函数 3.3、listen()、connect()函数 3.4、accept()函数 3.5、read()、write()函数等 3.6、close()函数 4、socket中TCP的三次握手建立连接详解 5、socket中TCP的四次握手释放连接详解 6、一个例子(实践一下) 7、留下一个问题,欢迎大家回帖回答!!! 如果觉得文章对你有帮助,不妨给我点个关注 知乎:秃顶之路 b站:linux亦有归途 每天都会更新我们的公开课录播以及编程干货和大厂面经 或者直接点击链接 c/c++ linux服务器开发高级架构师 来课堂上跟我们讲师面对面交流

Linux Shell常用shell命令

99封情书 提交于 2020-10-29 11:56:10
一、文件、目录操作命令 1、ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行 ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G) ls -lt 显示文件,按照修改时间排序 2、cd命令 功能:改名目录 cd dir 切换到当前目录下的dir目录 cd / 切换到根目录 cd .. 切换到到上一级目录 cd ../.. 切换到上二级目录 cd ~ 切换到用户目录,比如是root用户,则切换到/root下 3、cp命令 功能:copy文件 cp source target 将文件source复制为target cp /root /source. 将/root下的文件source复制到当前目录 cp –av soure_dir target_dir 将整个目录复制,两目录完全一样 4、rm命令 功能:删除文件或目录 rm file 删除某一个文件 rm -f file 删除时候不进行提示。可以于r参数配合使用 rm -rf dir 删除当前目录下叫dir的整个目录 5、mv命令 功能:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令 mv source target

网络编程

二次信任 提交于 2020-10-29 07:12:43
一、软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:QQ、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构~ 软件开发的架构分为C/S架构和B/S架构。 1.C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2.B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。所以B/S架构是一种轻量级的架构,升级维护方便。 小结:在网络编程中的C/S架构在计算机编程中占据着垄断地位。在C/S架构的基础上有了B/S架构,所以B/S架构是C/S架构的一种特殊形式。 二、网络基础 网络是什么?计算机之间是怎么通信的? 在计算机最早期

计算机网络1

社会主义新天地 提交于 2020-10-27 08:37:50
计算机网络 重点在TCP/IP协议和HTTP协议。 目录 Chapter 1 Chapter 2 Chapter 3 网络层(IP) 传输层(TCP/UDP) 应用层(HTTP) 内容 网络层(IP) 待补充 传输层(TCP/UDP) ISO七层模型中表示层和会话层功能是什么? 表示层:图像、视频编码解,数据加密。 会话层:建立会话,如session认证、断点续传。 描述TCP头部? 序号(32bit):传输方向上字节流的字节编号。初始时序号会被设置一个随机的初始值(ISN),之后每次发送数据时,序号值 = ISN + 数据在整个字节流中的偏移。假设A -> B且ISN = 1024,第一段数据512字节已经到B,则第二段数据发送时序号为1024 + 512。用于解决网络包乱序问题。 确认号(32bit):接收方对发送方TCP报文段的响应,其值是收到的序号值 + 1。 首部长(4bit):标识首部有多少个4字节 * 首部长,最大为15,即60字节。 标志位(6bit): URG:标志紧急指针是否有效。 ACK:标志确认号是否有效(确认报文段)。用于解决丢包问题。 PSH:提示接收端立即从缓冲读走数据。 RST:表示要求对方重新建立连接(复位报文段)。 SYN:表示请求建立一个连接(连接报文段)。 FIN:表示关闭连接(断开报文段)。 窗口(16bit):接收窗口。用于告知对方

007.Nginx虚拟主机

↘锁芯ラ 提交于 2020-10-27 01:50:57
一 虚拟主机 1.1 虚拟主机概念 对于Nginx而言,每一个虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。 1.2 虚拟主机类型 通过 Nginx 可以实现虚拟主机的配置,Nginx 支持三种类型的虚拟主机配置: 基于 IP 的虚拟主机(较少使用) 基于域名的虚拟主机 基于端口的虚拟主机 二 基于IP虚拟主机 2.1 配置多IP地址 1 [root@nginx ~] # ifconfig eth0:0 172.24.8.70 broadcast 172.24.8.255 netmask 255.255.255.0 2 [root@nginx ~] # ip addr | grep 172 3 inet 172.24.8.71/24 brd 172.24.8.255 scope global noprefixroute eth0 4 inet 172.24.8.72/24 brd 172.24.8.255 scope global secondary eth0:0 提示:如上在同一台主机添加多个IP地址。 2.2 创建站点目录 1 [root@nginx ~] # mkdir /usr/share/nginx/ipvhost01/ 2 [root@nginx ~] # mkdir /usr