Linux-网络部分总结(二实验)

实验前期准备

REL=cat /etc/redhat-release | sed -nr "s#.* ([0-9]).*#\1#p"
unselinux(){
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
};unselinux
unfirewalld () {
if [ $REL =~ 6 ];then
chkconfig iptables off
service iptables stop
echo "Close the firewalld 6 "
elif [ $REL =~ 7 ];then
systemctl stop firewalld
systemctl disable firewalld
echo "Close the firewalld 7 "
fi
};unfirewalld
日常关闭防火墙和selinux

配置开始

配置网络ip地址

centos 6(7) ip地址都存放在/etc/sysconfig/network-scripts/
里面的ifcfg-eth0/ens33
DNS解析 /etc/resolv,config
vim /etc/udev/rules.d/70-persistent-net.rules 里面网卡名
eth|ethtool -i eth0 查看网卡模块状态 eth0网卡来自e1000
modprobe -r e1000|rmmod e1000 卸载网卡驱动模块卸载
modprobe e1000 恢复模块 完成网卡名的启动

/etc/sysconfig/network-scripts/ifcfg-eth0 的格式 稍微配置了一下6,7一样
DEVICE=eth0
NAME="System eth0"
BOOTPROTO=static=none dhcp
IPADDR=192.168.60.133
NETMASK=255.255.255.0
GATEWAY=192.168.60.1
DNS1=114.114.114.114
DNS2=8.8.8.8
ONBOOT=yes 到这都是必须配置的,下面的自己选择咯

TYPE=Ethernet
UUID=ad0682f9-4e4c-43fb-87f0-c69eb6418f38
NM_CONTROLLED=yes
HWADDR=00:0C:29:F8:74:31
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no

CentOS 7使用基于硬件,设备拓扑和设置类型命名:
(1)systemd对网络设备的命名方式
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
(e) 上述均不可用时,则使用传统命名机制
基于BIOS支持启用biosdevname软件 |内置网卡:em1,em2 pci卡:pYpX Y:slot ,X:port
(2) 名称组成格式
en: Ethernet 有线局域网
wl: wlan 无线局域网
ww: wwan无线广域网
名称类型:
o<index>: 集成设备的设备索引号
s<slot>: 扩展槽的索引号
x<MAC>: 基于MAC地址的命名
p<bus>s<slot>: enp2s1 总线加插槽

将7的命名改为传统命名:
sed -i 's@GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet@& net.ifnames=0@' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot 重启生效 并按照上面的ifcfg-eth0内容配置对应的地址

配置主机名

CentOS 6 /etc/sysconfig/network|/etc/hosts
li
centos 7 是没有/etc/sysconfig/
hostnamectl set-hostname "centos7.localdomain"
hostnamectl set-hostname "centos7.localdomain" --static
hostnamectl set-hostname "centos7.localdomain" --pretty

配置路由

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.60.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

hostname (){
if [ $REL =~ 7 ];then
hostnamectl set-hostname "centos7.localdomain"
hostnamectl set-hostname "centos7.localdomain" --static
hostnamectl set-hostname "centos7.localdomain" --pretty
hostname centos7.localdomain
sed -i 's/^127.*/& centos7.localdomain/' /etc/hosts
elif [ $REL =~ 6 ];then
sed -i 's/HOSTNAME=.*/HOSTNAME=centos6.localdomain/' /etc/sysconfig/network
hostname centos6.localdomain
else echo "i don't know"
fi
};hostname

路由:
路由表:目标网络ID netmask(genmask)|接口(iface)到达目标网络,应该从本设备的Negev接口发出去就可以到达|网关GATEWAY 到达目标网络,将数据包交给下一个路由器的邻近本设备的接口的IP
实验:关闭防火墙、selinux、NetworkManager
A eth0 routel eth1 eth0 route2 eth1 B
A:192.168.36.123/24 GATEWAY:192.168.36.200
Router1:
eth0 192.168.36.200/24
eth1 10.0.0.200/8
route add -net 172.22.0.0/16 gw 10.0.0.201
echo 1 > /proc/sys/net/ipv4/ip_forward(liunx机器收到报文会扔)
Router2
eth1:10.0.0.201/8
eth0:172.22.0.201/16
route add -net 192.168.36.0/24 gw 10.0.0.200
echo 1 > /proc/sys/net/ipv4/ip_forward
B:172.22.0.123/16 GATEWAY:172.22.0.201
traceroute 172.22.0.123
。。。。。。。。。。
route add -net 172.22.0.0 netmask 255.255.0.0 gw 10.0.0.201
route add -net 192.168.36.0 netmask 255.0.0.0 gw 10.0.0.200
这个实验就很nice了

