iptables nat表应用

iptables nat表应用

  • A机器两块网卡ens33(192.168.202.130)、ens37(192.168.100.1),ens33能够上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37能够通讯互联。

需求1:可让B机器链接外网

  • A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
  • A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
  • B上设置网关为192.168.100.1

实现:

  1. 首先准备两台机器(如果怕实验失败,可先快照下)windows

  2. 在虚拟机yong-01上在添加一块网卡(已添加过一块虚拟网卡)网络

  3. 而后默认的是NAT模式,而后点击完成tcp

  4. 在选择添加的网卡,并在右侧,选择LAN区段spa

  • 选择LAN区段,就至关于咱们给网卡链接到了内网的一个交换机上,这个交换机,用windows机器是没法链接的,这样这台机器和那台机器连上同一个内网的交换机,它们二者之间通讯便可。命令行

  1. 而后选择LAN区段中,刚设置的名称为“内网”code

  2. 最后点击肯定视频

  3. 选择克隆的虚拟机yong-02,并添加网卡——>在这台虚拟机上自己有一块网卡,由于已经编辑过IP,因此咱们能够直接禁掉这个网卡server

  4. 而后hf-02添加一块网卡,和hf添加网卡步骤同样相同,并选择LAN区段,中的“内网”,并确认ip

  5. 重启两台虚拟机路由

  • yong-02虚拟机中没有了windows所能链接的IP,因此就没法远程链接yong-02
  1. 打开yong虚拟机,输入ifconfig命令,会看到添加了一个网卡ens37

  1. 这里会看到ens37网卡,并无IP,并设置IP(新建那个当私网IP,你能够跟跟视频中的同样,也能够本身设置)

  • 设定IP有两种方法:
    • 1.能够命令行添加IP
      • 命令行ifconfig ens36 192.168.100.1/24
    • 2.也能够设置配置文件,设置配置文件和设置虚拟网卡同样的步骤
      • 将ens33网卡配置文件复制成ens37,并修改里面的IP和NETMASK便可其余都不须要管
  1. 执行命令行ifconfig ens37 192.168.100.1/24,而后运行ifconfig命令,会看到ens7网卡有了IP

 

可是ens37网卡的IP,在虚拟机一重启,那么IP就会没了——>若想永久生效,就去编辑配置文件,但默认配置文件是不存在的,须要拷贝ens33网卡的配置文件,而后更改其中的内容

  1. 由于yong-02虚拟机没法远程,因此只能在虚拟机上操做

  2. 用ifconfig命令查看yong-02虚拟机的网卡,会发现也没有IP地址

  3. 这里若想彻底禁掉ens33网卡,可执行ifdown ens33命令(这一步可省略,若一直失败的话,只要在设置好IP,两个私网IP互通便可)

    • 但有时会提示MAC地址不对,这时候进网卡配置文件中
      • 方法一:注释掉HWADDR参数
      • 方法二:看是否存在DEVICE参数。若没有,则增长上DEVICE参数——>(本身的是没有的)
      • 方法三:直接删除以前的网卡,新建虚拟网卡
  4. 给ens37网卡设置IP地址,命令行ifconfig ens37 192.168.100.100/24

  5. 而后用ifconfig命令,查看新建的网卡IP地址

  6. 这里会看到yong-02虚拟机中的ens37网卡,可是是没法ping通的——>若为了保险这里能够执行命令ifdown en33

  7. 而后给ens37网卡设置IP地址,命令行ifconfig ens37 192.168.100.100/24

  8. 这时候,两台虚拟机中新建网卡的IP互相尝试互相ping通

  9. 这时yong-01机器上须要打开路由转发 ——>想使用nat表,使用网络的转发,必须修改内核参数

    • 默认/proc/sys/net/ipv4/ip_forward这个文件为0——>这个文件为0,表示这个文件没有开启内核转发
[root@yong-01 ~]# cat /proc/sys/net/ipv4/ip_forward
0
  1. 将文件/proc/sys/net/ipv4/ip_forward默认改成1,打开端口转发
    • 要想实现nat应用,必须打开端口转发
[root@yong-01 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@yong-01 ~]# cat !$
cat /proc/sys/net/ipv4/ip_forward
1
  1. 在yong-01虚拟机上增长一条规则iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
[root@yong-01 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
  1. 实现100.0网段能够上网,作一个欺骗

  2. 给yong-02设置网关(数据包过去,从yong-01到yong-02,从yong-02到yong-01,设置好默认网关)

  3. 而后yong-02尝试是否能ping通192.168.180.134,这就意味着能够和外网通讯了

  4. 设置DNS,在/etc/resolv.conf中设置,添加nameserver 8.8.8.8

  1. 这时候就能够ping通外网了——>但物理机仍是没法ping通yong-02的虚拟机IP地址

  2. 需求2:C机器只能和A通讯,让C机器能够直接连通B机器的22端口

  • A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
  • A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
  • A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
  • B上设置网关为192.168.100.1
相关文章
相关标签/搜索