следующее меня полностью сбивает с толку. В настоящее время у нас есть gentoo box, который действует как наш LAMP, DNS, DHCP сервер. В сети ему назначается статический IP-адрес. Этот сервер подключен непосредственно к Интернету через маршрутизатор BT BusinessHub. Сервер также подключен к патч-панели / порту коммутатора, который соединяет оставшийся офис (около 10 ПК) с сервером.
Все шло гладко до тех пор, пока сервер не был перезапущен. По какой-то причине теперь доступна только часть доступа к сети в зависимости от того, какое устройство Ethernet было перезапущено в последний раз. Перезапуск net.eth0 позволяет офисному серверу выполнять cURL, ping и т. Д., Но блокирует доступ к Интернету всех подключенных к сети ПК. Затем перезапуск net.eth1 восстанавливает весь Интернет в сети, но снова останавливает сервер от скручивания, пинга и т. Д.
Однако, даже когда сервер не может выполнить ping, curl и т. Д., Я все равно могу удаленно подключаться по SSH и MySQL из командной строки к другим внешним серверам, которыми мы владеем.
Вот моя карта маршрутов (маршрутизатор 192.168.1.254):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth1
Вот мой /etc/conf.d/net:
iface_eth0="192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0"
iface_eth1="dhcp"
Однако ничего из вышеперечисленного никогда не менялось. Все просто перестало работать правильно, что заставляет меня думать, что это недавно добавленное правило Iptables. Вот таблица фильтров Iptables:
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- ##.##.##.## anywhere tcp dpt:ssh
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:2199
ACCEPT tcp -- anywhere anywhere tcp dpt:3199
ACCEPT tcp -- ##.###.###.## anywhere tcp dpt:http
ACCEPT tcp -- ###.###.##.## anywhere tcp dpt:2199
ACCEPT tcp -- ##.###.###.### anywhere tcp dpt:http
ACCEPT tcp -- ##.###.##.## anywhere tcp dpt:http
ACCEPT tcp -- ##.###.###.### anywhere tcp dpt:3128
ACCEPT udp -- ##.###.###.### anywhere udp dpt:3128
ACCEPT tcp -- ##.###.###.### anywhere tcp dpt:http
ACCEPT tcp -- ##.###.###.### anywhere tcp dpt:https
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere ##.###.###.##
DROP all -- anywhere ##.###.###.##
ACCEPT all -- anywhere anywhere state NEW,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp spt:2199
ACCEPT udp -- anywhere anywhere udp spt:4817
ACCEPT udp -- anywhere anywhere udp spt:4819
ACCEPT udp -- anywhere anywhere udp spt:3199
Помощь с благодарностью.
Вы понимаете, что у вас эффективно настроены eth0 и eth1 для одной и той же подсети?
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
iface_eth0="192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0"
iface_eth1="dhcp"
Измените подсеть на вашем маршрутизаторе на 192.168.0.0/24 или другую подсеть, кроме 192.168.1.0/24, перезапустите eth1, и это должно исправить. Если два интерфейса действительно не находятся в одной сети - а это не так - их не следует настраивать для одной и той же подсети.
Кроме того, весь трафик проходит через ваш сервер, чтобы добраться до маршрутизатора?
Если это так, я рекомендую просто включить мост на вашем маршрутизаторе, чтобы дать вашему серверу общедоступный IP-адрес. Видеть: http://business.forums.bt.com/t5/Broadband-and-internet/How-to-set-up-bridge-mode-on-the-BT-business-hub/td-p/4902 - это позволит полностью избежать проблемы, хотя, поскольку я не знаком с вашим маршрутизатором, вы можете этого избежать; они называют это мостом, похоже, это может быть сквозная передача, где он все еще выполняет аутентификацию (выполняет ли BT аутентификацию PPPoE / PPPoA?), но передает информацию DHCP.
Установка двух подсетей с NAT - пустая трата времени, если вы не используете / не нуждаетесь.
Судя по звукам, похоже, что ваши интерфейсы настроены так, чтобы не разрешать пересылку по умолчанию, поэтому при перезапуске интерфейса он останавливает пересылку, показывая тип проблемы, с которой вы столкнулись.
Попробуйте добавить это в свой /etc/sysctl.conf
Добавьте / раскомментируйте следующие строки:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
Если у вас есть динамический интернет-адрес, вы, вероятно, захотите включить это:
net.ipv4.ip_dynaddr = 1
Это должно решить вашу проблему