配置bond0

网络接口配置-bonding
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
Bonding工作模式
Mode 0 (balance-rr)轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力
Mode 1 (active-backup)活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
Mode 3 (broadcast)广播策略:在所有的slave接口上传送所有的报文,提供容错能力
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
首先地址在同一模块
创建虚拟bonding设备
/etc/sysconfig/network-scripts/ifcfg-bond0--创建bonding设备的配置文件
DEVICE=bond0
NAME=bond
BOOTPROTO=none:配地址省略
BONDING_OPTS= “miimon=100 mode=0”
/etc/sysconfig/network-scripts/ifcfg-eth0|两个都加入
DEVICE=eth0
MASTER=bond0 。。。
SLAVE=yes 。。。
BOOTPROTO=none:此处地址以无效
USERCTL=no
查看bond0状态:/proc/net/bonding/bond0|动态观察主备
cat /sys/class/net/bonding_mas.. 看bond设备
miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
删除bond0 将修改的配置文件恢复
ifconfig bond0 down禁用网卡|lsmod查看模块是否在运用|rmmod bonding卸载模块

nmcli实现bonding  

添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
启动绑定
nmcli con up mybond0

配置网桥

网桥:解决冲突域
桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
两台主机,一个桥接设备,一个v6 v16
桥接设备配置:清地址,工具bridge-utils
brctl show查看桥接设备
brctl addbr br0|brctl show|ip a
brctl addif br0 eth0
brctl addif br0 eth1
ip link set br0 up
brctl showmacs br0 查看mac地址表
ip a a 192.168.60.2 dev br0 加个地址好管理

配置实现网桥
nmcli con add con-name mybr0 type bridge con-name br0 ifname br0
nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual
nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0
查看配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
工具包 yum install bridge-utils
查看网桥 brctl show
查看CAM表 brctl showmacs br0
添加和删除网桥 brctl addbr | delbr br0
添加和删除网桥中网卡 brctl addif | delif eth0
注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口

配置网络组team

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现
实验:创建网络组
ip link
nmcli con add type team con-name myteam0 ifname team0 config '{"runner": {"name": "activebackup"}}'
nmcli con mod team0 ipv4.addresses '192.168.0.100/24'
nmcli con mod team0 ipv4.method manual
nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
teamdctl team0 state
ping -I team0 192.168.0.254
nmcli dev dis eno1
teamdctl team0 state
nmcli con up team0-port1
nmcli dev dis eno2
teamdctl team0 state
nmcli con up team0-port2
teamdctl team0 state
/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.16.0.100
PREFIX0=24
AME=team0
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
删除网络组
nmcli connection down team0
teamdctl team0 state
nmcli connection show
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
nmcli connection show

补充上述需要的命令

centos6 工具集 net-tools和 iproute(新) man自己查咯--工具包
setup(图形工具)centos6的图形配置工具 功能很强大,建议去找几篇好的博客了解一下
ifconfig [interface] ip link 命令
ifconfig -a
ifconfig IFACE [up|down] 启用禁用
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up]
ifconfig eth0:1/2 172.22.0.16|26/16 网卡别名虚拟网卡 会丢默认路由 重启服务

route 命令 route -n
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
route add -host 1.1.1.1 gw 172.20.0.1
默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
route del (删除路由)
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

mtr 地址

tcpdump命令 是一款抓包,嗅探器工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析
-i<网络界面>:使用指定的网络截面送出数据包
tcpdump -i eth1 +协议及抓对应协议的包

