Rocky 和 Ubuntu网络配置

Rocky

判断uefi还是MBR 启动

UEFI启动的系统通常会挂载一个EFI系统分区(ESP)。你可以检查这个分区是否被挂载来判断系统是否是UEFI启动。
ls /sys/firmware/efi

你可以查看 /etc/fstab 文件中是否有EFI系统分区的挂载信息:
grep -i efi /etc/fstab

你还可以通过查看系统启动日志来确定启动方式,例如使用 dmesg 命令:
dmesg | grep "EFI v"

修改网卡名为eth0

vim /etc/default/grub
在GRUB_CMDLINE_LINUX=右边引号里面最后加上 net.ifnames=0

#On a system with UEFI boot mode:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

#On a system with legacy boot mode:
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /etc/grub2.cfg

reboot


自定义网卡名
GRUB_CMDLINE_LINUX="... net.ifnames.prefix=<required prefix>"
例如
GRUB_CMDLINE_LINUX="... net.ifnames.prefix=lucy"

配置网卡网络

配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 
其中 ifcfg 为固定名称 eth0 名称随便,最好和网卡名一致

#配置文件入下
DEVICE=eth0  #这个配置文件和那个网卡绑定
NAME=eth0    #用于nmcli connection 显示的时候连接的名字
BOOTPROTO=dhcp|static|none  #使用静态ip还是dhcp
IPADDR=1.2.3.4    #IP地址
PREFIX=24  #子网掩码
IPADDR2=1.2.3.4    #IP地址
PREFIX2=24  #子网掩码 
#NETMASK=255.255.255.0  #老式子网掩码指定方式
GATEWAY=10.0.0.2  #网关
DNS1=10.0.0.2  #DNS
DOMAIN=aliyun.com  #这个可以用于ping www 这种缺省域名补全,没写用主机名称补全 


直接通过命令配置,自动生成配置文件
nmcli connection add con-name test-eth1 \
ipv4.addresses 1.1.1.1/24,1.1.1.2/24 \
ipv4.gateway 1.1.1.4 \
ipv4.dns 114.114.114.114,8.8.8.8  \
type ethernet \
ifname eth1

一个网卡可以存在多个配置文件

nmcli connection modify #在原来的配置基础上增加ip地址
nmcli connection modify test-eth1 +ipv4.address 2.2.2.2/24 
nmcli connection modify test-eth1 -ipv4.address 2.2.2.2/24 
nmcli connection reload
nmcli connection up <name>  #开启某个连接  开启之后链接是绿色的
mncli connect down <name> #禁用某个连接 关闭是白色的
nmcli connect delete <name> #删除某个链接 事实上删除了这个网卡对应的配置文件ifcfg-<name>


centos 7
systemctl restart network 

centos6
service network restart

旧式命令 ifconfg 来自net-tools
ifconfig eth0 10.0.0.68 netmask 255.255.0.0  #网卡指定ip
ifconfig eth0 0.0.0.0   #清楚ip
ifconfig eth0 down #禁用网卡
ifconfig eth0 up  #启动网卡
ifconfig eth0:1 172.16.0.8/24  #对一个网卡设置多个IP地址
ifconfig -s  #查看统计数据
ficonfig -a #查看所有


做完配置查看有没有生效

查看DNS配置
cat /etc/resolv.conf #查看DNS配置

探测某个ip主机是否有DNS服务
yum install bind-utils
host www.baidu.com 10.0.0.1
dig www.baidu.com @114.114.114.114

查看ip  ip a

查看网关  route -n


rocky9新的网络配置文件格式

[connection]
id=ens160
uuid=5903ac99-e03f-46a8-8806-0a7a8424497e
type=ethernet
interface-name=ens160
timestamp=1670056998

[ethernet]
mac-address=00:0C:29:47:68:D0

[ipv4]
address1=192.168.100.4/24,192.168.100.1
dns=8.8.8.8;114.114.114.114;
method=manual

[ipv6]
addr-gen-mode=default
method=disabled

[proxy]

多网卡绑定

多个网卡绑定一起,相当于一块网卡

bond聚合链路模式共7种模式:0-6 Mode

mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。容错能力—只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。无负载均衡—此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

创建bonding设备的配置文件


/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路 fail_over_mac=1 在VMware配置上使用的,真实设备配置不需要
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

查看bond0状态:
/proc/net/bonding/bond0

删除bond0
ifconfig bond0 down
rmmod bonding

网桥

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,这个网桥相当于一个交换机,被连接的这两个口相当于交换机上的两个口

使用 brctl 命令 在Linux 上实现两个网卡桥接

yum install bridge-utils

brctl show #查看网桥
brctl  addbr|delbr  br0 #添加/删除网桥br0
brctl addif|delif br0 eth0 #将网络接口eth0添加到网桥br0或者删除

#启用网桥
ifconfig br0 up
ip link set br0 up

#启用 STP
brctl stp br0 on

路由配置

