网桥(Bridge)也叫桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址表对数据帧进行转发,可隔离碰撞域
网桥将网络的多个网段在数据链路层连接起来,并对网络数据帧进行管理
优点:
过滤通信量
扩大了物理范围
提高了可靠性
可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网
缺点:
存储转发增加了时延
在MAC 子层并没有流量控制功能
具有不同 MAC 子层的网段桥接在一起时时延更大
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴
交换机是工作在OSI参考模型数据链路层的设备,外表和集线器相似
它通过判断数据帧的目的MAC地址,从而将数据帧从合适端口发送出去
交换机是通过MAC地址的学习和维护更新机制来实现数据帧的转发
工作原理:
(1)交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中
(2)交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发
(3)如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)
(4)广播帧和组播帧向所有的端口转发
(1)交换机属于数据链路层设备,而集线器属于物理层设备
(2)集线器在转发帧时,不对传输介质进行检测,交换机在转发帧之前必须执行 CSMA/CD 算法。若在发送过程中出现碰撞,就必须停止发送和进行退避。所以交换机能隔离冲突,而集线器却只能增加冲突
(3) 交换机的每个端口可提供专用的带宽,而集线器的所有端口只能共享带宽
(4)集线器只能实现半双工传送,而交换机可支持全双工传送
(5)集线器和交换机都无法隔离广播域
为了实现路由,路由器需要做下列事情:
分隔广播域和冲突域
选择路由表中到达目标最好的路径
维护和检查路由信息
连接广域网
路由:把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完成。
路由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成
vlan原理
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组
这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
优点:
(1)更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能
(2)简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成网络设备的逻辑组,无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机
(3)提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧
(1)基于端口的VLAN
(2)基于MAC地址的VLAN
(3)基于协议的VLAN
(4)基于网络地址的VLAN
TPID:Tag Protocol Identifier(标签协议标识符),2Byte,表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃,各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致
PRI:Priority,3bit,表示数据帧的802.1p(是IEEE 802.1Q的扩展协议)优先级。取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧
CFI:Canonical Format Indicator(标准格式指示位),1bit,表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0
VID:VLAN ID,12bit,表示该数据帧所属VLAN的编号。VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094
第7层应用层—直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输
第6层表示层—格式化数据,以便为应用程序提供通用接口。这可以包括加密服务
第5层会话层—在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式
第4层传输层—常规数据递送-面向连接或无连接。包括全双工或半双工、流控制和错误恢复服务
第3层网络层—本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据
第2层数据链路层—在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址
第1层物理层—原始比特流的传输电子信号传输和硬件接口数据发送时,从第七层传到第一层,接受方则相反。
应用层……………….程序接口规范
表示层 ……………….对数据进行转换,加密,压缩
会话层 ……………….网络连接建立终止
传输层 ……………….保证数据传输的可靠性
网络层…………………路由器,防火墙、多层交换机
数据链路层 ……….网卡,网桥,交换机
物理层…………………中继器,集线器、网线、HUB
传输层——数据段(Segment)
网络层——分组(数据包)(Packet)
数据链路层——数据帧(Frame)
物理层——比特(Bit)
第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
1 发送断开连接的请求
2 确认,数据还没传完,继续发送
3 数据发送完毕,同意断开
4 确认断开连接
IP地址包含网络号和主机号两部分,网络号代表一个子网络,主机号则表示该子网络下某一台具体的主机标号,IP地址根据功能和用途的不同可以划分为五类。
A 类地址:1 . 0 . 0 . 0 ~ 126 . 255 . 255 . 255,前 8 位为网络号,后 24 位为主机号
B 类地址:128 . 0 . 0 .0 ~ 191 . 255 . 255 . 255,前16位为主机号,后16位为主机号
C 类地址:192 . 0 . 0 . 0 ~ 223 . 255 . 255 . 255,前24位为网络号,后8位为主机号
D 类地址:224 . 0 . 0 .0 ~ 239 . 255 . 255 . 255
E 类地址:240 . 0 . 0 . 0 ~ 254 . 255 . 255 . 255
A、B、C三类地址是根据网络规模大小来分配给用户的,例如A类地址有24位的主机号,同一个网络下,一个 A 类地址可以容纳 2^24 - 2 = 16777213 台主机,但是A类地址一共只能分配 126 个网络(这里只是做一个理论上的运算,并不代表实际分配情况),所以这类地址一般分配给那些为数不多的大网络。D类地址用来多播,E类地址做保留地址
另外还有一些特殊地址:
①. 例如主机号全为 1 是该网络的广播地址(例如在一个C类地址的网络中,192. 192 . 192 . 255 , 网络号是前面三个字节, 主机号是后面的一个字节,8位全为1,那么这个地址则是 网络号位 192.192.192.0这个网络的广播地址)。其中 255 . 255 . 255 . 255也是主机所在网络的广播地址;
②. 主机号全为 0 则是该网络的网络地址;
③. 127 . 0 . 0 . 0 ~ 127 . 255 . 255 . 255是主机会送地址,通常用来做网络测试,调试主机与路由是否连接畅通;
④. 其中 10 . 0 . 0 . 0 ~ 10 . 255 . 255 . 255、172 . 16 . 0 . 0 ~ 172 . 31 . 255 . 255、192 . 168 . 0 . 0 ~ 192 . 168 . 255 . 255保留给内部网络使用。
将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
主机名
IP/netmask
路由:默认网关
DNS服务器
主DNS服务器
次DNS服务器
第三个DNS服务器
接口命名方式:CentOS 6
以太网:eth[0,1,2,…]
ppp:ppp[0,1,2,…]
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
/etc/udev/rules.d/70-persistent-net.rules
[root@centos6|~]#cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b3:73:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="XXXXX"
# PCI device 0x8086:0x100f (e1000) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b3:73:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
1,修改配置文件
vim /etc/udev/rules.d/70-persistent-net.rules
2,查看网卡驱动名称
[root@centos6|~]#dmesg |grep -i eth0
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:b3:73:a0
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth0: no IPv6 routers present
8021q: adding VLAN 0 to HW filter on device eth0
e1000: eth0 NIC Link is Down
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:b3:73:a0
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
8021q: adding VLAN 0 to HW filter on device eth0
eth0: no IPv6 routers present
[root@centos6|~]#ethtool -i eth0
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
3,卸载网卡驱动
[root@centos6|~]#modprobe -r e1000
[root@centos6|~]# rmmod e1000
4,装载网卡驱动:
[root@centos6|~]# modprobe e1000
修改网卡名称:方法二
1,禁用网卡
ip a 查看eth0网卡为UP
ip link set eth0 down 禁用
ip a 查看eth0网卡变为DOWN
ip link set eth0 name eth1
ip a
ip link set eth0 up
ip a
静态指定:
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui,setup
ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
[root@centos8|27|~]#ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.1.150 netmask 255.255.0.0 broadcast 172.16.255.255
inet6 fe80::45d2:397a:c907:67b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:a9:94:a5 txqueuelen 1000 (Ethernet)
RX packets 38131 bytes 3669374 (3.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2826 bytes 353823 (345.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos8 ~]#ifconfig eth0 10.0.0.68 netmask 255.255.0.0
[root@centos8 ~]#ifconfig eth0 0.0.0.0/0 #清除eth0上面的IP地址
[root@centos8 ~]#ifconfig eth0 down #启用和禁用网卡
[root@centos8 ~]#ifconfig eth0 up
[root@centos8 ~]#ifconfig eth0:1 172.16.0.8/24 #别名
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255
inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
RX packets 813 bytes 75898 (74.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 563 bytes 76262 (74.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.8 netmask 255.255.255.0 broadcast 172.16.0.255
ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 140 (140.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 140 (140.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos8 ~]#ifconfig eth0:1 down 取消别名
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255
inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
RX packets 864 bytes 80572 (78.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 601 bytes 81681 (79.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 140 (140.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 140 (140.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos8 ~]#ifconfig -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 673005 0 0 0 672688 0 0
0 BMRU
lo 65536 70 0 0 0 70 0 0
0 LRU
[root@centos8 ~]#ifconfig -s eth0
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 673011 0 0 0 672694 0 0
0 BMRU
路由表管理命令
route -n
路由表主要构成:
Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
Genmask:目标网络对应的netmask
Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
Metric: 开销cost,值越小,路由记录的优先级最高
添加:route add
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
删除: route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
范例:
#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
#目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
route add -net 192.168.8.0/24 dev eth1 metric 200
#默认路由,网关: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
#目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
#目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
思科
配置网址后:
输入systemctl restart network重启网络
1,网络环境规划
主机1-->交换机-->路由器R1->路由器R2-->路由器R3-->交换机-->主机2
2,两台主机 #g0/0#g0/1
主机01 192.168.1.1
=网关192.168.1.254
主机02 192.168.4.1
=网关192.168.4.254
3,两台交换机
4,三台路由器
第一个里程:路由器配置(接口地址配置)
R1 路由器
Router> en 命令提示符 用户模式提示符
Router#conf t 特权模式提示符 系统配置查看
Router(config)#int g0/0 配置模式提示符
g0/0接口配置
Router(config-if)#ip add 192.168.1.254 255.255.255.0
no shutdown
g0/1接口配置
ip add 192.168.2.1 255.255.255.0
no shutdown
检查确认:
CTRL+Z
show ip int br #只显示ip地址信息
Router#show ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.1.254 YES manual up up
GigabitEthernet0/1 192.168.2.1 YES manual up down
Vlan1 unassigned YES unset administratively down down
R2
R2#show ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.2.2 YES manual administratively down down
GigabitEthernet0/1 192.168.3.1 YES manual up down
Vlan1 unassigned YES unset administratively down down
R3
Router#
Router#show ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.3.2 YES manual up up
GigabitEthernet0/1 192.168.4.254 YES manual up up
Vlan1 unassigned YES unset administratively down down
R1路由表
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet0/1
L 192.168.2.1/32 is directly connected, GigabitEthernet0/1
S 192.168.4.0/24 [1/0] via 192.168.2.2
路由配置
ip route 去往网络地址信息 网络掩码 去往目标的下一条接口地址
ip route 192.168.4.0 255.255.255.0 192.168.2.2
S 192.168.1.0/24 [1/0] via 192.168.2.1
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet0/0
L 192.168.2.2/32 is directly connected, GigabitEthernet0/0
192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.3.0/24 is directly connected, GigabitEthernet0/1
L 192.168.3.1/32 is directly connected, GigabitEthernet0/1
S 192.168.4.0/24 [1/0] via 192.168.3.2
路由配置
ip route 去往网络地址信息 网络掩码 去往目标的下一条接口地址
ip route 192.168.4.0 255.255.255.0 192.168.3.2
ip route 192.168.1.0 255.255.255.0 192.168.2.1
R3 路由表信息
192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.3.0/24 is directly connected, GigabitEthernet0/0
L 192.168.3.2/32 is directly connected, GigabitEthernet0/0
192.168.4.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.4.0/24 is directly connected, GigabitEthernet0/1
L 192.168.4.254/32 is directly connected, GigabitEthernet0/1
S 192.168.1.0/24 [1/0] via 192.168.3.1
#有去4的的地址了,但是要联通要有去有回
路由配置
ip route 去往网络地址信息 网络掩码 去往目标的下一条接口地址
ip route 192.168.1.0 255.255.255.0 192.168.3.1
删除静态路由配置
no ip route 192.168.4.0 255.255.255.0 192.168.2.2
动态路由配置方法:
默认R1-R3路由表情况:
R1路由表:
192.168.1.0 =g0/0
192.168.2.0 =g0/1 R1 g0/1--> R2 g0/0
R2路由表:
192.168.2.0 =g0/0 R1 g0/1--> R2 g0/0
192.168.3.0 =g0/1 R3 g0/0--> R2 g0/1
R3路由表:
192.168.3.0 =g0/0 R3 g0/0--> R2 g0/1
192.168.4.0 =g0/1
R1动态路由配置:
route rip —指定配置使用什么路由协议
network 192.168.1.0 —宣告过程
network 192.168.2.0
R2动态路由配置:
route rip —指定配置使用什么路由协议
network 192.168.2.0 —宣告过程
network 192.168.3.0
R3动态路由配置:
route rip —指定配置使用什么路由协议
network 192.168.3.0 —宣告过程
network 192.168.4.0
通过守护进程获取动态路由
安装quagga包,通过命令vtysh配置
支持多种路由协议:RIP、OSPF和BGP
netstat命令 基本被ss替代
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID
[root@centos7|17|~]#netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 52 192.168.247.147:22 192.168.247.1:61132 ESTABLISHED
只看监听状态的
[root@centos8|24|~]#netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:49513 0.0.0.0:* LISTEN
[root@centos8|25|~]#netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1341/systemd-resolv
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1956/dnsmasq
# lsof -i :22
显示所有
[root@centos8|31|~]#netstat -tuna
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:49513 0.0.0.0:* LISTEN
tcp 0 52 192.168.247.130:22 192
[root@centos8|36|~]#netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.247.2 0.0.0.0 UG 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.247.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
ip link
数据链路层状态 网线
[root@centos8|42|~]#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:94:a5 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
禁用网卡
[root@centos8|45|~]#ip link set eth0 down
启用
[root@centos8|45|~]#ip link set eth0 up
#网卡改名:
ip link set eth1 name wangnet
#增加逻辑地址
ip address add
[root@centos8|47|~]#ip address add 11.0.0.8/24 dev eth0
link:网络有效
host:同一台电脑有效
global:全局生效
#网卡别名
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
ip地址和MAC地址对应关系
[root@centos8|50|~]#ip neigh
192.168.247.254 dev eth0 lladdr 00:50:56:ec:64:cd STALE
192.168.247.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
192.168.247.2 dev eth0 lladdr 00:50:56:fc:c5:f9 STALE
192.168.247.147 dev eth0 lladdr 00:0c:29:87:be:8d STALE
fe80::5858:6fbb:f6b3:34ab dev eth0 lladdr 00:50:56:c0:00:08 STALE
[root@centos8|51|~]#arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.247.254 ether 00:50:56:ec:64:cd C eth0
192.168.247.1 ether 00:50:56:c0:00:08 C eth0
192.168.247.2 ether 00:50:56:fc:c5:f9 C eth0
192.168.247.147 ether 00:0c:29:87:be:8d C eth0
ip route 查看路由表
#添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
#添加网关:
ip route add default via GW dev IFACE
#删除路由:
ip route del TARGET
#显示路由:
ip route show|list
#清空路由表:
ip route flush [dev IFACE] [via PREFIX]
范例:
ip route add 192.168.0.0/24 via 172.16.0.1
ss命令
ip route add 192.168.1.100 via 172.16.0.1
ip route add default via 172.16.0.1
ip route flush dev eth0
netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核 tcp_diag 模块通信获取 socket 信息
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
常用组合:
-tan, -tanl, -tanlp, -uan
范例:常见用法
#显示本地打开的所有端口
网络配置文件 centos6
ss -l
#显示每个进程具体打开的socket
ss -pl
#显示所有tcp socket
ss -t -a
#显示所有的UDP Socekt
ss -u -a
#显示所有已建立的ssh连接
ss -o state established '( dport = :ssh or sport = :ssh )'
#显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'
[root@centos8 ~]#ss -no state established '( dport = :21 or sport = :21 )'
Netid Recv-Q Send-Q
Local Address:Port Peer Address:Port
tcp 0 0
[::ffff:10.0.0.8]:21 [::ffff:10.0.0.7]:46638
timer:(keepalive,119min,0)
#列出当前socket详细信息
ss -s
[root@centos8|59|~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:5355 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
设置 说明
TYPE 接口类型;常见有的Ethernet, Bridge
NAME 此配置文件应用到的设备
DEVICE 设备名
HWADDR 对应的设备的MAC地址
UUID 设备的惟一标识
BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
IPADDR 指明IP地址
NETMASK 子网掩码,如:255.255.255.0
PREFIX 网络ID的位数, 如:24
GATEWAY 默认网关
DNS1 第一个DNS服务器地址
DNS2 第二个DNS服务器地址
DOMAIN 主机不完整时,自动搜索的域名后缀
ONBOOT 在系统引导时是否激活此设备
USERCTL 普通用户是否可控制此设备
PEERDNS
如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务
器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制
/etc/sysconfig/network-scripts/ifcfg-IFACE
DNS
DEVICE=eth0 #针对哪个网卡
NAME=eth0 #链接名建议和网卡同名可省略
BOOTPROTO=dhcp #网卡地址时手工还是自动获取 static none都可以
IPADDR=10.0.0.8 IP
PREFIX=24 子网掩码可替换为NETMASK=255.255.255.0
GATEWAY=10.0.0.2 建议网关和IP在同一网段
DNS1=10.0.0.2 域名解析 180.76.76.76
DNS2=180.76.76.76 223.6.6.6
ONBOOT=yes 网卡启用还是禁用
[root@centos6|25|~]#service network restart 重启网络服务
[root@centos8|73|~]#cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.247.2
修改主机名
#centos6 之前版本
/etc/sysconfig/network
HOSTNAME=
#centos7 以后版
/etc/hostname
HOSTNAME
[root@centos8|78|~]#hostnamectl status
Static hostname: centos8
Icon name: computer-vm
Chassis: vm
Machine ID: 0ac210d0f71d49f588add06531a36c15
Boot ID: cafc3e24293a450cbbc55cf5cbe0d69d
Virtualization: vmware
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-147.3.1.el8_1.x86_64
Architecture: x86-64
[root@centos8|79|~]#hostnamectl set-hostname Centos8
[root@centos8|81|~]#vim /etc/hosts DNS
[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
多网卡绑定 bonding
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=3.3.3.3
PREFIX=24
#物理自动获取 别名手动指定
共7种模式:0-6 Mode
Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送
数据包。本模式提供负载均衡和容错的能力
Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的
slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部
端口上可见
Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力
/etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100" 工作在哪种模式下
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
# 加进来两个网卡参与进来
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
# 加进来两个网卡参与进来
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/proc/net/bonding/bond0
删除bond0
ifconfig bond0 down
rmmod bonding
查看
[root@centos8|90|network-scripts]#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:94:a5 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
[root@centos8|91|network-scripts]#ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
MDI-X: Unknown
Supports Wake-on: uag
Wake-on: d
Link detected: yes
删除bond设备
rm -rf bond
rm -rf eth1 eth2
ifconfig bond0 down
rmmod bonding
[root@centos7|20|~]#nmcli connection reload
[root@centos7|21|~]#nmcli connection up eth0
CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变
nmcli
化
CentOS 7以上版使用基于硬件,设备拓扑和设置类型命名
改名
使用传统命名方式:改名
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
修改配置文件执行生效
nmcli con reload
nmcli con up con-name
范例:
#查看帮助
nmcli con add help
#使用nmcli配置网络
nmcli con show
#显示所有活动连接
nmcli con show --active
#显示网络连接配置
nmcli con show "System eth0“
#显示设备状态
nmcli dev status
#显示网络接口属性
nmcli dev show eth0
#创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
#删除连接
nmcli con del default
#创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
#启用static连接配置
nmcli con up static
#启用default连接配置
nmcli con up default
#修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
#DNS设置存放在/etc/resolv.conf,PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设
置,不自动获取等价于下面命令
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
查看网卡状态
[root@centos8|96|~]#nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
virbr0 bridge connected virbr0
lo loopback unmanaged --
virbr0-nic tun unmanaged --
[root@centos8|97|~]#nmcli connection
NAME UUID TYPE DEVICE
Wired connection 1 353d5403-9fb0-4c63-a83b-078b508d1664 ethernet eth0
virbr0 c7371537-0880-4efa-9031-eb4363a145cf bridge virbr0
ens160 7072916a-f38a-44f4-9a1e-fdb191ba8561 ethernet --
改名
[root@centos8|104|network-scripts]#nmcli connection modify ens33 eth0
改地址:
nmcli con mod ifcfg**-*** 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24 IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200 GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
centos7之后才支持
centos7 (两个网卡)一个桥接一个NAT
centos6(10.0.0.6/24)NAT
centos8(10.0.0.8/24)桥接
cetos6pingcentos8
把centos7配置成交换机用
配置实现网桥
工具包:bridge-utils,目前CentOS 8无此包
[root@centos7|29|~]#brctl show
#添加和删除网桥
brctl addbr | delbr br0
#添加和删除网桥中网卡
brctl addif | delif br0 eth0
brctl addif | delif br0 eth1
ip link set br0 up #启用网卡
ip a a 10.0.0.7/24 dev br0
启用生成树协议防止回环
brctl stp br0 on
brctl show
#查看CAM(content addressable memory内容可寻址存储器)表
brctl showmacs br0
#cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
STP=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.100
PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=Ethernet
NAME=br0-port0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d
nmcli con down br0
rm /etc/sysconfig/network-scripts/ifcfg-br0*
nmcli con reload