netstat 新命令ss 基本相通
显示网络连接
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp协议相关 -u: udp协议相关
-w: raw socket相关 -l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式 -p: 显示相关进程及PID|lsof -i :pid 查看进程谁在用
常用组合 -tan, -uan, -tnl, -unl
显示路由表:
-r: 显示内核路由表 -n: 数字格式
显示接口统计数据
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
netstat -i 显示流量
netstat –I=IFACE (不能netstat -I eth0)
ifconfig -s eth0

watch(选项)(参数)
-n # 或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d # 或--differences 用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t # 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h, --help # 查看帮助文档
watch -n1 netstat -i

ss命令 ss [OPTION]... [FILTER]
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息
-m:内存用量 -w: 裸套接字相关
-x:unix sock相关 -l: listen状态的连接
-t: tcp协议相关 -u: udp协议相关
-n: 数字格式 -p: 相关的程序及PID
-e: 扩展的信息 -a: 所有
-o:计时器信息
FILTER : [ state TCP-STATE ] [ EXPRESSION ] 过滤状态
TCP的常见状态:tcp finite state machine:
LISTEN: 监听 ESTABLISHED:已建立的连接
FIN_WAIT_1 FIN_WAIT_2
SYN_SENT SYN_RECV
CLOSED EXPRESSION:
dport = sport =
示例:’( dport = :ssh or sport = :ssh )’
常用组合:-tan, -tanl, -tanlp, -uan
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
ss -s 列出当前socket详细信息

ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE
可设置属性:
up and down:激活或禁用指定接口 ifup/ifdown
show [dev IFACE]:指定接口
[up]:仅显示处于激活状态的接口
ip addr = ip a|可以缩写
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
ip addr add 1.1.1.1/24 dev eth1 两个地址,ifconfig看不见
ip addr add 1.1.1.1/24 dev eth1 label eth1:test|2 ifconfig看的见别名\
ip a a 1.1.1.1/24 dev wth1 label eth1:3 scope link
[scope {global|link|host}]:指明作用域
global: 全局可用;作用于整个设备每个网卡都可被识别
link: 仅链接可用:作用于某一个网卡设备只识别固定网卡
host: 本机可用;仅自己可用,不具有网络功能
[broadcast ADDRESS]:指明广播地址
ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary(主要的) and secondary(次要的)]
ip addr flush 使用格式同show
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
ip route - routing table management
添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
添加网关:ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
删除路由:ip route del TARGET
显示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
ip link 查看数据链路层 ip link show eth1|eth0
ip link set dev eth1 down;ifconfig eth1 down
ip link set dev eth1 up
ip route 查看
ip route add 2.2.2.0/24 via 172.20.0.1 dev eth1
ip route del .....

centos7
图形工具:nm-connection-editor
字符配置tui工具:nmtui| nmtui-connect| nmtui-edit| nmtui-hostname
命令行工具:nmcli
nmcli connection 查看设备名
nmcli connection modify 原网卡名 connect.id eth1
nmcli connection reload 重新加载
centos6 system-config-network字符界面改网卡名或setup第四项网络设置
nmcli命令实验:
nmcli connection show
nmcli connection modify eth1 ipv4.method manual ipv4.addresses 172.22.0.12 ...
nmcli connection up eth1
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device help
connection - start, stop, and manage network connections
nmcli connection help
修改IP地址等属性:
nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ipv4.gateway
ipv4.dns1 ipv4.method manual | auto
修改配置文件执行生效:systemctl restart network | nmcli con reload
nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0

ping
-c<完成次数>:设置完成要求回应的次数;
-f:极限检测;
-i<间隔秒数>:指定收发信息的间隔时间;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置数据包的大小;
-v:详细显示指令的执行过程

补充用到的配置文件的原始安装格式

转载于:https://blog.51cto.com/14230286/2378184

