Linux
常用
管理语句
Shell命令(变量)
正则表达式
重定向
EXPECT
流程控制
函数
日志
SED
sed常用操作
sed组合命令
sed脚本
AWK
awk常用
awk流程控制
awk脚本
SSH
SSH密钥的批量分发与执行
SSH连接很慢
ACL文件访问控制
计划任务
常用语句
批量添加用户和密码
批量修改密码
临时和永久关闭Selinux
修改主机名
Linux内核参数
无人值守安装
ISO镜像(mondorescue)
软件管理
SYSTEM服务
YUM本地仓
存储管理
逻辑卷LVM
磁盘阵列RAID
备份恢复相关命令
fio磁盘性能测试
内存管理
IPTABLES防火墙
FIREWALLD防火墙
curl请求
Linux问题
漏洞修复
限制网卡带宽
CentosYUM源
rsyslog 占用内存过高
df -h 卡住解决
Linux故障问题
网络配置
升级内核
Openssl生成证书
CENTOS6升级7
本文档使用MrDoc发布
返回首页
-
+
网络配置
2021年5月31日 13:48
admin
#临时路由 route add -net 192.168.24.0/24 gw 192.168.75.1 dev ens33 #永久路由 vim /etc/sysconfig/static-routes any net 192.168.24.0/24 gw 192.168.75.1 any net 192.168.24.0/24 gw 192.168.75.1 dev ens33 any net 172.25.0.0 netmask 255.255.0.0 gw 192.168.75.1 --- #动态 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" #dhcp动态获取ip DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens192" UUID="220e4d59-b6e1-4665-b800-2a6d6c728b1f" DEVICE="ens192" ONBOOT="yes" #开机启动 DEFROUTE=yes #就是default route,是否把这个eth设置为默认路由 --- #静态 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" #dhcp动态获取ip DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens192" UUID="220e4d59-b6e1-4665-b800-2a6d6c728b1f" DEVICE="ens192" ONBOOT="yes" #开机启动 DEFROUTE=yes #就是default route,是否把这个eth设置为默认路由 IPADDR="172.16.16.168" #IP地址 GATEWAY="172.16.16.1" #网关 NETMASK="255.255.255.0" #掩码 DNS1="8.8.8.8" #DNS1 DNS2="114.114.114.114" #DNS2 --- #重启网络服务 systemctl restart network --- #单网卡设置双ip ##方式一: ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up ##方式二: 1.执行“cp ifcfg-eth0 ifcfg-eth0:1”复制eth0的配置文件,文件名在原文件名后加":1". 2.编辑修改ifcfg-eth0:1中相应的字段,具体如下: ![](/media//202112/2021-12-06110102798587.png) --- #多个公网地址使用同一个网关 ####这种需求我们可以用子接口的形式来实现,这种方式有一个好处就是可以节省网卡(节省VLAN),但是根据业务而言都是相对的,比如我们业务量比较大,所有公网转发都在这一块网卡,那么压力就比较大了,并且存在单点这种风险。 #查看当前网卡信息 ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 1.255.30.10 netmask 255.255.255.252 broadcast 1.255.30.11 inet6 fe80::250:56ff:fea6:388c prefixlen 64 scopeid 0x20<link> ether 00:50:56:a6:38:8c txqueuelen 1000 (Ethernet) RX packets 187186 bytes 40500437 (38.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 196658 bytes 35343191 (33.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #### 目前我们只有这一块公网网卡,这次就不将公网地址打马赛克了,因为操作完机器就删除了。 #在当前网卡基础上配置子接口 vim /etc/sysconfig/network-scripts/ifcfg-ens160:1 NAME=ens160:1 //NAME需要修改 GATEWAY=1.255.30.9 //使用同一个网关地址 DNS1=210.220.163.82 DNS2=168.126.63.1 DEVICE=ens160:1 //DEVICE需要修改 ONBOOT=yes USERCTL=no BOOTPROTO=static NETMASK=255.255.255.252 IPADDR=121.78.159.250 //IP地址需要修改 PEERDNS=no check_link_down() { return 1; } --- ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 1.255.30.10 netmask 255.255.255.252 broadcast 1.255.30.11 inet6 fe80::250:56ff:fea6:388c prefixlen 64 scopeid 0x20<link> ether 00:50:56:a6:38:8c txqueuelen 1000 (Ethernet) RX packets 188768 bytes 40687039 (38.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 198348 bytes 35664829 (34.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens160:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 121.78.159.250 netmask 255.255.255.252 broadcast 121.78.159.187 ether 00:50:56:a6:38:8c txqueuelen 1000 (Ethernet) ####子接口与主网卡使用同一MAC地址。 --- #多个公网地址使用不同网关 ####当前网卡信息 ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 121.78.159.250 netmask 255.255.255.252 broadcast 121.78.159.251 inet6 fe80::250:56ff:fea6:388c prefixlen 64 scopeid 0x20<link> ether 00:50:56:a6:38:8c txqueuelen 1000 (Ethernet) RX packets 7273 bytes 4208431 (4.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4450 bytes 541553 (528.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 1.255.30.10 netmask 255.255.255.252 broadcast 1.255.30.11 inet6 fe80::250:56ff:fea6:20d1 prefixlen 64 scopeid 0x20<link> ether 00:50:56:a6:20:d1 txqueuelen 1000 (Ethernet) RX packets 602 bytes 40115 (39.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 149 bytes 22896 (22.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 --- route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 1.255.30.9 0.0.0.0 UG 100 0 0 ens192 0.0.0.0 121.78.159.249 0.0.0.0 UG 101 0 0 ens160 1.255.30.8 0.0.0.0 255.255.255.252 U 100 0 0 ens192 121.78.159.248 0.0.0.0 255.255.255.252 U 100 0 0 ens160 ####以上由多个不同优先级的默认路由来实现。 ####关闭反向路由检查机制 echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter echo 0 > /proc/sys/net/ipv4/conf/ens192/rp_filter echo 0 > /proc/sys/net/ipv4/conf/ens224/rp_filter echo "net.ipv4.conf.all.rp_filter = 0" > /etc/sysctl.conf sysctl -p ####为何要关闭反向路由检查机制下文将会详解,同时会给出不关闭此方式的另一种解决办法。 --- #### Linux中的路由由路由规则和路由表组成。路由规则制定当数据包满足规则时,应转交到具体的路由表;路由表根据数据包信息选择下一跳地址。 #使用ip rule查看当前路由策略: ip rule 0: from all lookup local 32766: from all lookup main 32767: from all lookup default #### Linux内核最多支持32768条路由策略。main表是系统主要的路由表,所有的路由规则都写在这个表中。 使用ip route list table main查看main表 ip route list table main default via 1.255.30.9 dev ens192 proto static metric 100 default via 121.78.159.249 dev ens160 proto static metric 101 1.255.30.8/30 dev ens192 proto kernel scope link src 1.255.30.10 metric 100 121.78.159.248/30 dev ens160 proto kernel scope link src 121.78.159.250 metric 100 ####从main表中能够看到当前的默认路由为121.78.159.249。Linux中支持256张路由表,编号为0~255,可以直接使用编号来进行操作,也可以使用编号别名操作,编号和别名对应关系在/etc/iproute2/rt_tables文件当中。 --- cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep ####默认有local、main、default三个路由表,0、253、254、255 四张是已经保留的不能使用。 --- ####方法一中我们关闭了Linux反向路由检查机制,如果不关闭将会发生以下的现象,由于我们两块公网网卡配置了不同的默认网关,此时云主机有两个默认网关,不过优先级不同,如果不关闭反向路由检查机制的情况下,只有高优先级的网卡可以与外网互通,低优先级传输数据将会失败,具体原理如下: ![](/media//202402/2024-02-22152856956938.png) ####原理已经描述清楚了,这就是我们为什么要关闭反向路由检查机制的原因,如果不关闭的话可以按照策略路由的方法进行配置: --- ####策略路由 新增两张路由表 vim /etc/iproute2/rt_tables 100 ens160 101 ens192 --- ####配置两张表的策略路由 #网卡ens160 ip route add default via 121.78.159.249 dev ens160 src 121.78.159.250 table ens160 # 121.78.159.249为网关 # ens160为网卡 # 121.78.159.250为网卡ip # table ens160 为路由表ens160 ip rule add from 121.78.159.250 table ens160 # 只要源ip为121.78.159.250,就走路由表ens160 #网卡ens192 ip route add default via 1.255.30.9 dev ens192 src 1.255.30.10 table ens192 # 1.255.30.9为网关 # ens192为网卡 # 1.255.30.10为网卡ip # table ens192 为路由表ens192 ip rule add from 1.255.30.10 table ens192 # 只要源ip为1.255.30.10,就走路由表ens192 --- #例子:双公网,双内网 ####添加路由规则表 vim /etc/iproute2/rt_tables ![](/media//202404/2024-04-18163632032740.png) --- ####查看路由规则表规则 ip route list table em1 ip route list table em2 ip route list table em3 ip route list table em4 --- ####添加规则 #公网1 公网1网卡配置为默认路由,所以不许要额外写路由 #公网2 ip route add default via 183.237.167.121 dev em3 src 183.237.167.122 table em3 ip rule add from 183.237.167.122 table em3 #内网1 ip route add default via 10.219.168.177 dev em2 src 10.219.168.179 table em2 ip rule add from 10.219.168.179 table em2 #内网2 ip route add default via 10.219.168.177 dev em4 src 10.219.168.180 table em4 ip rule add from 10.219.168.180 table em4 --- ####检验 ip route list table em1 ip route list table em2 ip route list table em3 ip route list table em4 ![](/media//202404/2024-04-18164031310317.png) --- ##删除规则 ip route del default via 120.237.245.121 dev em1 table em3 ip route del 120.237.245.120/29 dev em1 scope link table em3
分享到: