IPIP隧道打通及IP地址映射 Centos7

# 机器A 允许转发
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

# 机器A 建立IPIP隧道
ip tunnel add tunnel1 mode ipip local AIP remote BIP ttl 255
ip addr add 192.168.100.1/30 dev tunnel1
ip link set tunnel1 up

# 机器B 建立IPIP隧道 此时可以ping了
ip tunnel add tunnel1 mode ipip local BIP remote AIP ttl 255
ip addr add 192.168.100.2/30 dev tunnel1
ip link set tunnel1 up

# 机器B 指定路由
echo '100 ipiprt' >> /etc/iproute2/rt_tables
ip rule add from 192.168.100.0/30 table ipiprt
ip route add default via 192.168.100.1 table ipiprt

# 机器A执行防火墙允许伪装 或 iptables -F 或者 禁用防火墙firewalld
firewall-cmd --permanent --add-masquerade 
firewall-cmd --reload

# 机器A 执行代理和转发
iptables -t nat -A POSTROUTING -s 192.168.100.0/30 -j SNAT --to-source AIP
# 此时 机器B curl http://www.cpanel.net/showip.cgi --interface 192.168.100.2 可以看到机器A IP
iptables -t nat -A PREROUTING -d AIP -j DNAT --to-destination 192.168.100.2
iptables -A FORWARD -d 192.168.100.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

下面是一些辅助工具

1. lsmod|grep ipip可以查看ipip模块是否加载, modprobe ipip立即加载模块

2.转发机器上需要有iptables(centos7已内置不需要含iptables.services是两个) 和 iproute2(centos7已内置)

3.iptables.services和firewalld的各种命令

systemctl start iptables #启动 
systemctl status iptables #查看运行状态 
systemctl restart iptables.service #重启 
systemctl stop iptables.service #停止 
systemctl enable iptables.service #设置开机启动 
systemctl disable iptables.service #禁止开机启动
systemctl status firewalld
systemctl start firewalld
systemctl enable firewalld
systemctl stop firewalld
systemctl disable

4.yum install -y tcpdump 可以用来查看tcp包去向

tcpdump -i eth0 host 192.168.1.1

以上命令大部分会重启后失效,要写入开机启动

赞 (21)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址