Linux-网络部分总结(二实验)相关推荐

  1. c++ 共享内存_关于Linux共享内存的实验 [二] - 原因

    关于Linux共享内存的实验 [一] 上文采用的"删文件"和"杀进程"的方法主要是为了快速演示实验现象,但这种做法不利于通过调试手段进一步探究其内在的逻辑.为此 ...

  2. linux shell程序设计实验报告,linux的shell脚本实验报告

    <linux的shell脚本实验报告>由会员分享,可在线阅读,更多相关<linux的shell脚本实验报告(7页珍藏版)>请在人人文库网上搜索. 1.第二次实验内容一.实验名称 ...

  3. 交叉编译及linux简单程序设计,嵌入式实验6交叉编译及Linux简单程序设计实验

    实验六交叉编译及Linux简单程序设计实验的实验报告 一实验目的 1.了解和掌握交叉编译模式和方法: 2.熟悉和掌握Linux简单程序设计. 二实验环境 预装Fedora10_A8_Linux的pc机 ...

  4. linux中关于ssh实验,操作系统实验三linux的telnetftpssh的相关配置及验证

    操作系统实验三linux的telnetftpssh的相关配置及验证 -1-昆明理工大学信息工程与自动化学院学生实验报告( 2010 -2011 学年第 二 学期 )课程名称:操作系统 开课实验室:信自 ...

  5. windows的盘共享挂载到linux下,通过Windows共享文件夹直接挂载到Linux中使用(实验操作)...

    通过Windows共享文件夹直接挂载到Linux中使用 实验背景:如果在Windows上有下载的压缩包,我们可以直接通过Windows的共享直接挂载到Linux中直接使用 实验环境:Windows系统 ...

  6. Linux邮件服务器搭建实验

    Linux邮件服务器搭建实验 前言 本文重点在于后面的搭建过程,前面会简单介绍邮件服务原理与工作流程,如果有什么错误或遗漏的地方,欢迎大家指正批评,谢谢. 基本理论说明 电子邮件服务器是处理邮件交换的 ...

  7. linux用户和组管理的实验报告,linux用户管理任务实验报告

    linux用户管理任务实验报告 <实用操作系统>实验报告 实验报告:实验项目名称:用户管理任务 班级:学号:姓名: 地点:时间: 实验内容: 一.用户管理 (一)添加用户useradd 1 ...

  8. 【正点原子MP157连载】第二十八章 Linux并发与竞争实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  9. Linux学习系列二:Linux中的常用命令

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  10. linux 信号量 自旋锁 测试 实验,「正点原子Linux连载」第四十八章Linux并发与竞争实验...

    1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南> 关注官方微信号公众号,获取更多资料:正点原子 第四十八章Linux并发与竞争实验 在上 ...

最新文章

  1. 关于java中敏感词检测的一些总结
  2. ubuntu12.04安装libgl1-mesa-glx:i386问题解决办法
  3. Linux内核调试技术——kprobe使用与实现
  4. mysql输出代码_mysql常用代码
  5. 详解SQL中drop、delete和truncate的异同
  6. Linux系统文件压缩与备份(5)
  7. 优秀员工和普通员工的十大区别,老板和员工都应该知道
  8. URLDecoder/URLEncoder使用场景
  9. Ubuntu 截图工具
  10. 创建一维数组,存储班级中10位同学的年龄信息,并求出班级同学的平均年龄。找出班级中的最小年龄和最大年龄。(冒泡排序)
  11. 冷色调也能表现画面炽热感?原来还有这么多种方法~
  12. 路由配置与管理——ISIS路由配置与管理
  13. 我的python初学练习
  14. 移动硬盘安装ubuntu(UEFI)——遇到的问题以及解决方法
  15. Rsutdio安装REmap包出现错误及解决办法
  16. AVG神作是如何炼成的? 《逆转裁判》成步堂三部曲解析
  17. 对Android apk 签名 --apksigner
  18. LCS 最大公共序列算法
  19. 三阶矩阵的特征值一般求解
  20. Device Tree中的.dts和dtsi文件介绍

热门文章

  1. Python算法——分治法查找数组中元素最小最大值
  2. windowsC盘清理
  3. s5pv210 u-boot的那些事儿之---mem_setup.S的分析
  4. GB28181协议--SIP协议介绍
  5. PE文件格式详解(八)
  6. kindeditor富文本编译器
  7. 通过短信网关发送Wappush(包括超长Wappush)
  8. Rational Rose工具使用技巧
  9. 基于 Tensorflow 2.x 从零训练花卉图像识别模型
  10. 学习笔记(二):WiFi-无接触感知与菲涅尔区