Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linux Advanced Routing & Traffic Control HOWTO (1) 2006. 5.30 성 백 동

Similar presentations


Presentation on theme: "Linux Advanced Routing & Traffic Control HOWTO (1) 2006. 5.30 성 백 동"— Presentation transcript:

1 Linux Advanced Routing & Traffic Control HOWTO (1) 2006. 5.30 성 백 동 iceboy98@hufs.ac.kr@hufs.ac.kr

2 2 Contents Introduction Exploring your current configuration Rules-routing policy database GRE and other tunnels IPSEC : secure IP over the Internet Multicast routing

3 3 introduction 리눅스 2.2/2.4 기반 리눅스, 유닉스 시스템은 arp, ifconfig,route 명령어를 사용 커널 2.2 이후 리눅스에서는 의도하지 않은 동작을 보인다.  GRE 터널은 라우팅을 구성하는 한 부부이지만 완벽히 다른 도구를 필요로 한다. Iproute2 리눅스는 트래픽 제어라 부르는 매우 정교한 대역폭 시스템을 가짐  대역폭 분류, 우선권 제공, 분배, 트래픽 제한이 가능

4 4 테스트 환경

5 5 Exploring your current configuration Ip shows us our links Link – network device ip shows us our IP addresses

6 6 Exploring your current configuration ip shows us our routes

7 7 Exploring your current configuration ARP(Address Resolution Protocol) 주소결정 프로토콜 네트워크에 연결된 컴퓨터가 같은 지역 네트워크에 존재하는 다른 컴퓨터의 하드웨어 위치 / 주소를 알아내는데 사용 ARP cache entry

8 8 Chap 4. Rules-routing policy database IP RULE rule in routing policy database. Control the route selection algorithm. Classic rouing algorithm 은 패킷 의 destination address 을 기반으로 라우팅을 결정.  다양한 방법으로 라우팅을 결정할 수 있도록 하기 위해서 Policy routing rule 은 selector 와 action predicate 로 구성. 각 selector 는 source address, destination address, incoming interface, tos, fwmark 를 적용한다.  Selector 에 맞는 패킷이 있다면 해당하는 action 을 수행한다. Default rule priority selector action Lookup routing table local reserved The normal routing table containing all non-policy routes.

9 9 Simple source policy routing local table Main table 새로운 Rule 생성

10 10 Routing for multiple uplinks/providers 지역 네트워크를 인터넷에 연결하는데 사업자가 두개 일 때 사용되는 설정 Split access Load balancing 지역망 인터넷

11 11 Split Access 특정 서비스 제공자를 통해서 패킷이 온 경우 같은 서비스 제공자를 통해 응답해야 한다. 경로 설정 예제 (IF – 인터페이스, IP- IF 에 할당된 IP 주소, P – Provider 의 gateway IP address, P-NET – P 에 있는 IP 네트워크, T – routing table) ip route add $P1_NET dev $IF1 src $IP1 table T1 ip route add default via $P1 table T1 ip route add $P2_NET dev $IF2 src $IP2 table T2 ip route add default via $P2 table T2 Gateway 로 가는 경로를 하나 만들고 gateway 를 통해 기본 경로를 설정한다.

12 12 Split Access Main routing table 설정 인터페이스에 연결된 이웃에게 직접 라우팅 ‘src’ 인수 사용 나가는 IP 주소 지정  ip route add $P1_NET dev $IF1 src $IP1  ip route add $P2_NET dev $IF2 src $IP2 기본 라우팅 경로 설정  Ip route add default via $P1 Routing rule 설정 ip rule add from $IP1 table T1 ip rule add from $IP2 table T2

13 13 Load balancing 두 서비스 제공자를 통해 나가는 흐름의 양을 조절하는 방법 하나를 기본 경로로 설정하는 대신 기본 경로를 다중 경로로 지정 Ip route add default scpe global nexthop via $P1 dev $IF1 weight nexthop via $P2 dev $IF2 weight 1 Weight 인수는 선호하는 provider 로 조정 가능 Load balancing 은 route 를 기반으로 하고 route 들이 캐시되기 때문에 불완전하다.  만약 자주 방문하는 사이트는 항상 같은 provider 를 통해서만 연결 될 수도 있다.

