У меня есть маршрутизатор - G, мой рабочий стол - D, ноутбук - L. Я хочу подключить L к Интернету через D.
G в 192.168.1.1
D: enp1s0 - 192.168.1.2/24, gw G, eno1 - 10.0.0.1/16, служит маршрутизатором для L
L: enp1s0 - 10.0.0.2, gw 10.0.0.1. Таблицы маршрутизации в L:
netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 enp1s0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Пакетная передача в D включила:
sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
Однако L не соединяется с Интернетом:
traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.0.0.1 (10.0.0.1) 0.346 ms 0.339 ms *
2 10.0.0.1 (10.0.0.1) 0.370 ms !X * *
Очевидно, что пакеты L могут достигнуть D, но они могли передать не дальше.
Однако L соединяется, когда я позволяю подменить на D:
firewall-cmd --zone=public --add-masquerade=yes
success
Можно ли объяснить, почему L соединяется с Интернетом только при подмене в интерфейсе D (который подключен к L непосредственно), включен?
Причина, которую Вы должны ПОДМЕНИТЬ, из-за способа, которым работает NAT.
Рассматривают Ваш маршрутизатор, G. Это получает IP от Интернет-провайдера. Тот IP-адрес - то, что все системы позади маршрутизатора выходят в Интернет, таким образом, все системы подменяют тем IP-адресом. (Который является, как маршрутизаторы работают в жилых основных установках).
Ваш компьютер D, действуя как шлюз NAT для Вашего ноутбука, L, связывается с теми же правилами того, как Интернет работает. Идеально, то, что Вы сделали бы, имеет по крайней мере один внутренний IP-адрес, и когда он запрашивает ресурс кроме других компьютеров в той подсети, он требует способности подменить пакеты от L как внутренний IP-адрес D для надлежащей маршрутизации пакетов через G.
Это также имеет место с использованием компьютера как сервер VPN; для выхода в остальную часть сети или конкретно внешней сети необходимо подменить IP-адресом того сервера.
Это, как NAT работает. То же относится к прокси, и т.д.