linux | 对静态路由理解与测试

2023-03-18 17:47:22 浏览数 (2)

静态路由

静态路由使用的原因多种多样,当没有到目的IP地址的动态路由时经常使用静态路由,或者用于覆盖动态获知的路由。

默认情况下,静态路由的管理距离为 1,因此优先于来自任何动态路由协议的路由。当管理距离增加到大于动态路由协议的值时,静态路由在动态路由发生故障时可以成为安全网。例如,增强型内部网关路由协议 (EIGRP) 派生路由的内部路由默认管理距离为 90,外部路由默认管理距离为 170。要配置由EIGRP路由覆盖的静态路由,请为该静态路由指定大于170的管理距离。

iptables 和连接跟踪

iptables包含一个模块,允许管理员使用称为连接跟踪的方法检查和限制与内部网络上可用服务的连接。连接跟踪将连接存储在一个表中,允许管理员根据以下连接状态允许或拒绝访问:

  • NEW— 请求新连接的数据包,例如 HTTP 请求。
  • ESTABLISHED— 作为现有连接一部分的数据包。
  • RELATED— 请求新连接但属于现有连接一部分的数据包,例如连接端口为 20 的被动 FTP 连接,但传输端口可以是任何未使用的端口 1024 或更高。
  • INVALID— 不属于连接跟踪表中任何连接的数据包。

您可以对任何网络协议使用连接跟踪的有状态功能iptables,即使该协议本身是无状态的(例如 UDP)。以下示例显示了使用连接跟踪仅转发与已建立连接关联的数据包的规则:

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

实验:

代码语言:javascript复制
-A 在规则链的末尾加入新规则
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-m state 匹配状态
-j 跳转到指定的目标。默认情况下,iptables 允许四个目标:
ACCEPT 接受数据包并停止处理此链中的规则。
REJECT 拒绝数据包并通知发送方我们这样做了,并停止处理这条链中的规则。
DROP 默默地忽略数据包,并停止处理这条链中的规则。
LOG  记录数据包,并继续处理此链中的更多规则。允许使用--log-prefix和--log-level选项。


iptables -A FORWARD -i ens33 -o ens36 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ens36 -o ens33 -j ACCEPT

添加静态路由
ip route add 172.16.5.0/24 via 172.16.3.201 dev ens33
ip route add 172.16.3.0/24 via 172.16.5.201 dev ens33
代码语言:javascript复制
计算机A
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.3.1      0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
172.16.3.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
172.16.5.0      172.16.3.201    255.255.255.0   UG    0      0        0 ens33
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e9:ac:55 brd ff:ff:ff:ff:ff:ff
    inet 172.16.3.200/24 brd 172.16.3.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fee9:ac55/64 scope link 
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:e9:ac:5f brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# 

计算机B
[root@localhost ~]# route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.5.1      0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
172.16.3.0      172.16.5.201    255.255.255.0   UG    0      0        0 ens33
172.16.5.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:22:12:5e brd ff:ff:ff:ff:ff:ff
    inet 172.16.5.200/24 brd 172.16.5.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe22:125e/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 

路由器
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.5.1      0.0.0.0         UG    0      0        0 ens36
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 ens36
172.16.3.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
172.16.5.0      0.0.0.0         255.255.255.0   U     0      0        0 ens36
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e4:48:0e brd ff:ff:ff:ff:ff:ff
    inet 172.16.3.201/24 brd 172.16.3.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fee4:480e/64 scope link 
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e4:48:18 brd ff:ff:ff:ff:ff:ff
    inet 172.16.5.201/24 brd 172.16.5.255 scope global ens36
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fee4:4818/64 scope link 
       valid_lft forever preferred_lft forever
  • https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/4/html/security_guide/s1-firewall-state
  • https://github.com/heidsoft/devops/issues/16

0 人点赞