目录

1、iptables和firewalld

1.1、GUI和CLI

1.2、查看内核和系统的版本

1.3、IP tables和netfilter的关系

 编辑

1.4、NAT概述

2、SNAT策略及应用

2.1、SNAT策略概述

2.2、SNAT策略的原理

2.3、SNAT策略的应用

2.3.1、SNAT代理内部机器上网实验

2.4、如何知道IP地址是否冲突?arping

2.5、在windos里添加一条到192.168.70.0网段的路由

3、DNAT策略概述

3.1、DNAT策略的应用环境

3.2、DNAT策略的原理

3.3、DNAT策略的实现

3.3.1、windows里边添加路由

3.4、总结DNAT和SNAT的区别

4、动态路由协议

4.1、IGP,内部网关协议(inner gateway protocol)

4.2、EGP外部网关协议(Exterior Gateway Protocol )


本章结构

esxi 标准交换机 lldp_IP

1、iptables和firewalld

esxi 标准交换机 lldp_esxi 标准交换机 lldp_02

iptables是之前centos6用的防火墙规则命令,而firewalld是centos7和8使用的命令。当然在centos7和8中这两个规则命令都能够使用。firewalld底层调用的命令仍是iptables

1.1、GUI和CLI

GUI(Graphic User Interface):用户图形界面,可以用鼠标点击

GLI(Command Line Interface):命令行界面

1.2、查看内核和系统的版本

[root@fttswlp ~]# cat /etc/centos-release  # 查看系统的版本
CentOS Linux release 7.9.2009 (Core)
[root@fttswlp ~]# uname -r  # 查看内核的版本
3.10.0-1160.el7.x86_64

1.3、IP tables和netfilter的关系

# netfilter文件的位置
/usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/net/ipv4/netfilter

1.4、NAT概述

esxi 标准交换机 lldp_服务器_03

  

NAT解决的问题:IPV4地址不足,不能给每个人或者每个设备都分配足额的IP地址

2、SNAT策略及应用

2.1、SNAT策略概述

🍓[SNAT策略]🍓 

  • 局域网主机共享单个公网IP地址接入Internet

esxi 标准交换机 lldp_服务器_04

网关服务器就是路由器;网关就是路由器LAN口的地址,给局域网提供服务。其实哪个口子接着交换机哪个口子就是网关。 

🍓[SNAT策略的原理]🍓 

  • 源地址转换,Source Network Address Translation
  • 修改数据包的源IP地址

2.2、SNAT策略的原理

🍓[未使用SNAT策略时的情况]🍓

esxi 标准交换机 lldp_配置iptables_05

因为未使用SNAT,所以源地址还是一个私有IP地址,所以数据能送出去,但是回不来。

🍓[在网关中使用SNAT策略以后]🍓

esxi 标准交换机 lldp_服务器_06

Linux网关服务器内部有一个NAT映射表,记录着源地址目的地址的IP地址和端口号,所以这就保证了SNAT修改源地址和目的地址的时候不会出现错误。映射表是在内核中完成的。

esxi 标准交换机 lldp_配置iptables_07

2.3、SNAT策略的应用

esxi 标准交换机 lldp_服务器_08

2.3.1、SNAT代理内部机器上网实验

步骤就是按照上边这个图片来

🦖[流程图]🦖

esxi 标准交换机 lldp_服务器_09

要求:

  • 客户机:配置好IP地址、网关和dns就可以了
  • firewall网关服务器:
  • 配置好IP地址、网关和dns
  • 开启路由器功能
  • 在client和firewall网关服务器上都要关闭selinux和防火墙,然后在firewall上再开启。selinux是保护linux系统安全的一个机制,暂时不适用,建议关闭。

🍓[关闭selinux和防火墙]🍓

  • 关闭selinux的命令:setenforce 0 临时关闭;修改"/etc/sysconfig/selinux",修改内容"SELINUX=disabled",永久关闭。修改只会要"reboot"重启系统
#     enforcing - SELinux security policy is enforced.  # 强制执行 -- 1
#     permissive - SELinux prints warnings instead of enforcing.  # 宽容模式--0 
#     disabled - No SELinux policy is loaded.  # 禁用
  • 关闭防火墙命令:service firewalld stop(马上关闭firewall的服务);systemctl disable firewalld(设置firewalld服务开机不启动)

🍓[添加网卡]🍓 

esxi 标准交换机 lldp_配置iptables_10

在这界面点击[编辑虚拟机设置],在虚拟机设置点击[添加],在添加硬件向导中点击[网络适配器],然后点完成。在虚拟机设置这里改变网络适配器2网络连接桥接模式。

