sdn小结(一)_SDN的基本概念

sdn小结(一)_SDN的基本概念看了一周的sdn,写下一点总结和心得体会。1.sdn中不一定非得用openflow来作为南向协议,其他的南向接口协议还有很多,比如pcep,netconf,snmp,bgp-ls2.segmentrouting也需要一个集中的控制器,只要硬件条件支持,sr可以和sdn进行结合3.ECMP通过对流的数据包头部进行哈希取模运算,将数据流映射到不同的转发路径4.谷歌的B4采取的是i…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

看了一周的sdn,写下一点总结和心得体会。

1.sdn中不一定非得用openflow来作为南向协议,其他的南向接口协议还有很多,比如pcep,netconf,snmp,bgp-ls
这里写图片描述
2.segment routing也需要一个集中的控制器,只要硬件条件支持,sr可以和sdn进行结合
3.ECMP通过对流的数据包头部进行哈希取模运算,将数据流映射到不同的转发路径
4.谷歌的B4采取的是ip-in-ip的形式进行的
5.一些论文:
1)http://www.jos.org.cn/jos/ch/reader/create_pdf.aspx?file_no=16039&year_id=2016&quarter_id=S2&falg=1
2)http://www.jsjkx.com/jsjkx/ch/reader/create_pdf.aspx?file_no=20176A061&year_id=2017&quarter_id=6A&falg=1
3)http://www.jos.org.cn/josen/ch/reader/create_pdf.aspx?file_no=4935&year_id=2016&quarter_id=2&falg=1
4)https://patentimages.storage.proxy.ustclug.org/57/59/4a/b7a6cd6ab20796/CN107070792A.pdf
5)https://patentimages.storage.proxy.ustclug.org/9b/7f/50/d733c3bb64f443/CN104468352A.pdf
6.这里写图片描述
7.**Linux网络配置
Linux网络配置方法简介。**

配置IP地址

使用ipconfig

ifconfig eth0 192.168.1.3 netmask 255.255.255.0

使用用ip命令增加一个IP

ip addr add 192.168.1.4/24 dev eth0

使用ifconfig增加网卡别名

ifconfig eth0:0 192.168.1.10
这样配置的IP地址重启机器后会丢失,所以一般应该把网络配置写入文件中。如Ubuntu可以将网卡配置写入/etc/network/interfaces(Redhat和CentOS则需要写入/etc/sysconfig/network-scripts/ifcfg-eth0中):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1

auto eth1
iface eth1 inet dhcp
配置默认路由

使用route命令

route add default gw 192.168.1.1

也可以使用ip命令

ip route add default via 192.168.1.1
配置VLAN

安装并加载内核模块

apt-get install vlan
modprobe 8021q

添加vlan

vconfig add eth0 100
ifconfig eth0.100 192.168.100.2 netmask 255.255.255.0

删除vlan

vconfig rem eth0.100
配置硬件选项

改变speed

ethtool -s eth0 speed 1000 duplex full

关闭GRO

ethtool -K eth0 gro off

开启网卡多队列

ethtool -L eth0 combined 4

开启vxlan offload

ethtool -K ens2f0 rx-checksum on
ethtool -K ens2f0 tx-udp_tnl-segmentation on

查询网卡统计

ethtool -S eth0

8.网桥(bridge)
网桥是一个二层设备,工作在链路层,主要是根据MAC学习来转发数据到不同的port。

创建网桥

brctl addbr br0

添加设备到网桥

brctl addif br0 eth1

查询网桥mac表

brctl showmacs br0
veth
veth pair是一对虚拟网络设备,一端发送的数据会由另外一端接受,常用于不同的网络命名空间。

创建veth pair

ip link add veth0 type veth peer name veth1

将veth1放入另一个netns

ip link set veth1 netns newns
TAP/TUN
TAP/TUN设备是一种让用户态程序向内核协议栈注入数据的设备,TAP等同于一个以太网设备,工作在二层;而TUN则是一个虚拟点对点设备,工作在三层。

ip tuntap add tap0 mode tap
ip tuntap add tun0 mode tun这里写代码片
10**.lvs**
Linux Virtual Server (lvs) 是Linux内核自带的负载均衡器,也是目前性能最好的软件负载均衡器之一。lvs包括ipvs内核模块和ipvsadm用户空间命令行工具两部分。

在lvs中,节点分为Director Server和Real Server两个角色,其中Director Server是负载均衡器所在节点,而Real Server则是后端服务节点。当用户的请求到达Director Server时,内核netfilter机制的PREROUTING链会将发往本地IP的包转发给INPUT链(也就是ipvs的工作链),在INPUT链上,ipvs根据用户定义的规则对数据包进行处理(如修改目的IP和端口等),并把新的包发送到POSTROUTING链,进而再转发给Real Server。
11.https://nginx.org/en/
https://mp.weixin.qq.com/s?__biz=MzA3OTgyMDcwNg%3D%3D&idx=1&mid=2650625837&sn=2b86df07eabba8ff2035583913a0ef41
12.scapy
scapy是一个强大的python网络数据包处理库,它可以生成或解码网络协议数据包,可以用来端口扫描、探测、网络测试等。

scapy安装
pip install scapy
简单使用
scapy提供了一个简单的交互式界面,直接运行scapy命令即可进入。当然,也可以在python交互式命令行中导入scapy包进入

