ip 路由 src 重写

ip 路由 src 重写

在这个配置上斗争太久了。

假设一个公共 IP: 1xx.24.184.yy/32 假设一个私有网络: 10.184.yy.0/28 gw10.184.yy.3

现在我想通过网关路由我的公共 IP

什么是好的配置? ip addrip route

答案1

您可以将公共 IP 地址分配给lo接口,或者最好dummy为该地址创建接口。此外,您的设置需要在网关和后续路径上进行路由配置才能使用公共 IP。

虚拟接口配置:

  • 加载内核模块,但不创建默认虚拟接口。您可以将内核模块选项写入/etc/modprobe.d/dummy.conf
modprobe dummy numdummies=0
  • 创建虚拟接口
ip link add name dummy0 type dummy
  • 将公网 IP 地址分配给虚拟接口
ip address add 1xx.24.184.yy/32 dev dummy0
  • 启用接口
ip link set dev dummy0 up
  • 使用公网ip作为默认源地址,此步骤可选,可以通过将应用绑定到公网ip来使用。
ip route replace default via 10.184.yy.3 src 1xx.24.184.yy

阅读你的 Linux 发行版的文档以使配置永久生效。否则重启后设置将会丢失。

  • Debian 持久配置(文件/etc/network/interfaces):
auto dummy0
iface dummy0 inet static
        pre-up modprobe dummy numdummies=0
        pre-up ip link add name dummy0 type dummy
        post-down ip link del dev dummy0
        address 1xx.24.184.yy
        netmask 255.255.255.255

环回接口配置

  • 将公共 IP 指定为环回接口上的附加地址:
ip address add 1xx.24.184.yy/32 dev lo
  • 设置路由(与上一节完全相同)
ip route replace default via 10.184.yy.3 src 1xx.24.184.yy
  • Debian 持久配置(文件/etc/network/interfaces):
auto lo
iface lo inet loopback
        post-up ip address add 100.24.184.10/32 dev lo

相关内容