Имеется шлюзовый сервер
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # uname -a
FreeBSD mkfse10.mk.fse.gov.ua 10.0-RELEASE-p7 FreeBSD 10.0-RELEASE-p7 #2: Thu Aug 28 12:36:18 EEST 2014 admin2@mkfse10.mk.fse.gov.ua:/usr/obj/usr/src/sys/usanov i386
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # ifconfig
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE>
ether 00:14:38:b9:45:a2
inet 10.115.0.4 netmask 0xffffff80 broadcast 10.115.0.127
inet 192.168.4.4 netmask 0xffffffff broadcast 192.168.4.4
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>
ether 90:e2:ba:4e:5b:a6
inet 192.168.4.2 netmask 0xffffff00 broadcast 192.168.4.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
bge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE>
ether 00:16:35:3b:89:c5
inet 192.168.123.2 netmask 0xfffffffc broadcast 192.168.123.3
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
bge0 - смотрит в локальную сеть. 10.115.0.4 - шлюз для локальной сети.
em0 - вторая сетевая карта, которая смотрит в Интернет. Подключение через adsl - модем. Модем настроен в режиме роутера. Имеется второй внешний ip-адрес. Адрес сетевой карты - 192.168.4.2, модема - 192.168.4.1 На модеме настроен виртуальный NAT-сервер:
Код: Выделить всё
Server Name External Port Start External Port End Protocol Internal Port Start Internal Port End Server IP Address Remote Host Remove
Код: Выделить всё
dns1 53 53 TCP/UDP 53 53 192.168.4.6
В локальной сети имеется DNS сервер имеющий два адреса - 10.115.0.6 и 192.168.4.6. Первый адрес отвечает на запросы к DNS серверу первого провайдера, второй отвечает на запросы второго провайдера, того самого, который подключен к модему.
Задача: сделать доступным DNS-сервер доступным для запросов из Интернета, используя второго провайдера, подключенному к модему
Маршруты сервера:
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.123.1 UGS 0 23432199 bge1
10.0.0.0/8 10.115.0.126 UGS 0 138971 bge0
10.115.0.0/25 link#1 U 0 14634300 bge0
10.115.0.4 link#1 UHS 0 830 lo0
10.115.0.8/32 10.115.0.6 UGS 0 4 bge0
10.115.1.128/25 10.115.0.126 UGS 0 110 bge0
127.0.0.1 link#4 UH 0 30033277 lo0
192.100.0.0/16 10.115.0.126 UGS 0 7258 bge0
192.168.3.0/24 10.115.0.126 UGS 0 34871 bge0
192.168.4.0/24 link#2 U 0 696917 em0
192.168.4.2 link#2 UHS 0 1685 lo0
192.168.4.4 link#1 UHS 0 1926 lo0 =>
192.168.4.4/32 link#1 U 0 0 bge0
192.168.4.6/32 10.115.0.6 UGS 0 3034 bge0
192.168.123.0/30 link#3 U 0 6917 bge1
192.168.123.2 link#3 UHS 0 24 lo0
213.130.11.113 192.168.4.2 UHS 0 22 em0
Основные параметры запроса:
http://network-tools.com/nslook/Default ... 18&go.y=11
Код: Выделить всё
http://network-tools.com
domain fse.mk.ua
server 213.130.11.113
port 53
67.222.132.198 is a non-cached DNS Server
DNS query for fse.mk.ua failed: Timed out
-- end --
Запрос не проходит, смотрим на карте, которая подключена к Интернету через второго провайдера, видим что запрос приходит, но ответа на сетевой карте нет:
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # tcpdump -n -p -i em0 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
capability mode sandbox enabled
18:57:31.578398 IP 67.222.132.193.50715 > 192.168.4.6.53: 0+ ANY? fse.mk.ua. (27)
18:57:37.341952 IP 67.222.132.193.51770 > 192.168.4.6.53: 0+ ANY? fse.mk.ua. (27)
^C
2 packets captured
821 packets received by filter
0 packets dropped by kernel
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # tcpdump -n -p -i bge0 port 53 and \(host 67.222.132.193 or host 192.168.4.6 or host 192.168.4.2 or host 192.168.4.1\)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bge0, link-type EN10MB (Ethernet), capture size 65535 bytes
capability mode sandbox enabled
18:58:23.750082 IP 67.222.132.193.52328 > 192.168.4.6.53: 0+ ANY? fse.mk.ua. (27)
18:58:23.750256 IP 192.168.4.6.53 > 67.222.132.193.52328: 0* 9/0/2 A 213.130.11.113, NS ns2.trifle.net., NS ns0.fse.mk.ua., NS dns.wildpark.net., NS ns2.torola.mk.ua., NS ns0.xname.org., SOA, MX fse.mk.ua. 10, TXT "v=spf1 mx ip4:213.130.11.113 -all" (333)
18:58:31.630799 IP 67.222.132.193.60840 > 192.168.4.6.53: 0+ ANY? fse.mk.ua. (27)
18:58:31.630971 IP 192.168.4.6.53 > 67.222.132.193.60840: 0* 9/0/2 A 213.130.11.113, NS ns2.trifle.net., NS ns0.fse.mk.ua., NS dns.wildpark.net., NS ns2.torola.mk.ua., NS ns0.xname.org., SOA, MX fse.mk.ua. 10, TXT "v=spf1 mx ip4:213.130.11.113 -all" (333)
^C
4 packets captured
828 packets received by filter
0 packets dropped by kernel
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # ipfw 1399 add fwd 213.130.11.113 ip from 192.168.4.6 to any
01399 fwd 213.130.11.113 ip from 192.168.4.6 to any
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # tcpdump -n -p -i em0 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
capability mode sandbox enabled
19:02:00.753082 IP 67.222.132.193.64056 > 192.168.4.6.53: 0+ ANY? fse.mk.ua. (27)
^C
1 packet captured
152 packets received by filter
0 packets dropped by kernel
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # tcpdump -n -p -i bge1 port 53 and \(host 67.222.132.193 or host 192.168.4.6 or host 192.168.4.2 or host 192.168.4.1\)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bge1, link-type EN10MB (Ethernet), capture size 65535 bytes
capability mode sandbox enabled
^C
0 packets captured
1124 packets received by filter
0 packets dropped by kernel
root@mkfse10:/usr/home/admin2 #
Код: Выделить всё
root@mkfse10:/usr/home/admin2 # ipfw show
00100 586011 2192702040 allow ip from any to any via lo0
01000 62 2772 deny tcp from not 217.77.216.0/21 to me dst-port 22 in via bge1
01100 19 912 deny tcp from not table(2) to me dst-port 1723 via bge1
01200 37 1632 deny tcp from any to me dst-port 3306 via bge1
01300 61 2940 deny tcp from not 217.77.223.146 to me dst-port 80 via bge1
01309 964 57840 deny tcp from not table(5) to any dst-port 25 out via bge1
01399 4 1444 fwd 213.130.11.113 ip from 192.168.4.6 to any
01401 10700 874190 fwd 217.77.208.254,53 ip from 10.115.0.6 53 to any
01401 0 0 fwd 217.77.208.254,53 ip from 10.115.0.6 53 to any
04900 198027 28625977 divert 8665 ip from table(8) to 192.168.4.1 out via em0
04901 197760 48913571 divert 8665 ip from 192.168.4.1 to 192.168.4.2 in via em0
05000 2856920 838277738 divert 8668 ip from any to any via bge1
05202 0 0 check-state
05802 1834113 605969606 allow tcp from me to any out via bge1 keep-state
05902 6049 338744 allow icmp from me to any out via bge1 keep-state
06002 381872 48837487 allow udp from me to any out via bge1 keep-state
06102 0 0 allow gre from me to any out via bge1 keep-state
06202 1869578 494770948 allow tcp from any to any in via bge0 keep-state
06302 652439 83004000 allow udp from any to any in via bge0 keep-state
06402 146 12264 allow icmp from any to any in via bge0 keep-state
06502 28802 2764009 allow tcp from any to any out via bge0 keep-state
06602 22816 4695672 allow udp from any to any out via bge0 keep-state
06702 74315 5756286 allow icmp from any to any out via bge0 keep-state
06802 0 0 allow tcp from any to any out via bge1 keep-state
06902 0 0 allow udp from any to any out via bge1 keep-state
07002 32282 2660188 allow icmp from any to any via bge1
20100 295023 33512847 allow tcp from any to any
20110 10414 764954 allow udp from any to any
20120 0 0 allow gre from any to any
20220 21 1692 allow ip from any to any keep-state
65535 0 0 deny ip from any to any
root@mkfse10:/usr/home/admin2 #
Код: Выделить всё
04950 20 1100 divert 8666 ip from any to 192.168.4.6 dst-port 53 out
04954 7 2527 skipto 5001 ip from 192.168.4.6 to 192.168.4.2
05000 691580 555283122 divert 8668 ip from any to any via bge1
05003 5 1805 fwd 192.168.4.2 ip from 192.168.4.6 to 192.168.4.2
05004 135 19566 divert 8666 ip from 192.168.4.2 to 192.168.4.1