from scapy.all import *
查看所有支持的协议和预制工具:
ls()
lsc()
构造IP数据包
pkt=IP(dst=”8.8.8.8”)
pkt.show()
print pkt.dst # 8.8.8.8
str(pkt) # hex string
hexdump(pkt) # hex dump
输出HEX格式的数据包
import binascii
from scapy.all import *
a=Ether(dst=”02:ac:10:ff:00:22”,src=”02:ac:10:ff:00:11”)/IP(dst=”172.16.255.22”,src=”172.16.255.11”, ttl=10)/ICMP()
print binascii.hexlify(str(a))
TCP/IP协议的四层模型都可以分别构造,并通过/连接
Ether()/IP()/TCP()
IP()/TCP()
IP()/TCP()/”GET / HTTP/1.0\r\n\r\n”
Ether()/IP()/IP()/UDP()
Ether()/IP(dst=”www.slashdot.org”)/TCP()/”GET /index.html HTTP/1.0 \n\n”
从PCAP文件读入数据
a = rdpcap(“test.cap”)
发送数据包

三层发送,不接收

send(IP(dst=”8.8.8.8”)/ICMP())

二层发送,不接收

sendp(Ether()/IP(dst=”8.8.8.8”,ttl=10)/ICMP())

三层发送并接收

二层可以用srp, srp1和srploop

result, unanswered = sr(IP(dst=”8.8.8.8”)/ICMP())

发送并只接收第一个包

sr1(IP(dst=”8.8.8.8”)/ICMP())

发送多个数据包

result=srloop(IP(dst=”8.8.8.8”)/ICMP(), inter=1, count=2)
嗅探数据包
sniff(filter=”icmp”, count=3, timeout=5, prn=lambda x:x.summary())
a=sniff(filter=”tcp and ( port 25 or port 110 )”,
prn=lambda x: x.sprintf(“%IP.src%:%TCP.sport% -> %IP.dst%:%TCP.dport% %2s,TCP.flags% : %TCP.payload%”))
SYN扫描
sr1(IP(dst=”172.217.24.14”)/TCP(dport=80,flags=”S”))
ans,unans = sr(IP(dst=[“192.168.1.1”,”yahoo.com”,”slashdot.org”])/TCP(dport=[22,80,443],flags=”S”))
TCP traceroute
ans,unans=sr(IP(dst=”www.baidu.com”,ttl=(2,25),id=RandShort())/TCP(flags=0x2),timeout=50)
for snd,rcv in ans:
print snd.ttl,rcv.src,isinstance(rcv.payload,TCP)
ARP Ping
ans,unans=srp(Ether(dst=”ff:ff:ff:ff:ff:ff”)/ARP(pdst=”192.168.1.0/24”),timeout=2)
ans.summary(lambda (s,r): r.sprintf(“%Ether.src% %ARP.psrc%”) )
ICMP Ping
ans,unans=sr(IP(dst=”192.168.1.1-254”)/ICMP())
ans.summary(lambda (s,r): r.sprintf(“%IP.src% is alive”) )
TCP Ping
ans,unans=sr( IP(dst=”192.168.1.*”)/TCP(dport=80,flags=”S”) )
ans.summary( lambda(s,r) : r.sprintf(“%IP.src% is alive”) )

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196582.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Opencv 中 waitkey()& 0xFF,“0xFF”的作用解释

    Opencv 中 waitkey()& 0xFF,“0xFF”的作用解释这几日学习OpenCV,刚碰到这个表达式时,对于0xFF的作用不太理解,难道下面两个语句还有区别?(Esc的ASCII码为27,即判断是否按下esc键)ifcv2.waitkey(30)==27ifcv2.waitkey(30)&0xff==27疑惑首先&运算即“and”运算。其次0xFF是16进制数,对应的二进制数为11111111。然后cv2….

    2022年6月19日
    30
  • PyQt5高级界面控件之QThread(十二)

    PyQt5高级界面控件之QThread(十二)QThread前言QThread是Qt线程类中最核心的底层类。由于PyQt的跨平台特性,QTHread要隐藏所有与平台相关的代码要使用QThread开始一个线程,可以创建它的一个子类,然后覆盖器其QThread.run()函数classThread(QThread):def__init__(self):super(Thread,self)._…

    2022年5月28日
    39
  • linux yum源配置文件_yum源配置文件详解

    linux yum源配置文件_yum源配置文件详解linux配置yum源的三种方法

    2022年8月13日
    7
  • 贝叶斯定理

    贝叶斯定理条件概率和全概率在介绍贝叶斯定理之前,先简单地介绍一下条件概率,描述的是事件A在另一个事件B已经发生条件下的概率,记作 ,A和B可能是相互独立的两个事件,也可能不是: 表示A,B事件同时发生的概率,如果A和B是相互独立的两个事件,那么:上面的推导过程反过来证明了如果A和B是相互独立的事件,那么事件A发生的概率与B无关。稍微做一下改变:考虑到先验条件B…

    2022年6月1日
    54
  • TCP的三次握手与四次挥手理解及面试题(很全面)

    TCP的三次握手与四次挥手理解及面试题(很全面)本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文…

    2022年5月5日
    36
  • 廖雪峰老师的python教程中的几个学习笔记的备份

    廖雪峰老师的python教程中的几个学习笔记的备份

    2022年3月4日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号