|
本帖最后由 xibanya 于 2023-8-1 15:37 编辑
端口映射:一种目的地址NAT。
当报文到达路由器时,路由器首先查找是否有对应的目的NAT规则,然后再查找是否有对应的源NAT规则
某些环境下,在做完端口映射后,任然需要添加源NAT规则。
案例1:路由器动态获取公网IP(假设此时为1.1.1.1),lan地址为192.168.1.1/24 需要将内网192.168.1.254主机的22端口映射到公网
因为某种原因,该主机没有配置网关和缺省路由
公网X访问1.1.1.1的tcp 22端口
(1)协议TCP 源IP X 源端口 Y 目的IP 1.1.1.1 目的端口 22 →协议TCP 源IP X 源端口 Y 目的IP192.168.1.254 目的端口 22
(2)主机收到路由器转发的(1)报文,但是主机并不知道如何去往公网X(没有路由)
这种情况下,需要在爱快上添加一条NAT规则,将(1)经过转换后报文的源地址X,替换为主机192.168.1.254可达的地址(比如替换成自己lan接口的IP 192.168.1.1)
NAT规则——添加——动作 源地址NAT 进接口不选(对于转换后的报文,进接口就是路由器自身),出接口——lan1
目的地址——192.168.1.254 (即端口映射后报文的目标地址),协议——TCP NAT地址——192.168.1.1(自身接口的地址,因为192.168.1.1/24和192.168.1.254/24属于同一个子网)
完成后,第(1)步目的NAT完成后,路由器将报文送出lan1口时,将对该报文再次进行一次源地址NAT(不需要关注是否做了源端口转换,做不做取决于厂家配置。没做就没做,做了它也会有对应的映射关系)
于是:
(1)目的NAT(端口映射) 协议TCP 源IP X 源端口 Y 目的IP 1.1.1.1 目的端口 22 →协议TCP 源IP X 源端口 Y 目的IP 192.168.1.254 目的端口 22
(2)源NAT 协议TCP 源IP X 源端口 Y 目的IP192.168.1.254 目的端口 22 → 协议TCP 源IP 192.168.1.1 源端口 Y±n 目的 IP192.168.1.254 目的端口 22 n等于或不等于0
(3)主机回应 协议TCP 源IP 192.168.1.1 源端口 22 目的IP 192.168.1.1 目的端口 Y±n
该报文到达路由器后,再根据之前对应的关系进行对应转换,从对应接口送出
案例2:内网主机无法通过公网地址(或域名)访问内网服务器(我没遇到过爱快出现这种问题,如果有的话也是一个思路)
爱快 vlan10 192.168.10.1/24 vlan 20 192.168.20.1/24 映射公网侧的TCP X端口到192.168.20.254的X端口
添加源NAT规则:出接口 vlan20 源地址任意 目的地址:192.168.20.254 协议:TCP 目的端口:X NAT地址:192.168.20.1
这样内网访问公网X端口的TCP连接,到达爱快后命中端口映射,进行目的地址和端口转换后,送向vlan 20接口,报文在出接口时,命中源nat规则,将源地址全部替换为192.168.20.1
之后主机的回应到达路由器时,按照路由器上已经对应的ip,端口关系进行转换
|
|