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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSH实现远程控制

    SSH(SecureShell)是一种能够提供安全远程登录会话的协议,使用ssh可以在远程linux中执行命令。sshd服务提供两种安全验证的方法:(1)基于口令的安全验证:经过验证帐号与密码即

    2021年12月28日
  • linux环境下安装nginx步骤

    linux环境下安装nginx步骤

    2021年10月14日
  • python 中的 type(), dtype(), astype()的区别

    python 中的 type(), dtype(), astype()的区别函数 说明 type() 返回数据结构类型(list、dict、numpy.ndarray等) dtype() 返回数据元素的数据类型(int、float等) 备注:1)由于list、dict等可以包含不同的数据类型,因此不可调用dtype()函数 2)np.array中要求所有元素属于同一数据类型,因此可调用d…

    2022年6月7日
  • 下载视频网站中ts格式的视频[通俗易懂]

    下载视频网站中ts格式的视频[通俗易懂]下载视频网站中ts格式的视频1、第一步打开开发者工具Chrome中可以用【F12】或者【Crtl+Shift+I】或者【自定义】(也就是三个点的选项按钮)下面的【更多工具】——【开发者工具】(Chroem版本86)找到【network】并刷新网页2、如果有m3u8结尾的文件,把它的源地址复制下来Chrome开发者工具第三行开头,有一个【filter】(过滤器)在里面输入【m3u8】就可以搜索,寻找.m3u8结尾的文件右键【xxx.m3u8】文件,找到copycopylink

    2022年7月18日
  • visual studio code好用的插件(ae的插件)

    最后一款插件真的很实用》》》

    2022年4月13日
  • Linux之convert命令

    Linux之convert命令Linux之convert命令强大的convert命令convert命令可以用来转换图像的格式,支持JPG,BMP,PCX,GIF,PNG,TIFF,XPM和XWD等类型,下面举几个例子:

    2022年7月4日

发表回复

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

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