一、网络ip通信原理
网络 IP 通信的核心原理是 基于 IP 地址的分组交换,数据会被拆分成小的数据包(Packet),通过多台网络设备(路由器、交换机等)的转发,从源主机跨越网络到达目标主机,整个过程遵循 TCP/IP 协议簇的分层规则。
可以把 IP 通信类比成邮政寄信:源主机是寄信人,目标主机是收信人,IP 地址是收件地址,路由器是邮局,数据包是信件,每一封信件都会按地址经过多个邮局转发,最终送达目的地。
二、网络ip的配制方法
bash
[root@localhost ~]# grep eth2 -r /sys/class/net/ #判定网卡是否存在
[root@localhost ~]# nmcli connection show #拍档网卡是否被使用
NAME UUID TYPE DEVICE
eth0 7ba00b1d-8cdd-30da-91ad-bb83ed4f7474 ethernet eth0
lo a2a842f6-cc9c-445d-945e-6c969a2707f4 loopback lo
#如果要配置的网卡已经被使用了。那么修改配置文件后一定要刷新网络并重启连接
[root@localhost ~]# nmcli connection modify eth0 ipv4.addresses 172.25.254.100/24
[root@localhost ~]# nmcli connection reload
[root@localhost ~]# nmcli connection up eth0
#如果没有被系统使用那么直接可以设定或者编辑配置文件激活
[root@localhost ~]# cd /etc/NetworkManager/system-connections/
[root@localhost system-connections]# vim eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1
[ipv4]
method=manual
address1=172.25.254.100/24
gateway=172.25.254.2
dns=114.114.114.114;
[root@localhost system-connections]# chmod 600 eth1.nmconnection
#检测
[root@localhost system-connections]# ip a s eth1 #查看ip
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:67:23:80 brd ff:ff:ff:ff:ff:ff
altname enp19s0
altname ens224
inet 172.25.254.100/24 brd 172.25.254.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::b7e8:d88a:6485:552a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost system-connections]# route -n #网关
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.2 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 172.25.254.2 0.0.0.0 UG 101 0 0 eth1
172.25.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.25.254.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
[root@localhost system-connections]# cat /etc/resolv.conf #查看dns
# Generated by NetworkManager
search localdomain
nameserver 172.25.254.2
nameserver 114.114.114.114
三、网关的作用
网关(Gateway)是连接不同网络的"关口"或"门户"。它充当一个网络的"出口"点,当本网络内的设备需要与外部网络(如互联网或其他局域网)通信时,所有数据包都会先发送到网关,由网关负责转发。
主要作用
-
网络互联:
-
不同协议转换:早期的网关(如应用网关)能连接使用不同通信协议的网络(如TCP/IP和IBM SNA),但现在这个概念已泛化。
-
不同网段路由 :这是最常见的作用。连接局域网(LAN)与广域网(WAN,如互联网),或在局域网内连接不同的子网(如
192.168.1.0/24和10.0.0.0/24)。
-
-
路由功能:
-
数据包转发:网关内部运行路由协议或静态路由,分析数据包的目标IP地址,判断是发送到本地网络还是需要转发到其他网络(上游路由器或ISP)。
-
默认网关 :对于局域网内的普通设备(PC、手机等),网关就是其网络设置中的 "默认网关" 。当目标地址不在本地网段时,设备会无条件地将数据包发给默认网关处理。
-
-
网络地址转换(NAT):
- 这是家庭和企业路由器的核心功能。它将局域网内多个设备的私有IP地址(如
192.168.1.x)转换成一个或多个公共IP地址,从而实现多设备共享一个公网IP上网,同时也起到隐藏内网结构、增强安全性的作用。
- 这是家庭和企业路由器的核心功能。它将局域网内多个设备的私有IP地址(如
-
安全与过滤:
- 作为网络的唯一出口,网关是部署防火墙、访问控制列表、内容过滤、VPN等安全功能的理想位置。
-
协议转换与服务提供:
- 一些网关还提供DHCP服务(自动分配IP地址)、DNS代理或缓存、端口转发、DMZ主机等附加功能。
还是刚刚的邮政寄信例子:
小区的大门 就是网关 。它有对内的地址(如 192.168.1.1,小区居民都知道这个地址),也有一个对外的地址(公网IP,如 123.123.123.123,邮政系统知道这个地址)。
当你想寄信(发送数据)给外地的朋友时,你会把信先送到小区大门。门卫(网关)负责把信上的内部地址换成小区的公网地址,然后根据外部地址找到路径寄出去。反之,外面寄给你的信,也会由门卫换成你的内部地址,送到你家。
四、dns的作用
DNS 是互联网的"电话簿"或"翻译官",它的核心作用是将人类容易记忆的域名(例如 <www.google.com>)转换为计算机用于定位和通信的 IP 地址(例如 142.250.190.78)。
| 方面 | 要点 |
|---|---|
| 核心作用 | 域名与 IP 地址的翻译系统,是互联网寻址的基石。 |
| 系统特点 | 分布式 、层次化 、缓存机制(极大提升效率)。 |
| 关键角色 | 递归解析器 (帮你跑的"跑腿员")、权威服务器(掌握最终答案的"管理员")。 |
| 对用户的价值 | 无需记忆 IP ,只需输入易记的域名。提升访问速度与可靠性(通过智能解析)。 |
| 配置方式 | 终端 :设 DNS 服务器 IP(手动或自动)。 域名所有者:在管理后台配置各种 DNS 记录。 |
五、网络脚本编写
为了实现更快捷的增删改对应网卡上的IP地址,编写脚本:
bash
[root@node10 ~]# vim /bin/vmset.sh
#!/bin/bash
[ "$#" -lt "3" ] && {
echo "error!!"
exit
}
CONNECTION=`nmcli connection show | awk "/$1/"'{print $1}'|grep $1`
[ "$?" -ne "0" ] && {
echo "$1" is in used !!
nmcli connection delete $CONNECTION
}
[ "$4" = "noroute" ] && {
cat >> /etc/NetworkManager/system-connections/$1.nmconnection <<EOF
[connection]
id=$1
type=ethernet
interface-name=$1
[ipv4]
method=manual
address1=$2/24
EOF
}||{
cat >> /etc/NetworkManager/system-connections/$1.nmconnection <<EOF
[connection]
id=$1
type=ethernet
interface-name=$1
[ipv4]
method=manual
address1=$2/24,172.25.254.2
dns=8.8.8.8;
EOF
}
chmod 600 /etc/NetworkManager/system-connections/$1.nmconnection
nmcli connection reload
nmcli connection up $1
hostnamectl hostname $3
cat > /etc/hosts<< EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
$2 $3
EOF
ip a s $1
hostname
-------------------------------------------------------
#赋予执行权限
[root@node10 ~]# chmod +x /bin/vmset.sh
#脚本使用
#NAT模式
[root@vsnode ~]# vmset.sh eth0 172.25.254.100 vsnode
#仅主机模式
[root@vsnode ~]# vmset.sh eth1 192.168.0.100 vsnode noroute
注:本实验基于Red Hat Enterprise Linux 9 (RHEL 9)