У меня есть маршрутизатор Ubuntu с установленным Ubuntu Server 14.04. Физические сетевые интерфейсы:
eth0 - локальная сеть
eth3 - WAN (интернет)
wlan2 - локальная беспроводная локальная сеть (AP)
Это мой /etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
# LAN interface
auto eth0
iface eth0 inet manual
# This is the Wireless section.
auto wlan2
iface wlan2 inet manual
up /sbin/ifconfig wlan0 up
# This is the Bridge section.
auto br0
iface br0 inet static
address 192.168.2.106
network 192.168.2.0
netmask 255.255.255.0
bridge_ports eth0 wlan0
# WAN network interface (NAT-ed)
auto eth3
iface eth3 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.20
dns-nameservers 8.8.8.8 4.4.4.4
Маршрут:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.20 0.0.0.0 UG 0 0 0 eth3
192.168.1.0 * 255.255.255.0 U 0 0 0 eth3
192.168.2.0 * 255.255.255.0 U 0 0 0 br0
Я использую UFW и вот что я добавил в /etc/ufw/before.rules:
# Configure NAT settings
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.2.0/24 -o eth3 -j MASQUERADE
COMMIT
Статус UFW:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
Anywhere ALLOW 192.168.2.0/24
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Затем я также использую hostapd для точки доступа wifi. Все работает отлично. Но... Я хочу добавить дополнительную сетевую карту, которая будет вторым интерфейсом WAN нау меня есть публичный статический IP. Я хочу использовать текущий eth3 в качестве основного интернет-подключения, так как это очень быстрое и надежное соединение, но оно находится за NAT, поэтому у него нет публичного IP. У меня есть дополнительное интернет-подключение с публичным IP, которое я хочу использовать только для доступа к серверу (маршрутизатору) извне (ssh, http, https). Публичное IP-подключение к интернету будет подключено к eth2.
Я не знаю, как это настроить. Когда я просто ввожу эту конфигурацию в /etc/network/interfaces, я не могу получить доступ к серверу (ssh,http,https) через публичный IP, указанный для eth2. (Интернет-подключение с этим публичным IP в порядке - я проверил его с другим аппаратным маршрутизатором, и я мог получить к нему доступ извне):
# WAN network interface with a public IP
auto eth2
iface eth2 inet static
address 217.XXX.XXX.AAA
netmask 255.255.255.224
gateway 217.XXX.XXX.BBB
dns-nameservers 8.8.8.8 4.4.4.4
Кто-нибудь может мне помочь разобраться с этим?
Хорошо, я частично решил проблему.>>>
Я создал новую таблицу маршрутизации и добавил маршрутизацию для «публичного IP WAN», а также добавил правило IP, чтобы все, что приходит с публичного IP, направлялось с использованием новой таблицы маршрутизации на правильный интерфейс/gw:
sudo ip route add 217.XXX.XXX.160/27 dev eth2 src 217.XXX.XXX.185 table T1
sudo ip route add default via 217.XXX.XXX.161 table T1
sudo ip rule add from 217.XXX.XXX.185 table T1
Теперь у меня есть сервер, доступный извне через публичный IP, связанный с WAN eth2.Меня беспокоит то, что после того, как я это настроил, у меня нет доступа к серверу через публичный IP из локальной сети за маршрутизатором.Я думаю, это из-за того, что маскарадинг настроен таким образом, что мы маршрутизируем все из локальной сети за маршрутизатором через eth3 - который является интерфейсом WAN eht3 (без публичного IP). Я прав? Есть ли способ исправить это?
решение1
Решено полностью
Теперь у меня правильные настройки, и вся настройка работает, так что я могу получить доступ к серверу из интернета через публичный IP (WAN1) и маршрутизировать LAN в интернет через WAN2, и я все еще могу получить доступ к серверу через его публичный IP (WAN1) из LAN. Это маршрутизация, которую нужно было настроить, чтобы она работала так, как я описал ранее:
ip route del default table main
ip route add default via 192.168.1.20 dev eth3 table main
ip route add 217.XXX.XXX.160/27 dev eth2 src 217.XXX.XXX.185 table T1
ip route add default via 217.XXX.XXX.161 dev eth2 table T1
ip route add 192.168.2.0/24 dev br0 table T1
ip route add 192.168.1.0/24 dev eth3 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add 192.168.1.0/24 dev eth3 src 192.168.1.1 table T2
ip route add default via 192.168.1.20 dev eth3 table T2
ip route add 192.168.2.0/24 dev br0 table T2
ip route add 217.XXX.XXX.160/27 dev eth2 table T2
ip route add 127.0.0.0/8 dev lo table T2
ip rule add from 217.XXX.XXX.185 table T1
ip rule add from 192.168.1.1 table T2
Вот и всё. Итак, это решено.