14 14 Chap 5. GRE and other tunnels 리눅스 터널 IP in IP 터널링 GRE 터널링 커널 외부의 터널 (PPTP[point-to-point tunneling protocol] 와 유사 ) 터널링의 특징 간접 비용 증가  IP 헤더가 추가 – 패킷당 20 바이트 MTU 가 1500 바이트일때 터널을 통과할 수 있는 패킷은 1480 바이트가 한계 터널을 만드는데 가장 빠른 방법은 양쪽을 파면 된다.

15 15 IP in IP tunneling 리눅스에서 오래전 부터 지원 커널 모듈 필요 Ipip.o, new_tunnel.o IP-in-IP 터널을 통해서 IPv6 나 broadcast 트래픽을 포워딩할 수 없다. 리눅스의 IP-in-IP 터널링은 다른 운영체제나 라우터와 같이 사용할 수 없다.

16 16 IP in IP tunneling 테스트 환경 네트워크 C 에 대해서는 네트워크 A 와 B 의 패킷들을 서로간에 전달해준다. 네트워크 B Network 10.0.1.0 Netmask 255.255.255.0 Router 10.0.1.1 Network 10.0.2.0 Netmask 255.255.255.0 Router 10.0.2.1 172.16.17.18 172.19.20.21 네트워크 A 네트워크 C 10.0.1.1 10.0.2.1

17 17 IP in IP tunneling 모듈 설치 Insmod ipip.o ipip.ko Insmod new_tunnel.o ----- fedora4 에서는 없는 모듈. 네트워크 A 의 라우터 Ifconfig tun10 10.0.1.1 pointopoint 172.19.20.21 Route add –net 10.0.2.0 netmask 255.255.255.0 dev tun10 네트워크 B 의 라우터 Ifconfig tun10 10.0.2.1 pointopoint 172.16.17.18 Route add –net 10.0.1.0 netmask 255.255.255.0 dev tun 10 터널을 끝내려면 Ifconfig tun10 down

18 18 GRE tunneling Cisco 에서 개발한 터널링 프로토콜 멀티캐스트나 IPv6 처리 가능 모듈 필요 ip_gre.o IPv4 터널링 네트워크 B Network 10.0.1.0 Netmask 255.255.255.0 Router 10.0.1.1 Network 10.0.2.0 Netmask 255.255.255.0 Router 10.0.2.1 172.16.17.18 172.19.20.21 netanetb 네트워크 A 네트워크 C 10.0.1.1 10.0.2.1

19 19 IPv4 터널링 네트워크 A 의 라우터 설정 Netb 라는 터널 장치 추가, GRE 프로토콜을 사용, 원격지 주소 172.19.20.21, 터널을 지나는 패킷이 172.16.17.18 에서 출발 장치 활성화 새로운 netb 에 주소를 10.0.1.1 로 지정  터널링 장치를 위해 다른 IP 대역을 사용하는 것을 생각해 볼 수 있다. 네트워크 B 로 가는 경로 지정

20 20 IPv4 터널링 네트워크 B 의 라우터 설정 라우터 A 에서 터널을 없앨 때

21 21 IPv4 터널링

22 22 IPv6 Tunneling 다음과 같은 IPv6 newtork 이 있고, 6bone 에 연결하려면 ?? 네트워크의 IPv4 주소는 172.16.17.18 이고, 6bone 라우터의 IPv4 주소는 172.22.23.24 IPv4 IPv6

23 23 Chap 6. IPv4 tunneling with Cisco and/or 6bone IPv6 Tunneling IPv6 address have Some rules  처음에 오는 0 을 쓰지 않는다.  16 비트 or 두 바이트를 나우기 위해 콜론 사용  연속적인 0 을 가지면 :: 을 쓸 수 있다. 주소에서 오직 한번만 쓰고, 적어도 16 비트 이상이 되어야 한다.  2002:836b:9820:0000:0000:0000:836b:9886  2002:836b:9820::836b:9886 IPv6 네트워크은 이미 있는 IPv4 인프라를 통해 IPv6 프로토콜을 IPv4 패킷에 싸서 보내는 식으로 연결한다.