然后点击开启虚拟机,进入虚拟机。进行下边图片中的操作

esxi 标准交换机 lldp_IP_11


虽然上边我们添加了网卡ens37,但是我们在这个"/etc/sysconfig/network-scripts"文件夹中没有发现有这个网卡名字的文件,所以我们还要配置这个文件。即默认情况下虚拟机增加了网卡,但是不会自动生成配置文件,需要手工的去配置。

esxi 标准交换机 lldp_SNAT_12

然后修改"ifcfg-ens37"成为你想要的信息,本例子中的要的信息要配置成这样。因为本例中ens37是LAN口所以不要配置网关和DNS,所以把下图中倒数一二行删除。内容什么的,请友友按你们的需求来修改。

esxi 标准交换机 lldp_服务器_13

看一下ens33和ens37的网关配置。ens33的就是作为WLAN口使用,ens37是作为LAN口使用。

esxi 标准交换机 lldp_配置iptables_14

最后我们需要重新启动网络服务

centos7的用户使用这个命令

service network restart  # 重启一下网络服务,

centos8的用户使用这个命令

ifup ens33  # 重启ens33网卡

ifup ens37  # 重启ens37网卡

重新启动服务之后,设置的各个指标都会对应的文件中。如,存放DNS的文件为“/etc/resolv.conf”

🍓[编写防火墙脚本文件--防火墙脚本的一般结构]🍓

  1. 设置网络、网卡、IP地址等变量
  2. 加载包过滤相关的内核模式
  1. FTP相关:ip_nat_ftp、ip_conntrack_ftp
  2. Mail相关:ip_nat_irc、ip_conntrack_irc
  1. 开启路由器转发功能
  1. echo 1 >/proc/sys/net/ipv4/ip_forward 
  2. 修改/etc/sysctl.conf,加入net.ipv4.ip_forward = 1。设置后使用sysctl -p,让内核重新加载这个变量

注意路由器是一个接口一个网段

  1. 用于添加的具体防火墙规则内容
  1. 清空原有规则,建立新的规则

🍓[在网关服务器上制定规则]🍓

写成脚本然后执行这个规则脚本

[root@fttswlp script]# cat snat.sh 
#!/bin/bash

# 清除filter表和nat表里的防火墙规则
iptables -F
iptables -t nat -F

# 防止INPUT表是DROP
iptables -P INPUT ACCEPT

# 关闭firewalld服务
service firewalld stop
# 设置开机不启动firewalld服务
systemctl diable firewalld

# SNAT策略
# 只要是192.168.70.0网段出来IP地址就会把它换成192.168.0.204
iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ens33 -j SNAT --to-source 192.168.0.204

# 对于SNAT策略若是我们不指定改为具体的源地址,可以这样设置。作用和上边哪个命令是一样的
# iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ppp0 -j MASQUERADE
# 这个命令就是表示着用哪个口出去上网就伪装哪个口的IP地址

# 开启路由功能
echo 1 >/proc/sys/net/ipv4/iP_forward

🍓[验证]🍓

只要我们的192.168.70.1这个客户机能够ping通www.baidu.com这个实验就是成功了。

🍓[错误检查]🍓

要是ping www.baidu.com有问题,就ping 自己的网,若是ping不通,检查一下网卡类型是不是桥接、IP地址是否配置正确;再ping自己的外网卡,再ping 114.114.114.114。一路ping出去,一段一段的检查。

2.4、如何知道IP地址是否冲突?arping

在另外的一台机器上执行"arping + 你想要知道的IP地址",如果有一个IP地址有两个或者多个不同的MAC地址,就说明IP地址出现冲突了

2.5、在windos里添加一条到192.168.70.0网段的路由

在windos10里边要以管理员方式运行cmd

esxi 标准交换机 lldp_配置iptables_15

我们的windows机器是连在H3C的LAN口位置的

3、DNAT策略概述

esxi 标准交换机 lldp_服务器_16

 工作中用的很多,企业用来发布内网的服务器到internet上

3.1、DNAT策略的应用环境

esxi 标准交换机 lldp_IP_17

3.2、DNAT策略的原理

🍓[在网关中使用DNAT策略发布内网服务器]🍓

esxi 标准交换机 lldp_配置iptables_18

 DNAT转换利用的是DNAT映射表

3.3、DNAT策略的实现

esxi 标准交换机 lldp_配置iptables_19

🦖[流程图]🦖  

esxi 标准交换机 lldp_服务器_20

🍓[制定规则脚本] 🍓

[root@fttswlp firewall_rule]# cat snat_dnat.sh 
#!/bin/bash

