Мой маршрутизатор 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