24 24 IPv6 Tunneling IPv4 address – 144.100.24.181 6bone 라우터 IPv4 address – 145.100.1.5 IP forwaring 을 위해서 IPv6 를 위한 router advertisement daemon

25 25 IPSEC : secure IP over the Internet IPSec(IP Security) IP 레이어에서의 패킷 교환이 안전하게 이루어 질 수 있도록 하기 위하여 IETF 에서 개발한 프로토콜 가상적인 전용회선을 구축 사용자 측 단말기에 탑재, 인터넷을 거쳐 특정 클라이언트와 서버만이 IPSec 으로 데이터를 주고 받을 수 있다 IPSec 의 주요 장점  Transparency  IPSec 은 network layer 에서 동작하므로, application 과는 무관하게 동작  Network Topology 의존성이 없다  TCP/IP 프로토콜을 사용하므로 Ethernet, TokenRing, PPP 등 모든 network topology 에 사용 가능.  표준화  표준화된 tunneling, authentication, encryption 방법을 사용한다.  Multiprotocol  IPSec 은 tunneling mode 를 사용할 경우 여러 프로토콜과도 동작할 수 있다.

26 26 IPSEC : secure IP over the Internet IPSec operation mode 전송모드  IP payload 만 encrypt.  IP Header 는 보전되므로 public network 상의 모든 장비가 해당 패킷의 최종 destination 을 알 수 있다.  Clear 한 상태의 IP Header 로 인해 attacker 의 트래픽 분석 가능  각 endpoint 가 IPSec 를 이해 터널모드  모든 초기의 datagram 이 encrypt, 새로운 IP packet 의 header 가 만들어짐  라우터와 같은 장비가 IPSec Proxy 로 동작 가능  Source 의 라우터가 IPSec tunnel 을 통해서 패킷을 encrypt 하여 forward  Destination 라우터는 초기 IP 패킷을 decrypt 해서 최종 목적지로 forward  전체 패킷을 encript.  실질적인 source 와 destination 은 노출되지 않음

27 27 IPSEC : secure IP over the Internet IPSec components IPSec 은 2 개의 protocol – AH, ESP 로 구성  AH – authentication 과 data integrity 를 위해 동작  ESP – confidentiality 를 위해 서비스 Database 에 저장되어 있는 policy – SPD(Security Policy Database)  System manager 에 의해 변경 가능 IKE 프로토콜은 암호화 키의 관리에 사용

28 28 IPSec components SAD(Security Association Database) SA 는 IPSec 을 사용하는 두 peer 간의 협약을 의미  Peer 간에 사용되는 암호화 알고리즘  사용되는 key  SA life time  최대 전송 byte 를 정의 설정 방법은 manual 과 automatic SPD(Security Policy Database) System manager 에 의해 정의 Traffic 에 대하여 security 서비스가 사용되어야 할 지 정의.

29 29 IPSec components AH(Authentication Header) IP extension Header 로서 IP packet 에 대한 인증 여부를 제공 전체 패킷에 대한 인증 여부를 결정 Transport mode 의 경우 AH 는 IP Header 와 Payload 사이에 위치하여 전체 IP Packet 을 인증 Tunnel mode 의 경우 새로운 IP Header 와 AH 가 앞 부분에 첨가

30 30 IPSec components ESP(Encapsulating Security Payload) 다수의 security service 를 제공  Confidentiality, origin authentication, data integrity 를 제공  Authentication 없이 confidentaility 를 제공 가능  Transport mode 의 경우 IP Header 뒤에 나타나며, IP Payload 는 ESP Payload 에 의해 encapsulate 된다.  Tunnel mode 일 경우 payload 는 원본 IP 패킷이 된다.

31 31 Chap 7. IPSEC : secure IP over the Internet 리눅스에서는 두 가지 종류의 IPSEC 을 사용할 수 있다. 2.2 및 2.4 에는 최초의 메이저 구현물인 FreeS/WAN 이 있다. 리눅스 커널에 아주 잘 통합되지는 않으며, 실제 merge 의 좋은 후보가 되지 못함 리눅스 2.5.47 의 경우 커널 내에 자체적인 IPSEC 구현이 있다. 2.5.49 의 경우 IPSEC 는 추가적인 패치 없이도 동작한다.

