Мой маршрутизатор Linksys (IP 192.168.1.1 внутри подсети /24) подключен к моему модему ADSL (IP 10.0.0.138 внутри подсети /24) для установления подключения к Интернету через PPPoE. Чтобы получить доступ к веб-интерфейсу модема с одного из компьютеров, подключенных к маршрутизатору, на маршрутизаторе необходимо выполнить следующие команды:

ip addr add 10.0.0.1/24 dev vlan1 brd +
iptables -I POSTROUTING -t nat -o vlan1 -d 10.0.0.138 -j MASQUERADE

Насколько я понял, это необходимо, так как в противном случае маршрутизатор мог бы предположить, что IP 10.0.0.138 является внешним адресом, поскольку он не является частью собственной подсети 192.168.1.0/24.

Но что именно делают эти две строки? Первый, кажется, назначает второй IP-адрес интерфейсу vlan1 (который в основном является портом WAN маршрутизатора). Второй, видимо, изменяет исходный адрес исходящих IP-пакетов. Но разве это не то, что любой домашний маршрутизатор делает по умолчанию? Используя iptables -t nat -L я обнаружил, что правило уже существует:

target      prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Теперь вторая команда добавляет

MASQUERADE  all  --  anywhere             10.0.0.138

к этой таблице, но не является ли это только более конкретной версией вышеуказанного правила и, следовательно, избыточной?

Было бы здорово, если бы кто-то мог точно объяснить мне детали того, что здесь происходит!


Вывод ip route:

87.186.225.71   dev ppp0   proto kernel  scope link  src [my public IP]
10.0.0.0/24     dev vlan1  proto kernel  scope link  src 10.0.0.1
192.168.1.0/24  dev br0    proto kernel  scope link  src 192.168.1.1
127.0.0.0/8     dev lo                   scope link
default via 87.186.225.71 dev ppp0

Вывод ip addr:

1: lo:  mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:13:10:2f:fe:48 brd ff:ff:ff:ff:ff:ff
3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:13:10:2f:fe:4a brd ff:ff:ff:ff:ff:ff
4: vlan0:  mtu 1500 qdisc noqueue
    link/ether 00:13:10:2f:fe:48 brd ff:ff:ff:ff:ff:ff
5: vlan1:  mtu 1500 qdisc noqueue
    link/ether 00:13:10:2f:fe:49 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global vlan1
6: br0:  mtu 1500 qdisc noqueue
    link/ether 00:13:10:2f:fe:48 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br0
...
23: ppp0:  mtu 1492 qdisc pfifo_fast qlen 3
    link/ppp
    inet [my public IP] peer 87.186.225.71/32 brd [my public IP] scope global ppp0

0