# 开启路由功能
echo 1 >/proc/sys/net/ipv4/iP_forward

# 清除filter表和nat表里的防火墙规则
iptables -F
iptables -t nat -F

# 关闭firewalld服务
service firewalld stop
# 设置开机不启动firewalld服务
systemctl diable firewalld

# SNAT策略
# 只要是192.168.70.0网段的出来只会就把它的IP地址换成192.168.0.204
iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ens33 -j SNAT --to-source 192.168.0.204
# 对于SNAT策略若是我们不指定改为具体的源地址,可以这样设置。作用和上边哪个命令是一样的
# iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ppp0 -j MASQUERADE
# 这个命令就是表示着用哪个口出去上网就伪装哪个口的IP地址

# dnat
# dnat web
iptable -t nat -A PREROUTING -i ens33 -d 192.168.0.204 -p tcp --dorpt 80 -j DNAT --to-destination 192.168.170.1:80

# dnat mysql
iptable -t nat -A PREROUTING -i ens33 -d 192.168.0.204 -p tcp --dorpt 3306 -j DNAT --to-destination 192.168.170.2:3306

=======================================================================

🍓[大型流程使用docker和mysql结合]🍓

esxi 标准交换机 lldp_esxi 标准交换机 lldp_21

🍓[制定规则]🍓

[root@fttswlp firewall_rule]# cat snat_dnat_v2.sh 
#!/bin/bash

# 开启路由功能
echo 1 >/proc/sys/net/ipv4/iP_forward

# 清除filter表和nat表里的防火墙规则
iptables -F
iptables -t nat -F

# 关闭firewalld服务
service firewalld stop
# 设置开机不启动firewalld服务
systemctl diable firewalld

# SNAT策略
# 只要是192.168.70.0网段的出来只会就把它的IP地址换成192.168.0.204
iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ens33 -j SNAT --to-source 192.168.0.204
# 对于SNAT策略若是我们不指定改为具体的源地址,可以这样设置。作用和上边哪个命令是一样的
# iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -0 ppp0 -j MASQUERADE
# 这个命令就是表示着用哪个口出去上网就伪装哪个口的IP地址

# dnat
# dnat web
iptable -t nat -A PREROUTING -i ens33 -d 192.168.0.204 -p tcp --dorpt 80 -j DNAT --to-destination 192.168.170.1:80

# dnat mysql  192.168.170.2
iptable -t nat -A PREROUTING -i ens33 -d 192.168.0.204 -p tcp --dorpt 3306 -j DNAT --to-destination 192.168.170.2:3306

# dnat mysql 192.168.170.1 docker
iptable -t nat -A PREROUTING -i ens33 -d 192.168.0.204 -p tcp --dorpt 3309 -j DNAT --to-destination 192.168.170.1:3306

3.3.1、windows里边添加路由

若是不知道到输入命令可以这样

esxi 标准交换机 lldp_IP_22

 

esxi 标准交换机 lldp_IP_23

3.4、总结DNAT和SNAT的区别

SNAT解决的问题:是让内网的用户可以通过一个共有IP地址访问互联网;站在用户的角度,帮助用户上网

DNAT解决的问题:把内网的用户发布到外网;站在企业的角度,将服务器发布出去

4、动态路由协议

EGP和IGP。

4.1、IGP,内部网关协议(inner gateway protocol)

用在一个自治系统内部

  • rip,只是适合规模比较小的网络,基于跳数来判断衡量一条路由的质量好坏,最多15跳。
  • ospf,适合大型的网络,基于开销或者代价的大小(即带宽或者速度的大小)来判断一条路由的质量的好坏。

4.2、EGP外部网关协议(Exterior Gateway Protocol )

外部网关协议(Exterior Gateway Protocol,EGP)是一个在自治系统网络中两个邻近的网关主机(每个都有它们自己的路由)间交换路由信息的协议。EGP常常被用来在英特网的两个主机间交换路由表信息。路由表包括已知的路由器清单、它们能到达的地址以及与每个路由的路径相关的成本度量,以便选出最好的可用路径。

BGP,边界网关协议(Border Gateway Protocol)

5、堡垒机

esxi 标准交换机 lldp_IP_24

访问"2233"端口会跳转到跳板机的2233端口上;图片中是一台机器充当firewalld功能,这台机器作为转发数据的,所以我们若是需要转发2233端口,并不需要这台机器上也开启2233端口,只需要跳板机的2233端口开启了就行。

esxi 标准交换机 lldp_配置iptables_25

esxi 标准交换机 lldp_配置iptables_26

 [跳板机实现跳转]

esxi 标准交换机 lldp_配置iptables_27