文章目录
1.地址
1.1 网络地址
互联网协议地址(IP地址)为互联网上每一个网络或主机分配一个逻辑地址,IP地址工作在网络地址。
IP的分类:IPV4 IPV6
IPV4不够用,所以要切换到IPV6。
但IPV4无法和IPV6进行通信,所以现在大部分还是使用IPV4的情况。
局域网私有IP地址:
- 10.0.0.0-10.0.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
1.2物理地址
物理地址:为每一个可以链接网络的硬件设备设定的硬件地址。
MAC地址:16进制。48位。
2.TCP/IP五层常见协议
应用层协议:FTP、HTTP、SMTP、Telnet、DNS等。
- Telnet:明文加密,已被淘汰。
传输层协议:TCP(三次握手)、UDP(不可靠)等。
- UDP:速度快
- TCP:普通都使用
网络层协议:IP、ICMP、ARP(地址解析协议,解析IP和MAC)等
- APR:IP——>MAC
- RARP:MAC——>IP
数据链路层:PPP协议等
物理层:不常用
3.常见网络端口
端口配置文件:
[root@server ~]# cat /etc/services
端口 | 服务 | 工作 |
---|---|---|
20/21 | ftp服务 | 文件共享 |
22 | ssh服务 | 安全远程管理 |
25 | smtp:简单邮件传输协议 | 发信 |
465 | smtp(ssl) | 发信 |
110 | pop3:纯文本 | 收信 |
143 | imap4 | 收信 |
993 | imap4(ssl) | 收信 |
53 | DNS端口 | 域名解析端口 |
3306 | mysql端口 | 数据库连接端口 |
80 | WWW服务(http) | 网页访问 |
443 | WWW服务(https) | 加密网页访问 |
ftp:
- 21:确定连接,要传数据
- 20:传输数据
4.路由器与网关
4.1 路由器
路由器的功能是:
- 跨网段通信,让数据包可以访问其他网段。
- 路由选择:不同的路由协议访问方法不一样(例如使用:最短路径路由选择)。
- 动态路由:路由器自动选择路径(路由器消耗资源多,自动生效)
- 静态路由:管理员指定路径(优先级最高,路由器消耗资源少,但适合小型网络)
交换机:在同一个网段内通信。
4.1.1 配置一个路由器
要求:
- 一台123.0.0.0/24网段的虚拟机client1
- 一台172.25.5.0/24网段的虚拟机client2
- 一台虚拟机,做路由器
目的:让两个网段可以通信
1)查看用户的IP:
[root@client1 ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 123.0.0.2 netmask 255.255.255.0 broadcast 123.0.0.255
inet6 fe80::5054:ff:fe00:50b prefixlen 64 scopeid 0x20<link>
ether 52:54:00:00:05:0b txqueuelen 1000 (Ethernet)
RX packets 51 bytes 7099 (6.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 277 bytes 21142 (20.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2)查看用户2的IP:
[root@client2 ~]# ip addr show ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:31:00:ab brd ff:ff:ff:ff:ff:ff
inet 172.25.5.15/24 brd 172.25.5.255 scope global ens3
valid_lft forever preferred_lft forever
inet6 fe80::4608:756c:3af9:e967/64 scope link
valid_lft forever preferred_lft forever
3)给路由器的网卡上配置两个网段的IP(同一个网卡、不同网卡都可以):
[root@server ~]# ip addr show ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:b2:1b:71 brd ff:ff:ff:ff:ff:ff
inet 123.0.0.1/24 brd 123.0.0.255 scope global ens3 # 123.0.0网段
valid_lft forever preferred_lft forever
inet 172.25.5.10/24 brd 172.25.5.255 scope global ens3 # 172.25.5网段
valid_lft forever preferred_lft forever
inet6 fe80::8c34:d014:f74f:7b31/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::4608:756c:3af9:e967/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
4)打开防火墙,开启地址伪装:
[root@server ~]# systemctl start firewalld
[root@server ~]# systemctl enable firewalld
[root@server ~]# firewall-cmd --add-masquerade # 开启地址伪装
success
[root@server ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: yes # 开启成功
forward-ports:
sourceports:
icmp-blocks:
rich rules:
5) 开启内核路由功能:
[root@server ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1 # 已经开启
如果没有开启:
[root@server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 # 写入这一条
[root@server ~]# sysctl -p # 激活
6)重启网络:
[root@server ~]# systemctl restart network
7)两个测试机的网关写对应网段的路由器IP:
客户1:
[root@client1 ~]# route add default gw 123.0.0.1
[root@client1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 123.0.0.1 0.0.0.0 UG 1024 0 0 eth0
123.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
客户2:
[root@client2 ~]# route add default gw 172.25.5.10
[root@client2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.5.10 0.0.0.0 UG 0 0 0 ens3
172.25.5.0 0.0.0.0 255.255.255.0 U 100 0 0 ens3
8)测试
客户1:
[root@client1 ~]# ping 172.25.5.15
PING 172.25.5.15 (172.25.5.15) 56(84) bytes of data.
64 bytes from 172.25.5.15: icmp_seq=1 ttl=64 time=1.04 ms
64 bytes from 172.25.5.15: icmp_seq=2 ttl=64 time=0.504 ms
^C
--- 172.25.5.15 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.504/0.776/1.049/0.273 ms
客户2:
[root@client2 ~]# ping 123.0.0.2
PING 123.0.0.2 (123.0.0.2) 56(84) bytes of data.
64 bytes from 123.0.0.2: icmp_seq=1 ttl=63 time=0.591 ms
64 bytes from 123.0.0.2: icmp_seq=2 ttl=63 time=0.812 ms
^C
--- 123.0.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.591/0.701/0.812/0.113 ms
4.2 网关
网关首先要是路由器:
- 跨网段通信,让数据包可以访问其他网段。
- 路由选择:不同的路由协议访问方法不一样(例如使用:最短路径路由选择)。
- 默认路由
- NAT转换
NAT转换:
- IP不足,使用NAT所有的私网地址都可以使用同一个公网IP进行通信,节约了IP
- 但是这个过程又会转来转去消耗资源比较慢。
4.2.1 查询路由表
查看路由表:
[root@server ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
123.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 team0
172.25.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
也就是说:如果碰到172.25.5.0网段的,交给eth2处理。
4.2.2 临时
[root@server ~]# route add default gw 172.25.5.250
[root@server ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.5.250 0.0.0.0 UG 1024 0 0 eth2
123.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 team0
172.25.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
也就是说,所有处理不了的,就都交给172.25.5.250,就可以了,由他进行处理。
删除:
[root@server ~]# route del default gw 172.25.5.250
4.2.3 永久
加入到网卡中:
[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=none
IPADDR0=172.25.5.10
PREFIX0=24
GATEWAY0=172.25.5.250 # 添加网关,0表示第一个网关,你可以使用1、2加入更多的网关
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="Ethernet connection 1"
UUID=b02e7b73-03e7-4662-9444-e21c5158275a
DEVICE=eth2
ONBOOT=yes
或者写进:
[root@server ~]# vim /etc/sysconfig/network