У меня есть коммерческий кабельный модем с Tomato 1.28 от shibby. В настоящее время он имеет статический IP-адрес, назначенный через DHCP, и работает нормально. Мне назначили несколько дополнительных маршрутизируемых IP-адресов, но они находятся в другой подсети.
**WAN**
addr:1.2.3.10 Bcast:1.2.3.255 Mask:255.255.255.0
**LAN**
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
**Additional WAN block info:**
Network: 2.2.3.120/29
Subnet Mask: 255.255.255.248
Start: 2.2.2.121
End: 2.2.2.126
Я планирую присвоить новые 5 адресов хостам 192.168.1.x, а затем сопоставить их с публичными адресами.
**LAN** **WAN**
192.168.1.121 -> 2.2.2.121
192.168.1.122 -> 2.2.2.122
...
192.168.1.126 -> 2.2.2.126
Следует ли это делать с помощью правил брандмауэра или статических маршрутов?
Инструкции от интернет-провайдера: ...вы заявили, что будете маршрутизировать свой дополнительный блок, вот простой пример того, что нужно будет сделать с вашим оборудованием.
Маршрутизация: Мне нужно, чтобы вы настроили IP из этого блока на ВНУТРЕННИЙ интерфейс; я бы предложил использовать первый пригодный для использования IP 2.2.2.121. Этот IP затем будет действовать как шлюз для трафика подсетей.
решение1
Следует ли это делать с помощью правил брандмауэра или статических маршрутов?
Если под статическими маршрутами вы подразумеваетенабор iproute2, то вы правы, это можно сделать обоими способами, и я пока не смог заметить разницы в производительности.
Сетевая карта будет принимать трафик UNICAST только при двух обстоятельствах:
Он имеет IP-адрес, на который направляется трафик UNICAST;
Он находится в беспорядочном режиме.
Режим Promiscuous считается угрозой безопасности. Поэтому вам следует назначить новый набор публичных IP-адресов порту WAN на вашем маршрутизаторе.
СЕТЕВОЙ ФИЛЬТРвариант
Вы можете перенаправить весь трафик на соответствующий ПК с помощью этого единственногоiptablesкоманда:
iptables -t nat -A PREROUTING -d 2.2.2.121 -j DNAT --to-destination 192.168.1.121
но это оставляет небольшую дыру: netfilter NAT делаетнетзаставить ядро отвечать на запросы ARP для IP-адреса, прошедшего NAT,глянь сюда. Поэтому я предлагаю вам использовать два перенаправления следующим образом:
iptables -t nat -A PREROUTING -d 2.2.2.121 -p tcp -j DNAT --to-destination 192.168.1.121
iptables -t nat -A PREROUTING -d 2.2.2.121 -p udp -j DNAT --to-destination 192.168.1.121
При этом трафик, не относящийся к TCP/UDP, не перенаправляется, поэтому трафик ICMP/ARP достигает ядра маршрутизатора, которое действует соответствующим образом.
То же самое касается и других ваших IP-адресов и серверов.
iproute2вариант
Таким образом, вы не трогаетеiptables вообще, и трафик ARP правильно учитывается. Команды для выдачи следующие:
ip route add nat 2.2.2.121 via 192.168.1.121
ip rule add nat 2.2.2.121 from 192.168.1.121
Первое правило применяется к ВХОДЯЩЕМУ трафику, второе — к ИСХОДЯЩЕМУ трафику. Первое правило перенаправляет трафик на ваш локальный сервер, переписывая адрес назначения. Второе правило переписывает исходный адрес, чтобы казалось, что ответ приходит с публичного IP 2.2.2.121 вместо локального IP 192.168.1.121.
Наслаждайтесь. И, кстати,
В настоящее время ему назначен статический IP-адрес через DHCP, и он работает нормально.
Что это значит???