[root@rocky8-3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
Genmask:目标网络对应的netmask
Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果
是直连网络,gateway是0.0.0.0
Metric: 开销cost,值越小,路由记录的优先级最高
Flags(标志): U(Up): 表示路由是活跃的。 G(Gateway): 表示这条路由通过一个网关。其他标志可能包括 H(Host,目的地是一个主机)、D(Dynamically,路由是动态设置的)等。


添加路由:route add
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
route add -host  10.0.0.4   dev eth0 
route add -net 10.0.0.0  netmask 255.255.255.0  gw 10.0.0.3 dev  eth0 
route add default    gw 10.0.0.4  dev  eth0 

删除路由:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.9
route del default gw 10.0.0.4
route del -net 10.0.0.0  netmask 255.255.255.0  gw 0.0.0.0
route del -net 10.0.0.4 netmask 255.255.255.255

如果想持久的添加路由信息
在 /etc/sysconfig/network-script/route-<网卡名>

里面添加路由信息

例如:
10.0.9.0/24 via 10.0.0.2 dev eth0
目标网段         网关         网卡接口名

然后重启对应接口的配置
nmcli connection reload; nmcli connection up eth0


如果想使用Linux作为路由器,来模拟实验,需要设置内核参数
vim /etc/sysctl.conf
net.ipv4.ip.forward=1

然后 
sysctl -p
*****************
一个主机需要一个ip和子网掩码,这个子网掩码是给主机确定自己所在的网段,
而路由上的目标网络的子网掩码是为了让主机确定一个ip从那个路由发出去

一个主机如果往一个ip地址为A的机器发发数据包,搜先它会拿A和自己的子网掩码做与运算,如果跟自己在一个网段,那么走本网段路由
如果不跟自己一个网段,首先找路由表的路由网段的子网掩码与运算,确定是否是这个路由目标网段的ip如果是,走对应的网关,送出去

动态路由

通过守护进程获取动态路由,安装quagga包,通过命令vtysh配置
支持多种路由协议:
RIP:Routing Information Protocol,路由信息协议
OSPF:Open Shortest Path First,开放式最短路径优先
BGP:Border Gateway Protocol,边界网关协议

ubuntu

修改网卡名为eth0


vim /etc/default/grub
在GRUB_CMDLINE_LINUX=右边引号里面最后加上 net.ifnames=0

#On a system with UEFI boot mode:
grub-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

#On a system with legacy boot mode:
grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig -o /etc/grub.cfg

reboot

配置网卡网络

/etc/netplan/eth0.yaml

network: 
  version: 2 
  renderer: networkd
  ethernets: 
    eth0: 
      addresses: 
        - 10.0.0.151/24
      gateway4: 10.0.0.2
      nameservers: 
        search: 
          - baidu.com
        addresses: 
          - 8.8.4.4
          - 10.0.0.2

修改完配置文件执行
netplan apply

查看生效
ip a
route -n
resolvectl status


常用命令


旧的命令
ifconfig  
route
netstat 和 ss 命令用法相同


新的命令

ip link set eth0 down 
ip address add 10.0.0.188/24 dev eth0 label eth0:2 #临时生效
           del  10.0.0.188/24  dev eth0  #删除地址
           flush eth1 #清楚全部地址 
ip address
ip route
ss

网络测试诊断工具
测试网络连通性 ping
显示正确的路由表  
      ip route
      route
跟踪路由
  yum install mtr traceroute iputils
    traceroute
    tracepath
    mtr

确定名称服务器使用
yum install bind-utils
    nslookup
        nslookup www.baidu.com
        nslookup www.baidu.com 114.114.114.114

    host
      host www.baidu.com
      host www.baidu.com 114.114.114.114 #指定域名解析服务器去解析

抓包工具
yum install tcpdump
  tcpdump
  #监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
    tcpdump tcp port 22 and  -i eth0 host 10.0.0.100

    # and or 条件组合  src 来源 dst 目的 -w 保存为文件  注意条件组合顺序
    tcpdump  icmp  -i eth0 -nn  and \( src host 10.0.0.100  or  dst host 10.0.0.3 \)  -w /tmp/1.cap

    否定  not 
    tcpdump -nn -i eth1 icmp and not host 10.0.0.1
    
    -nn 这个选项告诉 tcpdump 不要将网络地址(IP)和端口号解析成名字。-n 选项避免了对 IP 地址的解析,而第二个 -n 避免了端口号的解析。这样可以加快数据捕捉速度并简化输出,因为不进行额外的 DNS 查询。



端口扫描:
  nmap

    扫描单个主机的所有端口
    nmap -p- 192.168.1.1
    扫描单个主机的常见端口:
    nmap  192.168.1.1
    扫描指定端口范围:
    nmap -p 20-80 192.168.0.1
    检测服务版本和操作系统:
    nmap -sV -O 192.168.1.1
    扫描单个主机的常见udp端口
    nmap -sU 10.0.0.3