32 32 Intro with Manual Keying Iptable 에서 IPSEC 패킷을 차단 시키므로 다음과 같은 설정을 필요. iptable –A xxx –p 50 –j ACCEPT iptable –a xxx –p 51 –j ACCEPT IPSEC 은 Internet Protocol 의 보안 버전을 제공 보안 - 암호화 (encryption) 과 인증 (Authentication) IPSEC 은 암호화를 위한 “ESP” 와 “AH” 를 지원한다. ESP 와 AH 는 security association(SA) 에 의존한다. SA 는 source 와 destination, instruction 으로 구성  대칭적  통신하는 양쪽에서 정확히 동일한 SA 를 공유  양방향 트래픽을 위해서는 두 개의 SA 가 필요. SPI(Security Parameter Index) ID Secret key

33 33 Intro with Manual Keying 암호화를 위한 Policy 의 필요성 간단한 Security Policy(SP) Security Policy specifies WHAT we want; a Security Association describes HOW we want it. 나가는 패킷에는 SA SPI 가 있어서 이를 통해 원격지에 대응하는 verification 과 decryption instruction 을 찾을 수 있다. 10.0.0.216 에서 10.0.0.11 로 암호화 및 인증을 통해 통신을 하는 단순한 구성

34 34 Intro with Manual Keying /sbin/setkey –f filename Security Policy

35 35 Intro with Manual Keying

36 36 Automatic Keying 안전한 상태 유지를 위해 암호화 구성을 신뢰할 수 있는 경로를 통해 전달할 필요가 있다. 비밀값이 공유되기에 비밀이 아니다. 모든 상대와의 통신에서 서로 다른 비밀값을 사용하도록 해야한다. Key rollover 일정시간마다 새로운 키로 옮겨야 한다. 좀더 일반적인 키 정책을 기술할 수 있게 되야 한다. 정확하게 Internet Key Exchange 프로토콜 제공 난수적으로 생성된 키를 자동으로 교환 협상된 알고리즘 세부 사항에 따라서 비대칭 암호화 기술을 이용해 전송 IPSEC 구현은 KAME ‘racoon’ IKE 데몬으로 동작한다. key manage protocol

37 37 Automatic Keying Security Association 을 만들어 주고 policy 는 유저가 설정 Racoon 설정 – racoon.conf & psk.txt passwd Other host Psk.txt 의 파일의 소유자는 root 모드는 600 으로 설정되어야 한다.

38 38 Automatic Keying Security policy

39 39 Automatic keying using X.509 certificates 비 대칭 암호화 기술 IPSEC 참가자가 public key 와 private key 를 만든다. openssl 도구로 키를 만든다.

40 40 IPSEC tunnels Tunnel 모드 라우터만 IPSEC 에 대해서 알고 다른 호스트들을 대신해서 필요한 작업들을 한다. Proxy ESP 라고도 함. Example  10.0.0.216 에서 10.0.0.11 을 거쳐 130.161.0.0/16 으로 가는 모든 트래픽이 터널을 통하기 위해서 10.0.0.216 10.0.0.11 130.161.0.0/16

41 41 IPSEC tunnels 10.0.0.216 에서의 설정 10.0.0.11 ESP 암호화 SA 를 구성 실제 터널 구성

42 42 Chap 8. Multicast routing 멀티캐스트 라우팅을 위해서는 자신이 원하는 종류를 지원하도록 리눅스 커널을 구성해야 한다. DVMRP(RIP 유니캐스트 프로토콜의 멀티캐스트 버전 ), MOSPF(OSPF), PIM-SM(Protocol Independent Multicast-Sparse Mode), PIM-DM(Protocol Independent Multicast-Dense Mode) 멀티캐스트를 활성화 시킨후 라우터 테이블에 멀티캐스트 가상 네트워크를 추가

43 43 Multicast routing 리눅스 패킷 포워딩 설정 Eth0 에서 멀티캐스팅을 하고 있다고 가정


Download ppt "Linux Advanced Routing & Traffic Control HOWTO (1) 2006. 5.30 성 백 동"

Similar presentations


Ads by Google